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/07 03:00:49 UTC
svn commit: r732195 [2/2] - in /ode/branches/APACHE_ODE_1.X:
axis2/src/main/java/org/apache/ode/axis2/
bpel-api/src/main/java/org/apache/ode/bpel/common/
bpel-api/src/main/java/org/apache/ode/bpel/iapi/
bpel-dao/src/main/java/org/apache/ode/bpel/dao/ b...
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java Tue Jan 6 18:00:47 2009
@@ -21,9 +21,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.CorrelationKey;
+import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.CorrelatorDAO;
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
+import org.apache.ode.bpel.dao.CorrelationSetDAO;
import org.apache.ode.daohib.SessionManager;
import org.apache.ode.daohib.bpel.hobj.HActivityRecovery;
import org.apache.ode.daohib.bpel.hobj.HBpelEvent;
@@ -53,6 +55,7 @@
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
+import java.util.ArrayList;
/**
* Hibernate-based {@link ProcessDAO} implementation.
@@ -216,7 +219,16 @@
return new CorrelatorDaoImpl(_sm, correlator);
}
- public int getNumInstances() {
+ public Collection<ProcessInstanceDAO> getActiveInstances() {
+ ArrayList<ProcessInstanceDAO> instDaos = new ArrayList<ProcessInstanceDAO>();
+ Collection<HProcessInstance> insts = getSession().getNamedQuery(HProcessInstance.SELECT_ACTIVE_INSTANCES)
+ .setParameter("processId", _process.getId()).setParameter("state", ProcessState.STATE_ACTIVE).list();
+ for (HProcessInstance inst : insts)
+ instDaos.add(new ProcessInstanceDaoImpl(_sm, inst));
+ return instDaos;
+ }
+
+ public int getNumInstances() {
entering("ProcessDaoImpl.getNumInstances");
// this should be efficient if the relation is tagged as extra-lazy.
// If the collection is not initialized yet, Hibernate will do a count(*) and the whole collection will not be fetched.
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java Tue Jan 6 18:00:47 2009
@@ -28,107 +28,109 @@
* @hibernate.query name="DELETE_CORSETS_BY_INSTANCE" query="delete from HCorrelationSet as c where c.instance = :instance"
* @hibernate.query name="DELETE_CORSETS_BY_PROCESS" query="delete from HCorrelationSet as c where c.process = :process"
* @hibernate.query name="SELECT_CORSETS_BY_INSTANCES" query="from HCorrelationSet as c left join fetch c.properties where c.instance.id in (:instances)"
+ * @hibernate.query name="SELECT_ACTIVE_CORSETS" query="from HCorrelationSet as c left join fetch c.process left join fetch c.instance where c.instance.state = (:state)"
*/
public class HCorrelationSet extends HObject{
- public static final String DELETE_CORSETS_BY_INSTANCE = "DELETE_CORSETS_BY_INSTANCE";
- public static final String DELETE_CORSETS_BY_PROCESS = "DELETE_CORSETS_BY_PROCESS";
- public static final String SELECT_CORSETS_BY_INSTANCES = "SELECT_CORSETS_BY_INSTANCES";
-
- private HProcess _process;
- private HProcessInstance _instance;
- private Collection<HCorrelationProperty> _properties = new HashSet<HCorrelationProperty>();
- private HScope _scope;
- private String _name;
- private String _value;
-
- public HCorrelationSet() {
- super();
- }
-
- public HCorrelationSet(HScope scope, String name) {
- super();
- _scope = scope;
- _instance = scope.getInstance();
- _process = _instance.getProcess();
- _name = name;
- }
-
- /**
- * @hibernate.property
- * column="VALUE"
- */
- public String getValue() {
- return _value;
- }
-
- public void setName(String name) {
- _name = name;
- }
-
- public void setScope(HScope scope) {
- _scope = scope;
- }
-
- public void setValue(String value) {
- _value = value;
- }
-
- /**
- * @hibernate.property
- * column="CORR_SET_NAME"
- * length="255"
- */
- public String getName() {
- return _name;
- }
-
- /**
- * @hibernate.many-to-one
- * column="SCOPE_ID" foreign-key="none"
- */
- public HScope getScope() {
- return _scope;
- }
-
- /**
- * @hibernate.many-to-one
- * column="PIID" foreign-key="none"
- */
- public HProcessInstance getInstance() {
- return _instance;
- }
-
- public void setInstance(HProcessInstance instance) {
- _instance = instance;
- }
-
- /**
- * @hibernate.many-to-one
- * column="PROCESS_ID" foreign-key="none"
- */
- public HProcess getProcess() {
- return _process;
- }
-
- public void setProcess(HProcess process) {
- _process = process;
- }
-
- /**
- * @hibernate.set
- * lazy="true"
- * inverse="true"
- * cascade="delete"
- * @hibernate.collection-key
- * column="CORR_SET_ID" foreign-key="none"
- * @hibernate.collection-one-to-many
- * class="org.apache.ode.daohib.bpel.hobj.HCorrelationProperty"
- */
- public Collection<HCorrelationProperty> getProperties() {
- return _properties;
- }
-
- public void setProperties(Collection<HCorrelationProperty> properties) {
- _properties = properties;
- }
+ public static final String DELETE_CORSETS_BY_INSTANCE = "DELETE_CORSETS_BY_INSTANCE";
+ public static final String DELETE_CORSETS_BY_PROCESS = "DELETE_CORSETS_BY_PROCESS";
+ public static final String SELECT_CORSETS_BY_INSTANCES = "SELECT_CORSETS_BY_INSTANCES";
+ public static final String SELECT_ACTIVE_CORSETS = "SELECT_ACTIVE_CORSETS";
+
+ private HProcess _process;
+ private HProcessInstance _instance;
+ private Collection<HCorrelationProperty> _properties = new HashSet<HCorrelationProperty>();
+ private HScope _scope;
+ private String _name;
+ private String _value;
+
+ public HCorrelationSet() {
+ super();
+ }
+
+ public HCorrelationSet(HScope scope, String name) {
+ super();
+ _scope = scope;
+ _instance = scope.getInstance();
+ _process = _instance.getProcess();
+ _name = name;
+ }
+
+ /**
+ * @hibernate.property
+ * column="VALUE"
+ */
+ public String getValue() {
+ return _value;
+ }
+
+ public void setName(String name) {
+ _name = name;
+ }
+
+ public void setScope(HScope scope) {
+ _scope = scope;
+ }
+
+ public void setValue(String value) {
+ _value = value;
+ }
+
+ /**
+ * @hibernate.property
+ * column="CORR_SET_NAME"
+ * length="255"
+ */
+ public String getName() {
+ return _name;
+ }
+
+ /**
+ * @hibernate.many-to-one
+ * column="SCOPE_ID" foreign-key="none"
+ */
+ public HScope getScope() {
+ return _scope;
+ }
+
+ /**
+ * @hibernate.many-to-one
+ * column="PIID" foreign-key="none"
+ */
+ public HProcessInstance getInstance() {
+ return _instance;
+ }
+
+ public void setInstance(HProcessInstance instance) {
+ _instance = instance;
+ }
+
+ /**
+ * @hibernate.many-to-one
+ * column="PROCESS_ID" foreign-key="none"
+ */
+ public HProcess getProcess() {
+ return _process;
+ }
+
+ public void setProcess(HProcess process) {
+ _process = process;
+ }
+
+ /**
+ * @hibernate.set
+ * lazy="true"
+ * inverse="true"
+ * cascade="delete"
+ * @hibernate.collection-key
+ * column="CORR_SET_ID" foreign-key="none"
+ * @hibernate.collection-one-to-many
+ * class="org.apache.ode.daohib.bpel.hobj.HCorrelationProperty"
+ */
+ public Collection<HCorrelationProperty> getProperties() {
+ return _properties;
+ }
+
+ public void setProperties(Collection<HCorrelationProperty> properties) {
+ _properties = properties;
+ }
}
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java Tue Jan 6 18:00:47 2009
@@ -31,8 +31,10 @@
* @hibernate.query name="DELETE_INSTANCES_BY_PROCESS" query="delete from HProcessInstance as p where p.process = :process"
* @hibernate.query name="COUNT_INSTANCES_BY_STATUS_AND_PROCESS_ID" query="select count(i.id) as cnt, max(i.activityFailureDateTime) as lastFailureDt from HProcessInstance as i where i.process.processId = :processId and i.state in(:states) and i.activityFailureCount > 0"
* @hibernate.query name="COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID" query="select count(i.id) as cnt, max(i.activityFailureDateTime) as lastFailureDt from HProcessInstance as i where i.process.processId = :processId and i.state in(:states) and i.activityFailureCount > 0"
+ * @hibernate.query name="SELECT_ACTIVE_INSTANCES" query="from HProcessInstance as i where i.process.id = :processId and i.state = :state"
*/
public class HProcessInstance extends HObject {
+ public static final String SELECT_ACTIVE_INSTANCES="SELECT_ACTIVE_INSTANCES";
public static final String DELETE_INSTANCES_BY_PROCESS="DELETE_INSTANCES_BY_PROCESS";
public static final String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID="COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID";
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/InsertObjectTest.java Tue Jan 6 18:00:47 2009
@@ -144,8 +144,8 @@
ProcessInstanceDAO pi = null;
String[] actions = { "action1","action2" };
String[] correlationKeys = { "key1", "key2" };
- CorrelationKey key1 = new CorrelationKey(1,correlationKeys);
- CorrelationKey key2 = new CorrelationKey(2,correlationKeys);
+ CorrelationKey key1 = new CorrelationKey("key1",correlationKeys);
+ CorrelationKey key2 = new CorrelationKey("key2",correlationKeys);
CorrelationKey[] corrkeys = {key1,key2};
QName[] names = { new QName(TEST_NS,"name1"), new QName(TEST_NS,"name2") };
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/test/java/org/apache/ode/dao/jpa/test/SelectObjectTest.java Tue Jan 6 18:00:47 2009
@@ -55,7 +55,7 @@
private static final String TEST_NS = "http://org.apache.ode.jpa.test";
private String[] correlationKeys = { "key1", "key2" };
private String[] actions = { "action1","action2" };
- private CorrelationKey key1 = new CorrelationKey(1,correlationKeys);
+ private CorrelationKey key1 = new CorrelationKey("key",correlationKeys);
private static final String CORRELATOR_ID1 = "testCorrelator1";
private static final String CORRELATOR_ID2 = "testCorrelator2";
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionFactoryImpl.java Tue Jan 6 18:00:47 2009
@@ -137,6 +137,9 @@
_emf.close();
}
+ public DataSource getDataSource() {
+ return _ds;
+ }
private class TxMgrProvider implements ManagedRuntime {
public TxMgrProvider() {
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/BPELDAOConnectionImpl.java Tue Jan 6 18:00:47 2009
@@ -38,6 +38,7 @@
import org.apache.ode.bpel.common.BpelEventFilter;
import org.apache.ode.bpel.common.Filter;
import org.apache.ode.bpel.common.InstanceFilter;
+import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.BpelDAOConnection;
import org.apache.ode.bpel.dao.CorrelationSetDAO;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
@@ -55,10 +56,10 @@
* @author Matthieu Riou <mriou at apache dot org>
*/
public class BPELDAOConnectionImpl implements BpelDAOConnection {
-
- static final Log __log = LogFactory.getLog(BPELDAOConnectionImpl.class);
-
- protected EntityManager _em;
+
+ static final Log __log = LogFactory.getLog(BPELDAOConnectionImpl.class);
+
+ protected EntityManager _em;
public BPELDAOConnectionImpl(EntityManager em) {
_em = em;
@@ -75,8 +76,8 @@
// TODO
throw new UnsupportedOperationException();
}
-
- public ProcessInstanceDAO getInstance(Long iid) {
+
+ public ProcessInstanceDAO getInstance(Long iid) {
ProcessInstanceDAOImpl instance = _em.find(ProcessInstanceDAOImpl.class, iid);
return instance;
}
@@ -124,8 +125,8 @@
eventDao.setScopeId(((ScopeEvent) event).getScopeId());
eventDao.setEvent(event);
_em.persist(eventDao);
- }
-
+ }
+
private static String dateFilter(String filter) {
String date = Filter.getDateWithoutOp(filter);
String op = filter.substring(0,filter.indexOf(date));
@@ -139,7 +140,7 @@
return op + " '" + ts.toString() + "'";
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("unchecked")
public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter criteria) {
StringBuffer query = new StringBuffer();
query.append("select pi from ProcessInstanceDAOImpl as pi left join fetch pi._fault ");
@@ -147,7 +148,7 @@
if (criteria != null) {
// Building each clause
ArrayList<String> clauses = new ArrayList<String>();
-
+
// iid filter
if ( criteria.getIidFilter() != null ) {
StringBuffer filters = new StringBuffer();
@@ -158,7 +159,7 @@
}
clauses.add(" (" + filters + ")");
}
-
+
// pid filter
if (criteria.getPidFilter() != null) {
StringBuffer filters = new StringBuffer();
@@ -169,7 +170,7 @@
}
clauses.add(" (" + filters + ")");
}
-
+
// name filter
if (criteria.getNameFilter() != null) {
String val = criteria.getNameFilter();
@@ -181,30 +182,30 @@
//because the name space and name are stored together
clauses.add(" pi._process._processType like '%" + val + "'");
}
-
+
// name space filter
if (criteria.getNamespaceFilter() != null) {
//process type string begins with name space
//this could possibly match more than you want
//because the name space and name are stored together
- clauses.add(" pi._process._processType like '{" +
+ clauses.add(" pi._process._processType like '{" +
criteria.getNamespaceFilter() + "%'");
}
-
+
// started filter
if (criteria.getStartedDateFilter() != null) {
for ( String ds : criteria.getStartedDateFilter() ) {
clauses.add(" pi._dateCreated " + dateFilter(ds));
}
}
-
+
// last-active filter
if (criteria.getLastActiveDateFilter() != null) {
for ( String ds : criteria.getLastActiveDateFilter() ) {
clauses.add(" pi._lastActive " + dateFilter(ds));
}
}
-
+
// status filter
if (criteria.getStatusFilter() != null) {
StringBuffer filters = new StringBuffer();
@@ -215,12 +216,12 @@
}
clauses.add(" (" + filters.toString() + ")");
}
-
+
// $property filter
if (criteria.getPropertyValuesFilter() != null) {
Map<String,String> props = criteria.getPropertyValuesFilter();
// join to correlation sets
- query.append(" inner join pi._rootScope._correlationSets as cs");
+ query.append(" inner join pi._rootScope._correlationSets as cs");
int i = 0;
for (String propKey : props.keySet()) {
i++;
@@ -233,7 +234,7 @@
props.get(propKey).replaceAll(" ", " ")+"'");
}
}
-
+
// order by
StringBuffer orderby = new StringBuffer("");
if (criteria.getOrders() != null) {
@@ -275,48 +276,48 @@
if (m < clauses.size() - 1) query.append(" and");
}
}
-
+
query.append(orderby);
}
-
+
if (__log.isDebugEnabled()) {
- __log.debug(query.toString());
+ __log.debug(query.toString());
}
-
+
// criteria limit
Query pq = _em.createQuery(query.toString());
OpenJPAQuery kq = OpenJPAPersistence.cast(pq);
- kq.getFetchPlan().setFetchBatchSize(criteria.getLimit());
+ kq.getFetchPlan().setFetchBatchSize(criteria.getLimit());
List<ProcessInstanceDAO> ql = pq.getResultList();
-
+
Collection<ProcessInstanceDAO> list = new ArrayList<ProcessInstanceDAO>();
- int num = 0;
+ int num = 0;
for (Iterator iterator = ql.iterator(); iterator.hasNext();) {
if(num++ > criteria.getLimit()) break;
ProcessInstanceDAO processInstanceDAO = (ProcessInstanceDAO) iterator.next();
- list.add(processInstanceDAO);
- }
-
+ list.add(processInstanceDAO);
+ }
+
return list;
- }
+ }
+
+
+ public Collection<ProcessInstanceDAO> instanceQuery(String expression) {
+ return instanceQuery(new InstanceFilter(expression));
+ }
+
+ public void setEntityManger(EntityManager em) {
+ _em = em;
+ }
-
- public Collection<ProcessInstanceDAO> instanceQuery(String expression) {
- return instanceQuery(new InstanceFilter(expression));
- }
-
- public void setEntityManger(EntityManager em) {
- _em = em;
- }
-
public MessageExchangeDAO getMessageExchange(String mexid) {
return _em.find(MessageExchangeDAOImpl.class, mexid);
}
public void deleteMessageExchange(MessageExchangeDAO mexDao) {
- _em.remove(mexDao);
+ _em.remove(mexDao);
}
-
+
public EntityManager getEntityManager() {
return _em;
}
@@ -330,7 +331,7 @@
for (ProcessInstanceDAO dao: instances) {
iids.add(dao.getInstanceId());
}
- Collection<CorrelationSetDAOImpl> csets = _em.createNamedQuery(CorrelationSetDAOImpl.SELECT_CORRELATION_SETS_BY_INSTANCES).setParameter("instances", iids).getResultList();
+ Collection<CorrelationSetDAOImpl> csets = _em.createNamedQuery(CorrelationSetDAOImpl.SELECT_CORRELATION_SETS_BY_INSTANCES).setParameter("instances", iids).getResultList();
Map<Long, Collection<CorrelationSetDAO>> map = new HashMap<Long, Collection<CorrelationSetDAO>>();
for (CorrelationSetDAOImpl cset: csets) {
Long id = cset.getScope().getProcessInstance().getInstanceId();
@@ -344,7 +345,12 @@
return map;
}
+ public Collection<CorrelationSetDAO> getActiveCorrelationSets() {
+ return _em.createNamedQuery(CorrelationSetDAOImpl.SELECT_ACTIVE_SETS).setParameter("state", ProcessState.STATE_ACTIVE).getResultList();
+ }
+
+
public ProcessManagementDAO getProcessManagement() {
- return new ProcessManagementDAOImpl(_em);
+ return new ProcessManagementDAOImpl(_em);
}
}
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelationSetDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelationSetDAOImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelationSetDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelationSetDAOImpl.java Tue Jan 6 18:00:47 2009
@@ -22,6 +22,8 @@
import org.apache.ode.bpel.common.CorrelationKey;
import org.apache.ode.bpel.dao.CorrelationSetDAO;
import org.apache.ode.bpel.dao.ScopeDAO;
+import org.apache.ode.bpel.dao.ProcessDAO;
+import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
@@ -48,13 +50,15 @@
@NamedQuery(name=CorrelationSetDAOImpl.DELETE_CORRELATION_SETS_BY_IDS, query="delete from CorrelationSetDAOImpl as c where c._correlationSetId in (:ids)"),
@NamedQuery(name=CorrelationSetDAOImpl.SELECT_CORRELATION_SETS_BY_INSTANCES, query="select c from CorrelationSetDAOImpl as c left join fetch c._scope left join fetch c._props where c._scope._processInstance._instanceId in (:instances)"),
@NamedQuery(name=CorrelationSetDAOImpl.SELECT_CORRELATION_SET_IDS_BY_PROCESS, query="select c._correlationSetId from CorrelationSetDAOImpl as c where c._scope._processInstance._process = :process"),
- @NamedQuery(name=CorrelationSetDAOImpl.SELECT_CORRELATION_SET_IDS_BY_INSTANCE, query="select c._correlationSetId from CorrelationSetDAOImpl as c where c._scope._processInstance = :instance")
+ @NamedQuery(name=CorrelationSetDAOImpl.SELECT_CORRELATION_SET_IDS_BY_INSTANCE, query="select c._correlationSetId from CorrelationSetDAOImpl as c where c._scope._processInstance = :instance"),
+ @NamedQuery(name=CorrelationSetDAOImpl.SELECT_ACTIVE_SETS, query="select c from CorrelationSetDAOImpl as c left join fetch c._scope where c._scope._processInstance._state = (:state)")
})
public class CorrelationSetDAOImpl implements CorrelationSetDAO {
public final static String DELETE_CORRELATION_SETS_BY_IDS = "DELETE_CORRELATION_SETS_BY_IDS";
public final static String SELECT_CORRELATION_SETS_BY_INSTANCES = "SELECT_CORRELATION_SETS_BY_INSTANCES";
public final static String SELECT_CORRELATION_SET_IDS_BY_PROCESS = "SELECT_CORRELATION_SET_IDS_BY_PROCESS";
public final static String SELECT_CORRELATION_SET_IDS_BY_INSTANCE = "SELECT_CORRELATION_SET_IDS_BY_INSTANCE";
+ public final static String SELECT_ACTIVE_SETS = "SELECT_ACTIVE_SETS";
@Id @Column(name="CORRELATION_SET_ID")
@GeneratedValue(strategy=GenerationType.AUTO)
@@ -102,10 +106,18 @@
public void setValue(QName[] names, CorrelationKey values) {
_correlationKey = values.toCanonicalString();
- for (int m = 0; m < names.length; m++) {
- CorrSetProperty prop = new CorrSetProperty(names[m].toString(), values.getValues()[m]);
- _props.add(prop);
- prop.setCorrSet(this);
- }
+ if (names != null)
+ for (int m = 0; m < names.length; m++) {
+ CorrSetProperty prop = new CorrSetProperty(names[m].toString(), values.getValues()[m]);
+ _props.add(prop);
+ prop.setCorrSet(this);
+ }
}
+
+ public ProcessDAO getProcess() {
+ return _scope.getProcessInstance().getProcess();
+ }
+ public ProcessInstanceDAO getInstance() {
+ return _scope.getProcessInstance();
+ }
}
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/CorrelatorDAOImpl.java Tue Jan 6 18:00:47 2009
@@ -20,10 +20,7 @@
package org.apache.ode.dao.jpa;
import org.apache.ode.bpel.common.CorrelationKeySet;
-import org.apache.ode.bpel.dao.CorrelatorDAO;
-import org.apache.ode.bpel.dao.MessageExchangeDAO;
-import org.apache.ode.bpel.dao.MessageRouteDAO;
-import org.apache.ode.bpel.dao.ProcessInstanceDAO;
+import org.apache.ode.bpel.dao.*;
import javax.persistence.*;
import java.util.ArrayList;
@@ -83,7 +80,10 @@
mexImpl.setCorrelationKeySet(correlationKeySet);
_exchanges.add(mexImpl);
mexImpl.setCorrelator(this);
+ }
+ public Collection<CorrelatorMessageDAO> getAllMessages() {
+ return new ArrayList<CorrelatorMessageDAO>(_exchanges);
}
@SuppressWarnings("unchecked")
@@ -137,6 +137,10 @@
return _correlatorKey;
}
+ public void setCorrelatorId(String newId) {
+ _correlatorKey = newId;
+ }
+
public void removeRoutes(String routeGroupId, ProcessInstanceDAO target) {
// remove route across all correlators of the process
((ProcessInstanceDAOImpl)target).removeRoutes(routeGroupId);
@@ -151,4 +155,8 @@
}
}
}
+
+ public Collection<MessageRouteDAO> getAllRoutes() {
+ return new ArrayList<MessageRouteDAO>(_routes);
+ }
}
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageExchangeDAOImpl.java Tue Jan 6 18:00:47 2009
@@ -22,11 +22,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.CorrelationKeySet;
-import org.apache.ode.bpel.dao.MessageDAO;
-import org.apache.ode.bpel.dao.MessageExchangeDAO;
-import org.apache.ode.bpel.dao.PartnerLinkDAO;
-import org.apache.ode.bpel.dao.ProcessDAO;
-import org.apache.ode.bpel.dao.ProcessInstanceDAO;
+import org.apache.ode.bpel.common.CorrelationKey;
+import org.apache.ode.bpel.dao.*;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.uuid.UUID;
import org.w3c.dom.Element;
@@ -58,7 +55,7 @@
@NamedQuery(name=MessageExchangeDAOImpl.DELETE_MEXS_BY_PROCESS, query="delete from MessageExchangeDAOImpl as m where m._process = :process"),
@NamedQuery(name=MessageExchangeDAOImpl.SELECT_MEX_IDS_BY_PROCESS, query="select m._id from MessageExchangeDAOImpl as m where m._process = :process")
})
-public class MessageExchangeDAOImpl extends OpenJPADAO implements MessageExchangeDAO {
+public class MessageExchangeDAOImpl extends OpenJPADAO implements MessageExchangeDAO, CorrelatorMessageDAO {
private static final Log __log = LogFactory.getLog(MessageExchangeDAOImpl.class);
public final static String DELETE_MEXS_BY_PROCESS = "DELETE_MEXS_BY_PROCESS";
@@ -330,6 +327,16 @@
return new CorrelationKeySet(_correlationKeys);
}
+ public CorrelationKey getCorrelationKey() {
+ if (_correlationKeys == null) return null;
+ return getCorrelationKeySet().iterator().next();
+ }
+
+ public void setCorrelationKey(CorrelationKey ckey) {
+ _correlationKeys = ckey.toCanonicalString();
+ }
+
+
public void release(boolean doClean) {
if( doClean ) {
deleteMessages();
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/MessageRouteDAOImpl.java Tue Jan 6 18:00:47 2009
@@ -87,7 +87,11 @@
public CorrelationKey getCorrelationKey() {
return new CorrelationKey(_correlationKey);
}
-
+
+ public void setCorrelationKey(CorrelationKey key) {
+ _correlationKey = key.toCanonicalString();
+ }
+
public String getGroupId() {
return _groupId;
}
@@ -107,4 +111,5 @@
public CorrelationKeySet getCorrelationKeySet() {
return new CorrelationKeySet(_correlationKey);
}
+
}
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessDAOImpl.java Tue Jan 6 18:00:47 2009
@@ -22,6 +22,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.CorrelationKey;
+import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.CorrelatorDAO;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
import org.apache.ode.bpel.dao.ProcessDAO;
@@ -39,6 +40,7 @@
@Entity
@Table(name="ODE_PROCESS")
@NamedQueries({
+ @NamedQuery(name="ActiveInstances", query="select i from ProcessInstanceDAOImpl as i where i._process = :process and i._state = :state"),
@NamedQuery(name="InstanceByCKey", query="select cs._scope._processInstance from CorrelationSetDAOImpl as cs where cs._correlationKey = :ckey"),
@NamedQuery(name="CorrelatorByKey", query="select c from CorrelatorDAOImpl as c where c._correlatorKey = :ckey and c._process = :process")
})
@@ -201,4 +203,11 @@
public String getGuid() {
return _guid;
}
+
+ public Collection<ProcessInstanceDAO> getActiveInstances() {
+ Query qry = getEM().createNamedQuery("ActiveInstances");
+ qry.setParameter("process", this);
+ qry.setParameter("state", ProcessState.STATE_ACTIVE);
+ return qry.getResultList();
+ }
}
\ No newline at end of file
Modified: ode/branches/APACHE_ODE_1.X/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java Tue Jan 6 18:00:47 2009
@@ -68,7 +68,7 @@
private ClassLoader _classLoader;
- private static ConcurrentHashMap<String, ObjectStreamClass> _classDescriptors
+ public static ConcurrentHashMap<String, ObjectStreamClass> _classDescriptors
= new ConcurrentHashMap<String, ObjectStreamClass>();
/**
Modified: ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java (original)
+++ ode/branches/APACHE_ODE_1.X/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java Tue Jan 6 18:00:47 2009
@@ -359,6 +359,7 @@
throw new JBIException(errmsg, ex);
}
+ _ode._scheduler.start();
_receiver = new Receiver(_ode);
_receiver.start();
_started = true;
Modified: ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=732195&r1=732194&r2=732195&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Tue Jan 6 18:00:47 2009
@@ -221,6 +221,10 @@
}
}
+ public void setRollbackOnly() throws Exception {
+ _txm.setRollbackOnly();
+ }
+
public void registerSynchronizer(final Synchronizer synch) throws ContextException {
try {
_txm.getTransaction().registerSynchronization(new Synchronization() {