You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by pr...@apache.org on 2008/02/25 11:55:06 UTC

svn commit: r630804 - in /webservices/axis2/trunk/java/modules: jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java

Author: pradine
Date: Mon Feb 25 02:55:03 2008
New Revision: 630804

URL: http://svn.apache.org/viewvc?rev=630804&view=rev
Log:
Improvements to WS-Addressing configurators.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java
    webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java?rev=630804&r1=630803&r2=630804&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/config/AddressingConfigurator.java Mon Feb 25 02:55:03 2008
@@ -36,13 +36,18 @@
 import org.apache.axis2.jaxws.spi.BindingProvider;
 
 /**
- *
+ * This class will enable/disable WS-Addressing in a JAX-WS 2.1 client,
+ * based on the configuration passed to it via an <code>AddressingFeature</code>
+ * and/or a <code>SubmissionAddressingFeature</code>.
+ *  
+ *  @see javax.xml.ws.soap.AddressingFeature
+ *  @see org.apache.axis2.jaxws.addressing.SubmissionAddressingFeature
  */
 public class AddressingConfigurator implements ClientConfigurator {
 
     /*
      *  (non-Javadoc)
-     * @see org.apache.axis2.jaxws.feature.WebServiceFeatureConfigurator#configure(org.apache.axis2.jaxws.core.MessageContext, org.apache.axis2.jaxws.spi.BindingProvider)
+     * @see org.apache.axis2.jaxws.feature.ClientConfigurator#configure(org.apache.axis2.jaxws.core.MessageContext, org.apache.axis2.jaxws.spi.BindingProvider)
      */
     public void configure(MessageContext messageContext, BindingProvider provider) {
         Binding bnd = (Binding) provider.getBinding();
@@ -50,8 +55,7 @@
             (AddressingFeature) bnd.getFeature(AddressingFeature.ID);
         SubmissionAddressingFeature submissionAddressingFeature =
             (SubmissionAddressingFeature) bnd.getFeature(SubmissionAddressingFeature.ID);
-        String addressingNamespace =
-            (String) messageContext.getProperty(AddressingConstants.WS_ADDRESSING_VERSION);
+        String addressingNamespace = bnd.getAddressingNamespace();
         Boolean disableAddressing =
             (Boolean) messageContext.getProperty(AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES);
         
@@ -65,16 +69,24 @@
                 //Use the addressing namespace of the EPR specified
                 //via the JAX-WS 2.1 API. If no EPR was specified
                 //then the 2005/08 namespace will be used.
-                addressingNamespace = bnd.getAddressingNamespace();
+                if (addressingNamespace == null)
+                    addressingNamespace = Final.WSA_NAMESPACE;
+                
                 disableAddressing = Boolean.FALSE;
             }
             else if (w3cAddressingEnabled) {
                 //Enable only 2005/08 addressing
+                if (Submission.WSA_NAMESPACE.equals(addressingNamespace))
+                    throw ExceptionFactory.makeWebServiceException("The feature does not match the specified endpoint reference.");
+                
                 addressingNamespace = Final.WSA_NAMESPACE;
                 disableAddressing = Boolean.FALSE;
             }
             else if (submissionAddressingEnabled) {
                 //Enable only 2004/08 addressing
+                if (Final.WSA_NAMESPACE.equals(addressingNamespace))
+                    throw ExceptionFactory.makeWebServiceException("The feature does not match the specified endpoint reference.");
+                
                 addressingNamespace = Submission.WSA_NAMESPACE;
                 disableAddressing = Boolean.FALSE;
             }
@@ -89,6 +101,9 @@
 
             if (w3cAddressingEnabled) {
                 //Enable 2005/08 addressing
+                if (Submission.WSA_NAMESPACE.equals(addressingNamespace))
+                    throw ExceptionFactory.makeWebServiceException("The feature does not match the specified endpoint reference.");
+                
                 addressingNamespace = Final.WSA_NAMESPACE;
                 disableAddressing = Boolean.FALSE;
             }
@@ -103,6 +118,9 @@
             
             if (submissionAddressingEnabled) {
                 //Enable 2004/08 addressing
+                if (Final.WSA_NAMESPACE.equals(addressingNamespace))
+                    throw ExceptionFactory.makeWebServiceException("The feature does not match the specified endpoint reference.");
+                
                 addressingNamespace = Submission.WSA_NAMESPACE;
                 disableAddressing = Boolean.FALSE;
             }
@@ -119,11 +137,9 @@
         if (!disableAddressing) {
             try {
                 EndpointReference epr = bnd.getAxis2EndpointReference();
-                if (epr != null) {
-                    org.apache.axis2.context.MessageContext axis2MessageContext =
-                        messageContext.getAxisMessageContext();
-                    axis2MessageContext.setTo(epr);
-                }
+                org.apache.axis2.context.MessageContext axis2MessageContext =
+                    messageContext.getAxisMessageContext();
+                axis2MessageContext.setTo(epr);
                 
                 ServiceDescription sd = messageContext.getEndpointDescription().getServiceDescription();
                 AxisConfiguration axisConfig = sd.getAxisConfigContext().getAxisConfiguration();

Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java?rev=630804&r1=630803&r2=630804&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/server/config/AddressingConfigurator.java Mon Feb 25 02:55:03 2008
@@ -37,13 +37,19 @@
 import org.apache.axis2.jaxws.registry.ServerConfiguratorRegistry;
 
 /**
- *
+ * This class will enable/disable WS-Addressing for a JAX-WS 2.1 web service
+ * endpoint, based on the configuration passed to it via an <code>Addressing</code>
+ * annotation and/or a <code>SubmissionAddressing</code> annotation from the
+ * endpoint implementation bean.
+ * 
+ * @see javax.xml.ws.soap.Addressing
+ * @see org.apache.axis2.jaxws.addressing.SubmissionAddressing
  */
 public class AddressingConfigurator implements ServerConfigurator {
 
     /*
      *  (non-Javadoc)
-     * @see org.apache.axis2.jaxws.feature.WebServiceFeatureConfigurator#configure(org.apache.axis2.jaxws.description.EndpointDescription)
+     * @see org.apache.axis2.jaxws.feature.ServerConfigurator#configure(org.apache.axis2.jaxws.description.EndpointDescription)
      */
     public void configure(EndpointDescription endpointDescription) {
     	Addressing addressing =



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org