Index: modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java =================================================================== --- modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java (revision 10499) +++ modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java (working copy) @@ -210,6 +210,10 @@ return (this.addressableClient) ? this.backPort.toString() : ANONYMOUS_URI; } + public final void setAcksTo(URI uri) { + this.backPort = uri; + } + public final long newMessageNumber() { // no need for synchronization Index: modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java =================================================================== --- modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java (revision 10499) +++ modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java (working copy) @@ -21,6 +21,7 @@ */ package org.jboss.ws.extensions.wsrm; +import java.net.URI; import java.util.Set; /** @@ -38,5 +39,6 @@ long getLastMessageNumber(); long getDuration(); String getAcksTo(); + void setAcksTo(URI uri); Set getReceivedInboundMessages(); } Index: modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java =================================================================== --- modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java (revision 10499) +++ modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java (working copy) @@ -180,6 +180,12 @@ RMCreateSequenceResponse createSequenceResponse = rmFactory.newCreateSequenceResponse(); createSequenceResponse.setIdentifier(seq.getInboundId()); createSequenceResponse.setExpires(RMHelper.longToDuration(seq.getDuration())); + if (seq.getAcksTo() != null) + { + RMCreateSequenceResponse.RMAccept a = createSequenceResponse.newAccept(); + a.setAcksTo(seq.getAcksTo().toString()); + createSequenceResponse.setAccept(a); + } return createSequenceResponse; } Index: modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java =================================================================== --- modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java (revision 10499) +++ modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java (working copy) @@ -33,6 +33,7 @@ import javax.xml.ws.addressing.AddressingProperties; import javax.xml.ws.addressing.JAXWSAConstants; import javax.xml.ws.addressing.Relationship; +import javax.xml.ws.addressing.soap.SOAPAddressingProperties; import org.jboss.logging.Logger; import org.jboss.ws.core.CommonMessageContext; @@ -150,6 +151,14 @@ if (RMHelper.isCreateSequence(rmReqProps)) { sequence = new RMServerSequence(); + + // TODO: Find out how to get AcksTo address - here I reuse the incomming Addressing 'TO' + SOAPAddressingProperties clientInboundAddrProps = (SOAPAddressingProperties)msgContext.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_INBOUND); + if (clientInboundAddrProps != null && clientInboundAddrProps.getTo() != null) + { + sequence.setAcksTo(clientInboundAddrProps.getTo().getURI()); + } + RMStore.serialize(dataDir, sequence); protocolMessages.add(rmConstants.getCreateSequenceResponseQName()); rmResponseContext.put(RMConstant.SEQUENCE_REFERENCE, sequence); Index: modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java =================================================================== --- modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java (revision 10499) +++ modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java (working copy) @@ -27,6 +27,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.URI; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -55,6 +56,7 @@ private String inboundId; private String outboundId; private long creationTime; + private URI backPort; private long duration; private Set acknowledgedOutboundMessages = new TreeSet(); private Set receivedInboundMessages = new TreeSet(); @@ -120,9 +122,21 @@ public String getAcksTo() { - return null; + if (this.backPort != null) + { + return this.backPort.toString(); + } + else + { + return null; + } } + public final void setAcksTo(URI uri) + { + this.backPort = uri; + } + public String getOutboundId() { return this.outboundId;