You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by mc...@apache.org on 2007/11/09 12:31:01 UTC
svn commit: r593494 - in /webservices/sandesha/trunk/java/modules:
core/src/main/java/org/apache/sandesha2/msgprocessors/
core/src/main/java/org/apache/sandesha2/msgreceivers/
core/src/main/java/org/apache/sandesha2/polling/
core/src/main/java/org/apac...
Author: mckierna
Date: Fri Nov 9 03:30:57 2007
New Revision: 593494
URL: http://svn.apache.org/viewvc?rev=593494&view=rev
Log:
https://issues.apache.org/jira/browse/SANDESHA2-127
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/beans/RMSequenceBean.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Sender.java
webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/CreateSequenceRefusedFaultTest.java
webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/MessageNumberRolloverFaultTest.java
webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceClosedFaultTest.java
webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceTerminatedFaultTest.java
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AckRequestedProcessor.java Fri Nov 9 03:30:57 2007
@@ -134,12 +134,11 @@
}
// Setting the ack depending on AcksTo.
- EndpointReference acksTo = new EndpointReference(rmdBean.getAcksToEPR());
- String acksToStr = acksTo.getAddress();
+ EndpointReference acksTo = rmdBean.getAcksToEndpointReference();
- if (acksToStr == null)
+ if (acksTo == null || acksTo.getAddress()==null)
throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.acksToStrNotSet));
-
+
//Getting the operation for ack messages.
AxisOperation ackOperation = SpecSpecificConstants.getWSRMOperation(
Sandesha2Constants.MessageTypes.ACK,
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/AcknowledgementProcessor.java Fri Nov 9 03:30:57 2007
@@ -148,9 +148,8 @@
return;
}
- String replyToAddress = rmsBean.getReplyToEPR();
- EndpointReference replyTo = new EndpointReference (replyToAddress);
- boolean anonReplyTo = replyTo.hasAnonymousAddress();
+ EndpointReference replyTo = rmsBean.getReplyToEndpointReference();
+ boolean anonReplyTo = replyTo==null || replyTo.hasAnonymousAddress();
String rmVersion = rmMsgCtx.getRMSpecVersion();
@@ -186,7 +185,7 @@
// Check we haven't got an Ack for a message that hasn't been sent yet !
if (retransmitterBean.getSentCount() == 0) {
FaultManager.makeInvalidAcknowledgementFault(rmMsgCtx, sequenceAck, ackRange,
- storageManager, piggybackedAck);
+ storageManager, piggybackedAck, null); //do not want to send the fault to acksTo in this case
if (log.isDebugEnabled())
log.debug("Exit: AcknowledgementProcessor::processAckHeader, Invalid Ack");
return;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Fri Nov 9 03:30:57 2007
@@ -371,8 +371,8 @@
// setting async ack endpoint for the server side. (if present)
if (serverSide) {
- if (rmsBean.getToEPR() != null) {
- msgContext.setProperty(SandeshaClientConstants.AcksTo, rmsBean.getToEPR());
+ if (rmsBean.getToEndpointReference() != null) {
+ msgContext.setProperty(SandeshaClientConstants.AcksTo, rmsBean.getToEndpointReference().getAddress());
}
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java Fri Nov 9 03:30:57 2007
@@ -79,9 +79,8 @@
if (createSeqPart == null) {
if (log.isDebugEnabled())
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts));
- FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg,
- SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts),
- new Exception());
+ FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts),
+ new Exception(), null);
// Return false if an Exception hasn't been thrown.
if (log.isDebugEnabled())
log.debug("Exit: CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);
@@ -114,7 +113,7 @@
if (toEPR.hasAnonymousAddress()) {
RMSBean findBean = new RMSBean ();
- findBean.setReplyToEPR(toEPR.getAddress());
+ findBean.setReplyToEndpointReference(toEPR);
findBean.setTerminationPauserForCS(true);
//TODO recheck
@@ -125,7 +124,7 @@
if (requestSideRefMessage==null) {
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg,
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.referencedMessageNotFound, rmsBean.getInternalSequenceID()),
- new Exception());
+ new Exception(), null);
// Return false if an Exception hasn't been thrown.
if (log.isDebugEnabled())
log.debug("Exit: CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);
@@ -164,9 +163,9 @@
if (accept == null) {
if (log.isDebugEnabled())
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart));
- FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg,
- SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart),
- new Exception());
+ FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart),
+ new Exception(),
+ null);
// Return false if an Exception hasn't been thrown.
if (log.isDebugEnabled())
log.debug("Exit: CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);
@@ -189,9 +188,9 @@
// this is a dummy value
rMSBean.setCreateSeqMsgID(SandeshaUtil.getUUID());
- rMSBean.setToEPR(rmdBean.getToEPR());
- rMSBean.setAcksToEPR(rmdBean.getToEPR()); // The acks need to flow back into this endpoint
- rMSBean.setReplyToEPR(rmdBean.getReplyToEPR());
+ rMSBean.setToEndpointReference(rmdBean.getToEndpointReference());
+ rMSBean.setAcksToEndpointReference(rmdBean.getToEndpointReference()); // The acks need to flow back into this endpoint
+ rMSBean.setReplyToEndpointReference(rmdBean.getReplyToEndpointReference());
rMSBean.setLastActivatedTime(System.currentTimeMillis());
rMSBean.setRMVersion(rmdBean.getRMVersion());
rMSBean.setClientCompletedMessages(new RangeString());
@@ -216,9 +215,8 @@
// If this new sequence has anonymous acksTo, then we must poll for the acks
// If the inbound sequence is targetted at the WSRM anonymous URI, we need to start
// polling for this sequence.
- String acksTo = rMSBean.getAcksToEPR();
- EndpointReference reference = new EndpointReference(acksTo);
- if ((acksTo == null || reference.hasAnonymousAddress()) &&
+ EndpointReference reference = rMSBean.getAcksToEndpointReference();
+ if ((reference == null || reference.hasAnonymousAddress()) &&
Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(createSeqRMMsg.getRMSpecVersion())) {
rMSBean.setPollingMode(true);
}
@@ -265,7 +263,9 @@
catch(AxisFault e){
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg,
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendCreateSeqResponse,
- SandeshaUtil.getStackTraceFromException(e)), e);
+ SandeshaUtil.getStackTraceFromException(e)),
+ e,
+ rmdBean.getAcksToEndpointReference());
// Return false if an Exception hasn't been thrown.
if (log.isDebugEnabled())
log.debug("Exit: CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);
@@ -291,7 +291,7 @@
if (createSeqRMMsg.getMessageContext().getProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME) == null &&
createSeqRMMsg.getMessageContext().getProperty(SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME) == null) {
// Add the fault details to the message
- FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, SandeshaUtil.getStackTraceFromException(e), e);
+ FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, SandeshaUtil.getStackTraceFromException(e), e, null);
// Return false if an Exception hasn't been thrown.
if (log.isDebugEnabled())
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/CreateSeqResponseMsgProcessor.java Fri Nov 9 03:30:57 2007
@@ -151,9 +151,8 @@
if (Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(createSeqResponseRMMsgCtx.getRMSpecVersion())) {
SandeshaPolicyBean policy = SandeshaUtil.getPropertyBean(configCtx.getAxisConfiguration());
if(policy.isEnableMakeConnection()) {
- String acksTo = rmsBean.getAcksToEPR();
- EndpointReference reference = new EndpointReference(acksTo);
- if(acksTo == null || reference.hasAnonymousAddress()) {
+ EndpointReference reference = rmsBean.getAcksToEndpointReference();
+ if(reference == null || reference.hasAnonymousAddress()) {
rmsBean.setPollingMode(true);
}
}
@@ -179,7 +178,7 @@
RMDBean rMDBean = new RMDBean();
EndpointReference acksToEPR = accept.getAcksTo().getEPR();
- rMDBean.setAcksToEPR(acksToEPR.getAddress());
+ rMDBean.setAcksToEndpointReference(acksToEPR);
rMDBean.setSequenceID(rmsBean.getOfferedSequence());
rMDBean.setNextMsgNoToProcess(1);
rMDBean.setOutboundInternalSequence(rmsBean.getInternalSequenceID());
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/SequenceProcessor.java Fri Nov 9 03:30:57 2007
@@ -164,7 +164,7 @@
}
FaultManager.checkForLastMsgNumberExceeded(rmMsgCtx, storageManager);
- if (FaultManager.checkForMessageRolledOver(rmMsgCtx, sequenceId, msgNo)) {
+ if (FaultManager.checkForMessageRolledOver(rmMsgCtx, sequenceId, msgNo, bean)) {
if (log.isDebugEnabled())
log.debug("Exit: SequenceProcessor::processReliableMessage, Message rolled over " + msgNo);
@@ -241,7 +241,7 @@
}
}
- EndpointReference acksTo = new EndpointReference (bean.getAcksToEPR());
+ EndpointReference acksTo = bean.getAcksToEndpointReference();
// Send an Ack if needed.
//We are not sending acks for duplicate messages in the RM 1.0 anon InOut case.
@@ -336,7 +336,7 @@
boolean ackBackChannel = SpecSpecificConstants.sendAckInBackChannel (rmMsgCtx.getMessageType());
// If we are processing an inOnly message we must ack the back channel otherwise the connection stays open
if (!ackBackChannel && mep == WSDLConstants.MEP_CONSTANT_IN_ONLY) ackBackChannel = true;
- EndpointReference acksTo = new EndpointReference (bean.getAcksToEPR());
+ EndpointReference acksTo = bean.getAcksToEndpointReference();
if (acksTo.hasAnonymousAddress() && backchannelFree && ackBackChannel) {
boolean responseWritten = TransportUtils.isResponseWritten(msgCtx);
if (!responseWritten) {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java Fri Nov 9 03:30:57 2007
@@ -77,7 +77,7 @@
if (rmMsgCtx.getMessageType() == Sandesha2Constants.MessageTypes.CREATE_SEQ)
FaultManager.makeCreateSequenceRefusedFault(rmMsgCtx,
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.reliableMessagingNotEnabled, msgCtx.getAxisService().getName()),
- new Exception());
+ new Exception(), null);
else
throw new AxisFault(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.reliableMessagingNotEnabled, msgCtx.getAxisService().getName()));
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/polling/PollingManager.java Fri Nov 9 03:30:57 2007
@@ -212,17 +212,17 @@
if(log.isDebugEnabled()) log.debug("Enter: PollingManager::pollForSequence, rmBean: " + rmBean);
//create a MakeConnection message
- String replyTo = rmBean.getReplyToEPR();
+ EndpointReference replyTo = rmBean.getReplyToEndpointReference();
String wireSeqId = null;
String wireAddress = null;
if(anonUUID != null) {
// If we are polling on a RM anon URI then we don't want to include the sequence id
// in the MakeConnection message.
wireAddress = anonUUID;
- } else if(SandeshaUtil.isWSRMAnonymous(replyTo)) {
+ } else if(replyTo!=null && SandeshaUtil.isWSRMAnonymous(replyTo.getAddress())) {
// If we are polling on a RM anon URI then we don't want to include the sequence id
// in the MakeConnection message.
- wireAddress = replyTo;
+ wireAddress = replyTo.getAddress();
} else {
wireSeqId = rmBean.getSequenceID();
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/beans/RMSequenceBean.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/beans/RMSequenceBean.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/beans/RMSequenceBean.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/beans/RMSequenceBean.java Fri Nov 9 03:30:57 2007
@@ -19,6 +19,8 @@
package org.apache.sandesha2.storage.beans;
+import org.apache.axis2.addressing.EndpointReference;
+
/**
* This bean is used at the receiving side (of both server and client)
* There is one entry for each sequence.
@@ -33,11 +35,23 @@
*/
private String sequenceID;
+ /**
+ * @deprecated use toEndpointReference instead
+ */
private String toEPR;
+ private EndpointReference toEndpointReference;
+ /**
+ * @deprecated use replyToEndpointReference instead
+ */
private String replyToEPR;
+ private EndpointReference replyToEndpointReference;
+ /**
+ * @deprecated use acksToEndpointRef instead
+ */
private String acksToEPR;
+ private EndpointReference acksToEndpointRef;
private String RMVersion;
@@ -89,15 +103,18 @@
*/
public RMSequenceBean(RMSequenceBean beanToCopy) {
acksToEPR = beanToCopy.getAcksToEPR();
+ acksToEndpointRef = beanToCopy.getAcksToEndpointReference();
closed = beanToCopy.isClosed();
lastActivatedTime = beanToCopy.getLastActivatedTime();
pollingMode = beanToCopy.isPollingMode();
replyToEPR = beanToCopy.getReplyToEPR();
+ replyToEndpointReference = beanToCopy.getReplyToEndpointReference();
RMVersion = beanToCopy.getRMVersion();
securityTokenData = beanToCopy.getSecurityTokenData();
sequenceID = beanToCopy.getSequenceID();
terminated = beanToCopy.isTerminated();
- toEPR = beanToCopy.getToEPR();
+ toEPR = beanToCopy.getToEPR();
+ toEndpointReference = beanToCopy.getToEndpointReference();
serviceName = beanToCopy.getServiceName();
}
@@ -120,30 +137,87 @@
this.sequenceID = sequenceID;
}
+ /**
+ * @deprecated
+ */
public String getAcksToEPR() {
- return acksToEPR;
- }
+ return acksToEPR;
+ }
+
+ public EndpointReference getAcksToEndpointReference(){
+ if(acksToEndpointRef==null && acksToEPR!=null){
+ //this is for release to release compatability with serializaed data
+ acksToEndpointRef = new EndpointReference(acksToEPR);;
+ }
+ return acksToEndpointRef;
+ }
+ /**
+ * @deprecated
+ */
public void setAcksToEPR(String acksToEPR) {
- this.acksToEPR = acksToEPR;
- }
+ this.acksToEPR = acksToEPR;
+ }
+
+ public void setAcksToEndpointReference(EndpointReference acksToEndpointRef){
+ this.acksToEndpointRef = acksToEndpointRef;
+ acksToEPR = acksToEndpointRef.getAddress();
+ }
+ /**
+ * @deprecated
+ */
public String getReplyToEPR() {
return replyToEPR;
}
+
+ public EndpointReference getReplyToEndpointReference(){
+ if(replyToEndpointReference==null && replyToEPR!=null){
+ //this is for release to release compatability with serializaed data
+ replyToEndpointReference = new EndpointReference(replyToEPR);;
+ }
+ return replyToEndpointReference;
+ }
+ /**
+ * @deprecated
+ */
public void setReplyToEPR(String replyToEPR) {
this.replyToEPR = replyToEPR;
}
+
+ public void setReplyToEndpointReference(EndpointReference replyToEndpointRef){
+ this.replyToEndpointReference = replyToEndpointRef;
+ replyToEPR = replyToEndpointRef.getAddress();
+ }
+ /**
+ * @deprecated
+ */
public String getToEPR() {
return toEPR;
}
+
+ public EndpointReference getToEndpointReference(){
+ if(toEndpointReference==null && toEPR!=null){
+ //this is for release to release compatability with serializaed data
+ toEndpointReference = new EndpointReference(toEPR);;
+ }
+ return toEndpointReference;
+ }
+ /**
+ * @deprecated
+ */
public void setToEPR(String toEPR) {
this.toEPR = toEPR;
}
-
+
+ public void setToEndpointReference(EndpointReference toEndpointRef){
+ this.toEndpointReference = toEndpointRef;
+ toEPR = toEndpointReference.getAddress();
+ }
+
public boolean isPollingMode() {
return pollingMode;
}
@@ -235,13 +309,16 @@
if(bean.getSequenceID() != null && !bean.getSequenceID().equals(this.getSequenceID()))
match = false;
- else if(bean.getToEPR() != null && !bean.getToEPR().equals(this.getToEPR()))
+ else if((bean.getToEndpointReference() != null && this.getToEndpointReference()!=null && !bean.getToEndpointReference().getAddress().equals(this.getToEndpointReference().getAddress())) ||
+ (bean.getToEPR() != null && !bean.getToEPR().equals(this.getToEPR())))
match = false;
- else if(bean.getReplyToEPR() != null && !bean.getReplyToEPR().equals(this.getReplyToEPR()))
+ else if((bean.getReplyToEndpointReference() != null && this.getReplyToEndpointReference()!=null && !bean.getReplyToEndpointReference().getAddress().equals(this.getReplyToEndpointReference().getAddress())) ||
+ (bean.getReplyToEPR() != null && !bean.getReplyToEPR().equals(this.getReplyToEPR())))
match = false;
- else if(bean.getAcksToEPR() != null && !bean.getAcksToEPR().equals(this.getAcksToEPR()))
+ else if((bean.getAcksToEndpointReference() != null && this.getAcksToEndpointReference()!=null && !bean.getAcksToEndpointReference().getAddress().equals(this.getAcksToEndpointReference().getAddress())) ||
+ (bean.getAcksToEPR() != null && !bean.getAcksToEPR().equals(this.getAcksToEPR())))
match = false;
else if(bean.getRMVersion() != null && !bean.getRMVersion().equals(this.getRMVersion()))
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java Fri Nov 9 03:30:57 2007
@@ -74,7 +74,7 @@
// Search for any sequences that have an acksTo that matches this target, and add an ack
// for each of them.
RMDBean findBean = new RMDBean();
- findBean.setAcksToEPR(target.getAddress());
+ findBean.setAcksToEndpointReference(target);
findBean.setTerminated(false);
Collection rmdBeans = storageManager.getRMDBeanMgr().find(findBean);
Iterator sequences = rmdBeans.iterator();
@@ -93,10 +93,9 @@
if(inboundSequence != null) {
RMDBean inboundBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, inboundSequence);
if(inboundBean != null && !inboundBean.isTerminated()) {
- String acksTo = inboundBean.getAcksToEPR();
- EndpointReference acksToEPR = new EndpointReference(acksTo);
+ EndpointReference acksToEPR = inboundBean.getAcksToEndpointReference();
- if(acksTo == null || acksToEPR.hasAnonymousAddress()) {
+ if(acksToEPR == null || acksToEPR.hasAnonymousAddress()) {
if(log.isDebugEnabled()) log.debug("Piggybacking ack for inbound sequence: " + inboundSequence);
RMMsgCreator.addAckMessage(rmMessageContext, inboundSequence, inboundBean);
}
@@ -106,48 +105,63 @@
if(log.isDebugEnabled()) log.debug("Exit: AcknowledgementManager::piggybackAcksIfPresent, anon");
return transaction;
}
- // From here on, we must be dealing with a real address. Piggyback all sequences that have an
- // acksTo that matches the To address, and that have an ackMessage queued up for sending. We
- // search for RMDBeans first, to avoid a deadlock.
- //
- // As a special case, if this is a terminate sequence message then add in ack messages for
- // any sequences that have an acksTo that matches the target address. This helps to ensure
- // that request-response sequence pairs end cleanly.
- RMDBean findRMDBean = new RMDBean();
- findRMDBean.setAcksToEPR(target.getAddress());
- findRMDBean.setTerminated(false);
- Collection rmdBeans = storageManager.getRMDBeanMgr().find(findRMDBean);
- Iterator sequences = rmdBeans.iterator();
- while(sequences.hasNext()) {
- RMDBean sequence = (RMDBean) sequences.next();
- String sequenceId = sequence.getSequenceID();
-
- // Look for the SenderBean that carries the ack, there should be at most one
- SenderBean findBean = new SenderBean();
- findBean.setMessageType(Sandesha2Constants.MessageTypes.ACK);
- findBean.setSend(true);
- findBean.setSequenceID(sequenceId);
- findBean.setToAddress(target.getAddress());
-
- SenderBean ackBean = retransmitterBeanMgr.findUnique(findBean);
-
- // Piggybacking will happen only if the end of ack interval (timeToSend) is not reached.
- long timeNow = System.currentTimeMillis();
- if (ackBean != null && ackBean.getTimeToSend() > timeNow) {
- // Delete the beans that would have sent the ack
- retransmitterBeanMgr.delete(ackBean.getMessageID());
- storageManager.removeMessageContext(ackBean.getMessageContextRefKey());
-
- if (log.isDebugEnabled()) log.debug("Piggybacking ack for sequence: " + sequenceId);
- RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence);
-
- } else if(rmMessageContext.getMessageType() == Sandesha2Constants.MessageTypes.TERMINATE_SEQ) {
- if(log.isDebugEnabled()) log.debug("Adding extra acks, as this is a terminate");
-
- if(sequence.getHighestInMessageNumber() > 0) {
- if(log.isDebugEnabled()) log.debug("Piggybacking ack for sequence: " + sequenceId);
+ else{
+ //an addressable EPR
+ if(SandeshaUtil.hasReferenceParameters(target)){
+ //we should not proceed since we cannot properly compare ref params
+ if(log.isDebugEnabled()) log.debug("Exit: AcknowledgementManager::piggybackAcksIfPresent, target has refParams");
+ return transaction;
+ }
+
+ // From here on, we must be dealing with a real address. Piggyback all sequences that have an
+ // acksTo that matches the To address, and that have an ackMessage queued up for sending. We
+ // search for RMDBeans first, to avoid a deadlock.
+ //
+ // As a special case, if this is a terminate sequence message then add in ack messages for
+ // any sequences that have an acksTo that matches the target address. This helps to ensure
+ // that request-response sequence pairs end cleanly.
+ RMDBean findRMDBean = new RMDBean();
+ findRMDBean.setAcksToEndpointReference(target);
+ findRMDBean.setTerminated(false);
+ Collection rmdBeans = storageManager.getRMDBeanMgr().find(findRMDBean);
+ Iterator sequences = rmdBeans.iterator();
+ while(sequences.hasNext()) {
+ RMDBean sequence = (RMDBean) sequences.next();
+ if(SandeshaUtil.hasReferenceParameters(sequence.getAcksToEndpointReference())){
+ //we should not piggy back if there are reference parameters in the acksTo EPR since we cannot compare them
+ if(log.isDebugEnabled()) log.debug("Exit: AcknowledgementManager::piggybackAcksIfPresent, target has refParams");
+ break;
+ }
+
+ String sequenceId = sequence.getSequenceID();
+
+ // Look for the SenderBean that carries the ack, there should be at most one
+ SenderBean findBean = new SenderBean();
+ findBean.setMessageType(Sandesha2Constants.MessageTypes.ACK);
+ findBean.setSend(true);
+ findBean.setSequenceID(sequenceId);
+ findBean.setToAddress(target.getAddress());
+
+ SenderBean ackBean = retransmitterBeanMgr.findUnique(findBean);
+
+ // Piggybacking will happen only if the end of ack interval (timeToSend) is not reached.
+ long timeNow = System.currentTimeMillis();
+ if (ackBean != null && ackBean.getTimeToSend() > timeNow) {
+ // Delete the beans that would have sent the ack
+ retransmitterBeanMgr.delete(ackBean.getMessageID());
+ storageManager.removeMessageContext(ackBean.getMessageContextRefKey());
+
+ if (log.isDebugEnabled()) log.debug("Piggybacking ack for sequence: " + sequenceId);
+ RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence);
+
+ } else if(rmMessageContext.getMessageType() == Sandesha2Constants.MessageTypes.TERMINATE_SEQ) {
+ if(log.isDebugEnabled()) log.debug("Adding extra acks, as this is a terminate");
+
+ if(sequence.getHighestInMessageNumber() > 0) {
+ if(log.isDebugEnabled()) log.debug("Piggybacking ack for sequence: " + sequenceId);
- RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence);
+ RMMsgCreator.addAckMessage(rmMessageContext, sequenceId, sequence);
+ }
}
}
}
@@ -182,9 +196,9 @@
MessageContext referenceMsg = referenceRMMessage.getMessageContext();
- EndpointReference acksTo = new EndpointReference(rmdBean.getAcksToEPR());
+ EndpointReference acksTo = rmdBean.getAcksToEndpointReference();
- if (acksTo.getAddress() == null)
+ if (acksTo==null || acksTo.getAddress() == null)
throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.acksToStrNotSet));
AxisOperation ackOperation = SpecSpecificConstants.getWSRMOperation(
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Fri Nov 9 03:30:57 2007
@@ -206,7 +206,7 @@
log.debug("Exit: FaultManager::checkForUnknownSequence, Sequence unknown");
boolean faultThrowable = !piggybackedMessage;
- getOrSendFault(rmMessageContext, data, faultThrowable);
+ getOrSendFault(rmMessageContext, data, faultThrowable, null); //unknown sequence so cannot send to acksTo
return true;
}
@@ -254,7 +254,7 @@
if (invalidAck) {
makeInvalidAcknowledgementFault(ackRMMessageContext, sequenceAcknowledgement,
- acknowledgementRange, storageManager, piggybackedMessage);
+ acknowledgementRange, storageManager, piggybackedMessage, rmsBean.getAcksToEndpointReference());
return true;
}
}
@@ -273,7 +273,7 @@
*/
public static void makeInvalidAcknowledgementFault(RMMsgContext rmMsgCtx,
SequenceAcknowledgement sequenceAcknowledgement, AcknowledgementRange acknowledgementRange,
- StorageManager storageManager, boolean piggybackedMessage) throws AxisFault {
+ StorageManager storageManager, boolean piggybackedMessage, EndpointReference acksToEPR) throws AxisFault {
FaultData data = new FaultData();
int SOAPVersion = SandeshaUtil.getSOAPVersion(rmMsgCtx.getMessageContext().getEnvelope());
if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1)
@@ -302,17 +302,13 @@
log.debug("Exit: FaultManager::checkForInvalidAcknowledgement, invalid ACK");
boolean throwable = !piggybackedMessage;
- getOrSendFault(rmMsgCtx, data, throwable);
+ getOrSendFault(rmMsgCtx, data, throwable, acksToEPR);
}
/**
* Makes a Create sequence refused fault
*/
- public static void makeCreateSequenceRefusedFault(RMMsgContext rmMessageContext,
- String detail,
- Exception e)
-
- throws AxisFault {
+ public static void makeCreateSequenceRefusedFault(RMMsgContext rmMessageContext, String detail, Exception e, EndpointReference acksToEPR) throws AxisFault {
if (log.isDebugEnabled())
log.debug("Enter: FaultManager::makeCreateSequenceRefusedFault, " + detail);
@@ -345,7 +341,7 @@
if (log.isDebugEnabled())
log.debug("Exit: FaultManager::makeCreateSequenceRefusedFault");
- getOrSendFault(rmMessageContext, data, true);
+ getOrSendFault(rmMessageContext, data, true, acksToEPR);
}
/**
@@ -389,7 +385,7 @@
log.debug("Exit: FaultManager::checkForSequenceTerminated, sequence terminated");
boolean throwable = !piggybackedMessage;
- getOrSendFault(referenceRMMessage, data, throwable);
+ getOrSendFault(referenceRMMessage, data, throwable, bean.getAcksToEndpointReference());
return true;
}
@@ -429,7 +425,7 @@
log.debug("Exit: FaultManager::checkForSequenceClosed, sequence closed");
boolean throwable = !piggybackedMessage;
- getOrSendFault(referenceRMMessage, data,throwable);
+ getOrSendFault(referenceRMMessage, data,throwable, rmdBean.getAcksToEndpointReference());
return true;
}
@@ -450,11 +446,10 @@
*
* @throws AxisFault
*/
- public static void getOrSendFault(RMMsgContext referenceRMMsgContext, FaultData data, boolean throwable) throws AxisFault {
+ public static void getOrSendFault(RMMsgContext referenceRMMsgContext, FaultData data, boolean throwable, EndpointReference acksToEPR) throws AxisFault {
-
-
-
+ if (log.isDebugEnabled())
+ log.debug("Enter: FaultManager::getOrSendFault: " + referenceRMMsgContext + "," + data + "," + throwable + "," + acksToEPR);
SOAPFactory factory = (SOAPFactory) referenceRMMsgContext.getSOAPEnvelope().getOMFactory();
SOAPFaultCode faultCode = factory.createSOAPFaultCode();
@@ -492,6 +487,11 @@
// Need to send this message as the Axis Layer doesn't set the "SequenceFault" header
MessageContext faultMessageContext =
MessageContextBuilder.createFaultMessageContext(referenceRMMsgContext.getMessageContext(), null);
+ if(acksToEPR!=null){
+ if (log.isDebugEnabled())
+ log.debug("Debug: FaultManager::getOrSendFault: rewrriting fault destination EPR to " + acksToEPR);
+ faultMessageContext.setTo(acksToEPR);
+ }
SOAPFaultEnvelopeCreator.addSOAPFaultEnvelope(faultMessageContext, Sandesha2Constants.SOAPVersion.v1_1, data, referenceRMMsgContext.getRMNamespaceValue());
@@ -532,15 +532,17 @@
if (throwable)
if (referenceRMMsgContext.getMessageContext().isServerSide()) {
- throw fault;
+ if (log.isDebugEnabled())
+ log.debug("Exit: FaultManager::getOrSendFault: " + fault);
+ throw fault;
}
else
log.error("Sandesha2 got a fault when processing the message essage " + referenceRMMsgContext.getMessageId(), fault);
-
+
+ if (log.isDebugEnabled())
+ log.debug("Exit: FaultManager::getOrSendFault");
}
-
-
public static boolean isRMFault (String faultSubcodeValue) {
@@ -684,9 +686,7 @@
* Throws and AxisFault, or sends a Fault message if the condition is met.
* @throws AxisFault
*/
- public static boolean checkForMessageRolledOver(RMMsgContext rmMessageContext, String sequenceId, long msgNo)
-
- throws AxisFault {
+ public static boolean checkForMessageRolledOver(RMMsgContext rmMessageContext, String sequenceId, long msgNo, RMDBean bean)throws AxisFault {
if (msgNo == Long.MAX_VALUE) {
if (log.isDebugEnabled())
log.debug("Max message number reached " + msgNo);
@@ -716,7 +716,7 @@
data.setType(Sandesha2Constants.SOAPFaults.FaultType.MESSAGE_NUMBER_ROLLOVER);
- getOrSendFault(rmMessageContext, data, true);
+ getOrSendFault(rmMessageContext, data, true, bean.getAcksToEndpointReference());
return true;
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RMMsgCreator.java Fri Nov 9 03:30:57 2007
@@ -128,11 +128,8 @@
}
// If acksTo has not been set, then default to anonymous, using the correct spec level
- EndpointReference acksToEPR = null;
- String acksToAddress = rmsBean.getAcksToEPR();
- if(acksToAddress != null) {
- acksToEPR = new EndpointReference(acksToAddress);
- } else {
+ EndpointReference acksToEPR = rmsBean.getAcksToEndpointReference();
+ if(acksToEPR == null){
acksToEPR = new EndpointReference(SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace));
}
@@ -195,22 +192,17 @@
offerPart.setEndpoint(endpoint);
}
}
-
- String to = rmsBean.getToEPR();
- String replyTo = rmsBean.getReplyToEPR();
- if (to == null) {
+ EndpointReference toEPR = rmsBean.getToEndpointReference();
+ if (toEPR == null || toEPR.getAddress()==null) {
String message = SandeshaMessageHelper
.getMessage(SandeshaMessageKeys.toBeanNotSet);
throw new SandeshaException(message);
}
-
- // TODO store and retrieve a full EPR instead of just the address.
- EndpointReference toEPR = new EndpointReference(to);
createSeqRMMsg.setTo(toEPR);
- if(replyTo != null) {
- EndpointReference replyToEPR = new EndpointReference(replyTo);
+ EndpointReference replyToEPR = rmsBean.getReplyToEndpointReference();
+ if(replyToEPR != null) {
replyToEPR = SandeshaUtil.getEPRDecorator(createSeqRMMsg.getConfigurationContext()).decorateEndpointReference(replyToEPR);
createSeqRMMsg.setReplyTo(replyToEPR);
}
@@ -305,7 +297,7 @@
// message. If this is put, sender will look for an response.
terminateMessage.setProperty(MessageContext.TRANSPORT_IN, null);
- terminateMessage.setTo(new EndpointReference (rmsBean.getToEPR()));
+ terminateMessage.setTo(rmsBean.getToEndpointReference());
// Ensure the correct token is used to secure the terminate sequence
secureOutboundMessage(rmsBean, terminateMessage);
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SandeshaUtil.java Fri Nov 9 03:30:57 2007
@@ -657,6 +657,16 @@
return executionChainStr;
}
+
+ public static boolean hasReferenceParameters(EndpointReference epr){
+ Map refParams = epr.getAllReferenceParameters();
+ if(refParams!=null){
+ if(!refParams.isEmpty()){
+ return true;
+ }
+ }
+ return false;
+ }
public static boolean isAllMsgsAckedUpto(long highestInMsgNo, String internalSequenceId,
StorageManager storageManager) throws SandeshaException {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/SequenceManager.java Fri Nov 9 03:30:57 2007
@@ -90,9 +90,9 @@
EndpointReference acksTo = createSequence.getAcksTo().getEPR();
if (acksTo == null) {
- FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcksToPartInCreateSequence), new Exception());
+ FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcksToPartInCreateSequence), new Exception(), null);
} else if (acksTo.getAddress().equals(AddressingConstants.Final.WSA_NONE_URI)){
- FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, "AcksTo can not be " + AddressingConstants.Final.WSA_NONE_URI, new Exception());
+ FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, "AcksTo can not be " + AddressingConstants.Final.WSA_NONE_URI, new Exception(), null);
}
MessageContext createSeqContext = createSequenceMsg.getMessageContext();
@@ -107,12 +107,12 @@
rmdBean.setServerCompletedMessages(new RangeString());
- rmdBean.setReplyToEPR(to.getAddress());
- rmdBean.setAcksToEPR(acksTo.getAddress());
+ rmdBean.setReplyToEndpointReference(to);
+ rmdBean.setAcksToEndpointReference(acksTo);
// If no replyTo value. Send responses as sync.
if (replyTo != null)
- rmdBean.setToEPR(replyTo.getAddress());
+ rmdBean.setToEndpointReference(replyTo);
// Store the security token alongside the sequence
if(token != null) {
@@ -194,7 +194,7 @@
throw new SandeshaException(message);
}
- rmsBean.setToEPR(toEPR.getAddress());
+ rmsBean.setToEndpointReference(toEPR);
// Discover the correct acksTo and replyTo EPR for this RMSBean
EndpointReference acksToEPR = null;
@@ -204,9 +204,9 @@
// Server side, we want the replyTo and AcksTo EPRs to point into this server.
// We can work that out by looking at the RMD bean that pulled the message in,
// and copying its 'ReplyTo' address.
- if(inboundBean != null && inboundBean.getReplyToEPR() != null) {
- acksToEPR = new EndpointReference(inboundBean.getReplyToEPR());
- replyToEPR = new EndpointReference(inboundBean.getReplyToEPR());
+ if(inboundBean != null && inboundBean.getReplyToEndpointReference() != null) {
+ acksToEPR = inboundBean.getReplyToEndpointReference();
+ replyToEPR = inboundBean.getReplyToEndpointReference();
} else {
String beanInfo = (inboundBean == null) ? "null" : inboundBean.toString();
String message = SandeshaMessageHelper.getMessage(
@@ -250,8 +250,8 @@
}
// Store both the acksTo and replyTo
- if(replyToEPR != null) rmsBean.setReplyToEPR(replyToEPR.getAddress());
- if(acksToEPR != null) rmsBean.setAcksToEPR(acksToEPR.getAddress());
+ if(replyToEPR != null) rmsBean.setReplyToEndpointReference(replyToEPR);
+ if(acksToEPR != null) rmsBean.setAcksToEndpointReference(acksToEPR);
// New up the client completed message ranges list
rmsBean.setClientCompletedMessages(new RangeString());
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/TerminateManager.java Fri Nov 9 03:30:57 2007
@@ -74,13 +74,13 @@
//If this is RM 1.1 and RMAnonURI scenario, dont do the termination unless the response side createSequence has been
//received (RMDBean has been created) through polling, in this case termination will happen in the create sequence response processor.
String rmVersion = rmsBean.getRMVersion();
- String replyToAddress = rmsBean.getReplyToEPR();
+ EndpointReference replyTo = rmsBean.getReplyToEndpointReference();
if (complete &&
- Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(rmVersion) && SandeshaUtil.isWSRMAnonymous(replyToAddress)) {
+ Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(rmVersion) && replyTo!=null && SandeshaUtil.isWSRMAnonymous(replyTo.getAddress())) {
RMDBean findBean = new RMDBean ();
findBean.setPollingMode(true);
- findBean.setToAddress(replyToAddress);
+ findBean.setToEndpointReference(replyTo);
RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();
List beans = rmdBeanMgr.find(findBean);
@@ -93,9 +93,8 @@
// If we are doing sync 2-way over WSRM 1.0 then we may need to keep sending messages,
// so check to see if all the senders have been removed
- EndpointReference replyTo = new EndpointReference (replyToAddress);
if (complete &&
- Sandesha2Constants.SPEC_VERSIONS.v1_0.equals(rmVersion) && (replyToAddress==null || replyTo.hasAnonymousAddress())) {
+ Sandesha2Constants.SPEC_VERSIONS.v1_0.equals(rmVersion) && (replyTo==null || replyTo.hasAnonymousAddress())) {
SenderBean matcher = new SenderBean();
matcher.setMessageType(Sandesha2Constants.MessageTypes.APPLICATION);
matcher.setSequenceID(rmsBean.getSequenceID());
@@ -297,8 +296,8 @@
if (toEPR==null) {
- if (rmsBean.getToEPR()!=null) {
- toEPR = new EndpointReference(rmsBean.getToEPR());
+ if (rmsBean.getToEndpointReference()!=null) {
+ toEPR = rmsBean.getToEndpointReference();
if (toEPR == null) {
String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
throw new SandeshaException(message);
@@ -309,8 +308,8 @@
if (toEPR!=null)
terminateRMMessage.setTo(toEPR);
- if (rmsBean.getReplyToEPR()!=null) {
- terminateRMMessage.setReplyTo(new EndpointReference (rmsBean.getReplyToEPR()));
+ if (rmsBean.getReplyToEndpointReference()!=null) {
+ terminateRMMessage.setReplyTo(rmsBean.getReplyToEndpointReference());
}
String rmVersion = rmsBean.getRMVersion();
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Sender.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Sender.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Sender.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Sender.java Fri Nov 9 03:30:57 2007
@@ -432,9 +432,8 @@
inbound = SandeshaUtil.getRMDBeanFromSequenceId(manager, inboundSeq);
if(inbound != null) {
- String acksTo = inbound.getAcksToEPR();
- EndpointReference acksToEPR = new EndpointReference(acksTo);
- if(acksTo == null || acksToEPR.hasAnonymousAddress())
+ EndpointReference acksToEPR = inbound.getAcksToEndpointReference();
+ if(acksToEPR!=null && acksToEPR.hasAnonymousAddress())
sendAck = true;
}
Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/CreateSequenceRefusedFaultTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/CreateSequenceRefusedFaultTest.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/CreateSequenceRefusedFaultTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/CreateSequenceRefusedFaultTest.java Fri Nov 9 03:30:57 2007
@@ -116,8 +116,8 @@
// Create an RMSBean so the create sequence message can be created
RMSBean rmsBean = new RMSBean();
rmsBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
- rmsBean.setToEPR(to);
- rmsBean.setAcksToEPR(AddressingConstants.Final.WSA_NONE_URI);
+ rmsBean.setToEndpointReference(new EndpointReference(to));
+ rmsBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_NONE_URI));
// Create a Create Sequence message
// generating a new create sequeuce message.
@@ -145,6 +145,7 @@
return outputStream.toByteArray();
}
}
+
Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java Fri Nov 9 03:30:57 2007
@@ -25,6 +25,7 @@
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.sandesha2.RMMsgContext;
@@ -86,9 +87,9 @@
rmsBean.setCreateSeqMsgID(SandeshaUtil.getUUID());
rmsBean.setSequenceID(seqID);
rmsBean.setInternalSequenceID(SandeshaUtil.getInternalSequenceID(seqID, null));
- rmsBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmsBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmsBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmsBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmsBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmsBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmsBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmsBean.setClientCompletedMessages(new RangeString());
rmsBean.setNextMessageNumber(1);
@@ -157,9 +158,9 @@
rmsBean.setCreateSeqMsgID(SandeshaUtil.getUUID());
rmsBean.setSequenceID(seqID);
rmsBean.setInternalSequenceID(SandeshaUtil.getInternalSequenceID(seqID, null));
- rmsBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmsBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmsBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmsBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmsBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmsBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmsBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmsBean.setClientCompletedMessages(new RangeString());
rmsBean.setNextMessageNumber(4);
@@ -274,6 +275,7 @@
return bean;
}
}
+
Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/MessageNumberRolloverFaultTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/MessageNumberRolloverFaultTest.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/MessageNumberRolloverFaultTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/MessageNumberRolloverFaultTest.java Fri Nov 9 03:30:57 2007
@@ -25,6 +25,7 @@
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisOperation;
@@ -87,9 +88,9 @@
// Mockup an RMSBean
RMDBean rmdBean = new RMDBean();
rmdBean.setSequenceID(seqID);
- rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmdBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmdBean.setServerCompletedMessages(new RangeString());
rmdBean.getServerCompletedMessages().addRange(new Range(1, Long.MAX_VALUE -1));
@@ -177,4 +178,5 @@
return outputStream.toByteArray();
}
}
+
Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceClosedFaultTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceClosedFaultTest.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceClosedFaultTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceClosedFaultTest.java Fri Nov 9 03:30:57 2007
@@ -25,6 +25,7 @@
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisOperation;
@@ -86,9 +87,9 @@
// Mockup an RMDBean
RMDBean rmdBean = new RMDBean();
rmdBean.setSequenceID(seqID);
- rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmdBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmdBean.setServerCompletedMessages(new RangeString());
// Flag that the sequence is closed.
@@ -179,4 +180,5 @@
return outputStream.toByteArray();
}
}
+
Modified: webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceTerminatedFaultTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceTerminatedFaultTest.java?rev=593494&r1=593493&r2=593494&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceTerminatedFaultTest.java (original)
+++ webservices/sandesha/trunk/java/modules/tests/src/test/java/org/apache/sandesha2/faulttests/SequenceTerminatedFaultTest.java Fri Nov 9 03:30:57 2007
@@ -107,9 +107,9 @@
// Mockup an RMDBean
RMDBean rmdBean = new RMDBean();
rmdBean.setSequenceID(seqID);
- rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmdBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmdBean.setServerCompletedMessages(new RangeString());
// Flag that the sequence is terminated.
@@ -169,9 +169,9 @@
// Mockup an RMDBean
RMDBean rmdBean = new RMDBean();
rmdBean.setSequenceID(seqID);
- rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmdBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmdBean.setServerCompletedMessages(new RangeString());
// Flag that the sequence is terminated.
@@ -231,9 +231,9 @@
// Mockup an RMDBean
RMDBean rmdBean = new RMDBean();
rmdBean.setSequenceID(seqID);
- rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
- rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rmdBean.setToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setAcksToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
+ rmdBean.setReplyToEndpointReference(new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL));
rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
rmdBean.setServerCompletedMessages(new RangeString());
// Flag that the sequence is terminated.
@@ -551,6 +551,7 @@
}
}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org