You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2008/12/17 12:54:05 UTC
svn commit: r727350 - in /ode/branches/APACHE_ODE_1.X:
axis2/src/main/java/org/apache/ode/axis2/
axis2/src/main/java/org/apache/ode/axis2/hooks/
bpel-epr/src/main/java/org/apache/ode/bpel/epr/
utils/src/main/java/org/apache/ode/utils/
Author: vanto
Date: Wed Dec 17 03:54:04 2008
New Revision: 727350
URL: http://svn.apache.org/viewvc?rev=727350&view=rev
Log:
fixing ODE-465 in 1.x - code review welcome :)
Modified:
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSDL20Endpoint.java
ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/Namespaces.java
Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java?rev=727350&r1=727349&r2=727350&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/SoapExternalService.java Wed Dec 17 03:54:04 2008
@@ -43,6 +43,7 @@
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.epr.WSDL20Endpoint;
import org.apache.ode.bpel.iapi.BpelServer;
import org.apache.ode.bpel.iapi.Message;
import org.apache.ode.bpel.iapi.MessageExchange;
@@ -333,12 +334,12 @@
if (myRoleSessionId != null) {
options.setProperty(JMSConstants.JMS_COORELATION_ID, myRoleSessionId);
} else {
- Element sessionElement = DOMUtils.findChildByName(serviceElement,
- new QName(Namespaces.INTALIO_SESSION_NS, "session"), true);
- myRoleSessionId = sessionElement.getNodeValue();
- if (myRoleSessionId != null) {
- options.setProperty(JMSConstants.JMS_COORELATION_ID, myRoleSessionId);
- }
+ if (odeMex.getMyRoleEndpointReference() instanceof MutableEndpoint) {
+ WSAEndpoint epr = EndpointFactory.convertToWSA((MutableEndpoint) odeMex.getMyRoleEndpointReference());
+ if (epr.getSessionId() != null) {
+ options.setProperty(JMSConstants.JMS_COORELATION_ID, myRoleSessionId);
+ }
+ }
}
Element address = DOMUtils.findChildByName(serviceElement,
Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java?rev=727350&r1=727349&r2=727350&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/hooks/SessionOutHandler.java Wed Dec 17 03:54:04 2008
@@ -57,6 +57,7 @@
SOAPHeader header = messageContext.getEnvelope().getHeader();
SOAPFactory factory = (SOAPFactory) messageContext.getEnvelope().getOMFactory();
OMNamespace intalioSessNS = factory.createOMNamespace(Namespaces.INTALIO_SESSION_NS, "intalio");
+ OMNamespace odeSessNS = factory.createOMNamespace(Namespaces.ODE_SESSION_NS, "odesession");
OMNamespace wsAddrNS = factory.createOMNamespace(Namespaces.WS_ADDRESSING_NS, "addr");
if (header == null) {
header = factory.createSOAPHeader(messageContext.getEnvelope());
@@ -91,7 +92,11 @@
}
if (targetEpr.getSessionId() != null) {
- OMElement session = factory.createSOAPHeaderBlock("session", intalioSessNS);
+ OMElement session = factory.createSOAPHeaderBlock("session", odeSessNS);
+ header.addChild(session);
+ session.setText(targetEpr.getSessionId());
+ // same for intalio
+ session = factory.createSOAPHeaderBlock("session", intalioSessNS);
header.addChild(session);
session.setText(targetEpr.getSessionId());
}
@@ -100,15 +105,21 @@
if (ocallbackSession != null && ocallbackSession instanceof MutableEndpoint) {
WSAEndpoint callbackEpr = EndpointFactory.convertToWSA((MutableEndpoint) ocallbackSession);
- OMElement callback = factory.createSOAPHeaderBlock("callback", intalioSessNS);
- header.addChild(callback);
+ OMElement odeCallback = factory.createSOAPHeaderBlock("callback", odeSessNS);
+ OMElement intCallback = factory.createSOAPHeaderBlock("callback", intalioSessNS);
+ header.addChild(odeCallback);
+ header.addChild(intCallback);
OMElement address = factory.createOMElement("Address", wsAddrNS);
- callback.addChild(address);
+ odeCallback.addChild(address);
+ intCallback.addChild(address.cloneOMElement());
address.setText(callbackEpr.getUrl());
if (callbackEpr.getSessionId() != null) {
- OMElement session = factory.createOMElement("session", intalioSessNS);
- session.setText(callbackEpr.getSessionId());
- callback.addChild(session);
+ OMElement odeSession = factory.createOMElement("session", odeSessNS);
+ OMElement intSession = factory.createOMElement("session", intalioSessNS);
+ odeSession.setText(callbackEpr.getSessionId());
+ intSession.setText(callbackEpr.getSessionId());
+ odeCallback.addChild(odeSession);
+ intCallback.addChild(intSession);
}
__log.debug("Sending stateful FROM epr in message header using session " + callbackEpr.getSessionId());
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java?rev=727350&r1=727349&r2=727350&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java Wed Dec 17 03:54:04 2008
@@ -50,15 +50,31 @@
}
public String getSessionId() {
- NodeList idNodes = _eprElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
- if (idNodes.getLength() > 0)
+ NodeList idNodes = _eprElmt.getElementsByTagNameNS(Namespaces.ODE_SESSION_NS, "session");
+ if (idNodes.getLength() > 0) {
return idNodes.item(0).getTextContent();
- else
- return null;
+ } else {
+ // try the same with the intalio header
+ idNodes = _eprElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
+ if (idNodes.getLength() > 0) {
+ return idNodes.item(0).getTextContent();
+ }
+ return null;
+ }
}
public void setSessionId(String sessionId) {
- NodeList idList = _eprElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
+ NodeList idList = _eprElmt.getElementsByTagNameNS(Namespaces.ODE_SESSION_NS, "session");
+ if (idList.getLength() > 0)
+ idList.item(0).setTextContent(sessionId);
+ else {
+ Element sessElmt = _eprElmt.getOwnerDocument().createElementNS(Namespaces.ODE_SESSION_NS, "session");
+ sessElmt.setTextContent(sessionId);
+ _eprElmt.appendChild(sessElmt);
+ }
+
+ // and the same for the intalio header
+ idList = _eprElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
if (idList.getLength() > 0)
idList.item(0).setTextContent(sessionId);
else {
@@ -190,7 +206,11 @@
Element addrElmt = doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "Address");
addrElmt.setTextContent((String) eprMap.get(ADDRESS));
if (eprMap.get(SESSION) != null) {
- Element sessElmt = doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+ Element sessElmt = doc.createElementNS(Namespaces.ODE_SESSION_NS, "session");
+ sessElmt.setTextContent((String) eprMap.get(SESSION));
+ _eprElmt.appendChild(sessElmt);
+ // and the same for the (deprecated) intalio namespace for backward compatibility
+ sessElmt = doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
sessElmt.setTextContent((String) eprMap.get(SESSION));
_eprElmt.appendChild(sessElmt);
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSDL20Endpoint.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSDL20Endpoint.java?rev=727350&r1=727349&r2=727350&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSDL20Endpoint.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSDL20Endpoint.java Wed Dec 17 03:54:04 2008
@@ -40,25 +40,44 @@
}
public String getSessionId() {
- Element endpointElmt = (Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0);
- NodeList idNodes = endpointElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
- if (idNodes.getLength() > 0) return idNodes.item(0).getTextContent();
- else return null;
+ Element endpointElmt = (Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0);
+ NodeList idNodes = endpointElmt.getElementsByTagNameNS(Namespaces.ODE_SESSION_NS, "session");
+ if (idNodes.getLength() > 0) {
+ return idNodes.item(0).getTextContent();
+ } else {
+ // try the same with the intalio header
+ idNodes = endpointElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
+ if (idNodes.getLength() > 0) {
+ return idNodes.item(0).getTextContent();
+ }
+ return null;
+ }
}
public void setSessionId(String sessionId) {
- Element endpointElmt = (Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0);
- NodeList idList = endpointElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
- if (idList.getLength() > 0) idList.item(0).setTextContent(sessionId);
- else {
- Element sessElmt = _serviceElmt.getOwnerDocument().createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
- sessElmt.setTextContent(sessionId);
- endpointElmt.appendChild(sessElmt);
- }
+ Element endpointElmt = (Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0);
+ NodeList idList = endpointElmt.getElementsByTagNameNS(Namespaces.ODE_SESSION_NS, "session");
+ if (idList.getLength() > 0)
+ idList.item(0).setTextContent(sessionId);
+ else {
+ Element sessElmt = endpointElmt.getOwnerDocument().createElementNS(Namespaces.ODE_SESSION_NS, "session");
+ sessElmt.setTextContent(sessionId);
+ endpointElmt.appendChild(sessElmt);
+ }
+
+ // and the same for the intalio header
+ idList = endpointElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "session");
+ if (idList.getLength() > 0)
+ idList.item(0).setTextContent(sessionId);
+ else {
+ Element sessElmt = endpointElmt.getOwnerDocument().createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+ sessElmt.setTextContent(sessionId);
+ endpointElmt.appendChild(sessElmt);
+ }
}
public String getUrl() {
- return ((Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0)).getAttribute("address");
+ return ((Element)_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").item(0)).getAttribute("address");
}
public void setUrl(String url) {
@@ -105,7 +124,7 @@
HashMap<String,String> result = new HashMap<String,String>(1);
result.put(ADDRESS, getUrl());
String sid = getSessionId();
- if (sid != null) result.put(ADDRESS, sid);
+ if (sid != null) result.put(SESSION, sid);
return result;
}
@@ -122,9 +141,13 @@
endpoint.setAttribute("binding", "");
if (eprMap.get(ADDRESS) != null) endpoint.setAttribute("address", (String) eprMap.get(ADDRESS));
if (eprMap.get(SESSION) != null) {
- Element session = doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
- session.setTextContent((String) eprMap.get(SESSION));
- endpoint.appendChild(session);
+ Element session = doc.createElementNS(Namespaces.ODE_SESSION_NS, "session");
+ session.setTextContent((String) eprMap.get(SESSION));
+ endpoint.appendChild(session);
+ // plus the deprecated intalio header
+ session = doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "session");
+ session.setTextContent((String) eprMap.get(SESSION));
+ endpoint.appendChild(session);
}
_serviceElmt.appendChild(endpoint);
doc.appendChild(_serviceElmt);
Modified: ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/Namespaces.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/Namespaces.java?rev=727350&r1=727349&r2=727350&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/Namespaces.java (original)
+++ ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/Namespaces.java Wed Dec 17 03:54:04 2008
@@ -60,6 +60,7 @@
public static final String ODE_EXTENSION_NS = "http://www.apache.org/ode/type/extension";
public static final String ODE_HTTP_EXTENSION_NS = "http://www.apache.org/ode/type/extension/http";
public static final String INTALIO_SESSION_NS = "http://www.intalio.com/type/session";
+ public static final String ODE_SESSION_NS = "http://www.apache.org/ode/type/session";
public static final String DEPRECATED_XDT_NS = "http://www.w3.org/2003/11/xpath-datatypes";
}