Author: jkaputin
Date: Sun Aug 12 09:24:45 2007
New Revision: 565085

URL: http://svn.apache.org/viewvc?view=rev&rev=565085
Log:
WODEN-174
Ensure a prefix defined in a TNS namespace declaration
is included in the QNames of any WSDL components
and schema ElementDeclarations and TypeDefinitions.

Modified:
    
incubator/woden/trunk/java/src/org/apache/woden/internal/util/ComponentModelBuilder.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/BindingImpl.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceFaultImpl.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceOperationImpl.java
    
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/ServiceImpl.java
    
incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java
    
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/InterfaceFaultReferenceTest.java
    incubator/woden/trunk/java/test/org/apache/woden/wsdl20/ServiceTest.java
    
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultElementTest.java
    
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultReferenceElementTest.java
    
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/NameAttributeTest.java

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/util/ComponentModelBuilder.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/util/ComponentModelBuilder.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/util/ComponentModelBuilder.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/util/ComponentModelBuilder.java
 Sun Aug 12 09:24:45 2007
@@ -70,6 +70,7 @@
 import org.apache.ws.commons.schema.XmlSchemaInclude;
 import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 import org.apache.ws.commons.schema.XmlSchemaObjectTable;
+import org.apache.ws.commons.schema.utils.NamespacePrefixList;
 
 /**
  * Converts the xml representation of a WSDL document to the WSDL component
@@ -255,6 +256,7 @@
        private void buildElementDeclarations(XmlSchema schemaDef, String 
schemaTns, URI typeSystemURI) {
         
            XmlSchemaObjectTable elementTable = schemaDef.getElements();
+        NamespacePrefixList prefixes = schemaDef.getNamespaceContext();
            Iterator qnames = elementTable.getNames();
            while (qnames.hasNext()) {
                QName xseQN = (QName) qnames.next();
@@ -276,6 +278,13 @@
                 //so replace it with the including schema's tns.
                 edQN = new QName(schemaTns, xseQN.getLocalPart(), 
xseQN.getPrefix());
             }
+            if(edQN.getPrefix() == "" || edQN.getPrefix() == null) {
+                //if a prefix has been declared for this NS uri, include it in 
the qname
+                String pfx = prefixes.getPrefix(edQN.getNamespaceURI());
+                if(pfx != null) {
+                    edQN = new QName(edQN.getNamespaceURI(), 
edQN.getLocalPart(), pfx);
+                }
+            }
                if(schemaTns == null || 
schemaTns.equals(edQN.getNamespaceURI())) //TODO test with schema imports, may 
be incorrect.
             {
                    ElementDeclarationImpl ed = new ElementDeclarationImpl();
@@ -294,6 +303,7 @@
        private void buildTypeDefinitions(XmlSchema schemaDef, String 
schemaTns, URI typeSystemURI) {
         
            XmlSchemaObjectTable typeTable = schemaDef.getSchemaTypes();
+        NamespacePrefixList prefixes = schemaDef.getNamespaceContext();
            Iterator qnames = typeTable.getNames();
            while (qnames.hasNext()) {
                QName xstQN = (QName) qnames.next();
@@ -316,6 +326,13 @@
                 //this is how XmlSchema represents tns for chameleon 
xs:includes,
                 //so replace it with the including schema's tns.
                 tdQN = new QName(schemaTns, xstQN.getLocalPart(), 
xstQN.getPrefix());
+            }
+            if(tdQN.getPrefix() == "" || tdQN.getPrefix() == null) {
+                //if a prefix has been declared for this NS uri, include it in 
the qname
+                String pfx = prefixes.getPrefix(tdQN.getNamespaceURI());
+                if(pfx != null) {
+                    tdQN = new QName(tdQN.getNamespaceURI(), 
tdQN.getLocalPart(), pfx);
+                }
             }
                if (schemaTns == null || 
schemaTns.equals(tdQN.getNamespaceURI())) 
             {

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/BindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/BindingImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/BindingImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/BindingImpl.java
 Sun Aug 12 09:24:45 2007
@@ -75,8 +75,8 @@
     public QName getName() {
         QName name = null;
         if (fName != null) {
-            String tns = DescriptionImpl.getTargetNamespace(this);
-            name = new QName(tns, fName.toString());
+            String[] tns = DescriptionImpl.getTargetNamespaceAndPrefix(this);
+            name = new QName(tns[0], fName.toString(), tns[1]);
         }
         return name;
     }

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/DescriptionImpl.java
 Sun Aug 12 09:24:45 2007
@@ -21,6 +21,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.Vector;
 
 import javax.xml.namespace.QName;
@@ -612,30 +613,35 @@
      * <i>xs:NCName</i>. The setter method for the attribute will take an 
NCName object as
      * the input parameter. However, to be useful, the getter method returns a 
QName. The
      * namespace within the QName has to be the targetNamespace of the 
<code>&lt;description&gt;</code>
-     * element. This method provides a way to retrieve the targetNamespace of 
the
-     * enclosing <code>&lt;description&gt;</code> element.
-     * @param wElem instance of WSDLElement for which the targetNamespace is 
required 
-     * @return the targetNamespace of the DescriptionElement that is the root 
element of wElem
+     * element. This method provides a way to retrieve the targetNamespace and 
any NS prefix
+     * of the enclosing <code>&lt;description&gt;</code> element.
+     * @param  wElem instance of WSDLElement for which the targetNamespace is 
required 
+     * @return a String array containing the targetNamespace and prefix of the 
DescriptionElement
+     *         that is the root element of wElem
      */
-    static String getTargetNamespace(WSDLElement wElem) {
-        String namespace = "";
-
+    static String[] getTargetNamespaceAndPrefix(WSDLElement wElem) {
         if (wElem instanceof NestedElement) {
             WSDLElement parent = ((NestedElement) wElem).getParentElement();
-            return getTargetNamespace(parent);
+            return getTargetNamespaceAndPrefix(parent);
         }
-        if (wElem instanceof DescriptionElement) {
-            URI tns = ((DescriptionElement) wElem).getTargetNamespace();
-            if (tns != null) {
-                namespace = tns.toString();
+        
+        //we have a description element
+        String[] namespace = new String[] {"",""};
+        URI tns = ((DescriptionElement) wElem).getTargetNamespace();
+        if (tns != null) {
+            namespace[0] = tns.toString();
+            Set nsDecls = ((DescriptionElement) 
wElem).getNamespaces().entrySet();
+            if(nsDecls != null) {
+                Iterator i = nsDecls.iterator();
+                while(i.hasNext()) {
+                    Map.Entry entry = (Map.Entry)i.next();
+                    if(tns.equals(entry.getValue())) {
+                        namespace[1] = (String)entry.getKey();
+                    }
+                }
             }
-            return namespace;
         }
-
-        // We either have a null or a subclass of WSDLElement which isn't an 
instance of
-        // NestedElement or DescriptionElement - and there aren't any of those
-        // Return ""
-        return "";
+        return namespace;
     }
 
     

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceFaultImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceFaultImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceFaultImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceFaultImpl.java
 Sun Aug 12 09:24:45 2007
@@ -58,8 +58,8 @@
     {
         QName name = null;
         if (fName != null) {
-            String tns = DescriptionImpl.getTargetNamespace(this);
-            name = new QName(tns, fName.toString());
+            String[] tns = DescriptionImpl.getTargetNamespaceAndPrefix(this);
+            name = new QName(tns[0], fName.toString(), tns[1]);
         }
         return name;
     }

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceImpl.java
 Sun Aug 12 09:24:45 2007
@@ -79,8 +79,8 @@
     {
         QName name = null;
         if (fName != null) {
-            String tns = DescriptionImpl.getTargetNamespace(this);
-            name = new QName(tns, fName.toString());
+            String[] tns = DescriptionImpl.getTargetNamespaceAndPrefix(this);
+            name = new QName(tns[0], fName.toString(), tns[1]);
         }
         return name;
     }

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceOperationImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceOperationImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceOperationImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/InterfaceOperationImpl.java
 Sun Aug 12 09:24:45 2007
@@ -62,8 +62,8 @@
     {
         QName name = null;
         if (fName != null) {
-            String tns = DescriptionImpl.getTargetNamespace(this);
-            name = new QName(tns, fName.toString());
+            String[] tns = DescriptionImpl.getTargetNamespaceAndPrefix(this);
+            name = new QName(tns[0], fName.toString(), tns[1]);
         }
         return name;
     }

Modified: 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/ServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/ServiceImpl.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/ServiceImpl.java
 (original)
+++ 
incubator/woden/trunk/java/src/org/apache/woden/internal/wsdl20/ServiceImpl.java
 Sun Aug 12 09:24:45 2007
@@ -70,8 +70,8 @@
     public QName getName() {
         QName name = null;
         if (fName != null) {
-            String tns = DescriptionImpl.getTargetNamespace(this);
-            name = new QName(tns, fName.toString());
+            String[] tns = DescriptionImpl.getTargetNamespaceAndPrefix(this);
+            name = new QName(tns[0], fName.toString(), tns[1]);
         }
         return name;
     }

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java
 (original)
+++ 
incubator/woden/trunk/java/test/org/apache/woden/internal/wsdl20/validation/WSDLComponentValidatorTest.java
 Sun Aug 12 09:24:45 2007
@@ -2099,7 +2099,7 @@
        {
       DescriptionImpl desc = new DescriptionImpl();
       desc.setTargetNamespace(namespace1);
-      ServiceImpl service = new ServiceImpl();
+      ServiceImpl service = (ServiceImpl)desc.addServiceElement();
          service.setName(name1);
          if(!val.testAssertionService1060(new Service[]{service}, reporter))
          {
@@ -2116,11 +2116,11 @@
        {
       DescriptionImpl desc = new DescriptionImpl();
       desc.setTargetNamespace(namespace1);
-      ServiceImpl service = new ServiceImpl();
+      ServiceImpl service = (ServiceImpl)desc.addServiceElement();
          service.setName(name1);
-         ServiceImpl service2 = new ServiceImpl();
+         ServiceImpl service2 = (ServiceImpl)desc.addServiceElement();
       service2.setName(name2);
-         ServiceImpl service3 = new ServiceImpl();
+         ServiceImpl service3 = (ServiceImpl)desc.addServiceElement();
       service3.setName(name3);
          
          Service[] services = new Service[]{service, service2, service3};
@@ -2140,11 +2140,11 @@
        {
       DescriptionImpl desc = new DescriptionImpl();
       desc.setTargetNamespace(namespace1);
-      ServiceImpl service = new ServiceImpl();
+      ServiceImpl service = (ServiceImpl)desc.addServiceElement();
       service.setName(name1);
-      ServiceImpl service2 = new ServiceImpl();
+      ServiceImpl service2 = (ServiceImpl)desc.addServiceElement();
       service2.setName(name2);
-      ServiceImpl service3 = new ServiceImpl();
+      ServiceImpl service3 = (ServiceImpl)desc.addServiceElement();
          service3.setName(name1);
          
          Service[] services = new Service[]{service, service2, service3};
@@ -2165,11 +2165,11 @@
        {
       DescriptionImpl desc = new DescriptionImpl();
       desc.setTargetNamespace(namespace1);
-      ServiceImpl service = new ServiceImpl();
+      ServiceImpl service = (ServiceImpl)desc.addServiceElement();
       service.setName(name1);
-      ServiceImpl service2 = new ServiceImpl();
+      ServiceImpl service2 = (ServiceImpl)desc.addServiceElement();
       service2.setName(name2);
-      ServiceImpl service3 = new ServiceImpl();
+      ServiceImpl service3 = (ServiceImpl)desc.addServiceElement();
       service3.setName(new NCName("name1"));
          
          Service[] services = new Service[]{service, service2, service3};

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/InterfaceFaultReferenceTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/InterfaceFaultReferenceTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/InterfaceFaultReferenceTest.java
 (original)
+++ 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/InterfaceFaultReferenceTest.java
 Sun Aug 12 09:24:45 2007
@@ -22,10 +22,12 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
 import org.apache.woden.internal.wsdl20.InterfaceFaultReferenceImpl;
 import org.apache.woden.internal.wsdl20.InterfaceImpl;
 import org.apache.woden.types.NCName;
 import org.apache.woden.wsdl20.enumeration.Direction;
+import org.apache.woden.wsdl20.xml.DescriptionElement;
 import org.apache.woden.wsdl20.xml.InterfaceElement;
 import org.apache.woden.wsdl20.xml.InterfaceFaultElement;
 import org.apache.woden.wsdl20.xml.InterfaceFaultReferenceElement;
@@ -90,8 +92,9 @@
         */
        public void testGetInterfaceFault()
        {
-               // Create the 
InterfaceElement->InterfaceOperationElement->InterfaceFaultReference hierarchy
-               InterfaceElement interfaceElement = new InterfaceImpl();
+               // Create the 
DescriptionElement->InterfaceElement->InterfaceOperationElement->InterfaceFaultReference
 hierarchy
+               DescriptionElement desc = new DescriptionImpl();
+        InterfaceElement interfaceElement = desc.addInterfaceElement();
                InterfaceOperationElement interfaceOperationElement = 
interfaceElement.addInterfaceOperationElement();
 
                // Add an InterfaceFault to the InterfaceElement

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/ServiceTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/ServiceTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- incubator/woden/trunk/java/test/org/apache/woden/wsdl20/ServiceTest.java 
(original)
+++ incubator/woden/trunk/java/test/org/apache/woden/wsdl20/ServiceTest.java 
Sun Aug 12 09:24:45 2007
@@ -50,7 +50,9 @@
     protected void setUp() throws Exception 
     {
         super.setUp();
-       fEmptyService = new ServiceImpl();
+        DescriptionElement desc = new DescriptionImpl();
+        desc.addServiceElement();
+       fEmptyService = desc.toComponent().getServices()[0];
     }
 
     /*

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultElementTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultElementTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultElementTest.java
 (original)
+++ 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultElementTest.java
 Sun Aug 12 09:24:45 2007
@@ -22,6 +22,7 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
 import org.apache.woden.internal.wsdl20.InterfaceFaultImpl;
 import org.apache.woden.types.NCName;
 
@@ -32,12 +33,17 @@
  */
 public class InterfaceFaultElementTest extends TestCase {
 
-       private InterfaceFaultElement fFault = new InterfaceFaultImpl();
+       private InterfaceFaultElement fFault;
 
        public static Test suite()
        {
           return new TestSuite(InterfaceFaultElementTest.class);
        }
+    
+    public void setUp() {
+        DescriptionElement desc = new DescriptionImpl();
+        fFault = (desc.addInterfaceElement()).addInterfaceFaultElement();
+    }
        
        /*
         * Test that an (optional) ElementName QName can be successfully set 
and retrieved

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultReferenceElementTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultReferenceElementTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultReferenceElementTest.java
 (original)
+++ 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/InterfaceFaultReferenceElementTest.java
 Sun Aug 12 09:24:45 2007
@@ -22,6 +22,7 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
 import org.apache.woden.internal.wsdl20.InterfaceFaultReferenceImpl;
 import org.apache.woden.internal.wsdl20.InterfaceImpl;
 import org.apache.woden.types.NCName;
@@ -99,8 +100,9 @@
         */
        public void testGetInterfaceFaultElement()
        {
-               // Create the 
InterfaceElement->InterfaceOperationElement->InterfaceFaultReference hierarchy
-               InterfaceElement interfaceElement = new InterfaceImpl();
+               // Create the 
DescriptionElement->InterfaceElement->InterfaceOperationElement->InterfaceFaultReference
 hierarchy
+        DescriptionElement desc = new DescriptionImpl();
+               InterfaceElement interfaceElement = desc.addInterfaceElement();
                InterfaceOperationElement interfaceOperationElement = 
interfaceElement.addInterfaceOperationElement();
 
                // Add an InterfaceFault to the InterfaceElement

Modified: 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/NameAttributeTest.java
URL: 
http://svn.apache.org/viewvc/incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/NameAttributeTest.java?view=diff&rev=565085&r1=565084&r2=565085
==============================================================================
--- 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/NameAttributeTest.java
 (original)
+++ 
incubator/woden/trunk/java/test/org/apache/woden/wsdl20/xml/NameAttributeTest.java
 Sun Aug 12 09:24:45 2007
@@ -20,6 +20,7 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.apache.woden.internal.wsdl20.DescriptionImpl;
 import org.apache.woden.internal.wsdl20.InterfaceImpl;
 import org.apache.woden.types.NCName;
 
@@ -40,7 +41,8 @@
      * of the emptystring.
      */
     public void testNamespaceOfGetNameReturnValue() {
-        InterfaceElement ie = new InterfaceImpl();
+        DescriptionElement de = new DescriptionImpl();
+        InterfaceElement ie = de.addInterfaceElement();
         ie.setName(new NCName("foo"));
         String namespace = ie.getName().getNamespaceURI();
         assertTrue("namespace value should be \"\" but is " + namespace, 
namespace.equals(""));



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to