hi Andreas, Do you know the address to subscribe for new axis2 commits?
thanks, Amila. On Fri, Apr 23, 2010 at 1:04 PM, Andreas Veithen <[email protected]>wrote: > This change causes a build failure (large amount of test failures in > jaxws-integration): > > http://hudson.zones.apache.org/hudson/job/Axis2/117/ > > Can you please fix this? > > Andreas > > On Thu, Apr 22, 2010 at 23:24, <[email protected]> wrote: > > Author: barrettj > > Date: Thu Apr 22 21:24:25 2010 > > New Revision: 937071 > > > > URL: http://svn.apache.org/viewvc?rev=937071&view=rev > > Log: > > Add support for JAXWS 2.2 Addressing.responses annotation attribute. Add > associated TDD tests. Modify pom.xml to pickup annotations from JAXWS 2.2 > jar instead of the JAXWS 2.1 classes in the JDK. > > > > Modified: > > axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml > > axis/axis2/java/core/trunk/modules/metadata/pom.xml > > > > axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java > > > > axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/feature/AddressingFeatureTests.java > > > > Modified: axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml > > URL: > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml?rev=937071&r1=937070&r2=937071&view=diff > > > ============================================================================== > > --- axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml > (original) > > +++ axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml Thu Apr > 22 21:24:25 2010 > > @@ -34,6 +34,10 @@ > > <dependencies> > > <dependency> > > <groupId>org.apache.geronimo.specs</groupId> > > + <artifactId>geronimo-jaxws_2.2_spec</artifactId> > > + </dependency> > > + <dependency> > > + <groupId>org.apache.geronimo.specs</groupId> > > <artifactId>geronimo-annotation_1.0_spec</artifactId> > > </dependency> > > <dependency> > > @@ -114,6 +118,28 @@ > > </testResources> > > <plugins> > > <plugin> > > + <artifactId>maven-dependency-plugin</artifactId> > > + <executions> > > + <execution> > > + <phase>generate-sources</phase> > > + <goals> > > + <goal>copy</goal> > > + </goals> > > + <configuration> > > + <artifactItems> > > + <artifactItem> > > + > <groupId>org.apache.geronimo.specs</groupId> > > + > <artifactId>geronimo-jaxws_2.2_spec</artifactId> > > + <type>jar</type> > > + <overWrite>true</overWrite> > > + > <outputDirectory>target/endorsed</outputDirectory> > > + </artifactItem> > > + </artifactItems> > > + </configuration> > > + </execution> > > + </executions> > > + </plugin> > > + <plugin> > > <artifactId>maven-compiler-plugin</artifactId> > > <inherited>true</inherited> > > <configuration> > > @@ -1360,7 +1386,7 @@ > > <inherited>true</inherited> > > <configuration> > > <forkMode>pertest</forkMode> > > - <argLine>-Xms256m -Xmx512m</argLine> > > + <argLine>-Xms256m -Xmx512m > -Xbootclasspath/p:${basedir}/target/endorsed/geronimo-jaxws_2.2_spec-1.0-SNAPSHOT.jar</argLine> > > <!-- Enable the next 2 lines if you want to attach a > debugger > > <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE > -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>--> > > <includes> > > > > Modified: axis/axis2/java/core/trunk/modules/metadata/pom.xml > > URL: > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/pom.xml?rev=937071&r1=937070&r2=937071&view=diff > > > ============================================================================== > > --- axis/axis2/java/core/trunk/modules/metadata/pom.xml (original) > > +++ axis/axis2/java/core/trunk/modules/metadata/pom.xml Thu Apr 22 > 21:24:25 2010 > > @@ -143,15 +143,15 @@ > > <goal>copy</goal> > > </goals> > > <configuration> > > - <artifactItems> > > - <artifactItem> > > - > <groupId>org.apache.geronimo.specs</groupId> > > - > <artifactId>geronimo-jaxws_2.2_spec</artifactId> > > - <type>jar</type> > > - <overWrite>true</overWrite> > > - > <outputDirectory>target/endorsed</outputDirectory> > > - </artifactItem> > > - </artifactItems> > > + <artifactItems> > > + <artifactItem> > > + > <groupId>org.apache.geronimo.specs</groupId> > > + > <artifactId>geronimo-jaxws_2.2_spec</artifactId> > > + <type>jar</type> > > + <overWrite>true</overWrite> > > + > <outputDirectory>target/endorsed</outputDirectory> > > + </artifactItem> > > + </artifactItems> > > </configuration> > > </execution> > > </executions> > > @@ -257,6 +257,9 @@ > > <artifactId>maven-surefire-plugin</artifactId> > > <inherited>true</inherited> > > <configuration> > > + <argLine> > > + > > -Xbootclasspath/p:${basedir}/target/endorsed/geronimo-jaxws_2.2_spec-1.0-SNAPSHOT.jar > > + </argLine> > > <includes> > > <include>**/*Tests.java</include> > > </includes> > > > > Modified: > axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java > > URL: > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java?rev=937071&r1=937070&r2=937071&view=diff > > > ============================================================================== > > --- > axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java > (original) > > +++ > axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java > Thu Apr 22 21:24:25 2010 > > @@ -38,6 +38,7 @@ import org.apache.axis2.util.Utils; > > > > import javax.xml.ws.soap.Addressing; > > import javax.xml.ws.soap.AddressingFeature; > > +import javax.xml.ws.soap.AddressingFeature.Responses; > > > > /** > > * This class will enable/disable WS-Addressing for a JAX-WS 2.1 web > service > > @@ -62,6 +63,7 @@ public class AddressingConfigurator impl > > Parameter namespace = new > Parameter(AddressingConstants.WS_ADDRESSING_VERSION, null); > > Parameter disabled = new > Parameter(AddressingConstants.DISABLE_ADDRESSING_FOR_IN_MESSAGES, "false"); > > Parameter required = new > Parameter(AddressingConstants.ADDRESSING_REQUIREMENT_PARAMETER, > AddressingConstants.ADDRESSING_UNSPECIFIED); > > + Parameter responses = null; > > > > if (addressing != null && submissionAddressing != null) { > > //Both annotations must have been specified. > > @@ -127,11 +129,21 @@ public class AddressingConfigurator impl > > Messages.getMessage("NoWSAddressingFeatures")); > > } > > > > + // If the Addressing annotation was used, then get the responses > value from it and map it to the > > + // value the addressing handler expects > > + if (addressing != null) { > > + responses = new > Parameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME, > > + > mapResponseAttributeToAddressing(addressing.responses())); > > + } > > + > > try { > > AxisService service = endpointDescription.getAxisService(); > > service.addParameter(namespace); > > service.addParameter(disabled); > > service.addParameter(required); > > + if (responses != null) { > > + service.addParameter(responses); > > + } > > > > String value = Utils.getParameterValue(disabled); > > if (JavaUtils.isFalseExplicitly(value)) { > > @@ -147,6 +159,29 @@ public class AddressingConfigurator impl > > } > > } > > > > + /** > > + * Given a value for the Addressing.responses annotation attribute, > map it to the corresponding > > + * Addressing constant to be set on the AxisSservice > > + * > > + * @param responses Enum value from the Addressing.responses > annotation attribute > > + * @return String from AddressingContstants corresponding to the > responses value. > > + */ > > + static private String mapResponseAttributeToAddressing(Responses > responses) { > > + String addressingType = null; > > + switch (responses) { > > + case ALL: > > + addressingType = > AddressingConstants.WSAM_INVOCATION_PATTERN_BOTH; > > + break; > > + case ANONYMOUS: > > + addressingType = > AddressingConstants.WSAM_INVOCATION_PATTERN_SYNCHRONOUS; > > + break; > > + case NON_ANONYMOUS: > > + addressingType = > AddressingConstants.WSAM_INVOCATION_PATTERN_ASYNCHRONOUS; > > + break; > > + } > > + return addressingType; > > + } > > + > > /* > > * (non-Javadoc) > > * @see > org.apache.axis2.jaxws.feature.ServerConfigurator#supports(java.lang.String) > > > > Modified: > axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/feature/AddressingFeatureTests.java > > URL: > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/feature/AddressingFeatureTests.java?rev=937071&r1=937070&r2=937071&view=diff > > > ============================================================================== > > --- > axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/feature/AddressingFeatureTests.java > (original) > > +++ > axis/axis2/java/core/trunk/modules/metadata/test/org/apache/axis2/jaxws/description/feature/AddressingFeatureTests.java > Thu Apr 22 21:24:25 2010 > > @@ -21,6 +21,7 @@ package org.apache.axis2.jaxws.descripti > > > > import junit.framework.TestCase; > > import org.apache.axis2.addressing.AddressingConstants; > > +import org.apache.axis2.jaxws.addressing.SubmissionAddressing; > > import org.apache.axis2.description.AxisService; > > import org.apache.axis2.description.Parameter; > > import org.apache.axis2.jaxws.description.DescriptionFactory; > > @@ -31,6 +32,7 @@ import org.apache.axis2.util.Utils; > > import javax.jws.WebService; > > import javax.xml.namespace.QName; > > import javax.xml.ws.soap.Addressing; > > +import javax.xml.ws.soap.AddressingFeature.Responses; > > > > public class AddressingFeatureTests extends TestCase { > > > > @@ -40,6 +42,10 @@ public class AddressingFeatureTests exte > > private static final String plainServicePortName = > "PlainServicePort"; > > private static final String disabledServicePortName = > "DisabledServicePort"; > > private static final String requiredServicePortName = > "RequiredServicePort"; > > + private static final String responsesALLServicePortName = > "ResponsesALLServicePort"; > > + private static final String responsesANONServicePortName = > "ResponsesANONServicePort"; > > + private static final String responsesNONANONServicePortName = > "ResponsesNONANONServicePort"; > > + private static final String responsesNoAddressingServicePortName = > "ResponsesNoAddressingServicePort"; > > > > public void testNoAnnotation() { > > ServiceDescription sd = > DescriptionFactory.createServiceDescription(DefaultService.class); > > @@ -113,6 +119,84 @@ public class AddressingFeatureTests exte > > assertEquals(AddressingConstants.ADDRESSING_REQUIRED, required); > > } > > > > + /** > > + * Validate that annotation value Addressing.responses=ALL is set > correctly on the AxisService > > + */ > > + public void testResponsesALL() { > > + ServiceDescription sd = > DescriptionFactory.createServiceDescription(ResponsesALLService.class); > > + EndpointDescription ed = sd.getEndpointDescription(new QName(ns, > responsesALLServicePortName)); > > + assertNotNull(ed); > > + > > + AxisService axisService = ed.getAxisService(); > > + Parameter responsesParam = > axisService.getParameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME); > > + assertNotNull("Responses parameter not set", responsesParam); > > + > > + String responsesType = Utils.getParameterValue(responsesParam); > > + assertEquals("Wrong type of responses returned", > AddressingConstants.WSAM_INVOCATION_PATTERN_BOTH, responsesType); > > + } > > + > > + /** > > + * Validate that annotation value Addressing.responses=ANONYMOUS is > set correctly on the AxisService > > + */ > > + public void testResponsesANON() { > > + ServiceDescription sd = > DescriptionFactory.createServiceDescription(ResponsesANONService.class); > > + EndpointDescription ed = sd.getEndpointDescription(new QName(ns, > responsesANONServicePortName)); > > + assertNotNull(ed); > > + > > + AxisService axisService = ed.getAxisService(); > > + Parameter responsesParam = > axisService.getParameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME); > > + assertNotNull("Responses parameter not set", responsesParam); > > + > > + String responsesType = Utils.getParameterValue(responsesParam); > > + assertEquals("Wrong type of responses returned", > AddressingConstants.WSAM_INVOCATION_PATTERN_SYNCHRONOUS, responsesType); > > + } > > + > > + /** > > + * Validate that annotation value Addressing.responses=NON_ANONYMOUS > is set correctly on the AxisService > > + */ > > + public void testResponsesNONANON() { > > + ServiceDescription sd = > DescriptionFactory.createServiceDescription(ResponsesNONANONService.class); > > + EndpointDescription ed = sd.getEndpointDescription(new QName(ns, > responsesNONANONServicePortName)); > > + assertNotNull(ed); > > + > > + AxisService axisService = ed.getAxisService(); > > + Parameter responsesParam = > axisService.getParameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME); > > + assertNotNull("Responses parameter not set", responsesParam); > > + > > + String responsesType = Utils.getParameterValue(responsesParam); > > + assertEquals("Wrong type of responses returned", > AddressingConstants.WSAM_INVOCATION_PATTERN_ASYNCHRONOUS, responsesType); > > + } > > + > > + /** > > + * Validate that no annotation for Addressing does not set the > associated addressing parameter on the AxisService > > + */ > > + public void testResponsesNoAddressing() { > > + ServiceDescription sd = > DescriptionFactory.createServiceDescription(ResponsesNoAddressingService.class); > > + EndpointDescription ed = sd.getEndpointDescription(new QName(ns, > responsesNoAddressingServicePortName)); > > + assertNotNull(ed); > > + > > + AxisService axisService = ed.getAxisService(); > > + Parameter responsesParam = > axisService.getParameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME); > > + assertNull("Responses parameter was set", responsesParam); > > + > > + } > > + > > + /** > > + * Validate that annotation Addressing with no responses attribute > explicitly set gets the correct default on the AxisService > > + */ > > + public void testResponsesDefault() { > > + ServiceDescription sd = > DescriptionFactory.createServiceDescription(PlainService.class); > > + EndpointDescription ed = sd.getEndpointDescription(new QName(ns, > plainServicePortName)); > > + assertNotNull(ed); > > + > > + AxisService axisService = ed.getAxisService(); > > + Parameter responsesParam = > axisService.getParameter(AddressingConstants.WSAM_INVOCATION_PATTERN_PARAMETER_NAME); > > + assertNotNull("Responses parameter not set", responsesParam); > > + > > + String responsesType = Utils.getParameterValue(responsesParam); > > + assertEquals("Wrong type of responses returned", > AddressingConstants.WSAM_INVOCATION_PATTERN_BOTH, responsesType); > > + } > > + > > @WebService(targetNamespace=ns, portName=defaultServicePortName) > > class DefaultService { > > public double getQuote(String symbol) { > > @@ -143,4 +227,36 @@ public class AddressingFeatureTests exte > > return 101.01; > > } > > } > > + > > + @WebService(targetNamespace=ns, > portName=responsesALLServicePortName) > > + @Addressing(required=true, responses=Responses.ALL) > > + class ResponsesALLService { > > + public double getQuote(String symbol) { > > + return 101.01; > > + } > > + } > > + > > + @WebService(targetNamespace=ns, > portName=responsesANONServicePortName) > > + @Addressing(required=true, responses=Responses.ANONYMOUS) > > + class ResponsesANONService { > > + public double getQuote(String symbol) { > > + return 101.01; > > + } > > + } > > + > > + @WebService(targetNamespace=ns, > portName=responsesNONANONServicePortName) > > + @Addressing(required=true, responses=Responses.NON_ANONYMOUS) > > + class ResponsesNONANONService { > > + public double getQuote(String symbol) { > > + return 101.01; > > + } > > + } > > + > > + @WebService(targetNamespace=ns, > portName=responsesNoAddressingServicePortName) > > + @SubmissionAddressing(required=true) > > + class ResponsesNoAddressingService { > > + public double getQuote(String symbol) { > > + return 101.01; > > + } > > + } > > } > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Amila Suriarachchi WSO2 Inc. blog: http://amilachinthaka.blogspot.com/
