[email protected] Andreas
On Fri, Apr 23, 2010 at 11:09, Amila Suriarachchi <[email protected]> wrote: > 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/ > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
