You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by rr...@apache.org on 2009/10/07 23:24:10 UTC

svn commit: r822922 - in /ode/trunk/dao-hibernate/src: main/java/org/apache/ode/daohib/bpel/ main/java/org/apache/ode/daohib/bpel/hobj/ test/resources/

Author: rr
Date: Wed Oct  7 21:23:54 2009
New Revision: 822922

URL: http://svn.apache.org/viewvc?rev=822922&view=rev
Log:
ODE-671: clean up queries in HLargeData are too broad - merge from 1.X branch

Added:
    ode/trunk/dao-hibernate/src/test/resources/
    ode/trunk/dao-hibernate/src/test/resources/log4j.properties   (with props)
Modified:
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HBpelEvent.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationProperty.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelator.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HFaultData.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HLargeData.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessage.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchange.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchangeProperty.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HScope.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HVariableProperty.java
    ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/HibernateDao.java Wed Oct  7 21:23:54 2009
@@ -22,10 +22,12 @@
 import org.apache.ode.daohib.bpel.hobj.HObject;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hibernate.Query;
 import org.hibernate.Session;
 
 import java.io.Serializable;
 import java.util.Collection;
+import java.util.List;
 
 /**
  * Base class for our DAO objects.
@@ -102,4 +104,30 @@
 
         return ids;
     }
+
+    @SuppressWarnings("unchecked")
+    protected void deleteByIds(Class entity, List<Long> ids) {
+        deleteByColumn(entity, "id", ids);
+    }
+
+    @SuppressWarnings("unchecked")
+    protected void deleteByColumn(Class entity, String column, List<Long> values) {
+        if( values != null && values.size() > 0 ) {
+            final String delete = "delete from "+entity.getName()+" as e where e."+column+" in (:values)";
+
+            // some databases don't like long lists of values with IN operator
+            // so we delete in batches.  Oracle 9i, for instance, doesn't support
+            // more than 1000 -- we opt to be conservative.
+            final int batchSize = 100;
+            
+            int index = 0;
+            while (index < values.size()) {
+                List<Long> subList = values.subList(index, Math.min(index+batchSize, values.size()));
+                Query query = getSession().createQuery(delete);
+                query.setParameterList("values", subList);
+                query.executeUpdate();
+                index += batchSize;
+            }
+        }
+    }    
 }

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/MessageExchangeDaoImpl.java Wed Oct  7 21:23:54 2009
@@ -36,6 +36,8 @@
 import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
 import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
 import org.apache.ode.bpel.iapi.MessageExchange.Status;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ode.daohib.SessionManager;
 import org.apache.ode.daohib.bpel.hobj.HCorrelatorMessage;
 import org.apache.ode.daohib.bpel.hobj.HLargeData;
@@ -46,8 +48,16 @@
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Element;
 
-public class MessageExchangeDaoImpl extends HibernateDao implements MessageExchangeDAO {
-
+import javax.xml.namespace.QName;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Set;
+
+public class MessageExchangeDaoImpl extends HibernateDao implements
+        MessageExchangeDAO {
+    @SuppressWarnings("unused")
+    private static final Log __log = LogFactory.getLog(MessageExchangeDaoImpl.class);
+    
     private HMessageExchange _hself;
 
     // Used when provided process and instance aren't hibernate implementations. The relation
@@ -340,10 +350,23 @@
         }
     }
 
+    @SuppressWarnings("unchecked")
+    public void releasePremieMessages() {
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_1).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_2).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_3).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_4).setParameter("mex", _hself).list());
+        deleteByIds(HCorrelatorMessage.class, getSession().getNamedQuery(HCorrelatorMessage.SELECT_CORMESSAGE_IDS_BY_MEX).setParameter("mex", _hself).list());
+    }
+
+    @SuppressWarnings("unchecked")
     public void deleteMessages() {
-        getSession().getNamedQuery(HLargeData.DELETE_MESSAGE_LDATA_BY_MEX).setParameter("mex", _hself).executeUpdate();
-        getSession().getNamedQuery(HCorrelatorMessage.DELETE_CORMESSAGES_BY_MEX).setParameter("mex", _hself).executeUpdate();
-        
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_1).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_2).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_3).setParameter("mex", _hself).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_MEX_4).setParameter("mex", _hself).list());
+        deleteByIds(HCorrelatorMessage.class, getSession().getNamedQuery(HCorrelatorMessage.SELECT_CORMESSAGE_IDS_BY_MEX).setParameter("mex", _hself).list());
+          
         getSession().delete(_hself);
         // This deletes endpoint LData, callbackEndpoint LData, request HMessage, response HMessage, HMessageExchangeProperty 
     }

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessDaoImpl.java Wed Oct  7 21:23:54 2009
@@ -60,6 +60,8 @@
 import java.util.Collections;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -162,14 +164,15 @@
         // nothing to do here (yet?)
     }
 
+    @SuppressWarnings("unchecked")
     public void deleteProcessAndRoutes() {
         entering("ProcessDaoImpl.delete");
 
         // delete routes
-        getSession().getNamedQuery(HCorrelatorSelector.DELETE_MESSAGE_ROUTES_BY_PROCESS).setParameter("process", _process).executeUpdate();
+        deleteByIds(HCorrelatorSelector.class, getSession().getNamedQuery(HCorrelatorSelector.SELECT_MESSAGE_ROUTE_IDS_BY_PROCESS).setParameter("process", _process).list());
 
         // delete process dao
-        getSession().getNamedQuery(HCorrelator.DELETE_CORRELATORS_BY_PROCESS).setParameter("process", _process).executeUpdate();
+        deleteByIds(HCorrelator.class, getSession().getNamedQuery(HCorrelator.SELECT_CORRELATOR_IDS_BY_PROCESS).setParameter("process", _process).list());
         getSession().delete(_process); // this deletes HCorrelator -> HCorrelatorSelector
 
         // after this delete, we have a use case that creates the process with the same procid.
@@ -221,44 +224,60 @@
 
         return instances.size();
     }
-    
+
+    @SuppressWarnings("unchecked")
     private void deleteProcessInstances(Collection<HProcessInstance> instances) {
-        getSession().getNamedQuery(HLargeData.DELETE_ACTIVITY_RECOVERY_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HActivityRecovery.DELETE_ACTIVITY_RECOVERIES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HLargeData.DELETE_FAULT_LDATA_BY_INSTANCE_IDS).setParameterList("instanceIds", HObject.toIdArray(instances)).executeUpdate();
-        getSession().getNamedQuery(HFaultData.DELETE_FAULTS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HLargeData.DELETE_JACOB_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HProcessInstance.DELETE_INSTANCES).setParameterList("instances", instances).executeUpdate();
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_ACTIVITY_RECOVERY_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HActivityRecovery.class, getSession().getNamedQuery(HActivityRecovery.SELECT_ACTIVITY_RECOVERY_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_FAULT_LDATA_IDS_BY_INSTANCE_IDS).setParameterList("instanceIds", HObject.toIdArray(instances)).list());
+        deleteByIds(HFaultData.class, getSession().getNamedQuery(HFaultData.SELECT_FAULT_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_JACOB_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        
+        List<Long> instanceIds = new ArrayList<Long>();
+        for( HProcessInstance instance : instances ) {
+            instanceIds.add(instance.getId());
+        }
+        deleteByIds(HProcessInstance.class, instanceIds);
     }
 
+    @SuppressWarnings("unchecked")
     private void deleteVariables(Collection<HProcessInstance> instances) {
-        getSession().getNamedQuery(HVariableProperty.DELETE_VARIABLE_PROPERITES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HLargeData.DELETE_XMLDATA_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HXmlData.DELETE_XMLDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HLargeData.DELETE_PARTNER_LINK_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HPartnerLink.DELETE_PARTNER_LINKS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HScope.DELETE_SCOPES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
+        deleteByIds(HVariableProperty.class, getSession().getNamedQuery(HVariableProperty.SELECT_VARIABLE_PROPERTY_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_XMLDATA_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HXmlData.class, getSession().getNamedQuery(HXmlData.SELECT_XMLDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+        deleteByIds(HPartnerLink.class, getSession().getNamedQuery(HPartnerLink.SELECT_PARTNER_LINK_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HScope.class, getSession().getNamedQuery(HScope.SELECT_SCOPE_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
     }
 
+    @SuppressWarnings("unchecked")
     private void deleteMessages(Collection<HProcessInstance> instances) {
-        getSession().getNamedQuery(HCorrelatorMessage.DELETE_CORMESSAGES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HLargeData.DELETE_MESSAGE_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HMessage.DELETE_MESSAGES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HMessageExchangeProperty.DELETE_MEX_PROPS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HLargeData.DELETE_MEX_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HMessageExchange.DELETE_MEX_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
+        deleteByIds(HActivityRecovery.class, getSession().getNamedQuery(HCorrelatorMessage.SELECT_CORMESSAGE_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_3).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_4).setParameterList("instances", instances).list());
+        deleteByIds(HMessage.class, getSession().getNamedQuery(HMessage.SELECT_MESSAGE_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+        deleteByIds(HMessage.class, getSession().getNamedQuery(HMessage.SELECT_MESSAGE_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MEX_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MEX_LDATA_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+        deleteByIds(HMessageExchange.class, getSession().getNamedQuery(HMessageExchange.SELECT_MEX_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        List<Long> mex = getSession().getNamedQuery(HMessageExchange.SELECT_MEX_IDS_BY_INSTANCES).setParameterList("instances", instances).list();
+        deleteByColumn(HMessageExchangeProperty.class, "mex.id", mex);
+        deleteByIds(HMessageExchange.class, mex);
     }
-
+    
+    @SuppressWarnings("unchecked")
     private void deleteCorrelations(Collection<HProcessInstance> instances) {
-        getSession().getNamedQuery(HCorrelationProperty.DELETE_CORPROPS_BY_INSTANCES).setParameterList ("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HCorrelationSet.DELETE_CORSETS_BY_INSTANCES).setParameterList ("instances", instances).executeUpdate();
+        deleteByIds(HCorrelationProperty.class, getSession().getNamedQuery(HCorrelationProperty.SELECT_CORPROP_IDS_BY_INSTANCES).setParameterList ("instances", instances).list());
+        deleteByIds(HCorrelationSet.class, getSession().getNamedQuery(HCorrelationSet.SELECT_CORSET_IDS_BY_INSTANCES).setParameterList ("instances", instances).list());
     }
 
+    @SuppressWarnings("unchecked")
     private void deleteEvents(Collection<HProcessInstance> instances) {
-        getSession().getNamedQuery(HLargeData.DELETE_EVENT_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HBpelEvent.DELETE_EVENTS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
+        deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_EVENT_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+        deleteByIds(HBpelEvent.class, getSession().getNamedQuery(HBpelEvent.SELECT_EVENT_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
     }
 
     public QName getType() {

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java Wed Oct  7 21:23:54 2009
@@ -107,49 +107,46 @@
      */
     public FaultDAO getFault() {
       entering("ProcessInstanceDaoImpl.getFault");
-        if (_instance.getFault() == null)
-            return null;
-        else
-            return new FaultDAOImpl(_sm, _instance.getFault());
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getExecutionState()
-     */
-    public byte[] getExecutionState() {
-      entering("ProcessInstanceDaoImpl.getExecutionSate");
-        if (_instance.getJacobState() == null)
-            return null;
-        return _instance.getJacobState().getBinary();
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#setExecutionState(byte[])
-     */
-    public void setExecutionState(byte[] bytes) {
-      entering("ProcessInstanceDaoImpl.setExecutionSate");
-        if (_instance.getJacobState() != null)
-            getSession().delete(_instance.getJacobState());
-        if (bytes.length > 0) {
-            HLargeData ld = new HLargeData(bytes);
-            _instance.setJacobState(ld);
-            getSession().save(ld);
-        }
-        getSession().update(_instance);
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getProcess()
-     */
-    public ProcessDAO getProcess() {
-      entering("ProcessInstanceDaoImpl.getProcess");
-        return new ProcessDaoImpl(_sm, _instance.getProcess());
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getRootScope()
-     */
-    public ScopeDAO getRootScope() {
+    if (_instance.getFault() == null) return null;
+    else return new FaultDAOImpl(_sm, _instance.getFault());
+  }
+
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getExecutionState()
+   */
+  public byte[] getExecutionState() {
+        entering("ProcessInstanceDaoImpl.getExecutionState");
+    if (_instance.getJacobState() == null) return null;
+    return _instance.getJacobState().getBinary();
+  }
+    
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#setExecutionState(byte[])
+   */
+  public void setExecutionState(byte[] bytes) {
+        entering("ProcessInstanceDaoImpl.setExecutionState");
+    if (_instance.getJacobState() != null)
+      getSession().delete(_instance.getJacobState());
+    if (bytes.length > 0) {
+      HLargeData ld = new HLargeData(bytes);
+      _instance.setJacobState(ld);
+      getSession().save(ld);
+    }
+    getSession().update(_instance);
+  }
+
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getProcess()
+   */
+  public ProcessDAO getProcess() {
+    entering("ProcessInstanceDaoImpl.getProcess");
+    return new ProcessDaoImpl(_sm, _instance.getProcess());
+  }
+  
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getRootScope()
+   */
+  public ScopeDAO getRootScope() {
         entering("ProcessInstanceDaoImpl.getRootScope");
         if (_root != null)
             return _root;
@@ -166,61 +163,66 @@
     public void setState(short state) {
         entering("ProcessInstanceDaoImpl.setState");
         _instance.setPreviousState(_instance.getState());
-        _instance.setState(state);
-        if (state == ProcessState.STATE_TERMINATED) {
-            clearSelectors();
-        }
-        getSession().update(_instance);
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getState()
-     */
-    public short getState() {
-        return _instance.getState();
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getPreviousState()
-     */
-    public short getPreviousState() {
-        return _instance.getPreviousState();
-    }
-
-    public ScopeDAO createScope(ScopeDAO parentScope, String name, int scopeModelId) {
-        entering("ProcessInstanceDaoImpl.createScope");
-        HScope scope = new HScope();
-        scope.setParentScope(parentScope != null ? (HScope) ((ScopeDaoImpl) parentScope).getHibernateObj() : null);
-        scope.setName(name);
-        scope.setScopeModelId(scopeModelId);
-        scope.setState(ScopeStateEnum.ACTIVE.toString());
-        scope.setInstance(_instance);
-        scope.setCreated(new Date());
-        // _instance.getScopes().add(scope);
-        getSession().save(scope);
-
-        return new ScopeDaoImpl(_sm, scope);
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getInstanceId()
-     */
-    public Long getInstanceId() {
-        return _instance.getId();
-    }
-
-    public ScopeDAO getScope(Long scopeInstanceId) {
-        entering("ProcessInstanceDaoImpl.getScope");
-        Long id = Long.valueOf(scopeInstanceId);
-        HScope scope = (HScope) getSession().get(HScope.class, id);
-        return scope != null ? new ScopeDaoImpl(_sm, scope) : null;
-    }
-
-    /**
-     * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getScopes(java.lang.String)
-     */
-    @SuppressWarnings("unchecked")
-    public Collection<ScopeDAO> getScopes(String scopeName) {
+    _instance.setState(state);
+    if(state==ProcessState.STATE_TERMINATED) {
+      clearSelectors();
+    }
+    getSession().update(_instance);
+  }
+
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getState()
+   */
+  public short getState() {
+    return _instance.getState();
+  }
+    
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getPreviousState()
+   */
+  public short getPreviousState() {
+    return _instance.getPreviousState();
+  }
+
+  
+  public ScopeDAO createScope(ScopeDAO parentScope, String name, int scopeModelId) {
+    entering("ProcessInstanceDaoImpl.createScope");
+    HScope scope = new HScope();
+    scope.setParentScope(parentScope != null
+        ? (HScope)((ScopeDaoImpl)parentScope).getHibernateObj()
+        : null);
+    scope.setName(name);
+    scope.setScopeModelId(scopeModelId);
+    scope.setState(ScopeStateEnum.ACTIVE.toString());
+    scope.setInstance(_instance);
+    scope.setCreated(new Date());
+//    _instance.addScope(scope);
+    getSession().save(scope);
+
+    return new ScopeDaoImpl(_sm, scope);
+  }
+
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getInstanceId()
+   */
+  public Long getInstanceId() {
+    return _instance.getId();
+  }
+
+  public ScopeDAO getScope(Long scopeInstanceId) {
+      entering("ProcessInstanceDaoImpl.getScope");
+    Long id = Long.valueOf(scopeInstanceId);
+    HScope scope = (HScope)getSession().get(HScope.class, id);
+    return scope != null
+            ? new ScopeDaoImpl(_sm, scope)
+            : null;
+  }
+  
+  /**
+   * @see org.apache.ode.bpel.dao.ProcessInstanceDAO#getScopes(java.lang.String)
+   */
+  @SuppressWarnings("unchecked")
+  public Collection<ScopeDAO> getScopes(String scopeName) {
         entering("ProcessInstanceDaoImpl.getScopes");
         Collection<HScope> hscopes;
         if (scopeName != null) {
@@ -360,132 +362,154 @@
         return instanceDeleted;
     }
     
-    private void deleteInstances(HProcessInstance[] instances) {
-        getSession().getNamedQuery(HLargeData.DELETE_FAULT_LDATA_BY_INSTANCE_IDS).setParameterList("instanceIds", HObject.toIdArray(instances)).executeUpdate();
-        getSession().getNamedQuery(HFaultData.DELETE_FAULTS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().delete(_instance); // this deletes JcobState, HActivityRecovery -> ActivityRecovery-LData
-    }
-
-    private void deleteVariables(HProcessInstance[] instances) {
-        getSession().getNamedQuery(HCorrelationProperty.DELETE_CORPROPS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HCorrelationSet.DELETE_CORSETS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HVariableProperty.DELETE_VARIABLE_PROPERITES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HLargeData.DELETE_XMLDATA_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HXmlData.DELETE_XMLDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HLargeData.DELETE_PARTNER_LINK_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HPartnerLink.DELETE_PARTNER_LINKS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HScope.DELETE_SCOPES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-    }
-
-    @SuppressWarnings("unchecked")
-    private void deleteMessages(HProcessInstance[] instances) {
-        // there are chances that some unmatched messages are still there
-        getSession().getNamedQuery(HLargeData.DELETE_UNMATCHED_MESSAGE_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        Collection unmatchedMex = getSession().getNamedQuery(HMessageExchange.SELECT_UNMATCHED_MEX_BY_INSTANCES).setParameterList("instances", instances).list();
-        if( !unmatchedMex.isEmpty() ) {
-          getSession().delete(unmatchedMex);
-//        getSession().getNamedQuery(HMessageExchange.DELETE_UNMATCHED_MEX).setParameter("mex", unmatchedMex).executeUpdate();
-        }
-        getSession().getNamedQuery(HCorrelatorMessage.DELETE_CORMESSAGES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-
-        getSession().getNamedQuery(HCorrelatorSelector.DELETE_MESSAGE_ROUTES_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-    }
-      
-    private void deleteCorrelations(HProcessInstance[] instances) {
-        getSession().getNamedQuery(HCorrelationProperty.DELETE_CORPROPS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HCorrelationSet.DELETE_CORSETS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-    }
-
-    private void deleteEvents(HProcessInstance[] instances) {
-        getSession().getNamedQuery(HLargeData.DELETE_EVENT_LDATA_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();
-        getSession().getNamedQuery(HBpelEvent.DELETE_EVENTS_BY_INSTANCES).setParameterList("instances", instances).executeUpdate();     
-    }
-
-    public void insertBpelEvent(ProcessInstanceEvent event) {
-        entering("ProcessInstanceDaoImpl.insertBpelEvent");
-        // Defer to the BpelDAOConnectionImpl
-        BpelDAOConnectionImpl._insertBpelEvent(_sm.getSession(), event, this.getProcess(), this);
-    }
-
-    public EventsFirstLastCountTuple getEventsFirstLastCount() {
-        entering("ProcessInstanceDaoImpl.getEventsFirstLastCount");
-        // Using a criteria, find the min,max, and count of event tstamps.
-        Criteria c = _sm.getSession().createCriteria(HBpelEvent.class);
-        c.add(Restrictions.eq("instance", _instance));
-        c.setProjection(Projections.projectionList().add(Projections.min("tstamp")).add(Projections.max("tstamp")).add(
-                Projections.count("tstamp")));
-
-        Object[] ret = (Object[]) c.uniqueResult();
-        EventsFirstLastCountTuple flc = new EventsFirstLastCountTuple();
-        flc.first = (Date) ret[0];
-        flc.last = (Date) ret[1];
-        flc.count = (Integer) ret[2];
-        return flc;
-    }
-
-    public long genMonotonic() {
-        entering("ProcessInstanceDaoImpl.genMonotonic");
-        long seq = _instance.getSequence() + 1;
-        _instance.setSequence(seq);
-        return seq;
-    }
-
-    protected void clearSelectors() {
-        entering("ProcessInstanceDaoImpl.clearSelectors");
-        Query q = getSession().createQuery(QRY_DELSELECTORS);
-        q.setEntity(0, _instance);
-        q.executeUpdate();
-    }
-
-    public int getActivityFailureCount() {
-        return _instance.getActivityFailureCount();
-    }
-
-    public Date getActivityFailureDateTime() {
-        return _instance.getActivityFailureDateTime();
-    }
-
-    public Collection<ActivityRecoveryDAO> getActivityRecoveries() {
-        entering("ProcessInstanceDaoImpl.getActivityRecoveries");
-        List<ActivityRecoveryDAO> results = new ArrayList<ActivityRecoveryDAO>();
-        Query qry = getSession().createQuery(QRY_RECOVERIES);
-        qry.setLong(0, _instance.getId());
-        Iterator iter = qry.iterate();
-        while (iter.hasNext())
-            results.add(new ActivityRecoveryDaoImpl(_sm, (HActivityRecovery) iter.next()));
-        Hibernate.close(iter);
-        return results;
-    }
-
-    public void createActivityRecovery(String channel, long activityId, String reason, Date dateTime, Element data,
-            String[] actions, int retries) {
-        entering("ProcessInstanceDaoImpl.createActivityRecovery");
-        HActivityRecovery recovery = new HActivityRecovery();
-        recovery.setInstance(_instance);
-        recovery.setChannel(channel);
-        recovery.setActivityId(activityId);
-        recovery.setReason(reason);
-        recovery.setDateTime(dateTime);
-        recovery.setRetries(retries);
-        if (data != null) {
-            HLargeData ld = new HLargeData(DOMUtils.domToString(data));
-            recovery.setDetails(ld);
-            getSession().save(ld);
-        }
-        String list = actions[0];
-        for (int i = 1; i < actions.length; ++i)
-            list += " " + actions[i];
-        recovery.setActions(list);
-        //_instance.getActivityRecoveries().add(recovery);
-        getSession().save(recovery);
-        _instance.setActivityFailureDateTime(dateTime);
-        _instance.setActivityFailureCount(_instance.getActivityFailureCount() + 1);
-        getSession().update(_instance);
-    }
+  @SuppressWarnings("unchecked")
+  private void deleteInstances(HProcessInstance[] instances) {
+    deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_FAULT_LDATA_IDS_BY_INSTANCE_IDS).setParameterList("instanceIds", HObject.toIdArray(instances)).list());
+    deleteByIds(HFaultData.class, getSession().getNamedQuery(HFaultData.SELECT_FAULT_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+
+    getSession().delete(_instance); // this deletes JcobState, HActivityRecovery -> ActivityRecovery-LData
+  }
+
+  @SuppressWarnings("unchecked")
+  private void deleteVariables(HProcessInstance[] instances) {
+      deleteByIds(HCorrelationProperty.class, getSession().getNamedQuery(HCorrelationProperty.SELECT_CORPROP_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HCorrelationSet.class, getSession().getNamedQuery(HCorrelationSet.SELECT_CORSET_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+
+      deleteByIds(HVariableProperty.class, getSession().getNamedQuery(HVariableProperty.SELECT_VARIABLE_PROPERTY_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_XMLDATA_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HXmlData.class, getSession().getNamedQuery(HXmlData.SELECT_XMLDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+      deleteByIds(HPartnerLink.class, getSession().getNamedQuery(HPartnerLink.SELECT_PARTNER_LINK_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+
+      deleteByIds(HScope.class, getSession().getNamedQuery(HScope.SELECT_SCOPE_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+  }
+
+  @SuppressWarnings("unchecked")
+  private void deleteMessages(HProcessInstance[] instances) {
+      // there are chances that some unmatched messages are still there
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_3).setParameterList("instances", instances).list());
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_4).setParameterList("instances", instances).list());
+
+      deleteByIds(HMessage.class, getSession().getNamedQuery(HMessage.SELECT_MESSAGE_IDS_BY_INSTANCES_1).setParameterList("instances", instances).list());
+      deleteByIds(HMessage.class, getSession().getNamedQuery(HMessage.SELECT_MESSAGE_IDS_BY_INSTANCES_2).setParameterList("instances", instances).list());
+
+      deleteByIds(HCorrelatorMessage.class, getSession().getNamedQuery(HCorrelatorMessage.SELECT_CORMESSAGE_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HCorrelatorSelector.class, getSession().getNamedQuery(HCorrelatorSelector.SELECT_MESSAGE_ROUTE_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+
+      List<Long> mex = getSession().getNamedQuery(HMessageExchange.SELECT_MEX_IDS_BY_INSTANCES).setParameterList("instances", instances).list();
+      deleteByColumn(HMessageExchangeProperty.class, "mex.id", mex);
+      deleteByIds(HMessageExchange.class, mex);
+  }
+
+  @SuppressWarnings("unchecked")
+  private void deleteCorrelations(HProcessInstance[] instances) {
+      deleteByIds(HCorrelationProperty.class, getSession().getNamedQuery(HCorrelationProperty.SELECT_CORPROP_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HCorrelationSet.class, getSession().getNamedQuery(HCorrelationSet.SELECT_CORSET_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+  }
+
+  @SuppressWarnings("unchecked")
+  private void deleteEvents(HProcessInstance[] instances) {
+      deleteByIds(HLargeData.class, getSession().getNamedQuery(HLargeData.SELECT_EVENT_LDATA_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+      deleteByIds(HBpelEvent.class, getSession().getNamedQuery(HBpelEvent.SELECT_EVENT_IDS_BY_INSTANCES).setParameterList("instances", instances).list());
+  }
+
+  public void insertBpelEvent(ProcessInstanceEvent event) {
+      entering("ProcessInstanceDaoImpl.insertBpelEvent");
+      // Defer to the BpelDAOConnectionImpl
+      BpelDAOConnectionImpl._insertBpelEvent(getSession(), event, this.getProcess(), this);
+  }
+
+  public EventsFirstLastCountTuple getEventsFirstLastCount() {
+      entering("ProcessInstanceDaoImpl.getEventsFirstLastCount");
+    // Using a criteria, find the min,max, and count of event tstamps.
+    Criteria c = getSession().createCriteria(HBpelEvent.class);
+    c.add(Restrictions.eq("instance",_instance));
+    c.setProjection(Projections.projectionList().add(Projections.min("tstamp"))
+                                                .add(Projections.max("tstamp"))
+                                                .add(Projections.count("tstamp")));
+    
+    Object[] ret = (Object[]) c.uniqueResult();
+    EventsFirstLastCountTuple flc = new EventsFirstLastCountTuple();
+    flc.first = (Date) ret[0];
+    flc.last = (Date) ret[1];
+    flc.count = (Integer)ret[2];
+    return flc;
+  }
+
+  public Collection<MessageExchangeDAO> getMessageExchanges() {
+    Collection<MessageExchangeDAO> exchanges = new ArrayList<MessageExchangeDAO>();
+  
+    for( HMessageExchange exchange : _instance.getMessageExchanges() ) {
+      exchanges.add(new MessageExchangeDaoImpl(_sm, exchange));
+    }
+
+    return exchanges;
+  }
+  
+  public long genMonotonic() {
+      entering("ProcessInstanceDaoImpl.genMonotonic");
+    long seq = _instance.getSequence()+1;
+    _instance.setSequence(seq);
+    return seq;
+  }
+  
+  protected void clearSelectors() {
+      entering("ProcessInstanceDaoImpl.clearSelectors");
+    Query q = getSession().createQuery(QRY_DELSELECTORS);
+    q.setEntity(0, _instance);
+    q.executeUpdate();    
+  }
+
+  public int getActivityFailureCount() {
+    return _instance.getActivityFailureCount();
+  }
+
+  public Date getActivityFailureDateTime() {
+    return _instance.getActivityFailureDateTime();
+  }
+
+  @SuppressWarnings("unchecked")
+  public Collection<ActivityRecoveryDAO> getActivityRecoveries() {
+      entering("ProcessInstanceDaoImpl.getActivityRecoveries");
+    List<ActivityRecoveryDAO> results = new ArrayList<ActivityRecoveryDAO>();
+    Query qry = getSession().createQuery(QRY_RECOVERIES);
+    qry.setLong(0, _instance.getId());
+    Iterator iter = qry.iterate();
+    while (iter.hasNext())
+      results.add(new ActivityRecoveryDaoImpl(_sm, (HActivityRecovery) iter.next()));
+    Hibernate.close(iter);
+    return results;
+  }
+
+  public void createActivityRecovery(String channel, long activityId, String reason,
+                                     Date dateTime, Element data, String[] actions, int retries) {
+      entering("ProcessInstanceDaoImpl.createActivityRecovery");
+    HActivityRecovery recovery = new HActivityRecovery();
+    recovery.setInstance(_instance);
+    recovery.setChannel(channel);
+    recovery.setActivityId(activityId);
+    recovery.setReason(reason);
+    recovery.setDateTime(dateTime);
+    recovery.setRetries(retries);
+    if (data != null) {
+      HLargeData ld = new HLargeData(DOMUtils.domToString(data));
+      recovery.setDetails(ld);
+      getSession().save(ld);
+    }
+    String list = actions[0];
+    for (int i = 1; i < actions.length; ++i)
+      list += " " + actions[i];
+    recovery.setActions(list);
+//    _instance.addRecovery(recovery);
+    getSession().save(recovery);
+    _instance.setActivityFailureDateTime(dateTime);
+    _instance.setActivityFailureCount(_instance.getActivityFailureCount() + 1);
+    getSession().update(_instance);
+  }
 
     /**
      * Delete previously registered activity recovery.

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HActivityRecovery.java Wed Oct  7 21:23:54 2009
@@ -25,10 +25,10 @@
  * Persistent representation of activity recovery information.
  * 
  * @hibernate.class table="BPEL_ACTIVITY_RECOVERY"
- * @hibernate.query name="DELETE_ACTIVITY_RECOVERIES_BY_INSTANCES" query="delete from HActivityRecovery as a where a.instance in (:instances)" 
+ * @hibernate.query name="SELECT_ACTIVITY_RECOVERY_IDS_BY_INSTANCES" query="select id from HActivityRecovery as a where a.instance in (:instances)" 
  */
 public class HActivityRecovery extends HObject {
-    public final static String DELETE_ACTIVITY_RECOVERIES_BY_INSTANCES = "DELETE_ACTIVITY_RECOVERIES_BY_INSTANCES";
+    public final static String SELECT_ACTIVITY_RECOVERY_IDS_BY_INSTANCES = "SELECT_ACTIVITY_RECOVERY_IDS_BY_INSTANCES";
 
     /** Process instance to which this scope belongs. */
     private HProcessInstance _instance;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HBpelEvent.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HBpelEvent.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HBpelEvent.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HBpelEvent.java Wed Oct  7 21:23:54 2009
@@ -25,10 +25,10 @@
  * Row representation of a BPEL event.
  * 
  * @hibernate.class table="BPEL_EVENT"
- * @hibernate.query name="DELETE_EVENTS_BY_INSTANCES" query="delete from HBpelEvent as e where e.instance in (:instances)"
+ * @hibernate.query name="SELECT_EVENT_IDS_BY_INSTANCES" query="select id from HBpelEvent as e where e.instance in (:instances)"
  */
 public class HBpelEvent extends HObject {
-    public static final String DELETE_EVENTS_BY_INSTANCES = "DELETE_EVENTS_BY_INSTANCES";
+    public static final String SELECT_EVENT_IDS_BY_INSTANCES = "SELECT_EVENT_IDS_BY_INSTANCES";
 
     private Timestamp _tstamp;
     private String _type;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationProperty.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationProperty.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationProperty.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationProperty.java Wed Oct  7 21:23:54 2009
@@ -26,10 +26,10 @@
  * correlation set.
  * 
  * @hibernate.class table="BPEL_CORRELATION_PROP"
- * @hibernate.query name="DELETE_CORPROPS_BY_INSTANCES" query="delete from HCorrelationProperty as p where p.correlationSet in(select s from HCorrelationSet as s where s.instance in (:instances))"
+ * @hibernate.query name="SELECT_CORPROP_IDS_BY_INSTANCES" query="select id from HCorrelationProperty as p where p.correlationSet in(select s from HCorrelationSet as s where s.instance in (:instances))"
  */
 public class HCorrelationProperty extends HObject {
-    public final static String DELETE_CORPROPS_BY_INSTANCES = "DELETE_CORPROPS_BY_INSTANCES";
+    public final static String SELECT_CORPROP_IDS_BY_INSTANCES = "SELECT_CORPROP_IDS_BY_INSTANCES";
 
     private String _name;
     private String _namespace;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelationSet.java Wed Oct  7 21:23:54 2009
@@ -25,12 +25,12 @@
  * Hibernate table representing correlation set values.
  * 
  * @hibernate.class table="BPEL_CORRELATION_SET"
- * @hibernate.query name="DELETE_CORSETS_BY_INSTANCES" query="delete from HCorrelationSet as c where c.instance in (:instances)"
+ * @hibernate.query name="SELECT_CORSET_IDS_BY_INSTANCES" query="select id from HCorrelationSet as c where c.instance in (:instances)"
  * @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_CORSETS_BY_PROCESS_STATES" query="from HCorrelationSet as c left join fetch c.process left join fetch c.instance where c.instance.state in (:states)"
  */
-public class HCorrelationSet extends HObject {
-    public static final String DELETE_CORSETS_BY_INSTANCES = "DELETE_CORSETS_BY_INSTANCES";
+public class HCorrelationSet extends HObject{
+    public static final String SELECT_CORSET_IDS_BY_INSTANCES = "SELECT_CORSET_IDS_BY_INSTANCES";
     public static final String SELECT_CORSETS_BY_INSTANCES = "SELECT_CORSETS_BY_INSTANCES";
     public static final String SELECT_CORSETS_BY_PROCESS_STATES = "SELECT_CORSETS_BY_PROCESS_STATES";
 	  

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelator.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelator.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelator.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelator.java Wed Oct  7 21:23:54 2009
@@ -31,11 +31,11 @@
  * matched up to a pcik/receive.
  * 
  * @hibernate.class table="BPEL_CORRELATOR"
- * @hibernate.query name="DELETE_CORRELATORS_BY_PROCESS" query="delete from HCorrelator as c where c.process = :process"
+ * @hibernate.query name="SELECT_CORRELATOR_IDS_BY_PROCESS" query="select id from HCorrelator as c where c.process = :process"
  */
 public class HCorrelator extends HObject {
-    public final static String DELETE_CORRELATORS_BY_PROCESS = "DELETE_CORRELATORS_BY_PROCESS";
-
+	public final static String SELECT_CORRELATOR_IDS_BY_PROCESS = "SELECT_CORRELATOR_IDS_BY_PROCESS";
+	
     private HProcess _process;
 
     private String _correlatorId;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorMessage.java Wed Oct  7 21:23:54 2009
@@ -20,12 +20,12 @@
 
 /**
  * @hibernate.class table="BPEL_UNMATCHED" lazy="true"
- * @hibernate.query name="DELETE_CORMESSAGES_BY_INSTANCES" query="delete from HCorrelatorMessage as m where m.messageExchange in(select mex from HMessageExchange as mex where mex.instance in (:instances))"
- * @hibernate.query name="DELETE_CORMESSAGES_BY_MEX" query="delete from HCorrelatorMessage as m where m.messageExchange = :mex"
+ * @hibernate.query name="SELECT_CORMESSAGE_IDS_BY_INSTANCES" query="select id from HCorrelatorMessage as m where m.messageExchange in(select mex from HMessageExchange as mex where mex.instance in (:instances))"
+ * @hibernate.query name="SELECT_CORMESSAGE_IDS_BY_MEX" query="select id from HCorrelatorMessage as m where m.messageExchange = :mex"
  */
 public class HCorrelatorMessage extends HObject {
-    public final static String DELETE_CORMESSAGES_BY_MEX = "DELETE_CORMESSAGES_BY_MEX";
-    public final static String DELETE_CORMESSAGES_BY_INSTANCES = "DELETE_CORMESSAGES_BY_INSTANCES";
+    public final static String SELECT_CORMESSAGE_IDS_BY_MEX = "SELECT_CORMESSAGE_IDS_BY_MEX";
+    public final static String SELECT_CORMESSAGE_IDS_BY_INSTANCES = "SELECT_CORMESSAGE_IDS_BY_INSTANCES";
 
     private HMessageExchange _messageExchange;
     private HCorrelator _correlator;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HCorrelatorSelector.java Wed Oct  7 21:23:54 2009
@@ -20,12 +20,12 @@
 
 /**
  * @hibernate.class table="BPEL_SELECTORS" lazy="true"
- * @hibernate.query name="DELETE_MESSAGE_ROUTES_BY_PROCESS" query="delete from HCorrelatorSelector as m where m.correlator in(select c from HCorrelator c where c.process = :process)"
- * @hibernate.query name="DELETE_MESSAGE_ROUTES_BY_INSTANCES" query="delete from HCorrelatorSelector as m where m.instance in (:instances))"
+ * @hibernate.query name="SELECT_MESSAGE_ROUTE_IDS_BY_PROCESS" query="select id from HCorrelatorSelector as m where m.correlator in(select c from HCorrelator c where c.process = :process)"
+ * @hibernate.query name="SELECT_MESSAGE_ROUTE_IDS_BY_INSTANCES" query="select id from HCorrelatorSelector as m where m.instance in (:instances))"
  */
 public class HCorrelatorSelector extends HObject {
-    public static final String DELETE_MESSAGE_ROUTES_BY_PROCESS = "DELETE_MESSAGE_ROUTES_BY_PROCESS";
-    public static final String DELETE_MESSAGE_ROUTES_BY_INSTANCES = "DELETE_MESSAGE_ROUTES_BY_INSTANCES";
+    public static final String SELECT_MESSAGE_ROUTE_IDS_BY_PROCESS = "SELECT_MESSAGE_ROUTE_IDS_BY_PROCESS";
+    public static final String SELECT_MESSAGE_ROUTE_IDS_BY_INSTANCES = "SELECT_MESSAGE_ROUTE_IDS_BY_INSTANCES";
 
     private HProcessInstance _instance;
     private String _groupId;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HFaultData.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HFaultData.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HFaultData.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HFaultData.java Wed Oct  7 21:23:54 2009
@@ -23,10 +23,10 @@
  * Persistent representation of a fault.
  * 
  * @hibernate.class table="BPEL_FAULT"
- * @hibernate.query name="DELETE_FAULTS_BY_INSTANCES" query="delete from HFaultData as f where f in (select i.fault from HProcessInstance as i where i in (:instances))"
+ * @hibernate.query name="SELECT_FAULT_IDS_BY_INSTANCES" query="select id from HFaultData as f where f in (select i.fault from HProcessInstance as i where i in (:instances))"
  */
 public class HFaultData extends HObject {
-    public final static String DELETE_FAULTS_BY_INSTANCES = "DELETE_FAULTS_BY_INSTANCES";
+    public final static String SELECT_FAULT_IDS_BY_INSTANCES = "SELECT_FAULT_IDS_BY_INSTANCES";
 
     private String _name;
     private String _explanation;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HLargeData.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HLargeData.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HLargeData.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HLargeData.java Wed Oct  7 21:23:54 2009
@@ -25,34 +25,55 @@
  * an instance of this class must be created.
  * 
  * @hibernate.class table="LARGE_DATA"
- * @hibernate.query name="DELETE_ACTIVITY_RECOVERY_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select a.details from HActivityRecovery as a where a.instance in (:instances))"
- * @hibernate.query name="DELETE_JACOB_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select i.jacobState from HProcessInstance as i where i in (:instances))"
- * @hibernate.query name="DELETE_MESSAGE_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select x.request.messageData.id from HMessageExchange x where x.instance in(:instances)) or d.id in(select x.response.messageData.id from HMessageExchange x where x.instance in(:instances)) or d.id in(select x.request.header.id from HMessageExchange x where x.instance in (:instances)) or d.id in(select x.response.header.id from HMessageExchange x where x.instance in (:instances))"
- * @hibernate.query name="DELETE_MEX_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select e.endpoint from HMessageExchange as e where e.instance in (:instances)) or d IN(select e.callbackEndpoint from HMessageExchange as e where e.instance in (:instances))"
+ * @hibernate.query name="SELECT_ACTIVITY_RECOVERY_LDATA_IDS_BY_INSTANCES" query="select a.details.id from HActivityRecovery as a where a.instance in (:instances) and a.details is not null"
+ * @hibernate.query name="SELECT_JACOB_LDATA_IDS_BY_INSTANCES" query="select i.jacobState.id from HProcessInstance as i where i in (:instances) and i.jacobState is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_1" query="select mex.request.messageData.id from HMessageExchange mex where mex.instance in (:instances) and mex.request.messageData is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_2" query="select mex.response.messageData.id from HMessageExchange mex where mex.instance in (:instances) and mex.response.messageData is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_3" query="select mex.request.header.id from HMessageExchange mex where mex.instance in (:instances) and mex.request.header is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_4" query="select mex.response.header.id from HMessageExchange mex where mex.instance in (:instances) and mex.response.header is not null"
+ * @hibernate.query name="SELECT_MEX_LDATA_IDS_BY_INSTANCES_1" query="select e.endpoint.id from HMessageExchange as e where e.instance in (:instances) and e.endpoint is not null"
+ * @hibernate.query name="SELECT_MEX_LDATA_IDS_BY_INSTANCES_2" query="select e.callbackEndpoint.id from HMessageExchange as e where e.instance in (:instances) and e.callbackEndpoint is not null"
  *
- * @hibernate.query name="DELETE_EVENT_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select e.data from HBpelEvent as e where e.instance in (:instances))"
- * @hibernate.query name="DELETE_UNMATCHED_MESSAGE_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select cm.messageExchange.request.messageData from HCorrelatorMessage cm where cm.messageExchange.instance in (:instances)) or d in(select cm.messageExchange.response.messageData from HCorrelatorMessage cm where cm.messageExchange.instance in (:instances)) or d in(select cm.messageExchange.request.header from HCorrelatorMessage cm where cm.messageExchange.instance in (:instances)) or d in(select cm.messageExchange.response.header from HCorrelatorMessage cm where cm.messageExchange.instance in (:instances))"
- * @hibernate.query name="DELETE_XMLDATA_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select x.data from HXmlData as x where x.instance in (:instances))"
- * @hibernate.query name="DELETE_PARTNER_LINK_LDATA_BY_INSTANCES" query="delete from HLargeData as d where d in(select l.myEPR from HPartnerLink as l where l.scope.instance in (:instances)) or d IN(select l.partnerEPR from HPartnerLink as l where l.scope.instance in (:instances))"
- * @hibernate.query name="DELETE_FAULT_LDATA_BY_INSTANCE_IDS" query="delete from HLargeData as d where d in(select f.data from HFaultData as f, HProcessInstance as i where f.id = i.fault and i.id in (:instanceIds))"
- * 
- * use two nested sub-selects
- * @hibernate.query name="DELETE_MESSAGE_LDATA_BY_MEX" query="delete from HLargeData as d where d in(select m.messageData from HMessage m where m in(select x.request from HMessageExchange x where x = :mex) or m in(select x.response from HMessageExchange x where x = :mex)) or d in(select m.header from HMessage m where m in(select x.request from HMessageExchange x where x = :mex) or m in(select x.response from HMessageExchange x where x = :mex))"
+ * @hibernate.query name="SELECT_EVENT_LDATA_IDS_BY_INSTANCES" query="select e.data.id from HBpelEvent as e where e.instance in (:instances) and e.data is not null"
+ * @hibernate.query name="SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_1" query="select mex.request.messageData.id from HMessageExchange mex, HCorrelatorMessage cm where mex = cm.messageExchange and mex.instance in (:instances) and mex.request.messageData is not null"
+ * @hibernate.query name="SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_2" query="select mex.response.messageData.id from HMessageExchange mex, HCorrelatorMessage cm where mex = cm.messageExchange and mex.instance in (:instances) and mex.response.messageData is not null"
+ * @hibernate.query name="SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_3" query="select mex.request.header.id from HMessageExchange mex, HCorrelatorMessage cm where mex = cm.messageExchange and mex.instance in (:instances) and mex.request.header is not null"
+ * @hibernate.query name="SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_4" query="select mex.response.header.id from HMessageExchange mex, HCorrelatorMessage cm where mex = cm.messageExchange and mex.instance in (:instances) and mex.response.header is not null"
+ * @hibernate.query name="SELECT_XMLDATA_LDATA_IDS_BY_INSTANCES" query="select x.data.id from HXmlData as x where x.instance in (:instances) and x.data is not null"
+ * @hibernate.query name="SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_1" query="select l.myEPR.id from HPartnerLink as l where l.scope.instance in (:instances) and l.myEPR is not null"
+ * @hibernate.query name="SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_2" query="select l.partnerEPR.id from HPartnerLink as l where l.scope.instance in (:instances) and l.partnerEPR is not null"
+ * @hibernate.query name="SELECT_FAULT_LDATA_IDS_BY_INSTANCE_IDS" query="select f.data.id from HFaultData as f, HProcessInstance as i where f.id = i.fault and i.id in (:instanceIds) and f.data is not null"
+
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_MEX_1" query="select mex.request.messageData.id from HMessageExchange mex where mex = :mex and mex.request.messageData is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_MEX_2" query="select mex.response.messageData.id from HMessageExchange mex where mex = :mex and mex.response.messageData is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_MEX_3" query="select mex.request.header.id from HMessageExchange mex where mex = :mex and mex.request.header is not null"
+ * @hibernate.query name="SELECT_MESSAGE_LDATA_IDS_BY_MEX_4" query="select mex.response.header.id from HMessageExchange mex where mex = :mex and mex.response.header is not null"
  */
 public class HLargeData extends HObject {
+    public final static String SELECT_ACTIVITY_RECOVERY_LDATA_IDS_BY_INSTANCES = "SELECT_ACTIVITY_RECOVERY_LDATA_IDS_BY_INSTANCES";
+    public final static String SELECT_JACOB_LDATA_IDS_BY_INSTANCES = "SELECT_JACOB_LDATA_IDS_BY_INSTANCES";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_1 = "SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_1";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_2 = "SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_2";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_3 = "SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_3";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_4 = "SELECT_MESSAGE_LDATA_IDS_BY_INSTANCES_4";
+    public final static String SELECT_MEX_LDATA_IDS_BY_INSTANCES_1 = "SELECT_MEX_LDATA_IDS_BY_INSTANCES_1";
+    public final static String SELECT_MEX_LDATA_IDS_BY_INSTANCES_2 = "SELECT_MEX_LDATA_IDS_BY_INSTANCES_2";
+
+    public final static String SELECT_EVENT_LDATA_IDS_BY_INSTANCES = "SELECT_EVENT_LDATA_IDS_BY_INSTANCES";
+    public final static String SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_1 = "SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_1";
+    public final static String SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_2 = "SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_2";
+    public final static String SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_3 = "SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_3";
+    public final static String SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_4 = "SELECT_UNMATCHED_MESSAGE_LDATA_IDS_BY_INSTANCES_4";
+    public final static String SELECT_XMLDATA_LDATA_IDS_BY_INSTANCES = "SELECT_XMLDATA_LDATA_IDS_BY_INSTANCES";
+    public final static String SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_1 = "SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_1";
+    public final static String SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_2 = "SELECT_PARTNER_LINK_LDATA_IDS_BY_INSTANCES_2";
+    public final static String SELECT_FAULT_LDATA_IDS_BY_INSTANCE_IDS = "SELECT_FAULT_LDATA_IDS_BY_INSTANCE_IDS";
     
-    public final static String DELETE_ACTIVITY_RECOVERY_LDATA_BY_INSTANCES = "DELETE_ACTIVITY_RECOVERY_LDATA_BY_INSTANCES";
-    public final static String DELETE_JACOB_LDATA_BY_INSTANCES = "DELETE_JACOB_LDATA_BY_INSTANCES";
-    public final static String DELETE_MESSAGE_LDATA_BY_INSTANCES = "DELETE_MESSAGE_LDATA_BY_INSTANCES";
-    public final static String DELETE_MEX_LDATA_BY_INSTANCES = "DELETE_MEX_LDATA_BY_INSTANCES";
-
-    public final static String DELETE_EVENT_LDATA_BY_INSTANCES = "DELETE_EVENT_LDATA_BY_INSTANCES";
-    public final static String DELETE_MESSAGE_LDATA_BY_MEX = "DELETE_MESSAGE_LDATA_BY_MEX";
-    public final static String DELETE_UNMATCHED_MESSAGE_LDATA_BY_INSTANCES = "DELETE_UNMATCHED_MESSAGE_LDATA_BY_INSTANCES";
-    public final static String DELETE_XMLDATA_LDATA_BY_INSTANCES = "DELETE_XMLDATA_LDATA_BY_INSTANCES";
-    public final static String DELETE_PARTNER_LINK_LDATA_BY_INSTANCES = "DELETE_PARTNER_LINK_LDATA_BY_INSTANCES";
-    public final static String DELETE_FAULT_LDATA_BY_INSTANCE_IDS = "DELETE_FAULT_LDATA_BY_INSTANCE_IDS";
-
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_MEX_1 = "SELECT_MESSAGE_LDATA_IDS_BY_MEX_1";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_MEX_2 = "SELECT_MESSAGE_LDATA_IDS_BY_MEX_2";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_MEX_3 = "SELECT_MESSAGE_LDATA_IDS_BY_MEX_3";
+    public final static String SELECT_MESSAGE_LDATA_IDS_BY_MEX_4 = "SELECT_MESSAGE_LDATA_IDS_BY_MEX_4";
+	
     private byte[] binary = null;
 
     public HLargeData() {

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessage.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessage.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessage.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessage.java Wed Oct  7 21:23:54 2009
@@ -22,14 +22,17 @@
 /**
  * Hibernate-managed table for keeping track of messages.
  *
- * @hibernate.class
- *  table="BPEL_MESSAGE"
- * @hibernate.query name="DELETE_MESSAGES_BY_MEX" query="delete from HMessage as m where m in(select request from HMessageExchange e where e = :messageExchange) or m in(select response from HMessageExchange e where e = :messageExchange)"
- * @hibernate.query name="DELETE_MESSAGES_BY_INSTANCES" query="delete from HMessage as m where m in(select request from HMessageExchange e where e.instance in (:instances)) or m in(select response from HMessageExchange e where e.instance in (:instances))"
+ * @hibernate.class table="BPEL_MESSAGE"
+ * @hibernate.query name="SELECT_MESSAGE_IDS_BY_MEX_1" query="select mex.request.id from HMessageExchange mex WHERE mex = :messageExchange and mex.request is not null"
+ * @hibernate.query name="SELECT_MESSAGE_IDS_BY_MEX_2" query="select mex.response.id from HMessageExchange mex WHERE mex = :messageExchange and mex.response is not null"
+ * @hibernate.query name="SELECT_MESSAGE_IDS_BY_INSTANCES_1" query="select mex.request.id from HMessageExchange mex WHERE mex.instance in (:instances) and mex.request.id is not null"
+ * @hibernate.query name="SELECT_MESSAGE_IDS_BY_INSTANCES_2" query="select mex.response.id from HMessageExchange mex WHERE mex.instance in (:instances) and mex.response.id is not null"
  */
 public class HMessage extends HObject {
-    public final static String DELETE_MESSAGES_BY_MEX = "DELETE_MESSAGES_BY_MEX";
-    public final static String DELETE_MESSAGES_BY_INSTANCES = "DELETE_MESSAGES_BY_INSTANCES";
+    public final static String SELECT_MESSAGE_IDS_BY_MEX_1 = "SELECT_MESSAGE_IDS_BY_MEX_1";
+    public final static String SELECT_MESSAGE_IDS_BY_MEX_2 = "SELECT_MESSAGE_IDS_BY_MEX_2";
+    public final static String SELECT_MESSAGE_IDS_BY_INSTANCES_1 = "SELECT_MESSAGE_IDS_BY_INSTANCES_1";
+    public final static String SELECT_MESSAGE_IDS_BY_INSTANCES_2 = "SELECT_MESSAGE_IDS_BY_INSTANCES_2";
 
     private String _type;
     private HLargeData _data;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchange.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchange.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchange.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchange.java Wed Oct  7 21:23:54 2009
@@ -26,11 +26,11 @@
  * Hibernate-managed table for keeping track of message exchanges.
  * 
  * @hibernate.class table="BPEL_MESSAGE_EXCHANGE" dynamic-update="true"
- * @hibernate.query name="DELETE_MEX_BY_INSTANCES" query="delete from HMessageExchange as m where m.instance in (:instances)"
+ * @hibernate.query name="SELECT_MEX_IDS_BY_INSTANCES" query="select id from HMessageExchange as m where m.instance in (:instances)"
  * @hibernate.query name="SELECT_UNMATCHED_MEX_BY_INSTANCES" query="from HMessageExchange as m where m in(select cm.messageExchange from HCorrelatorMessage as cm where cm.messageExchange.instance in (:instances))"
  */
 public class HMessageExchange extends HObject {
-    public final static String DELETE_MEX_BY_INSTANCES = "DELETE_MEX_BY_INSTANCES";
+    public final static String SELECT_MEX_IDS_BY_INSTANCES = "SELECT_MEX_IDS_BY_INSTANCES";
     public final static String SELECT_UNMATCHED_MEX_BY_INSTANCES = "SELECT_UNMATCHED_MEX_BY_INSTANCES";
 
     private String _channelName;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchangeProperty.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchangeProperty.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchangeProperty.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HMessageExchangeProperty.java Wed Oct  7 21:23:54 2009
@@ -25,11 +25,11 @@
  * is excluded from schema export.
  * 
  * @hibernate.class table="BPEL_MEX_PROPS" lazy="true"
- * @hibernate.query name="DELETE_MEX_PROPS_BY_INSTANCES" query="delete from HMessageExchangeProperty as p where p.mex in(select e from HMessageExchange e where e.instance in (:instances))"
+ * @hibernate.query name="SELECT_MEX_PROPS_IDS_BY_INSTANCES" query="select p.id from HMessageExchangeProperty p, HMessageExchange e where p.mex = e and e.instance in (:instances)"
  */
 @SuppressWarnings("serial")
 public class HMessageExchangeProperty implements Serializable {
-    public final static String DELETE_MEX_PROPS_BY_INSTANCES = "DELETE_MEX_PROPS_BY_INSTANCES";
+    public final static String SELECT_MEX_PROPS_IDS_BY_INSTANCES = "SELECT_MEX_PROPS_IDS_BY_INSTANCES";
 
 	private HMessageExchange _mex;
 	private String _name;
@@ -82,15 +82,15 @@
 		_value = value;
 	}
 
-	public boolean equals(Object another) {
-		// fake implementation to suppress hibernate warning on key not hash-searchable; 
-		// actually HMessageExchangePropery is never retrieved by the id 
-		return super.equals(another);
-	}
-	
-	public int hashCode() {
-		// fake implementation to suppress hibernate warning on key not hash-searchable
-		// actually HMessageExchangePropery is never retrieved by the id 
-		return _mex.hashCode() * 29 + _name.hashCode() * 13;
-	}
-}
\ No newline at end of file
+    public boolean equals(Object another) {
+        // fake implementation to suppress hibernate warning on key not hash-searchable; 
+        // actually HMessageExchangePropery is never retrieved by the id 
+        return super.equals(another);
+    }
+    
+    public int hashCode() {
+        // fake implementation to suppress hibernate warning on key not hash-searchable
+        // actually HMessageExchangePropery is never retrieved by the id 
+        return _mex.hashCode() * 29 + _name.hashCode() * 13;
+    }
+}

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HPartnerLink.java Wed Oct  7 21:23:54 2009
@@ -28,10 +28,10 @@
  * configuration).
  * 
  * @hibernate.class table="BPEL_PLINK_VAL"
- * @hibernate.query name="DELETE_PARTNER_LINKS_BY_INSTANCES" query="delete from HPartnerLink as l where l.scope in (select s from HScope as s where s.instance in (:instances))"
+ * @hibernate.query name="SELECT_PARTNER_LINK_IDS_BY_INSTANCES" query="select l.id from HPartnerLink l, HScope s where l.scope = s and s.instance in (:instances)"
  */
 public class HPartnerLink extends HObject {
-    public final static String DELETE_PARTNER_LINKS_BY_INSTANCES = "DELETE_PARTNER_LINKS_BY_INSTANCES";
+    public final static String SELECT_PARTNER_LINK_IDS_BY_INSTANCES = "SELECT_PARTNER_LINK_IDS_BY_INSTANCES";
 
     private String _linkName;
 

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HProcessInstance.java Wed Oct  7 21:23:54 2009
@@ -31,13 +31,11 @@
  * @hibernate.query name="COUNT_FAILED_INSTANCES_BY_PROCESS_IDS_AND_STATES" query="select count(i.id) as cnt, max(i.activityFailureDateTime) as lastFailureDt from HProcessInstance as i where i.process.processId in (:processIds) and i.state in(:states) and i.activityFailureCount > 0"
  * @hibernate.query name="SELECT_INSTANCES_BY_PROCESS" query="from HProcessInstance as i where i.process = :process)"
  * @hibernate.query name="SELECT_INSTANCES_BY_PROCESSES_AND_STATES" query="from HProcessInstance as i where i.process in (:processes) and i.state in (:states)"
- * @hibernate.query name="DELETE_INSTANCES" query="delete from HProcessInstance as i where i in (:instances)"
  */
 public class HProcessInstance extends HObject {
     public static final String COUNT_FAILED_INSTANCES_BY_PROCESS_IDS_AND_STATES="COUNT_FAILED_INSTANCES_BY_PROCESS_IDS_AND_STATES";
     public static final String SELECT_INSTANCES_BY_PROCESS="SELECT_INSTANCES_BY_PROCESS";
     public static final String SELECT_INSTANCES_BY_PROCESSES_AND_STATES="SELECT_INSTANCES_BY_PROCESSES_AND_STATES";
-    public static final String DELETE_INSTANCES="DELETE_INSTANCES";
 
     /** Foreign key to owner {@link HProcess}. */
     private HProcess _process;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HScope.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HScope.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HScope.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HScope.java Wed Oct  7 21:23:54 2009
@@ -25,10 +25,10 @@
  * Hibernate table representing a BPEL scope instance.
  * 
  * @hibernate.class table="BPEL_SCOPE"
- * @hibernate.query name="DELETE_SCOPES_BY_INSTANCES" query="delete from HScope as s where s.instance in (:instances)"
+ * @hibernate.query name="SELECT_SCOPE_IDS_BY_INSTANCES" query="select id from HScope as s where s.instance in (:instances)"
  */
-public class HScope extends HObject {
-    public final static String DELETE_SCOPES_BY_INSTANCES = "DELETE_SCOPES_BY_INSTANCES";
+public class HScope extends HObject{
+    public final static String SELECT_SCOPE_IDS_BY_INSTANCES = "SELECT_SCOPE_IDS_BY_INSTANCES";
 
     /** Process instance to which this scope belongs. */
     private HProcessInstance _instance;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HVariableProperty.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HVariableProperty.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HVariableProperty.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HVariableProperty.java Wed Oct  7 21:23:54 2009
@@ -23,10 +23,10 @@
  * of process instances based on indexed lookup of property values.
  * 
  * @hibernate.class table="VAR_PROPERTY"
- * @hibernate.query name="DELETE_VARIABLE_PROPERITES_BY_INSTANCES" query="delete from HVariableProperty as p where p.xmlData in(select x.id from HXmlData x where x.instance in (:instances))"
+ * @hibernate.query name="SELECT_VARIABLE_PROPERTY_IDS_BY_INSTANCES" query="select id from HVariableProperty as p where p.xmlData in(select x.id from HXmlData x where x.instance in (:instances))"
  */
-public class HVariableProperty extends HObject {
-    public final static String DELETE_VARIABLE_PROPERITES_BY_INSTANCES = "DELETE_VARIABLE_PROPERITES_BY_INSTANCES";
+public class HVariableProperty extends HObject{
+    public final static String SELECT_VARIABLE_PROPERTY_IDS_BY_INSTANCES = "SELECT_VARIABLE_PROPERTY_IDS_BY_INSTANCES";
 
     private String _propertyValue;
     private String _propertyName;

Modified: ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java?rev=822922&r1=822921&r2=822922&view=diff
==============================================================================
--- ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java (original)
+++ ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java Wed Oct  7 21:23:54 2009
@@ -23,10 +23,10 @@
 
 /**
  * @hibernate.class table="BPEL_XML_DATA"
- * @hibernate.query name="DELETE_XMLDATA_BY_INSTANCES" query="delete from HXmlData as x where x.instance in (:instances)"
+ * @hibernate.query name="SELECT_XMLDATA_IDS_BY_INSTANCES" query="select id from HXmlData as x where x.instance in (:instances)"
  */
-public class HXmlData extends HObject {
-    public static final String DELETE_XMLDATA_BY_INSTANCES = "DELETE_XMLDATA_BY_INSTANCES";
+public class HXmlData extends HObject{
+    public static final String SELECT_XMLDATA_IDS_BY_INSTANCES = "SELECT_XMLDATA_IDS_BY_INSTANCES";
 
     private boolean _simpleType;
     private HLargeData _data;

Added: ode/trunk/dao-hibernate/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/ode/trunk/dao-hibernate/src/test/resources/log4j.properties?rev=822922&view=auto
==============================================================================
--- ode/trunk/dao-hibernate/src/test/resources/log4j.properties (added)
+++ ode/trunk/dao-hibernate/src/test/resources/log4j.properties Wed Oct  7 21:23:54 2009
@@ -0,0 +1,35 @@
+# 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed  under the  License is distributed on an "AS IS" BASIS,
+# WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+# implied.
+#  
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+#
+# The logging properties used during tests..
+#
+log4j.rootLogger=DEBUG, file
+#log4j.rootLogger=INFO, file
+
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=target/test/test.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n 
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n 
+

Propchange: ode/trunk/dao-hibernate/src/test/resources/log4j.properties
------------------------------------------------------------------------------
    svn:eol-style = native