You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2016/07/09 19:06:56 UTC

svn commit: r1752039 - in /axis/axis2/java/core/trunk/modules: adb-codegen/src/org/apache/axis2/schema/ adb-codegen/test/org/apache/axis2/schema/extension/ adb-tests/ adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ adb-tests/src/test/j...

Author: veithen
Date: Sat Jul  9 19:06:55 2016
New Revision: 1752039

URL: http://svn.apache.org/viewvc?rev=1752039&view=rev
Log:
AXIS2-5799: Fix attribute handling in ADB.

Added:
    axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/
    axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java   (with props)
    axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/
    axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java   (with props)
    axis/axis2/java/core/trunk/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl
Modified:
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    axis/axis2/java/core/trunk/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java
    axis/axis2/java/core/trunk/modules/adb-tests/pom.xml

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?rev=1752039&r1=1752038&r2=1752039&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Sat Jul  9 19:06:55 2016
@@ -1833,17 +1833,17 @@ public class SchemaCompiler {
 
         QName schemaTypeName = att.getSchemaTypeName();
         if (schemaTypeName != null) {
-            if (att.getQName() != null) {
+            if (att.getWireName() != null) {
                 if (baseSchemaTypeMap.containsKey(schemaTypeName)) {
 
-                    metainf.registerMapping(att.getQName(), schemaTypeName,
+                    metainf.registerMapping(att.getWireName(), schemaTypeName,
                                             baseSchemaTypeMap.get(schemaTypeName).toString(),
                                             SchemaConstants.ATTRIBUTE_TYPE);
 
                     // add optional attribute status if set
                     String use = att.getUse().toString();
                     if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                        metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                        metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                     }
 
                     String className = findClassName(schemaTypeName, false);
@@ -1853,11 +1853,11 @@ public class SchemaCompiler {
                             className);
                     // set the default value
                     if (att.getDefaultValue() != null) {
-                        metainf.registerDefaultValue(att.getQName(), att.getDefaultValue());
+                        metainf.registerDefaultValue(att.getWireName(), att.getDefaultValue());
                     }
                     if (att.getFixedValue() != null) {
-                        metainf.registerDefaultValue(att.getQName(), att.getFixedValue());
-                        metainf.registerFixedQName(att.getQName());
+                        metainf.registerDefaultValue(att.getWireName(), att.getFixedValue());
+                        metainf.registerFixedQName(att.getWireName());
                     }
                     // after
                 } else {
@@ -1878,14 +1878,14 @@ public class SchemaCompiler {
                                     //process simple type
                                     processSimpleSchemaType(simpleType, null, resolvedSchema, null);
                                 }
-                                metainf.registerMapping(att.getQName(),
+                                metainf.registerMapping(att.getWireName(),
                                                         schemaTypeName,
                                                         processedTypemap.get(schemaTypeName).toString(),
                                                         SchemaConstants.ATTRIBUTE_TYPE);
                                 // add optional attribute status if set
                                 String use = att.getUse().toString();
                                 if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                                    metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                                    metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                                 }
                             }
 
@@ -1920,7 +1920,7 @@ public class SchemaCompiler {
         } else {
             // this attribute refers to a custom type, probably one of the extended simple types.
             // with the inline schema definition
-            QName attributeQName = att.getQName();
+            QName attributeQName = att.getWireName();
             if (attributeQName != null) {
                 XmlSchemaSimpleType attributeSimpleType = att.getSchemaType();
                 XmlSchema resolvedSchema = parentSchema;
@@ -1960,14 +1960,14 @@ public class SchemaCompiler {
                         processSimpleSchemaType(attributeSimpleType, null, resolvedSchema,
                                                 schemaTypeQName);
                     }
-                    metainf.registerMapping(att.getQName(),
+                    metainf.registerMapping(att.getWireName(),
                                             schemaTypeQName,
                                             processedTypemap.get(schemaTypeQName).toString(),
                                             SchemaConstants.ATTRIBUTE_TYPE);
                     // add optional attribute status if set
                     String use = att.getUse().toString();
                     if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                        metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                        metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                     }
                 } else {
                     // TODO: handle the case when no attribute type specifed

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java?rev=1752039&r1=1752038&r2=1752039&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java Sat Jul  9 19:06:55 2016
@@ -58,8 +58,7 @@ public class SimpleExtensionTest extends
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "SimpleAmmountElement"));
-        element.addAttribute("currency", "SLR",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("currency", "SLR", null);
         element.setText("1000");
         SimpleAmmountElement ammountElement = SimpleAmmountElement.Factory.parse(element
                 .getXMLStreamReader());
@@ -82,8 +81,7 @@ public class SimpleExtensionTest extends
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "PaymentAmountElement"));
-        element.addAttribute("currency", "SLR",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("currency", "SLR", null);
         element.setText("2000");
         PaymentAmountElement ammountElement = PaymentAmountElement.Factory.parse(element
                 .getXMLStreamReader());
@@ -156,8 +154,7 @@ public class SimpleExtensionTest extends
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "ReproStringTypeElement"));
-        element.addAttribute("lang", "EN",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("lang", "EN", null);
         element.setText("Value");
        
         ReproStringTypeElement reproStringTypeElement = ReproStringTypeElement.Factory.parse(element

Modified: axis/axis2/java/core/trunk/modules/adb-tests/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests/pom.xml?rev=1752039&r1=1752038&r2=1752039&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-tests/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/adb-tests/pom.xml Sat Jul  9 19:06:55 2016
@@ -159,6 +159,25 @@
                             <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5758</outputDirectory>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5799</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5799.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceURIs>
+                                <namespaceURI>
+                                    <uri>urn:echo</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5799.client</packageName>
+                                </namespaceURI>
+                            </namespaceURIs>
+                            <packageName>org.apache.axis2.databinding.axis2_5799.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5799</outputDirectory>
+                        </configuration>
+                    </execution>
                 </executions>
                 <configuration>
                     <databindingName>adb</databindingName>
@@ -261,6 +280,18 @@
                             <packageName>org.apache.axis2.databinding.axis2_5758.service</packageName>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>wsimport-axis2-5799</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5799.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5799.service</packageName>
+                        </configuration>
+                    </execution>
                 </executions>
                 <dependencies>
                     <dependency>

Added: axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java?rev=1752039&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java (added)
+++ axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java Sat Jul  9 19:06:55 2016
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5799;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.axiom.testutils.PortAllocator;
+import org.apache.axis2.databinding.axis2_5799.client.ComplexTypeWithAttribute;
+import org.apache.axis2.databinding.axis2_5799.client.EchoServiceStub;
+import org.apache.axis2.databinding.axis2_5799.service.EchoImpl;
+import org.junit.Test;
+
+public class ServiceTest {
+    @Test
+    public void test() throws Exception {
+        int port = PortAllocator.allocatePort();
+        String address = "http://localhost:" + port + "/service";
+        Endpoint endpoint = Endpoint.publish(address, new EchoImpl());
+        try {
+            EchoServiceStub stub = new EchoServiceStub(address);
+            ComplexTypeWithAttribute request = new ComplexTypeWithAttribute();
+            request.setAttr("value");
+            assertThat(stub.echo(request).getAttr()).isEqualTo("value");
+        } finally {
+            endpoint.stop();
+        }
+    }
+}

Propchange: axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java?rev=1752039&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java (added)
+++ axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java Sat Jul  9 19:06:55 2016
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5799.service;
+
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+
+@WebService(endpointInterface="org.apache.axis2.databinding.axis2_5799.service.EchoPortType")
+public class EchoImpl implements EchoPortType {
+    @Override
+    public void echo(Holder<ComplexTypeWithAttribute> body) {
+    }
+}

Propchange: axis/axis2/java/core/trunk/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: axis/axis2/java/core/trunk/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl?rev=1752039&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl (added)
+++ axis/axis2/java/core/trunk/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl Sat Jul  9 19:06:55 2016
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<definitions name="Echo"
+          targetNamespace="urn:echo"
+          xmlns:tns="urn:echo"
+          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+          xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+    <types>
+        <schema targetNamespace="urn:echo" xmlns="http://www.w3.org/2001/XMLSchema">
+            <element name="ComplexTypeWithAttribute">
+                <complexType>
+                    <attribute name="attr" type="string" use="required"/>
+                </complexType>
+            </element>
+        </schema>
+    </types>
+
+    <message name="Echo">
+        <part name="body" element="tns:ComplexTypeWithAttribute"/>
+    </message>
+
+    <portType name="EchoPortType">
+        <operation name="Echo">
+           <input message="tns:Echo"/>
+           <output message="tns:Echo"/>
+        </operation>
+    </portType>
+
+    <binding name="EchoSoapBinding" type="tns:EchoPortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <operation name="Echo">
+           <soap:operation soapAction="urn:echo:Echo"/>
+           <input>
+               <soap:body use="literal"/>
+           </input>
+           <output>
+               <soap:body use="literal"/>
+           </output>
+        </operation>
+    </binding>
+
+    <service name="EchoService">
+        <port name="EchoPort" binding="tns:EchoSoapBinding">
+           <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+        </port>
+    </service>
+</definitions>