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 2008/01/29 11:52:56 UTC

svn commit: r616250 - in /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2: msgprocessors/CreateSeqMsgProcessor.java util/RMMsgCreator.java

Author: mckierna
Date: Tue Jan 29 02:52:55 2008
New Revision: 616250

URL: http://svn.apache.org/viewvc?rev=616250&view=rev
Log:
See SANDESHA2-136

Modified:
    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/util/RMMsgCreator.java

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=616250&r1=616249&r2=616250&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 Tue Jan 29 02:52:55 2008
@@ -54,6 +54,7 @@
 import org.apache.sandesha2.util.RangeString;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.SequenceManager;
+import org.apache.sandesha2.util.SpecSpecificConstants;
 import org.apache.sandesha2.util.TerminateManager;
 import org.apache.sandesha2.wsrm.Accept;
 import org.apache.sandesha2.wsrm.CreateSequence;
@@ -155,7 +156,7 @@
 			
 			CreateSequenceResponse createSeqResPart = createSeqResponse.getCreateSequenceResponse();
 	
-				// OFFER PROCESSING
+			// OFFER PROCESSING
 			SequenceOffer offer = createSeqPart.getSequenceOffer();
 			if (offer != null) {
 				Accept accept = createSeqResPart.getAccept();
@@ -176,10 +177,37 @@
 				
 				boolean offerAccepted = offerAccepted(offeredSequenceID, context, createSeqRMMsg, storageManager);
 	
+				RMSBean rMSBean = null;
+				//Before processing this offer any further we need to perform some extra checks 
+				//on the offered EP if WS-RM Spec 1.1 is being used
+				if(offerAccepted && Sandesha2Constants.SPEC_VERSIONS.v1_1.equals(rmdBean.getRMVersion())){
+					Endpoint endpoint = offer.getEndpoint();
+					if (endpoint!=null) {
+						//Check to see if the offer endpoint has a value of WSA Anonymous
+						String addressingNamespace = (String) createSeqRMMsg.getProperty(AddressingConstants.WS_ADDRESSING_VERSION);
+						if(endpoint.equals(SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace))){
+							//Don't accept the offer
+							if (log.isDebugEnabled())
+								log.debug("Offer Refused as it included a WSA Anonymous endpoint");	
+							offerAccepted = false;
+						} else {
+							rMSBean = new RMSBean();
+							//Set the offered EP
+							rMSBean.setOfferedEndPoint(endpoint.getEPR().getAddress());
+						}
+					} else {
+						//Don't accept the offer
+						if (log.isDebugEnabled())
+							log.debug("Offer Refused as it included a null endpoint");	
+						offerAccepted = false;
+					}
+				} else if (offerAccepted && Sandesha2Constants.SPEC_VERSIONS.v1_0.equals(rmdBean.getRMVersion())){
+					rMSBean = new RMSBean(); 
+				}
+				
 				if (offerAccepted) {
 					// Setting the CreateSequence table entry for the outgoing
 					// side.
-					RMSBean rMSBean = new RMSBean();
 					rMSBean.setSequenceID(offeredSequenceID);
 					String outgoingSideInternalSequenceId = SandeshaUtil
 							.getOutgoingSideInternalSequenceID(rmdBean.getSequenceID());
@@ -206,12 +234,6 @@
 					// Setting sequence properties for the outgoing sequence.
 					// Only will be used by the server side response path. Will
 					// be wasted properties for the client side.
-						
-					Endpoint endpoint = offer.getEndpoint();
-					if (endpoint!=null) {
-						// setting the OfferedEndpoint
-						rMSBean.setOfferedEndPoint(endpoint.getEPR().getAddress());
-					}
 		
 					rmdBean.setOutboundInternalSequence(outgoingSideInternalSequenceId);
 					RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();

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=616250&r1=616249&r2=616250&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 Tue Jan 29 02:52:55 2008
@@ -186,7 +186,8 @@
 				}
 				// Finally fall back to using an anonymous endpoint
 				if (offeredEndpoint==null) {
-					offeredEndpoint = new EndpointReference(SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace));
+					//The replyTo has already been set to a MC anon with UUID and so will use that same one for the offered endpoint  
+					offeredEndpoint = rmsBean.getReplyToEndpointReference();
 				}
 				Endpoint endpoint = new Endpoint (offeredEndpoint, rmNamespaceValue, addressingNamespace);
 				offerPart.setEndpoint(endpoint);



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org