Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkchong2005-08-31 21:26:15 +0000
committerkchong2005-08-31 21:26:15 +0000
commit2af529bb1199c0f3ba371bbe0f488bfad520e3b3 (patch)
treee6049472b60a3cf7204f1aa2a21aacbe28e23eed /bundles/org.eclipse.wst.wsdl/src-wsdl
parent604851c1ff84542812f25189d59399bf9c886f5d (diff)
downloadwebtools.webservices-2af529bb1199c0f3ba371bbe0f488bfad520e3b3.tar.gz
webtools.webservices-2af529bb1199c0f3ba371bbe0f488bfad520e3b3.tar.xz
webtools.webservices-2af529bb1199c0f3ba371bbe0f488bfad520e3b3.zip
[79326] WSDL elements ordering problem durint serialization
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl/src-wsdl')
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingImpl.java17
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingInputImpl.java13
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOperationImpl.java18
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOutputImpl.java13
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java25
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/OperationImpl.java58
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ServiceImpl.java14
-rw-r--r--bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/TypesImpl.java6
8 files changed, 107 insertions, 57 deletions
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingImpl.java
index 0a36555ae..1b46347b4 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingImpl.java
@@ -749,22 +749,23 @@ public class BindingImpl extends ExtensibleElementImpl implements Binding
{
Element newElement = createElement(WSDLConstants.BINDING);
setElement(newElement);
-
- Iterator iterator = getEBindingOperations().iterator();
+
+ Iterator iterator = getExtensibilityElements().iterator();
while (iterator.hasNext())
{
- BindingOperation operation = (BindingOperation) iterator.next();
- Element child = ((BindingOperationImpl) operation).createElement();
+ ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
+ Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
newElement.appendChild(child);
}
-
- iterator = getExtensibilityElements().iterator();
+
+ iterator = getEBindingOperations().iterator();
while (iterator.hasNext())
{
- ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
- Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
+ BindingOperation operation = (BindingOperation) iterator.next();
+ Element child = ((BindingOperationImpl) operation).createElement();
newElement.appendChild(child);
}
+
return newElement;
}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingInputImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingInputImpl.java
index 54dbfccfb..31ea5225a 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingInputImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingInputImpl.java
@@ -338,11 +338,14 @@ public class BindingInputImpl extends ExtensibleElementImpl implements BindingIn
public void reconcileAttributes(Element changedElement)
{
- String name = changedElement.getAttribute("name");
- if (name != null)
- {
- setName(name);
- }
+ if (changedElement.hasAttribute("name"))
+ {
+ String name = changedElement.getAttribute("name");
+ if (name != null)
+ {
+ setName(name);
+ }
+ }
}
public void handleUnreconciledElement(Element child, Collection remainingModelObjects)
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOperationImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOperationImpl.java
index 2f4c9e82d..b63c8c6c2 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOperationImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOperationImpl.java
@@ -747,6 +747,14 @@ public class BindingOperationImpl extends ExtensibleElementImpl implements Bindi
Element newElement = createElement(WSDLConstants.OPERATION);
setElement(newElement);
+ Iterator iterator = getExtensibilityElements().iterator();
+ while (iterator.hasNext())
+ {
+ ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
+ Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
+ newElement.appendChild(child);
+ }
+
BindingInput input = getEBindingInput();
if (input != null)
{
@@ -761,7 +769,7 @@ public class BindingOperationImpl extends ExtensibleElementImpl implements Bindi
newElement.appendChild(child);
}
- Iterator iterator = getEBindingFaults().iterator();
+ iterator = getEBindingFaults().iterator();
while (iterator.hasNext())
{
BindingFault fault = (BindingFault) iterator.next();
@@ -769,14 +777,6 @@ public class BindingOperationImpl extends ExtensibleElementImpl implements Bindi
newElement.appendChild(child);
}
- iterator = getExtensibilityElements().iterator();
- while (iterator.hasNext())
- {
- ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
- Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
- newElement.appendChild(child);
- }
-
return newElement;
}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOutputImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOutputImpl.java
index a311b1a98..d350d911d 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOutputImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/BindingOutputImpl.java
@@ -338,11 +338,14 @@ public class BindingOutputImpl extends ExtensibleElementImpl implements BindingO
public void reconcileAttributes(Element changedElement)
{
- String name = changedElement.getAttribute("name");
- if (name != null)
- {
- setName(name);
- }
+ if (changedElement.hasAttribute("name"))
+ {
+ String name = changedElement.getAttribute("name");
+ if (name != null)
+ {
+ setName(name);
+ }
+ }
}
public void handleUnreconciledElement(Element child, Collection remainingModelObjects)
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
index bc1d74134..e4604c4ed 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/DefinitionImpl.java
@@ -1641,15 +1641,11 @@ public class DefinitionImpl extends ExtensibleElementImpl implements Definition
super.reconcileAttributes(changedElement);
if (changedElement == getElement())
- {
- setTargetNamespace(changedElement.getAttribute("targetNamespace"));
-
- // bug 104120
- // ensure that the definition name is non null to avoid QName ctor exception
- //
- String definitionName = WSDLConstants.getAttribute(changedElement, "name");
- setQName(new QName(WSDLConstants.WSDL_NAMESPACE_URI, definitionName != null ? definitionName : ""));
-
+ {
+ if (changedElement.hasAttribute("targetNamespace"))
+ setTargetNamespace(changedElement.getAttribute("targetNamespace"));
+ if (changedElement.hasAttribute("name"))
+ setQName(new QName(WSDLConstants.WSDL_NAMESPACE_URI, changedElement.getAttribute("name")));
getENamespaces().clear();
getNamespaces().clear();
//getNamespaces().put("", null);
@@ -1860,8 +1856,7 @@ public class DefinitionImpl extends ExtensibleElementImpl implements Definition
{
Element newElement = createElement(WSDLConstants.DEFINITION);
setElement(newElement);
-
- Object obj = null;
+ addChildElements(newElement, getEExtensibilityElements());
Types types = getETypes();
if (types != null)
@@ -1869,12 +1864,12 @@ public class DefinitionImpl extends ExtensibleElementImpl implements Definition
Element child = ((TypesImpl) types).createElement();
newElement.appendChild(child);
}
+
addChildElements(newElement, getEImports());
addChildElements(newElement, getEMessages());
addChildElements(newElement, getEPortTypes());
addChildElements(newElement, getEBindings());
addChildElements(newElement, getEServices());
- addChildElements(newElement, getEExtensibilityElements());
return newElement;
}
@@ -1898,7 +1893,6 @@ public class DefinitionImpl extends ExtensibleElementImpl implements Definition
// We are updating the Definition element.
{
Iterator iterator = getNamespaces().entrySet().iterator();
- Namespace namespace = null;
String prefix = null;
String uri = null;
while (iterator.hasNext())
@@ -2049,6 +2043,11 @@ public class DefinitionImpl extends ExtensibleElementImpl implements Definition
protected List getImportedOrInlinedSchemas(String namespace)
{
+ if (namespace == null)
+ {
+ namespace = "";
+ }
+
List list = new ArrayList();
for (Iterator i = getEImports().iterator(); i.hasNext();)
{
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/OperationImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/OperationImpl.java
index 47f02b0cf..309a16ff9 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/OperationImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/OperationImpl.java
@@ -19,12 +19,14 @@ import java.util.List;
import java.util.Map;
import javax.wsdl.OperationType;
+import javax.xml.namespace.QName;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -37,6 +39,7 @@ import org.eclipse.wst.wsdl.Input;
import org.eclipse.wst.wsdl.Operation;
import org.eclipse.wst.wsdl.Output;
import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.PortType;
import org.eclipse.wst.wsdl.WSDLFactory;
import org.eclipse.wst.wsdl.WSDLPackage;
import org.eclipse.wst.wsdl.internal.util.WSDLUtil;
@@ -214,7 +217,9 @@ public class OperationImpl extends WSDLElementImpl implements Operation
* @generated
* @ordered
*/
- protected EList eParameterOrdering = null;
+ protected EList eParameterOrdering = null; // a list of parts (EMF)
+
+ private List parameterOrdering = null; // a list of part names (WSDL4J)
private Map faults;
@@ -644,20 +649,20 @@ public class OperationImpl extends WSDLElementImpl implements Operation
*/
public List getParameterOrdering()
{
- List ordering = new ArrayList();
+ parameterOrdering = new ArrayList();
for (Iterator i = getEParameterOrdering().iterator(); i.hasNext();)
{
try
{
Part part = (Part) i.next();
- ordering.add(part.getName());
+ parameterOrdering.add(part.getName());
}
catch (Exception e)
{
// TBD - handle exception
}
}
- return ordering.isEmpty() ? null : ordering;
+ return parameterOrdering.isEmpty() ? null : parameterOrdering;
}
/**
@@ -667,11 +672,13 @@ public class OperationImpl extends WSDLElementImpl implements Operation
*/
public void setParameterOrdering(List parameterOrder)
{
+ parameterOrdering = parameterOrder;
getEParameterOrdering().clear();
if (parameterOrder != null)
{
for (Iterator i = parameterOrder.iterator(); i.hasNext();)
{
+ // KB: We should be resolving parts based on the part names in parameterOrder.
Part part = WSDLFactory.eINSTANCE.createPart();
part.setName((String) i.next());
getEParameterOrdering().add(part);
@@ -937,11 +944,14 @@ public class OperationImpl extends WSDLElementImpl implements Operation
public void reconcileAttributes(Element changedElement)
{
- String name = changedElement.getAttribute("name");
- if (name != null)
- {
- setName(name);
- }
+ if (changedElement.hasAttribute("name"))
+ {
+ String name = changedElement.getAttribute("name");
+ if (name != null)
+ {
+ setName(name);
+ }
+ }
if (changedElement.hasAttribute("parameterOrder"))
{
@@ -1071,6 +1081,36 @@ public class OperationImpl extends WSDLElementImpl implements Operation
}
}
+ protected void changeReference(EReference eReference)
+ {
+ if (isReconciling)
+ return;
+
+ super.changeReference(eReference);
+ Element theElement = getElement();
+ if (theElement != null)
+ {
+ if (eReference == null || eReference == WSDLPackage.eINSTANCE.getOperation_EParameterOrdering())
+ {
+ // Build up a string of concatenated part names (parameterOrder) from eParameterOrdering.
+
+ Iterator parts = getEParameterOrdering().iterator();
+ Part part = null;
+ String partNames = "";
+ while (parts.hasNext())
+ {
+ part = (Part)parts.next();
+ partNames = partNames + part.getName() + " ";
+ }
+
+ if ((partNames = partNames.trim()).length() != 0)
+ // Update the element's attrubute
+ niceSetAttribute(theElement, "parameterOrder", partNames);
+ }
+ }
+ //
+ }
+
// Switch <input> and <output>
private void reorderChildren()
{
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ServiceImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ServiceImpl.java
index beca9b407..bf38f3c66 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ServiceImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/ServiceImpl.java
@@ -606,19 +606,19 @@ public class ServiceImpl extends ExtensibleElementImpl implements Service
Element newElement = createElement(WSDLConstants.SERVICE);
setElement(newElement);
- Iterator iterator = getEPorts().iterator();
+ Iterator iterator = getExtensibilityElements().iterator();
while (iterator.hasNext())
{
- Port port = (Port) iterator.next();
- Element child = ((PortImpl) port).createElement();
+ ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
+ Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
newElement.appendChild(child);
}
-
- iterator = getExtensibilityElements().iterator();
+
+ iterator = getEPorts().iterator();
while (iterator.hasNext())
{
- ExtensibilityElement extensibilityElement = (ExtensibilityElement) iterator.next();
- Element child = ((ExtensibilityElementImpl) extensibilityElement).createElement();
+ Port port = (Port) iterator.next();
+ Element child = ((PortImpl) port).createElement();
newElement.appendChild(child);
}
diff --git a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/TypesImpl.java b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/TypesImpl.java
index 613ed85f7..363ddf717 100644
--- a/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/TypesImpl.java
+++ b/bundles/org.eclipse.wst.wsdl/src-wsdl/org/eclipse/wst/wsdl/internal/impl/TypesImpl.java
@@ -103,8 +103,12 @@ public class TypesImpl extends ExtensibleElementImpl implements Types
for (Iterator i = getSchemas().iterator(); i.hasNext();)
{
XSDSchema schema = (XSDSchema) i.next();
- if (namespaceURI.equals(schema.getTargetNamespace()))
+ if (namespaceURI == null && schema.getTargetNamespace() == null) {
+ schemas.add(schema);
+ }
+ else if (namespaceURI != null && namespaceURI.equals(schema.getTargetNamespace())) {
schemas.add(schema);
+ }
}
return schemas;
}

Back to the top