You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/08/29 12:03:21 UTC

[2/2] git commit: CAMEL-6681: Allow to configure lock mode on jpa consumer. Thanks to Bart De Neuter for the patch.

CAMEL-6681: Allow to configure lock mode on jpa consumer. Thanks to Bart De Neuter for the patch.

Conflicts:
	components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java


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

Branch: refs/heads/camel-2.11.x
Commit: fc199ac7464e95e878e74dff7ee36009d96782c5
Parents: b8c8500
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 29 12:00:11 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 29 12:03:05 2013 +0200

----------------------------------------------------------------------
 .../apache/camel/component/jpa/JpaConsumer.java   | 11 ++++++++++-
 .../camel/component/jpa/JpaComponentTest.java     | 18 ++++++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/fc199ac7/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
index 88baa8d..8a20f9e 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
@@ -49,6 +49,7 @@ public class JpaConsumer extends ScheduledBatchPollingConsumer {
     private String query;
     private String namedQuery;
     private String nativeQuery;
+    private LockModeType lockModeType = LockModeType.WRITE;
     private Class<?> resultClass;
     private boolean transacted;
 
@@ -203,6 +204,14 @@ public class JpaConsumer extends ScheduledBatchPollingConsumer {
         this.namedQuery = namedQuery;
     }
 
+    public LockModeType getLockModeType() {
+        return lockModeType;
+    }
+
+    public void setLockModeType(LockModeType lockModeType) {
+        this.lockModeType = lockModeType;
+    }
+
     public String getNativeQuery() {
         return nativeQuery;
     }
@@ -259,7 +268,7 @@ public class JpaConsumer extends ScheduledBatchPollingConsumer {
         }
         try {
             LOG.debug("Acquiring exclusive lock on entity: {}", entity);
-            entityManager.lock(entity, LockModeType.WRITE);
+            entityManager.lock(entity, lockModeType);
             return true;
         } catch (Exception e) {
             if (LOG.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc199ac7/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaComponentTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaComponentTest.java b/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaComponentTest.java
index d487539..614c29a 100644
--- a/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaComponentTest.java
+++ b/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaComponentTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.jpa;
 
 import javax.persistence.EntityManagerFactory;
+import javax.persistence.LockModeType;
 import javax.persistence.Persistence;
 
 import org.apache.camel.examples.SendEmail;
@@ -25,11 +26,24 @@ import org.junit.Test;
 import org.springframework.orm.jpa.JpaTransactionManager;
 
 /**
- * @version 
+ * @version
  */
 public class JpaComponentTest extends CamelTestSupport {
 
     @Test
+    public void testJpaComponentConsumerHasLockModeType() throws Exception {
+        JpaComponent comp = new JpaComponent();
+        comp.setCamelContext(context);
+        assertNull(comp.getEntityManagerFactory());
+        assertNull(comp.getTransactionManager());
+
+        JpaEndpoint jpa = (JpaEndpoint) comp.createEndpoint("jpa://" + SendEmail.class.getName() + "?consumer.lockModeType=PESSIMISTIC_WRITE");
+        JpaConsumer consumer = (JpaConsumer) jpa.createConsumer(null);
+
+        assertEquals(consumer.getLockModeType(), LockModeType.PESSIMISTIC_WRITE);
+    }
+
+    @Test
     public void testJpaComponentCtr() throws Exception {
         JpaComponent comp = new JpaComponent();
         comp.setCamelContext(context);
@@ -62,7 +76,7 @@ public class JpaComponentTest extends CamelTestSupport {
         assertNotNull(jpa);
         assertNotNull(jpa.getEntityType());
     }
-    
+
     @Test
     public void testJpaComponentWithPath() throws Exception {
         JpaComponent comp = new JpaComponent();