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;
+ }
}