You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2009/01/14 00:38:53 UTC
svn commit: r734275 - in /ode/branches/restful:
bpel-api/src/main/java/org/apache/ode/bpel/iapi/
engine/src/main/java/org/apache/ode/bpel/engine/
runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/
Author: mriou
Date: Tue Jan 13 15:38:52 2009
New Revision: 734275
URL: http://svn.apache.org/viewvc?rev=734275&view=rev
Log:
Most of the logic to allow outgoing HTTP requests is in place.
Modified:
ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/iapi/RESTOutMessageExchange.java
ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/ODERESTProcess.java
ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/RESTOutMessageExchangeImpl.java
ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java
ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
Modified: ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/iapi/RESTOutMessageExchange.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/iapi/RESTOutMessageExchange.java?rev=734275&r1=734274&r2=734275&view=diff
==============================================================================
--- ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/iapi/RESTOutMessageExchange.java (original)
+++ ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/iapi/RESTOutMessageExchange.java Tue Jan 13 15:38:52 2009
@@ -6,7 +6,7 @@
* Outgoing RESTful message exchange implemented by the engine and used by IL implementations
* that can provide RESTful interactions.
*/
-public interface RESTOutMessageExchange {
+public interface RESTOutMessageExchange extends MessageExchange {
Resource getTargetResource();
Modified: ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/ODERESTProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/ODERESTProcess.java?rev=734275&r1=734274&r2=734275&view=diff
==============================================================================
--- ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/ODERESTProcess.java (original)
+++ ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/ODERESTProcess.java Tue Jan 13 15:38:52 2009
@@ -135,7 +135,7 @@
mexdao.setStatus(MessageExchange.Status.REQ);
try {
String[] resStr = mexdao.getResource().split("~");
- RESTOutMessageExchangeImpl outMex = new RESTOutMessageExchangeImpl(this,
+ RESTOutMessageExchangeImpl outMex = new RESTOutMessageExchangeImpl(this, mexdao.getInstance().getInstanceId(),
mexdao.getMessageExchangeId(), new Resource(resStr[0], "application/xml", resStr[1]));
outMex.request();
@@ -235,6 +235,7 @@
// Handle system failure in a transaction
final Throwable ferr = err;
if (ferr != null) {
+ __log.debug("Request failure from instance " + _restMex.getIID() + " for url " + _restMex.getTargetResource().getUrl());
enqueueInstanceTransaction(_restMex.getIID(), new Runnable() {
public void run() {
MessageExchangeDAO mexdao = loadMexDao(_restMex.getMessageExchangeId());
Modified: ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/RESTOutMessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/RESTOutMessageExchangeImpl.java?rev=734275&r1=734274&r2=734275&view=diff
==============================================================================
--- ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/RESTOutMessageExchangeImpl.java (original)
+++ ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/RESTOutMessageExchangeImpl.java Tue Jan 13 15:38:52 2009
@@ -2,6 +2,7 @@
import org.apache.ode.bpel.iapi.*;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
+import org.apache.ode.bpel.dao.MessageDAO;
import org.w3c.dom.Element;
public class RESTOutMessageExchangeImpl extends MessageExchangeImpl implements RESTOutMessageExchange {
@@ -20,8 +21,8 @@
DEAD
};
- public RESTOutMessageExchangeImpl(ODEProcess process, String mexId, Resource resource) {
- super(process, null, mexId, null, null, null);
+ public RESTOutMessageExchangeImpl(ODEProcess process, Long iid, String mexId, Resource resource) {
+ super(process, iid, mexId, null, null, null);
_resource = resource;
}
@@ -38,6 +39,7 @@
_fault = null;
_failureType = null;
ack(AckType.RESPONSE);
+ save();
}
public void replyWithFailure(FailureType type, String description, Element details) throws BpelEngineException {
@@ -46,6 +48,7 @@
_fault = null;
_response = null;
ack(AckType.FAILURE);
+ save();
}
@Override
@@ -60,6 +63,12 @@
void save(MessageExchangeDAO dao) {
super.save(dao);
dao.setResource(_resource.getUrl() + "~" + _resource.getMethod());
+ if (_response != null) {
+ MessageDAO responseDao = dao.createMessage(_response.getType());
+ responseDao.setData(_response.getMessage());
+ responseDao.setHeader(_response.getHeader());
+ dao.setResponse(responseDao);
+ }
}
public void setState(State s) {
Modified: ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java?rev=734275&r1=734274&r2=734275&view=diff
==============================================================================
--- ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java (original)
+++ ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java Tue Jan 13 15:38:52 2009
@@ -229,7 +229,8 @@
}
}
- if (oinvoke.operation.getInput().getMessage().getParts().size() > 0) {
+ if ((oinvoke.operation != null && oinvoke.operation.getInput().getMessage().getParts().size() > 0)
+ || (oinvoke.isRestful() && oinvoke.inputVar != null)) {
sendVariableReadEvent(_scopeFrame.resolve(oinvoke.inputVar));
Node outboundMsg = fetchVariableData(_scopeFrame.resolve(oinvoke.inputVar), false);
// TODO outbound message should be updated with non-initiate correlation sets
Modified: ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java?rev=734275&r1=734274&r2=734275&view=diff
==============================================================================
--- ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java (original)
+++ ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java Tue Jan 13 15:38:52 2009
@@ -579,8 +579,7 @@
// borrowed from ASSIGN.evalQuery()
Node ret = DOMUtils.findChildByName(message, new QName(null, part.name));
if (part.type instanceof OElementVarType) {
- QName elName = ((OElementVarType) part.type).elementType;
- ret = DOMUtils.findChildByName((Element) ret, elName);
+ ret = DOMUtils.getFirstChildElement((Element) ret);
} else if (part.type == null) {
// Special case of header parts never referenced in the WSDL def
if (ret != null && ret.getNodeType() == Node.ELEMENT_NODE