Repository: ode
Updated Branches:
  refs/heads/ode-1.3.x ee890b452 -> bb4789156


Ported changes for Session IN/OUT handlers from master commits 
b5f3029782ba61532faf839409233d82ee2e873f
and 609b0a419fe7f380afadec66ae7c12a0784f0cc2


Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/bb478915
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/bb478915
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/bb478915

Branch: refs/heads/ode-1.3.x
Commit: bb47891562ecdcadeb62a5f3dfab1e1359ecabc1
Parents: ee890b4
Author: sathwik <[email protected]>
Authored: Mon Jun 22 15:17:48 2015 +0530
Committer: sathwik <[email protected]>
Committed: Mon Jun 22 15:17:48 2015 +0530

----------------------------------------------------------------------
 .../java/org/apache/ode/axis2/ODEService.java   |  8 +++--
 .../apache/ode/axis2/SoapExternalService.java   |  4 +--
 .../ode/axis2/hooks/SessionInHandler.java       | 35 ++++++++++++++------
 .../ode/axis2/hooks/SessionOutHandler.java      | 14 ++++----
 4 files changed, 39 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/bb478915/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
----------------------------------------------------------------------
diff --git a/axis2/src/main/java/org/apache/ode/axis2/ODEService.java 
b/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
index b43bd45..af57039 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
@@ -77,6 +77,8 @@ public class ODEService {
     private String _portName;
     private WSAEndpoint _serviceRef;
     private SoapMessageConverter _converter;
+    public static final String CALLBACK_SESSION_ENDPOINT = 
"callbackSessionEndpoint";
+    public static final String TARGET_SESSION_ENDPOINT = 
"targetSessionEndpoint";
 
     public ODEService(AxisService axisService, ProcessConf pconf, QName 
serviceName, String portName, BpelServer server,
                       TransactionManager txManager) throws AxisFault {
@@ -282,7 +284,7 @@ public class ODEService {
         if (correlationId != null) {
             odeMex.setProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID, 
correlationId);
         } else {
-            Object otse = msgContext.getProperty("targetSessionEndpoint");
+            Object otse = msgContext.getProperty(TARGET_SESSION_ENDPOINT);
             if (otse != null) {
                 Element serviceEpr = (Element) otse;
                 WSAEndpoint endpoint = new WSAEndpoint();
@@ -292,7 +294,7 @@ public class ODEService {
             }
         }
         
-        Object ocse = msgContext.getProperty("callbackSessionEndpoint");
+        Object ocse = msgContext.getProperty(CALLBACK_SESSION_ENDPOINT);
         if (ocse != null) {
             Element serviceEpr = (Element) ocse;
             WSAEndpoint endpoint = new WSAEndpoint();
@@ -322,7 +324,7 @@ public class ODEService {
         if (odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID) 
!= null) {
             WSAEndpoint sessionAwareEndPoint = new WSAEndpoint(_serviceRef); 
             
sessionAwareEndPoint.setSessionId(odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID));
-            msgContext.setProperty("callbackSessionEndpoint", 
sessionAwareEndPoint);
+            msgContext.setProperty(CALLBACK_SESSION_ENDPOINT, 
sessionAwareEndPoint);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/ode/blob/bb478915/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
----------------------------------------------------------------------
diff --git a/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java 
b/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
index f01886e..77d85d6 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
@@ -339,7 +339,7 @@ public class SoapExternalService implements ExternalService 
{
             }
             targetEPR.setSessionId(partnerSessionId);
         }
-        options.setProperty("targetSessionEndpoint", targetEPR);
+        options.setProperty(ODEService.TARGET_SESSION_ENDPOINT, targetEPR);
 
         if (myRoleWSAEPR != null) {
             WSAEndpoint myRoleEPR = new WSAEndpoint(myRoleWSAEPR);
@@ -350,7 +350,7 @@ public class SoapExternalService implements ExternalService 
{
                 }
                 myRoleEPR.setSessionId(myRoleSessionId);
             }
-            options.setProperty("callbackSessionEndpoint", myRoleEPR);
+            options.setProperty(ODEService.CALLBACK_SESSION_ENDPOINT, 
myRoleEPR);
 
             // Map My Session ID to JMS Correlation ID
             Document callbackEprXml = 
odeMex.getMyRoleEndpointReference().toXML();

http://git-wip-us.apache.org/repos/asf/ode/blob/bb478915/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
----------------------------------------------------------------------
diff --git 
a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java 
b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
index 8b450d7..9dd6a88 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionInHandler.java
@@ -26,6 +26,7 @@ import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.ode.axis2.ODEService;
 import org.apache.ode.utils.DOMUtils;
 import org.apache.ode.utils.Namespaces;
 import org.w3c.dom.Document;
@@ -48,15 +49,21 @@ public class SessionInHandler extends AbstractHandler {
             if (__log.isDebugEnabled())
                 __log.debug("Found a header in incoming message, checking if 
there are endpoints there.");
             // Checking if a session identifier has been provided for a 
stateful endpoint
-            OMElement wsaToSession = header.getFirstChildWithName(new 
QName(Namespaces.INTALIO_SESSION_NS, "session"));
+            OMElement wsaToSession = header.getFirstChildWithName(new 
QName(Namespaces.ODE_SESSION_NS, "session"));
+            if (wsaToSession == null) {
+                wsaToSession = header.getFirstChildWithName(new 
QName(Namespaces.INTALIO_SESSION_NS, "session"));
+            }
             if (wsaToSession != null) {
                 // Building an endpoint supposed to target the right instance
                 Document doc = DOMUtils.newDocument();
                 Element serviceEpr = 
doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "EndpointReference");
-                Element sessionId = 
doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+                Element intSessionId = 
doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+                Element odeSessionId = 
doc.createElementNS(Namespaces.ODE_SESSION_NS, "session");
                 doc.appendChild(serviceEpr);
-                serviceEpr.appendChild(sessionId);
-                sessionId.setTextContent(wsaToSession.getText());
+                serviceEpr.appendChild(intSessionId);
+                serviceEpr.appendChild(odeSessionId);
+                intSessionId.setTextContent(wsaToSession.getText());
+                odeSessionId.setTextContent(wsaToSession.getText());
                 if (__log.isDebugEnabled())
                     __log.debug("A TO endpoint has been found in the header 
with session: " + wsaToSession.getText());
 
@@ -69,11 +76,14 @@ public class SessionInHandler extends AbstractHandler {
                 }
                 if (__log.isDebugEnabled())
                     __log.debug("Constructed a TO endpoint: " + 
DOMUtils.domToString(serviceEpr));
-                messageContext.setProperty("targetSessionEndpoint", 
serviceEpr);
+                messageContext.setProperty(ODEService.TARGET_SESSION_ENDPOINT, 
serviceEpr);
             }
 
             // Seeing if there's a callback, in case our client would be 
stateful as well
-            OMElement callback = header.getFirstChildWithName(new 
QName(Namespaces.INTALIO_SESSION_NS, "callback"));
+            OMElement callback = header.getFirstChildWithName(new 
QName(Namespaces.ODE_SESSION_NS, "callback"));
+            if (callback == null) {
+                callback = header.getFirstChildWithName(new 
QName(Namespaces.INTALIO_SESSION_NS, "callback"));
+            }
             if (callback != null) {
                 OMElement callbackSession = callback.getFirstChildWithName(new 
QName(Namespaces.ODE_SESSION_NS, "session"));
                 if(callbackSession==null){
@@ -83,10 +93,13 @@ public class SessionInHandler extends AbstractHandler {
                     // Building an endpoint that represents our client (we're 
supposed to call him later on)
                     Document doc = DOMUtils.newDocument();
                     Element serviceEpr = 
doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "EndpointReference");
-                    Element sessionId = 
doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+                    Element intSessionId = 
doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+                    Element odeSessionId = 
doc.createElementNS(Namespaces.ODE_SESSION_NS, "session");
                     doc.appendChild(serviceEpr);
-                    serviceEpr.appendChild(sessionId);
-                    sessionId.setTextContent(callbackSession.getText());
+                    serviceEpr.appendChild(intSessionId);
+                    serviceEpr.appendChild(odeSessionId);
+                    intSessionId.setTextContent(callbackSession.getText());
+                    odeSessionId.setTextContent(callbackSession.getText());
                     if (__log.isDebugEnabled())
                         __log.debug("A CALLBACK endpoint has been found in the 
header with session: " + callbackSession.getText());
 
@@ -99,11 +112,11 @@ public class SessionInHandler extends AbstractHandler {
                     }
                     if (__log.isDebugEnabled())
                         __log.debug("Constructed a CALLBACK endpoint: " + 
DOMUtils.domToString(serviceEpr));
-                    messageContext.setProperty("callbackSessionEndpoint", 
serviceEpr);
+                    
messageContext.setProperty(ODEService.CALLBACK_SESSION_ENDPOINT, serviceEpr);
                 }
             }
         }
         return InvocationResponse.CONTINUE;
     }
 
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ode/blob/bb478915/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
----------------------------------------------------------------------
diff --git 
a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java 
b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
index cc9855b..e58c45e 100644
--- a/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
+++ b/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
@@ -29,12 +29,13 @@ import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.ode.axis2.ODEService;
 import org.apache.ode.bpel.epr.EndpointFactory;
 import org.apache.ode.bpel.epr.MutableEndpoint;
 import org.apache.ode.bpel.epr.WSAEndpoint;
 import org.apache.ode.bpel.iapi.EndpointReference;
 import org.apache.ode.utils.Namespaces;
-import org.apache.ode.utils.Properties;
+
 
 /**
  * An outgoing handler adding session id information in the message
@@ -53,12 +54,12 @@ public class SessionOutHandler extends AbstractHandler {
             return InvocationResponse.CONTINUE;
         }
 
-        EndpointReference otargetSession = (EndpointReference) 
messageContext.getProperty("targetSessionEndpoint");
-        EndpointReference ocallbackSession = (EndpointReference) 
messageContext.getProperty("callbackSessionEndpoint");
+        EndpointReference otargetSession = (EndpointReference) 
messageContext.getProperty(ODEService.TARGET_SESSION_ENDPOINT);
+        EndpointReference ocallbackSession = (EndpointReference) 
messageContext.getProperty(ODEService.CALLBACK_SESSION_ENDPOINT);
         if (otargetSession == null)
-            otargetSession = (EndpointReference) 
messageContext.getOptions().getProperty("targetSessionEndpoint");
+            otargetSession = (EndpointReference) 
messageContext.getOptions().getProperty(ODEService.TARGET_SESSION_ENDPOINT);
         if (ocallbackSession == null)
-            ocallbackSession = (EndpointReference) 
messageContext.getOptions().getProperty("callbackSessionEndpoint");
+            ocallbackSession = (EndpointReference) 
messageContext.getOptions().getProperty(ODEService.CALLBACK_SESSION_ENDPOINT);
 
         if (otargetSession != null || ocallbackSession != null) {
             SOAPHeader header = messageContext.getEnvelope().getHeader();
@@ -117,9 +118,10 @@ public class SessionOutHandler extends AbstractHandler {
                 header.addChild(odeCallback);
                 header.addChild(intCallback);
                 OMElement address = factory.createOMElement("Address", 
wsAddrNS);
+                address.setText(callbackEpr.getUrl());
                 odeCallback.addChild(address);
                 intCallback.addChild(address.cloneOMElement());
-                address.setText(callbackEpr.getUrl());
+
                 if (callbackEpr.getSessionId() != null) {
                     OMElement odeSession = factory.createOMElement("session", 
odeSessNS);
                     OMElement intSession = factory.createOMElement("session", 
intalioSessNS);

Reply via email to