Author: vanto
Date: Thu Jan 13 13:29:11 2011
New Revision: 1058542
URL: http://svn.apache.org/viewvc?rev=1058542&view=rev
Log:
JPA impl for ODE-795, which was horribly broken.
Modified:
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
Modified:
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java?rev=1058542&r1=1058541&r2=1058542&view=diff
==============================================================================
---
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
(original)
+++
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
Thu Jan 13 13:29:11 2011
@@ -63,23 +63,29 @@ import java.util.Set;
@Entity
@Table(name="ODE_PROCESS_INSTANCE")
@NamedQueries({
- @NamedQuery(name=ProcessInstanceDAOImpl.DELETE_INSTANCES_BY_PROCESS,
query="delete from ProcessInstanceDAOImpl as i where i._process = :process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_INSTANCE_IDS_BY_PROCESS,
query="select i._instanceId from ProcessInstanceDAOImpl as i where i._process =
:process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCE_IDS_BY_PROCESS,
query="select count(i._instanceId) from ProcessInstanceDAOImpl as i where
i._process = :process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_FAULT_IDS_BY_PROCESS,
query="select i._faultId from ProcessInstanceDAOImpl as i where i._process =
:process and i._faultId is not null"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.DELETE_INSTANCES_BY_PROCESS,
query="delete from ProcessInstanceDAOImpl as i where i._process = :process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_INSTANCE_IDS_BY_PROCESS,
query="select i._instanceId from ProcessInstanceDAOImpl as i where i._process =
:process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCE_IDS_BY_PROCESS,
query="select count(i._instanceId) from ProcessInstanceDAOImpl as i where
i._process = :process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_FAULT_IDS_BY_PROCESS,
query="select i._faultId from ProcessInstanceDAOImpl as i where i._process =
:process and i._faultId is not null"),
@NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID,
- query="select count(i._instanceId), max(i._lastRecovery) from
ProcessInstanceDAOImpl as i where i._process._processId = :processId and
i._state in(:states) and exists(select r from ActivityRecoveryDAOImpl r where i
= r._instance)")
+ query="select count(i._instanceId), max(i._lastRecovery) from
ProcessInstanceDAOImpl as i where i._process._processId = :processId and
i._state in(:states) and exists(select r from ActivityRecoveryDAOImpl r where i
= r._instance)"),
+
@NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS,
+ query="select i._process._processId, count(i._instanceId),
max(i._lastRecovery) from ProcessInstanceDAOImpl as i where
i._process._processId in (:processIds) and i._state = 20 and exists(select r
from ActivityRecoveryDAOImpl r where i = r._instance) group by
i._process._processId"),
+
@NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES,
+ query="select i._process._processId, count(i._instanceId) from
ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and
i._state in(:states) group by i._process._processId")
})
public class ProcessInstanceDAOImpl extends OpenJPADAO implements
ProcessInstanceDAO {
private static final Log __log =
LogFactory.getLog(ProcessInstanceDAOImpl.class);
public final static String DELETE_INSTANCES_BY_PROCESS =
"DELETE_INSTANCES_BY_PROCESS";
- public final static String SELECT_INSTANCE_IDS_BY_PROCESS =
"SELECT_INSTANCE_IDS_BY_PROCESS";
- public final static String COUNT_INSTANCE_IDS_BY_PROCESS =
"COUNT_INSTANCE_IDS_BY_PROCESS";
+ public final static String SELECT_INSTANCE_IDS_BY_PROCESS =
"SELECT_INSTANCE_IDS_BY_PROCESS";
+ public final static String COUNT_INSTANCE_IDS_BY_PROCESS =
"COUNT_INSTANCE_IDS_BY_PROCESS";
- public final static String SELECT_FAULT_IDS_BY_PROCESS =
"SELECT_FAULT_IDS_BY_PROCESS";
+ public final static String SELECT_FAULT_IDS_BY_PROCESS =
"SELECT_FAULT_IDS_BY_PROCESS";
public final static String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID
= "COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID";
-
+ public final static String
COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS =
"COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS";
+ public static final String COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES =
"COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES";
+
@Id @Column(name="ID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long _instanceId;
Modified:
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java?rev=1058542&r1=1058541&r2=1058542&view=diff
==============================================================================
---
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
(original)
+++
ode/trunk/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
Thu Jan 13 13:29:11 2011
@@ -20,22 +20,22 @@
package org.apache.ode.dao.jpa;
import java.util.Collection;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import javax.xml.namespace.QName;
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.InstanceFilter;
+import org.apache.ode.bpel.common.InstanceFilter.StatusKeys;
import org.apache.ode.bpel.dao.BpelDAOConnection;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.bpel.dao.ProcessManagementDAO;
-import org.apache.ode.bpel.dao.ProcessManagementDAO.FailedSummaryValue;
-import org.apache.ode.bpel.dao.ProcessManagementDAO.InstanceSummaryKey;
public class ProcessManagementDAOImpl implements ProcessManagementDAO {
private static final Log __log =
LogFactory.getLog(ProcessManagementDAOImpl.class);
@@ -85,10 +85,35 @@ public class ProcessManagementDAOImpl im
}
public Map<InstanceSummaryKey, Long> countInstancesSummary(Set<String>
pids) {
- return new HashMap<InstanceSummaryKey, Long>();
+ Map<InstanceSummaryKey, Long> result = new HashMap<InstanceSummaryKey,
Long>();
+ if (!pids.isEmpty()) {
+ for (StatusKeys status : InstanceFilter.StatusKeys.values()) {
+ Query query =
em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES);
+ query.setParameter("states", new InstanceFilter("status=" +
status.toString()).convertFilterState());
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ Object[] row = (Object[]) o;
+ InstanceSummaryKey key = new
InstanceSummaryKey(row[0].toString(), status.toString());
+ result.put(key, (Long) row[1]);
+ }
+ }
+ }
+
+ return result;
}
public Map<String, FailedSummaryValue>
findFailedCountAndLastFailedDateForProcessIds(Set<String> pids) {
- return new HashMap<String, FailedSummaryValue>();
+ Map<String, FailedSummaryValue> result = new HashMap<String,
FailedSummaryValue>();
+ if (!pids.isEmpty()) {
+ Query query =
em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS);
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ System.out.println(o);
+ Object[] row = (Object[]) o;
+ result.put(row[0].toString(), new FailedSummaryValue((Long)
row[1], (Date) row[2]));
+ }
+ }
+ return result;
+
}
}