diff --git a/config/alfresco/hibernate-context.xml b/config/alfresco/hibernate-context.xml
index c1e25b1594..1ab65634dc 100644
--- a/config/alfresco/hibernate-context.xml
+++ b/config/alfresco/hibernate-context.xml
@@ -135,9 +135,6 @@
org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml
org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml
org/jbpm/job/CleanUpProcessJob.hbm.xml
-
- org/alfresco/repo/workflow/jbpm/jbpm.ext.queries.hbm.xml
-
diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java
index 4690f3cdda..dbeb942f30 100644
--- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java
+++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java
@@ -23,16 +23,14 @@ import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
+import java.util.Map.Entry;
import java.util.zip.ZipInputStream;
import org.alfresco.model.ContentModel;
@@ -72,9 +70,7 @@ import org.alfresco.service.namespace.NamespaceException;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
-import org.hibernate.CacheMode;
import org.hibernate.Criteria;
-import org.hibernate.FlushMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Conjunction;
@@ -134,8 +130,6 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
protected StoreRef companyHomeStore;
protected String companyHomePath;
- private QNameCache qNameCache = new QNameCache();
-
// Note: jBPM query which is not provided out-of-the-box
// TODO: Check jBPM 3.2 and get this implemented in jBPM
private final static String COMPLETED_TASKS_QUERY = "select ti " + "from org.jbpm.taskmgmt.exe.TaskInstance as ti "
@@ -796,16 +790,26 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
return new WorkflowException(msg, e);
}
+ /* (non-Javadoc)
+ * @see org.alfresco.repo.workflow.WorkflowComponent#getActiveWorkflows(java.lang.String)
+ */
+ @SuppressWarnings("unchecked")
public List getActiveWorkflows(final String workflowDefinitionId)
{
return getWorkflowsInternal(workflowDefinitionId, true);
}
+ /* (non-Javadoc)
+ * @see org.alfresco.repo.workflow.WorkflowComponent#getCompletedWorkflows(java.lang.String)
+ */
public List getCompletedWorkflows(final String workflowDefinitionId)
{
return getWorkflowsInternal(workflowDefinitionId, false);
}
+ /* (non-Javadoc)
+ * @see org.alfresco.repo.workflow.WorkflowComponent#getWorkflows(java.lang.String)
+ */
public List getWorkflows(final String workflowDefinitionId)
{
return getWorkflowsInternal(workflowDefinitionId, null);
@@ -1300,11 +1304,6 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
{
try
{
- // arsenyko: I think it's necessary to avoid undesirable growth,
- // since a cache implementation is quite simple and doesn't care about
- // max elements in the cache.
- qNameCache.clear();
-
return (List) jbpmTemplate.execute(new JbpmCallback()
{
public List doInJbpm(JbpmContext context)
@@ -1313,22 +1312,16 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
List tasks;
if (state.equals(WorkflowTaskState.IN_PROGRESS))
{
- Session session = context.getSession();
- Query query = session.getNamedQuery("org.alfresco.repo.workflow.findTaskInstancesByActorId");
- query.setString("actorId", authority);
- query.setBoolean("true", true);
- List workflowTasks = getWorkflowTasks(session, query.list());
- // Do we need to clear a session here? It takes 3 seconds with 2000 workflows.
- // session.clear();
- return workflowTasks;
+ TaskMgmtSession taskSession = context.getTaskMgmtSession();
+ tasks = taskSession.findTaskInstances(authority);
}
else
{
// Note: This method is not implemented by jBPM
tasks = findCompletedTaskInstances(context, authority);
- return getWorkflowTasks(tasks);
}
+ return getWorkflowTasks(tasks);
}
/**
@@ -1343,7 +1336,6 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
* the actor to retrieve tasks for
* @return the tasks
*/
- @SuppressWarnings("rawtypes")
private List findCompletedTaskInstances(JbpmContext jbpmContext, String actorId)
{
List result = null;
@@ -1370,6 +1362,9 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
}
}
+ /* (non-Javadoc)
+ * @see org.alfresco.repo.workflow.TaskComponent#getPooledTasks(java.util.List)
+ */
@SuppressWarnings("unchecked")
public List getPooledTasks(final List authorities)
{
@@ -1429,218 +1424,6 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
}
}
- protected List getWorkflowTasks(Session session, List