Author: richard.opalka(a)jboss.com
Date: 2009-08-13 04:49:10 -0400 (Thu, 13 Aug 2009)
New Revision: 10531
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java
Log:
[JBWS-2723][JBWS-2724] applying user patches
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java 2009-08-13
07:38:12 UTC (rev 10530)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMClientSequence.java 2009-08-13
08:49:10 UTC (rev 10531)
@@ -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
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java 2009-08-13
07:38:12 UTC (rev 10530)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/RMSequence.java 2009-08-13
08:49:10 UTC (rev 10531)
@@ -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<Long> getReceivedInboundMessages();
}
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java 2009-08-13
07:38:12 UTC (rev 10530)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/jaxws/RMHandlerHelper.java 2009-08-13
08:49:10 UTC (rev 10531)
@@ -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;
}
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java 2009-08-13
07:38:12 UTC (rev 10530)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMInvocationHandler.java 2009-08-13
08:49:10 UTC (rev 10531)
@@ -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;
@@ -45,6 +46,7 @@
import org.jboss.ws.extensions.wsrm.common.RMHelper;
import org.jboss.ws.extensions.wsrm.protocol.RMConstants;
import org.jboss.ws.extensions.wsrm.protocol.RMProvider;
+import org.jboss.ws.extensions.wsrm.protocol.spi.RMCreateSequence;
import org.jboss.ws.extensions.wsrm.protocol.spi.RMCloseSequence;
import org.jboss.ws.extensions.wsrm.protocol.spi.RMSequence;
import org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement;
@@ -149,7 +151,25 @@
if (RMHelper.isCreateSequence(rmReqProps))
{
- sequence = new RMServerSequence();
+ Map<QName, RMSerializable> data = (Map<QName,
RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
+ RMCreateSequence rmCreateSequence =
(RMCreateSequence)data.get((rmConstants.getCreateSequenceQName()));
+ if (rmCreateSequence.getOffer() != null)
+ {
+ sequence = new
RMServerSequence(rmCreateSequence.getOffer().getIdentifier());
+ }
+ else
+ {
+ 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);
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java 2009-08-13
07:38:12 UTC (rev 10530)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/extensions/wsrm/server/RMServerSequence.java 2009-08-13
08:49:10 UTC (rev 10531)
@@ -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<Long> acknowledgedOutboundMessages = new TreeSet<Long>();
private Set<Long> receivedInboundMessages = new TreeSet<Long>();
@@ -96,9 +98,21 @@
public RMServerSequence()
{
+ this(AddressingClientUtil.generateMessageID().toString());
+ }
+
+ public RMServerSequence(String offeredOutboundId)
+ {
this.sequenceId = "seq-" + System.currentTimeMillis() + "-" +
System.identityHashCode(this);
this.inboundId = AddressingClientUtil.generateMessageID().toString();
- this.outboundId = AddressingClientUtil.generateMessageID().toString();
+ if (offeredOutboundId != null)
+ {
+ this.outboundId = offeredOutboundId;
+ }
+ else
+ {
+ this.outboundId = AddressingClientUtil.generateMessageID().toString();
+ }
this.creationTime = System.currentTimeMillis();
this.duration = 10 * 60 * 1000L; // 10 minutes duration
}
@@ -120,9 +134,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;
Show replies by date