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/03/26 22:46:51 UTC

svn commit: r758875 - in /ode/branches/restful: bpel-api/src/main/java/org/apache/ode/bpel/rapi/ bpel-dao/src/main/java/org/apache/ode/bpel/dao/ dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ dao-jpa/src/main/java/org/apache/ode/dao/jpa/ engin...

Author: mriou
Date: Thu Mar 26 21:46:50 2009
New Revision: 758875

URL: http://svn.apache.org/viewvc?rev=758875&view=rev
Log:
Recreating resources from routes on restart.

Modified:
    ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/rapi/ProcessModel.java
    ode/branches/restful/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
    ode/branches/restful/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
    ode/branches/restful/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
    ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.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/memdao/BpelDAOConnectionImpl.java
    ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OProcess.java
    ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java

Modified: ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/rapi/ProcessModel.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/rapi/ProcessModel.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/rapi/ProcessModel.java (original)
+++ ode/branches/restful/bpel-api/src/main/java/org/apache/ode/bpel/rapi/ProcessModel.java Thu Mar 26 21:46:50 2009
@@ -24,4 +24,6 @@
     ActivityModel getChild(final int id);
 
     int getModelVersion();
+
+    byte[] getGlobalState();
 }

Modified: ode/branches/restful/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java (original)
+++ ode/branches/restful/bpel-dao/src/main/java/org/apache/ode/bpel/dao/BpelDAOConnection.java Thu Mar 26 21:46:50 2009
@@ -123,4 +123,8 @@
 
     void deleteResourceRoute(String url, String method);
 
+    /**
+     * Potentially loads a lot of (small) records, handle with care.
+     */
+    List<ResourceRouteDAO> getAllResourceRoutes();
 }

Modified: ode/branches/restful/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java (original)
+++ ode/branches/restful/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java Thu Mar 26 21:46:50 2009
@@ -102,6 +102,14 @@
                 .setString("url", url).setString("method", method).executeUpdate();
     }
 
+    public List<ResourceRouteDAO> getAllResourceRoutes() {
+        List<HResourceRoute> hrr = _session.createCriteria(HResourceRoute.class).list();
+        ArrayList<ResourceRouteDAO> rr = new ArrayList<ResourceRouteDAO>(hrr.size());
+        for (HResourceRoute hroute : hrr)
+            rr.add(new ResourceRouteDaoImpl(_sm, hroute));
+        return rr;
+    }
+
     public ProcessDAO createProcess(QName pid, QName type, String guid, long version) {
         HProcess process = new HProcess();
         process.setProcessId(pid.toString());

Modified: ode/branches/restful/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java (original)
+++ ode/branches/restful/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java Thu Mar 26 21:46:50 2009
@@ -307,6 +307,10 @@
         return m;
     }
 
+    public List<ResourceRouteDAO> getAllResourceRoutes() {
+        return _em.createQuery("select r from ResourceRouteDAOImpl r").getResultList();
+    }
+
     public void deleteResourceRoute(String url, String method) {
         _em.createQuery("delete from ResourceRouteDAOImpl r where r._url = ?1 and r._method = ?2")
             .setParameter(1, url).setParameter(2, method).executeUpdate();

Modified: ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java (original)
+++ ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java Thu Mar 26 21:46:50 2009
@@ -343,7 +343,7 @@
             ODEProcess process;
             if (conf.isRestful()) {
                 ODERESTProcess restProcess = new ODERESTProcess(this, conf, null, _incomingMexCache);
-                for (String resUrl : restProcess.getInitialResourceUrls()) {
+                for (String resUrl : restProcess.initResources()) {
                     _restServiceMap.put(resUrl, restProcess);
                 }
                 process = restProcess;

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=758875&r1=758874&r2=758875&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 Thu Mar 26 21:46:50 2009
@@ -12,6 +12,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
+import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Callable;
 
@@ -28,7 +29,7 @@
         _runtime.init(_pconf, _processModel);
     }
 
-    public Collection<String> getInitialResourceUrls() {
+    public Collection<String> initResources() {
         if (_staticResources.size() > 0 ) return _staticResources.values();
 
         // Caching instantiating resource urls as those can be expressions
@@ -49,6 +50,26 @@
 
     void activate() {
         bounceProcessDAO();
+        // Resources to activate are the instantiating ones plus the waiting routes.
+
+        List<ResourceRouteDAO> rrDaos;
+        try {
+            rrDaos = _contexts.execTransaction(new Callable<List<ResourceRouteDAO>>() {
+                public List<ResourceRouteDAO> call() throws Exception {
+                    return _contexts.dao.getConnection().getAllResourceRoutes();
+                }
+            });
+        } catch (Exception ex) {
+            String errmsg = "DbError";
+            __log.error(errmsg, ex);
+            throw new BpelEngineException(errmsg, ex);
+        }
+
+        for (ResourceRouteDAO rrDao : rrDaos) {
+            Resource resource = new Resource(rrDao.getUrl(), "application/xml", rrDao.getMethod());
+            _contexts.bindingContext.activateProvidedResource(resource);
+            _instantiatingResources.add(resource);
+        }
 
         // Activating instantiating resources
         for (ResourceModel resourceModel : _staticResources.keySet()) {

Modified: ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java (original)
+++ ode/branches/restful/engine/src/main/java/org/apache/ode/bpel/memdao/BpelDAOConnectionImpl.java Thu Mar 26 21:46:50 2009
@@ -239,6 +239,10 @@
         _resRouteStore.remove(url+"~"+method);
     }
 
+    public List<ResourceRouteDAO> getAllResourceRoutes() {
+        return new ArrayList<ResourceRouteDAO>(_resRouteStore.values());
+    }
+
     public void addResourceRoute(ResourceRouteDAOImpl rroute) {
         _resRouteStore.put(rroute.getUrl()+"~"+rroute.getMethod(), rroute);
     }

Modified: ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OProcess.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OProcess.java (original)
+++ ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OProcess.java Thu Mar 26 21:46:50 2009
@@ -217,4 +217,8 @@
     public Collection<? extends ResourceModel> getProvidedResources() {
         return null;
     }
+
+    public byte[] getGlobalState() {
+        return null;
+    }
 }

Modified: ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java?rev=758875&r1=758874&r2=758875&view=diff
==============================================================================
--- ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java (original)
+++ ode/branches/restful/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java Thu Mar 26 21:46:50 2009
@@ -242,4 +242,8 @@
     public int getModelVersion() {
         return 2;
     }
+
+    public byte[] getGlobalState() {
+        return globalState;
+    }
 }