[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