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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to