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("&#32;", " ")+"'");
                 }
             }
-            
+
             // 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() {