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();