[jbossws-commits] JBossWS SVN: r3562 - in trunk/jbossws-core: src/main/java/org/jboss/ws/core/jaxws/client and 7 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Wed Jun 13 08:50:01 EDT 2007


Author: heiko.braun at jboss.com
Date: 2007-06-13 08:50:00 -0400 (Wed, 13 Jun 2007)
New Revision: 3562

Added:
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingHandlerEnableMU.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/CustomAddressingHandler.java
Removed:
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientDocHandler.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientRpcHandler.java
   trunk/jbossws-core/src/test/resources/jaxws/wsaddressing/action/META-INF/
Modified:
   trunk/jbossws-core/ant-import-tests/build-jars-jaxws.xml
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingClientHandler.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingServerHandler.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingClientHandler.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingServerHandler.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/soap/SOAPAddressingPropertiesImpl.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/SOAPAddressingPropertiesTestCase.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionEndpoint.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionRpcEndpointImpl.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingActionTestCase.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/replyto/AddressingReplyToTestCase.java
Log:
Fix JBWS-1263

Modified: trunk/jbossws-core/ant-import-tests/build-jars-jaxws.xml
===================================================================
--- trunk/jbossws-core/ant-import-tests/build-jars-jaxws.xml	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/ant-import-tests/build-jars-jaxws.xml	2007-06-13 12:50:00 UTC (rev 3562)
@@ -356,19 +356,7 @@
 			<webinf dir="${tests.output.dir}/resources/jaxws/wsaddressing/action/META-INF">
 				<include name="wsdl/**"/>
 			</webinf>
-		</war>
-		<jar destfile="${tests.output.dir}/libs/jaxws-wsaddressing-action-rpc-client.jar">
-			<fileset dir="${tests.output.dir}/classes">
-				<include name="org/jboss/test/ws/jaxws/wsaddressing/action/ActionEndpoint.class"/>
-			</fileset>
-			<metainf dir="${tests.output.dir}/resources/jaxws/wsaddressing/action/META-INF">
-				<include name="application-client.xml"/>
-				<include name="jboss-client.xml"/>
-				<include name="jbossws-client-config.xml"/>
-				<include name="jaxrpc-mapping.xml"/>
-				<include name="wsdl/**"/>
-			</metainf>
-		</jar>
+		</war>	
 
 		<!-- jaxws-wsaddressing-replyto -->
 		<war warfile="${tests.output.dir}/libs/jaxws-wsaddressing-initial.war" webxml="${tests.output.dir}/resources/jaxws/wsaddressing/replyto/Initial-WEB-INF/web.xml">

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -379,20 +379,35 @@
 
    public Set<QName> getHeaders()
    {
-      if (handlerResolver instanceof HandlerResolverImpl)
-         return ((HandlerResolverImpl)handlerResolver).getHeaders();
+		Set<QName> headers = new HashSet<QName>();
 
-      Set<QName> headers = new HashSet<QName>();
-      PortInfo portInfo = getPortInfo(epMetaData);
-      List<Handler> handlerChain = handlerResolver.getHandlerChain(portInfo);
-      if (handlerChain != null)
-      {
-         for (Handler handler : handlerChain)
-            if (handler instanceof SOAPHandler)
-               headers.addAll(((SOAPHandler)handler).getHeaders());
-      }
+		if (handlerResolver instanceof HandlerResolverImpl)
+		{
+			// From resolver
+			Set resolverHeaders = ((HandlerResolverImpl)handlerResolver).getHeaders();
+			headers.addAll(resolverHeaders);			
+		}
+		else
+		{
+			PortInfo portInfo = getPortInfo(epMetaData);
+			List<Handler> handlerChain = handlerResolver.getHandlerChain(portInfo);
+			if (handlerChain != null)
+			{
+				for (Handler handler : handlerChain)
+					if (handler instanceof SOAPHandler)
+						headers.addAll(((SOAPHandler)handler).getHeaders());
+			}
+		}
 
-      return headers;
+		// Add the binding headers as well
+		// I.e. client calls Binding.setHandlerCain(...)
+		for(Handler bindingHandler : getBinding().getHandlerChain())
+		{
+			if(bindingHandler instanceof SOAPHandler)
+				headers.addAll( ((SOAPHandler)bindingHandler).getHeaders());
+		}
+		
+		return headers;
    }
 
    @Override

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingClientHandler.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingClientHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingClientHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -36,7 +36,11 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl;
+import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
 
+import java.util.Set;
+import java.util.HashSet;
+
 /**
  * A client side handler that reads/writes the addressing properties
  * and puts then into the message context.
@@ -49,27 +53,27 @@
    // Provide logging
    private static Logger log = Logger.getLogger(WSAddressingClientHandler.class);
 
-   // addressing builder & constants
-   private AddressingBuilder addrBuilder;
+   private static AddressingBuilder ADDR_BUILDER;
+   private static AddressingConstantsImpl ADDR_CONSTANTS;
+	private static QName[] HEADERS = new QName[2];
 
-   // should the request be normalized according to the specifications
-   private boolean normalize;
-
-   public WSAddressingClientHandler()
+	static
    {
-      addrBuilder = AddressingBuilder.getAddressingBuilder();
-   }
+      ADDR_CONSTANTS = new AddressingConstantsImpl();
+      ADDR_BUILDER = AddressingBuilder.getAddressingBuilder();
 
-   public QName[] getHeaders()
+		HEADERS[0] = ADDR_CONSTANTS.getActionQName();
+		HEADERS[1] = ADDR_CONSTANTS.getToQName();
+	}
+	
+	public QName[] getHeaders()
    {
-      return new QName[] {};
+      return HEADERS;
    }
 
    public void init(HandlerInfo handlerInfo)
    {
-      super.init(handlerInfo);
-      normalize = "true".equals(handlerInfo.getHandlerConfig().get("normalize"));
-
+      super.init(handlerInfo);     
    }
 
    public boolean handleRequest(MessageContext msgContext)
@@ -79,32 +83,20 @@
       SOAPAddressingProperties addrProps = (SOAPAddressingProperties)msgContext.getProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
 
       if (addrProps != null)
-      {
-         if (normalize)
-            normalizeRequest(msgContext, addrProps);
-
+      {       
          SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
          addrProps.writeHeaders(soapMessage);
       }
       else
       {
          // supply default addressing properties
-         addrProps = (SOAPAddressingPropertiesImpl)addrBuilder.newAddressingProperties();
+         addrProps = (SOAPAddressingPropertiesImpl)ADDR_BUILDER.newAddressingProperties();
          msgContext.setProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addrProps);
-
-         if (normalize)
-            normalizeRequest(msgContext, addrProps);
       }
 
       return true;
    }
 
-   /* supply the default addressing properties in case elements are missing */
-   private void normalizeRequest(MessageContext msgContext, SOAPAddressingProperties addrProps)
-   {
-      // TODO: supply default header
-   }
-
    public boolean handleResponse(MessageContext msgContext)
    {
       if(log.isDebugEnabled()) log.debug("handleResponse");

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingServerHandler.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingServerHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxrpc/WSAddressingServerHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -22,6 +22,8 @@
 package org.jboss.ws.extensions.addressing.jaxrpc;
 
 import java.net.URISyntaxException;
+import java.util.Set;
+import java.util.HashSet;
 
 import javax.xml.namespace.QName;
 import javax.xml.rpc.handler.GenericHandler;
@@ -52,27 +54,27 @@
    // Provide logging
    private static Logger log = Logger.getLogger(WSAddressingServerHandler.class);
 
-   // should the request be validated?
-   private boolean validate = true;
-
    private static AddressingBuilder ADDR_BUILDER;
    private static AddressingConstantsImpl ADDR_CONSTANTS;
-   static
+	private static QName[] HEADERS = new QName[2];
+	
+	static
    {
       ADDR_CONSTANTS = new AddressingConstantsImpl();
       ADDR_BUILDER = AddressingBuilder.getAddressingBuilder();
-   }
 
+		HEADERS[0] = ADDR_CONSTANTS.getActionQName();
+		HEADERS[1] = ADDR_CONSTANTS.getToQName();
+	}
+
    public QName[] getHeaders()
    {
-      return new QName[] {};
+      return HEADERS;
    }
 
    public void init(HandlerInfo handlerInfo)
    {
-      super.init(handlerInfo);
-      String strValidate = (String)handlerInfo.getHandlerConfig().get("validate");
-      validate = "true".equals(strValidate);
+      super.init(handlerInfo);           
    }
 
    /**
@@ -87,10 +89,6 @@
       SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
       addrProps.readHeaders(soapMessage);
       msgContext.setProperty(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND, addrProps);
-
-      if (validate)
-         validateRequest(addrProps);
-
       return true;
    }
 
@@ -166,14 +164,4 @@
 
       outProps.writeHeaders(soapMessage);
    }
-
-   /* check wsa formal constraints */
-   private void validateRequest(SOAPAddressingProperties addrProps)
-   {
-
-      // If wsa:ReplyTo is supplied and the message lacks a [message id] property, the processor MUST fault.
-      if (addrProps.getReplyTo() != null && addrProps.getMessageID() == null)
-         throw new IllegalArgumentException("wsa:MessageId is required when wsa:ReplyTo is supplied");
-
-   }
 }

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingClientHandler.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingClientHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingClientHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -21,6 +21,12 @@
  */
 package org.jboss.ws.extensions.addressing.jaxws;
 
+import org.jboss.logging.Logger;
+import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
+import org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl;
+import org.jboss.wsf.spi.handler.GenericSOAPHandler;
+
+import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPMessage;
 import javax.xml.ws.addressing.AddressingBuilder;
@@ -31,88 +37,84 @@
 import javax.xml.ws.handler.MessageContext;
 import javax.xml.ws.handler.MessageContext.Scope;
 import javax.xml.ws.handler.soap.SOAPMessageContext;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 
-import org.jboss.logging.Logger;
-import org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl;
-import org.jboss.wsf.spi.handler.GenericSOAPHandler;
-
 /**
  * A client side handler that reads/writes the addressing properties
  * and puts then into the message context.
  *
  * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
  * @since 24-Nov-2005
  */
 public class WSAddressingClientHandler extends GenericSOAPHandler
 {
-   // Provide logging
-   private static Logger log = Logger.getLogger(WSAddressingClientHandler.class);
+	// Provide logging
+	private static Logger log = Logger.getLogger(WSAddressingClientHandler.class);
 
-   // addressing builder & constants
-   private AddressingBuilder addrBuilder;
+	private static AddressingBuilder ADDR_BUILDER;
+	private static AddressingConstantsImpl ADDR_CONSTANTS;
+	private static Set<QName> HEADERS = new HashSet<QName>();
 
-   // should the request be normalized according to the specifications
-   private boolean normalize;
+	static
+	{
+		ADDR_CONSTANTS = new AddressingConstantsImpl();
+		ADDR_BUILDER = AddressingBuilder.getAddressingBuilder();
 
-   public WSAddressingClientHandler()
-   {
-      addrBuilder = AddressingBuilder.getAddressingBuilder();
-   }
+		HEADERS.add( ADDR_CONSTANTS.getActionQName());
+		HEADERS.add( ADDR_CONSTANTS.getToQName());
+	}
 
-   protected boolean handleOutbound(MessageContext msgContext)
-   {
-      if(log.isDebugEnabled()) log.debug("handleOutbound");
+	public Set getHeaders()
+	{
+		return Collections.unmodifiableSet(HEADERS);
+	}
 
-      SOAPAddressingProperties addrProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
-      if (addrProps != null)
-      {
-         if (normalize)
-            normalizeRequest(msgContext, addrProps);
+	protected boolean handleOutbound(MessageContext msgContext)
+	{
+		if(log.isDebugEnabled()) log.debug("handleOutbound");
 
-         SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
-         addrProps.writeHeaders(soapMessage);
-      }
-      else
-      {
-         // supply default addressing properties
-         addrProps = (SOAPAddressingPropertiesImpl)addrBuilder.newAddressingProperties();
-         msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addrProps);
-         msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
+		SOAPAddressingProperties addrProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
+		if (addrProps != null)
+		{
+			SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+			addrProps.writeHeaders(soapMessage);
+		}
+		else
+		{
+			// supply default addressing properties
+			addrProps = (SOAPAddressingPropertiesImpl)ADDR_BUILDER.newAddressingProperties();
+			msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addrProps);
+			msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
+		}
 
-         if (normalize)
-            normalizeRequest(msgContext, addrProps);
-      }
+		return true;
+	}
 
-      return true;
-   }
+	protected boolean handleInbound(MessageContext msgContext)
+	{
+		if(log.isDebugEnabled()) log.debug("handleInbound");
 
-   protected boolean handleInbound(MessageContext msgContext)
-   {
-      if(log.isDebugEnabled()) log.debug("handleInbound");
+		try
+		{
+			SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+			if (soapMessage.getSOAPPart().getEnvelope() != null)
+			{
+				SOAPAddressingBuilder builder = (SOAPAddressingBuilder)SOAPAddressingBuilder.getAddressingBuilder();
+				SOAPAddressingProperties addrProps = (SOAPAddressingProperties)builder.newAddressingProperties();
+				addrProps.readHeaders(soapMessage);
+				msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND, addrProps);
+				msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND, Scope.APPLICATION);
+			}
+		}
+		catch (SOAPException ex)
+		{
+			throw new AddressingException("Cannot handle response", ex);
+		}
 
-      try
-      {
-         SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
-         if (soapMessage.getSOAPPart().getEnvelope() != null)
-         {
-            SOAPAddressingBuilder builder = (SOAPAddressingBuilder)SOAPAddressingBuilder.getAddressingBuilder();
-            SOAPAddressingProperties addrProps = (SOAPAddressingProperties)builder.newAddressingProperties();
-            addrProps.readHeaders(soapMessage);
-            msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND, addrProps);
-            msgContext.setScope(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND, Scope.APPLICATION);
-         }
-      }
-      catch (SOAPException ex)
-      {
-         throw new AddressingException("Cannot handle response", ex);
-      }
+		return true;
+	}
 
-      return true;
-   }
-   
-   /* supply the default addressing properties in case elements are missing */
-   private void normalizeRequest(MessageContext msgContext, SOAPAddressingProperties addrProps)
-   {
-      // TODO: supply default header
-   }
 }

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingServerHandler.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingServerHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/jaxws/WSAddressingServerHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -21,8 +21,14 @@
  */
 package org.jboss.ws.extensions.addressing.jaxws;
 
-import java.net.URISyntaxException;
+import org.jboss.logging.Logger;
+import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
+import org.jboss.ws.extensions.addressing.metadata.AddressingOpMetaExt;
+import org.jboss.ws.metadata.umdm.OperationMetaData;
+import org.jboss.wsf.spi.handler.GenericSOAPHandler;
 
+import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPMessage;
 import javax.xml.ws.addressing.AddressingBuilder;
 import javax.xml.ws.addressing.JAXWSAConstants;
@@ -31,129 +37,131 @@
 import javax.xml.ws.handler.MessageContext;
 import javax.xml.ws.handler.MessageContext.Scope;
 import javax.xml.ws.handler.soap.SOAPMessageContext;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 
-import org.jboss.logging.Logger;
-import org.jboss.ws.core.CommonMessageContext;
-import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
-import org.jboss.ws.extensions.addressing.metadata.AddressingOpMetaExt;
-import org.jboss.ws.metadata.umdm.OperationMetaData;
-import org.jboss.wsf.spi.handler.GenericSOAPHandler;
-
 /**
  * A server side handler that reads/writes the addressing properties
  * and puts then into the message context.
  *
  * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
  * @since 24-Nov-2005
  */
 public class WSAddressingServerHandler extends GenericSOAPHandler
 {
-   // Provide logging
-   private static Logger log = Logger.getLogger(WSAddressingServerHandler.class);
+	// Provide logging
+	private static Logger log = Logger.getLogger(WSAddressingServerHandler.class);
 
-   private static AddressingBuilder ADDR_BUILDER;
-   private static AddressingConstantsImpl ADDR_CONSTANTS;
-   static
-   {
-      ADDR_CONSTANTS = new AddressingConstantsImpl();
-      ADDR_BUILDER = AddressingBuilder.getAddressingBuilder();
-   }
+	private static AddressingBuilder ADDR_BUILDER;
+	private static AddressingConstantsImpl ADDR_CONSTANTS;
+	private static Set<QName> HEADERS = new HashSet<QName>();
 
-   // should the request be validated?
-   private boolean validate = true;
+	static
+	{
+		ADDR_CONSTANTS = new AddressingConstantsImpl();
+		ADDR_BUILDER = AddressingBuilder.getAddressingBuilder();
 
-   protected boolean handleInbound(MessageContext msgContext)
-   {
-      if(log.isDebugEnabled()) log.debug("handleInbound");
+		HEADERS.add( ADDR_CONSTANTS.getActionQName());
+		HEADERS.add( ADDR_CONSTANTS.getToQName());
+	}
 
-      SOAPAddressingProperties addrProps = (SOAPAddressingProperties)ADDR_BUILDER.newAddressingProperties();
-      SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
-      addrProps.readHeaders(soapMessage);
-      msgContext.put(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND, addrProps);
-      msgContext.setScope(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND, Scope.APPLICATION);
+	public Set getHeaders()
+	{
+		return Collections.unmodifiableSet(HEADERS);
+	}
 
-      if (validate)
-         validateRequest(addrProps);
+	protected boolean handleInbound(MessageContext msgContext)
+	{
+		if(log.isDebugEnabled()) log.debug("handleInbound");
 
-      return true;
-   }
+		SOAPAddressingProperties addrProps = (SOAPAddressingProperties)ADDR_BUILDER.newAddressingProperties();
+		SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+		addrProps.readHeaders(soapMessage);
+		msgContext.put(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND, addrProps);
+		msgContext.setScope(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND, Scope.APPLICATION);
 
-   protected boolean handleOutbound(MessageContext msgContext)
-   {
-      if(log.isDebugEnabled()) log.debug("handleOutbound");
-      handleResponseOrFault(msgContext, false);
-      return true;
-   }
+		return true;
+	}
 
-   /**
-    * Get a SOAPAddressingProperties object from the message context
-    * and write the adressing headers
-    */
-   public boolean handleFault(MessageContext msgContext)
-   {
-      if(log.isDebugEnabled()) log.debug("handleFault");
-      handleResponseOrFault(msgContext, true);
-      return true;
-   }
+	protected boolean handleOutbound(MessageContext msgContext)
+	{
+		if(log.isDebugEnabled()) log.debug("handleOutbound");
+		handleResponseOrFault(msgContext, false);
+		return true;
+	}
 
-   private void handleResponseOrFault(MessageContext msgContext, boolean isFault)
-   {
-      SOAPAddressingBuilder builder = (SOAPAddressingBuilder)SOAPAddressingBuilder.getAddressingBuilder();
-      SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+	/**
+	 * Get a SOAPAddressingProperties object from the message context
+	 * and write the adressing headers
+	 */
+	public boolean handleFault(MessageContext msgContext)
+	{
+		if(log.isDebugEnabled()) log.debug("handleFault");
+		handleResponseOrFault(msgContext, true);
+		return true;
+	}
 
-      SOAPAddressingProperties inProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
-      SOAPAddressingProperties outProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND);
+	private void handleResponseOrFault(MessageContext msgContext, boolean isFault)
+	{
+		SOAPAddressingBuilder builder = (SOAPAddressingBuilder)SOAPAddressingBuilder.getAddressingBuilder();
+		SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
 
-      if (outProps == null)
-      {
-         // create new response properties
-         outProps = (SOAPAddressingProperties)builder.newAddressingProperties();
-         msgContext.put(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
-         msgContext.setScope(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
-      }
+		SOAPAddressingProperties inProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+		SOAPAddressingProperties outProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND);
 
-      outProps.initializeAsReply(inProps, isFault);
+		if (outProps == null)
+		{
+			// create new response properties
+			outProps = (SOAPAddressingProperties)builder.newAddressingProperties();
+			msgContext.put(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
+			msgContext.setScope(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_OUTBOUND, Scope.APPLICATION);
+		}
 
-      try
-      {
-         // supply the response action
+		outProps.initializeAsReply(inProps, isFault);
 
-         OperationMetaData opMetaData = ((CommonMessageContext)msgContext).getOperationMetaData();
+		try
+		{
+			// supply the response action
 
-         if (!isFault && !opMetaData.isOneWay())
-         {
+			OperationMetaData opMetaData = ((CommonMessageContext)msgContext).getOperationMetaData();
 
-            AddressingOpMetaExt addrExt = (AddressingOpMetaExt)opMetaData.getExtension(ADDR_CONSTANTS.getNamespaceURI());                       
-            if (addrExt != null)
-            {
-               outProps.setAction(ADDR_BUILDER.newURI(addrExt.getOutboundAction()));
-            }
-            else
-            {
-               log.warn("Unable to resolve replyAction for " + opMetaData.getQName());
-            }
+			if (!isFault && !opMetaData.isOneWay())
+			{
 
-         }
-         else if (isFault)
-         {
-            outProps.setAction(ADDR_BUILDER.newURI(ADDR_CONSTANTS.getDefaultFaultAction()));
-         }
+				AddressingOpMetaExt addrExt = (AddressingOpMetaExt)opMetaData.getExtension(ADDR_CONSTANTS.getNamespaceURI());
+				if (addrExt != null)
+				{
+					outProps.setAction(ADDR_BUILDER.newURI(addrExt.getOutboundAction()));
+				}
+				else
+				{
+					log.warn("Unable to resolve replyAction for " + opMetaData.getQName());
+				}
 
-      }
-      catch (URISyntaxException e)
-      {
-         log.error("Error setting response action", e);
-      }
+			}
+			else if (isFault)
+			{
+				outProps.setAction(ADDR_BUILDER.newURI(ADDR_CONSTANTS.getDefaultFaultAction()));
+			}
 
-      outProps.writeHeaders(soapMessage);
-   }
+		}
+		catch (URISyntaxException e)
+		{
+			log.error("Error setting response action", e);
+		}
 
-   /* check wsa formal constraints */
-   private void validateRequest(SOAPAddressingProperties addrProps)
-   {
-      // If wsa:ReplyTo is supplied and the message lacks a [message id] property, the processor MUST fault.
-      if (addrProps.getReplyTo() != null && addrProps.getMessageID() == null)
-         throw new IllegalArgumentException("wsa:MessageId is required when wsa:ReplyTo is supplied");
+		outProps.writeHeaders(soapMessage);
+	}
 
-   }
+	/* check wsa formal constraints */
+	private void validateRequest(SOAPAddressingProperties addrProps)
+	{
+		// If wsa:ReplyTo is supplied and the message lacks a [message id] property, the processor MUST fault.
+		if (addrProps.getReplyTo() != null && addrProps.getMessageID() == null)
+			throw new IllegalArgumentException("wsa:MessageId is required when wsa:ReplyTo is supplied");
+
+	}
 }

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/soap/SOAPAddressingPropertiesImpl.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/soap/SOAPAddressingPropertiesImpl.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/extensions/addressing/soap/SOAPAddressingPropertiesImpl.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -37,10 +37,7 @@
 
 import javax.xml.namespace.QName;
 import javax.xml.soap.*;
-import javax.xml.ws.addressing.AddressingConstants;
-import javax.xml.ws.addressing.AddressingException;
-import javax.xml.ws.addressing.ReferenceParameters;
-import javax.xml.ws.addressing.Relationship;
+import javax.xml.ws.addressing.*;
 import javax.xml.ws.addressing.soap.SOAPAddressingBuilder;
 import javax.xml.ws.addressing.soap.SOAPAddressingProperties;
 import java.lang.reflect.Array;
@@ -65,6 +62,8 @@
 
 	private NamespaceRegistry nsRegistry = new NamespaceRegistry();
 
+	private boolean mustunderstand;
+
 	private String getRequiredHeaderContent(SOAPHeader soapHeader, QName qname)
 	{
 		Element element = DOMUtils.getFirstChildElement(soapHeader, qname);
@@ -86,7 +85,7 @@
 
 		return null;
 	}
-	
+		
 	public void readHeaders(SOAPMessage message) throws AddressingException
 	{
 		try
@@ -221,22 +220,21 @@
 		try
 		{
 			SOAPFactoryImpl factory = (SOAPFactoryImpl)SOAPFactory.newInstance();
+			SOAPHeader soapHeader = message.getSOAPHeader();			
 
-			SOAPHeader soapHeader = message.getSOAPHeader();
-
+			// Assert on REQUIRED elements wsa:Action and wsa:To
 			if (getAction() == null)
-				throw new AddressingException("Required addressing property wsa:Action");
+				throw new AddressingException("Required addressing header missing: " + ADDR.getActionQName());
+			if (getTo() == null)
+				throw new AddressingException("Required addressing header missing: " + ADDR.getToQName());
 
 			// Add the xmlns:wsa declaration
 			soapHeader.addNamespaceDeclaration(ADDR.getNamespacePrefix(), ADDR.getNamespaceURI());
 
-			// Write wsa:To
-			if (getTo() != null)
-			{
-				SOAPElement wsaTo = soapHeader.addChildElement(new NameImpl(ADDR.getToQName()));
-				wsaTo.addTextNode(getTo().getURI().toString());
-			}
-
+			// Write REQUIRED wsa:Action and wsa:To
+			appendRequiredHeader(soapHeader, ADDR.getActionQName(), getAction());
+			appendRequiredHeader(soapHeader, ADDR.getToQName(), getTo());
+			
 			// Write wsa:From
 			if (getFrom() != null)
 			{
@@ -267,13 +265,13 @@
 				soapHeader.addChildElement(soapElement);
 			}
 
-			// Write wsa:Action
-			SOAPElement wsaAction = soapHeader.addChildElement(new NameImpl(ADDR.getActionQName()));
-			wsaAction.addTextNode(getAction().getURI().toString());
-
 			// Write wsa:MessageID
-			if (getMessageID() != null)
+			if( (getReplyTo()!=null || getFaultTo()!=null) && null==getMessageID())
 			{
+				throw new AddressingException("Required addressing header missing:" + ADDR.getMessageIDQName());
+			}
+			else if (getMessageID() != null)
+			{
 				SOAPElement wsaMessageId = soapHeader.addChildElement(new NameImpl(ADDR.getMessageIDQName()));
 				wsaMessageId.addTextNode(getMessageID().getURI().toString());
 			}
@@ -309,9 +307,23 @@
 		}
 	}
 
+	private void appendRequiredHeader(SOAPHeader soapHeader, QName name, AttributedURI value) throws SOAPException
+	{
+		SOAPElement element = soapHeader.addChildElement(new NameImpl(name));
+		element.addTextNode(value.getURI().toString());
+
+		if(mustunderstand)
+		{
+			// add soap:mustUnderstand=1
+			String envNS = soapHeader.getParentElement().getNamespaceURI();
+			element.addNamespaceDeclaration("soap", envNS);
+			element.addAttribute(new QName(envNS, "mustUnderstand", "soap"), "1");
+		}
+	}
+
 	public void setMu(boolean mu)
 	{
-		throw new NotImplementedException();
+		this.mustunderstand = mu;
 	}
 
 	private void appendAttributes(SOAPElement soapElement, Map<QName, String> attributes)

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/SOAPAddressingPropertiesTestCase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/SOAPAddressingPropertiesTestCase.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/SOAPAddressingPropertiesTestCase.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -51,6 +51,7 @@
 
 	private String reqEnvStr = "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>"
 			+ "  <env:Header xmlns:wsa='http://www.w3.org/2005/08/addressing'>"
+			+ "    <wsa:Action>http://fabrikam123.example/SubmitPO</wsa:Action>"
 			+ "    <wsa:To>http://fabrikam123.example/Purchasing</wsa:To>"
 			+ "    <wsa:ReplyTo>"
 			+ "      <wsa:Address>http://business456.example/client1</wsa:Address>"
@@ -58,7 +59,6 @@
 			+ "        <ns1:sessionid xmlns:ns1='http://somens'>someuniqueid</ns1:sessionid>"
 			+ "      </wsa:ReferenceParameters>"
 			+ "    </wsa:ReplyTo>"
-			+ "    <wsa:Action>http://fabrikam123.example/SubmitPO</wsa:Action>"
 			+ "    <wsa:MessageID>uuid:6B29FC40-CA47-1067-B31D-00DD010662DA</wsa:MessageID>"
 			+ "  </env:Header>"
 			+ "  <env:Body/>"
@@ -66,8 +66,8 @@
 
 	private String resEnvStr = "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
 			"  <env:Header xmlns:wsa='http://www.w3.org/2005/08/addressing'>" +
+			"    <wsa:Action>http://fabrikam123.example/ReplyPO</wsa:Action>" +
 			"    <wsa:To>http://business456.example/client1</wsa:To>" +
-			"    <wsa:Action>http://fabrikam123.example/ReplyPO</wsa:Action>" +
 			"    <wsa:RelatesTo>uuid:6B29FC40-CA47-1067-B31D-00DD010662DA</wsa:RelatesTo>" +
 			"    <ns1:sessionid wsa:IsReferenceParameter='true' xmlns:ns1='http://somens'>someuniqueid</ns1:sessionid>" +
 			"  </env:Header>" +

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionEndpoint.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionEndpoint.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionEndpoint.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -23,6 +23,7 @@
 
 //$Id$
 
+import javax.jws.WebService;
 import java.rmi.Remote;
 import java.rmi.RemoteException;
 
@@ -33,9 +34,10 @@
  *
  * @since 24-Nov-2005
  */
-public interface ActionEndpoint extends Remote
+ at WebService(targetNamespace = "http://org.jboss.ws/addressing/action")
+public interface ActionEndpoint
 {
-   String foo(String item) throws RemoteException;
+   String foo(String item);
    
-   String bar(String item) throws RemoteException;
+   String bar(String item);
 }

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionRpcEndpointImpl.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionRpcEndpointImpl.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ActionRpcEndpointImpl.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -40,7 +40,11 @@
  * @since 24-Nov-2005
  */
 @SOAPBinding(style = SOAPBinding.Style.RPC)
- at WebService(name = "ActionEndpoint", targetNamespace = "http://org.jboss.ws/addressing/action", wsdlLocation = "WEB-INF/wsdl/ActionRpcService.wsdl")
+ at WebService(
+		name = "ActionEndpoint",
+		targetNamespace = "http://org.jboss.ws/addressing/action",		
+		endpointInterface = "org.jboss.test.ws.jaxws.wsaddressing.action.ActionEndpoint"
+)
 @EndpointConfig(configName = "Standard WSAddressing Endpoint")
 public class ActionRpcEndpointImpl implements ActionEndpoint
 {

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingActionTestCase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingActionTestCase.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingActionTestCase.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -21,16 +21,22 @@
  */
 package org.jboss.test.ws.jaxws.wsaddressing.action;
 
-import javax.xml.rpc.Service;
-
 import junit.framework.Test;
-
+import org.jboss.ws.extensions.addressing.jaxws.WSAddressingClientHandler;
 import org.jboss.wsf.spi.test.JBossWSTest;
 import org.jboss.wsf.spi.test.JBossWSTestSetup;
 
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.handler.Handler;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Test endpoint using ws-addressing.
- * 
+ *
  * The wsa:Action should override any other dispatch method
  *
  * @author Thomas.Diesler at jboss.org
@@ -38,27 +44,57 @@
  */
 public class AddressingActionTestCase extends JBossWSTest
 {
-   private static ActionEndpoint rpcEndpoint;
+	private static ActionEndpoint endpoint;
 
-   public static Test suite()
-   {
-      return JBossWSTestSetup.newTestSetup(AddressingActionTestCase.class, "jaxws-wsaddressing-action-rpc.war, jaxws-wsaddressing-action-rpc-client.jar");
-   }
+	public static Test suite()
+	{
+		return JBossWSTestSetup.newTestSetup(AddressingActionTestCase.class, "jaxws-wsaddressing-action-rpc.war");
+	}
 
-   protected void setUp() throws Exception
-   {
-      super.setUp();
+	protected void setUp() throws Exception
+	{
+		super.setUp();
 
-      if (rpcEndpoint == null)
-      {
-         Service rpcService = (Service)getInitialContext("wsarpc-client").lookup("java:comp/env/service/ActionRpcService");
-         rpcEndpoint = (ActionEndpoint)rpcService.getPort(ActionEndpoint.class);
-      }
-   }
+		if (endpoint == null)
+		{
+			String wsdlLocation = "http://"+getServerHost()+":8080/jaxws-wsaddressing-action-rpc?wsdl";
+			URL wsdlURL = new URL(wsdlLocation);
+			QName serviceName = new QName("http://org.jboss.ws/addressing/action", "ActionRpcEndpointImplService");
 
-   public void testRpcEndpoint() throws Exception
-   {
-      assertEquals("bar:HelloFoo", rpcEndpoint.foo("HelloFoo"));
-      assertEquals("bar:HelloBar", rpcEndpoint.bar("HelloBar"));
-   }
+			Service service = Service.create(wsdlURL, serviceName);
+			endpoint = service.getPort(ActionEndpoint.class);
+		}
+	}
+
+	public void testRpcEndpoint() throws Exception
+	{
+
+		// Setup a custom chain
+		List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new CustomAddressingHandler());
+		customHandlerChain.add(new WSAddressingClientHandler());
+		((BindingProvider)endpoint).getBinding().setHandlerChain(customHandlerChain);
+
+		assertEquals("foo:HelloFoo", endpoint.foo("HelloFoo"));
+		assertEquals("bar:HelloBar", endpoint.bar("HelloBar"));
+	}
+
+	/**
+	 * Verify that our addresing impl. correctly processes
+	 * wsa headers when mustUnderstand=1 is sent
+	 * 
+	 * @throws Exception
+	 */
+	public void testRpcEndpointEnabledMU() throws Exception
+	{
+
+		// Setup a custom chain
+		List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new AddressingHandlerEnableMU());
+		customHandlerChain.add(new WSAddressingClientHandler());
+		((BindingProvider)endpoint).getBinding().setHandlerChain(customHandlerChain);
+
+		assertEquals("foo:HelloFoo", endpoint.foo("HelloFoo"));
+		assertEquals("bar:HelloBar", endpoint.bar("HelloBar"));
+	}
 }

Added: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingHandlerEnableMU.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingHandlerEnableMU.java	                        (rev 0)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingHandlerEnableMU.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsaddressing.action;
+
+import java.net.URISyntaxException;
+
+import javax.xml.namespace.QName;
+
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.addressing.soap.SOAPAddressingProperties;
+import javax.xml.ws.handler.MessageContext;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.handler.GenericHandler;
+
+/**
+ * A client side handler that disables mustUnderstand processing
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 29-Nov-2005
+ */
+public class AddressingHandlerEnableMU extends GenericHandler
+{
+   // Provide logging
+   private static Logger log = Logger.getLogger(CustomAddressingHandler.class);
+
+   public QName[] getHeaders()
+   {
+      return new QName[] {};
+   }
+
+	protected boolean handleOutbound(MessageContext msgContext)
+   {
+      log.info("handleRequest" + this);
+      try
+      {
+         AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+         SOAPAddressingProperties outProps = (SOAPAddressingProperties)builder.newAddressingProperties();
+			outProps.setMu(true);
+			outProps.setTo(builder.newURI("http://localhost:8080/jaxrpc-addressing-action-rpc/ActionService"));
+         outProps.setAction(builder.newURI("urn:wsa-action-bar"));
+         msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
+      }
+      catch (URISyntaxException ex)
+      {
+         throw new IllegalStateException("Cannot handle request", ex);
+      }
+      return true;
+   }
+}


Property changes on: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/AddressingHandlerEnableMU.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientDocHandler.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientDocHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientDocHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.ws.jaxws.wsaddressing.action;
-
-import java.net.URISyntaxException;
-
-import javax.xml.namespace.QName;
-import javax.xml.rpc.handler.MessageContext;
-import javax.xml.ws.addressing.AddressingBuilder;
-import javax.xml.ws.addressing.AddressingProperties;
-import javax.xml.ws.addressing.JAXWSAConstants;
-
-import org.jboss.logging.Logger;
-import org.jboss.test.ws.jaxws.wsaddressing.AddressingHandler;
-
-/**
- * A client side handler for the ws-addressing
- *
- * @author Thomas.Diesler at jboss.org
- * @since 29-Nov-2005
- */
-public class ClientDocHandler extends AddressingHandler
-{
-   // Provide logging
-   private static Logger log = Logger.getLogger(ClientDocHandler.class);
-   
-   public QName[] getHeaders()
-   {
-      return new QName[] {};
-   }
-
-   public boolean handleRequest(MessageContext msgContext)
-   {
-      log.info("handleRequest" + this);
-      try
-      {
-         AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
-         AddressingProperties outProps = builder.newAddressingProperties();
-         outProps.setTo(builder.newURI("uri:jaxrpc-addressing-action-doc/ActionService"));
-         outProps.setAction(builder.newURI("urn:wsa-action-bar"));
-         msgContext.setProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
-      }
-      catch (URISyntaxException ex)
-      {
-         throw new IllegalStateException("Cannot handle request", ex);
-      }
-      return true;
-   }
-}

Deleted: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientRpcHandler.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientRpcHandler.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientRpcHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.ws.jaxws.wsaddressing.action;
-
-import java.net.URISyntaxException;
-
-import javax.xml.namespace.QName;
-import javax.xml.rpc.handler.GenericHandler;
-import javax.xml.rpc.handler.MessageContext;
-import javax.xml.ws.addressing.AddressingBuilder;
-import javax.xml.ws.addressing.AddressingProperties;
-import javax.xml.ws.addressing.JAXWSAConstants;
-
-import org.jboss.logging.Logger;
-
-/**
- * A client side handler for the ws-addressing
- *
- * @author Thomas.Diesler at jboss.org
- * @since 29-Nov-2005
- */
-public class ClientRpcHandler extends GenericHandler
-{
-   // Provide logging
-   private static Logger log = Logger.getLogger(ClientRpcHandler.class);
-   
-   public QName[] getHeaders()
-   {
-      return new QName[] {};
-   }
-
-   public boolean handleRequest(MessageContext msgContext)
-   {
-      log.info("handleRequest" + this);
-      try
-      {
-         AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
-         AddressingProperties outProps = builder.newAddressingProperties();
-         outProps.setTo(builder.newURI("http://localhost:8080/jaxrpc-addressing-action-rpc/ActionService"));
-         outProps.setAction(builder.newURI("urn:wsa-action-bar"));
-         msgContext.setProperty(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
-      }
-      catch (URISyntaxException ex)
-      {
-         throw new IllegalStateException("Cannot handle request", ex);
-      }
-      return true;
-   }
-}

Copied: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/CustomAddressingHandler.java (from rev 3558, trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/ClientRpcHandler.java)
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/CustomAddressingHandler.java	                        (rev 0)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/CustomAddressingHandler.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsaddressing.action;
+
+import java.net.URISyntaxException;
+
+import javax.xml.namespace.QName;
+
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.addressing.soap.SOAPAddressingProperties;
+import javax.xml.ws.addressing.soap.SOAPAddressingBuilder;
+import javax.xml.ws.handler.MessageContext;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.handler.GenericHandler;
+
+/**
+ * A client side handler for the ws-addressing
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 29-Nov-2005
+ */
+public class CustomAddressingHandler extends GenericHandler
+{
+   // Provide logging
+   private static Logger log = Logger.getLogger(CustomAddressingHandler.class);
+     
+	protected boolean handleOutbound(MessageContext msgContext)
+   {
+      log.info("handleRequest" + this);
+      try
+      {
+         SOAPAddressingBuilder builder = (SOAPAddressingBuilder)SOAPAddressingBuilder.getAddressingBuilder();
+		   SOAPAddressingProperties outProps = (SOAPAddressingProperties)builder.newAddressingProperties();		
+			outProps.setTo(builder.newURI("http://localhost:8080/jaxrpc-addressing-action-rpc/ActionService"));
+         outProps.setAction(builder.newURI("urn:wsa-action-bar"));
+         msgContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, outProps);
+      }
+      catch (URISyntaxException ex)
+      {
+         throw new IllegalStateException("Cannot handle request", ex);
+      }
+      return true;
+   }
+}


Property changes on: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/action/CustomAddressingHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/replyto/AddressingReplyToTestCase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/replyto/AddressingReplyToTestCase.java	2007-06-13 11:51:02 UTC (rev 3561)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxws/wsaddressing/replyto/AddressingReplyToTestCase.java	2007-06-13 12:50:00 UTC (rev 3562)
@@ -39,6 +39,8 @@
 /**
  * Test endpoint using ws-addressing
  *
+ * NOTE: This test uses a JAX-RPC client against a JAX-WS endpoint.
+ *  
  * @author Thomas.Diesler at jboss.org
  * @since 24-Nov-2005
  */




More information about the jbossws-commits mailing list