Updated Branches:
  refs/heads/master 456a9f50c -> aeecd80ec

[CAMEL-7126] Removed more JpaTemplate dependencies.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/aeecd80e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/aeecd80e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/aeecd80e

Branch: refs/heads/master
Commit: aeecd80ec9faf3abd85dfb9cb0693057978a0483
Parents: 456a9f5
Author: Henryk Konsek <hekon...@gmail.com>
Authored: Thu Jan 16 21:21:50 2014 +0100
Committer: Henryk Konsek <hekon...@gmail.com>
Committed: Thu Jan 16 21:21:50 2014 +0100

----------------------------------------------------------------------
 .../camel/bam/model/ProcessDefinition.java      | 32 ++++++++++++--------
 1 file changed, 19 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/aeecd80e/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java
----------------------------------------------------------------------
diff --git 
a/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java
 
b/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java
index 67bf267..abad982 100644
--- 
a/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java
+++ 
b/components/camel-bam/src/main/java/org/apache/camel/bam/model/ProcessDefinition.java
@@ -23,9 +23,9 @@ import java.util.Map;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
 import javax.persistence.Table;
 import org.apache.camel.bam.QueryUtils;
-import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -74,18 +74,24 @@ public class ProcessDefinition extends EntitySupport {
     }
 
     public static ProcessDefinition findOrCreateProcessDefinition(JpaTemplate 
template, String processName) {
-        Map<String, Object> params = new HashMap<String, Object>(1);
-        params.put("processName", processName);
-
-        List<ProcessDefinition> list = 
CastUtils.cast(template.findByNamedParams("select x from " + 
QueryUtils.getTypeName(ProcessDefinition.class)
-                                                                               
  + " x where x.name = :processName", params));
-        if (!list.isEmpty()) {
-            return list.get(0);
-        } else {
-            ProcessDefinition answer = new ProcessDefinition();
-            answer.setName(processName);
-            template.persist(answer);
-            return answer;
+        EntityManager entityManager = null;
+        try {
+            entityManager = 
resolveEntityManager(template.getEntityManagerFactory());
+            String definitionsQuery = "select x from " + 
QueryUtils.getTypeName(ProcessDefinition.class)
+                    + " x where x.name = :processName";
+            List<ProcessDefinition> list = 
entityManager.createQuery(definitionsQuery, ProcessDefinition.class).
+                    setParameter("processName", processName).
+                    getResultList();
+            if (!list.isEmpty()) {
+                return list.get(0);
+            } else {
+                ProcessDefinition answer = new ProcessDefinition();
+                answer.setName(processName);
+                template.persist(answer);
+                return answer;
+            }
+        } finally {
+            closeNonTransactionalEntityManager(entityManager);
         }
     }
 }

Reply via email to