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