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 2014/03/12 17:21:05 UTC
[1/2] git commit: CAMEL-7269: Added option joinTransaction to
camel-jpa to allow to turn this off in case jpa provider does not work with
that for RESOURCE_LOCAL which seems to be a problem for EclipseLink.
Repository: camel
Updated Branches:
refs/heads/camel-2.12.x e170feb3a -> 709595fcc
refs/heads/master e2deddadf -> fe1552e5a
CAMEL-7269: Added option joinTransaction to camel-jpa to allow to turn this off in case jpa provider does not work with that for RESOURCE_LOCAL which seems to be a problem for EclipseLink.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fe1552e5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fe1552e5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fe1552e5
Branch: refs/heads/master
Commit: fe1552e5a1fe42cde761c37591ea3af78417a1ad
Parents: e2dedda
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Mar 12 17:22:53 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 12 17:22:53 2014 +0100
----------------------------------------------------------------------
.../camel/component/jpa/JpaComponent.java | 11 +++++++++-
.../apache/camel/component/jpa/JpaConsumer.java | 4 +++-
.../apache/camel/component/jpa/JpaEndpoint.java | 9 +++++++++
.../apache/camel/component/jpa/JpaProducer.java | 8 ++++++--
.../idempotent/jpa/JpaMessageIdRepository.java | 21 +++++++++++++++++---
5 files changed, 46 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/fe1552e5/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
index de38f9a..3b0cae5 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
@@ -36,6 +36,7 @@ public class JpaComponent extends DefaultComponent {
private static final Logger LOG = LoggerFactory.getLogger(JpaComponent.class);
private EntityManagerFactory entityManagerFactory;
private PlatformTransactionManager transactionManager;
+ private boolean joinTransaction = true;
// Properties
//-------------------------------------------------------------------------
@@ -61,6 +62,7 @@ public class JpaComponent extends DefaultComponent {
@Override
protected Endpoint createEndpoint(String uri, String path, Map<String, Object> options) throws Exception {
JpaEndpoint endpoint = new JpaEndpoint(uri, this);
+ endpoint.setJoinTransaction(isJoinTransaction());
// lets interpret the next string as a class
if (ObjectHelper.isNotEmpty(path)) {
@@ -71,7 +73,6 @@ public class JpaComponent extends DefaultComponent {
endpoint.setEntityType(type);
}
}
-
return endpoint;
}
@@ -133,4 +134,12 @@ public class JpaComponent extends DefaultComponent {
LOG.warn("No TransactionManager has been configured on this JpaComponent. Each JpaEndpoint will auto create their own JpaTransactionManager.");
}
}
+
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/fe1552e5/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 12514eb..8682e4b 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
@@ -90,7 +90,9 @@ public class JpaConsumer extends ScheduledBatchPollingConsumer {
Object messagePolled = transactionTemplate.execute(new TransactionCallback<Object>() {
public Object doInTransaction(TransactionStatus status) {
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
Queue<DataHolder> answer = new LinkedList<DataHolder>();
http://git-wip-us.apache.org/repos/asf/camel/blob/fe1552e5/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
index 97d7fdc..4d8eb00 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
@@ -53,6 +53,7 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
private boolean flushOnSend = true;
private int maxMessagesPerPoll;
private boolean usePersist;
+ private boolean joinTransaction = true;
public JpaEndpoint() {
}
@@ -241,6 +242,14 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
this.usePersist = usePersist;
}
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
+
// Implementation methods
// -------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/fe1552e5/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
index 202f1d9..8afb038 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
@@ -57,7 +57,9 @@ public class JpaProducer extends DefaultProducer {
if (values != null) {
transactionTemplate.execute(new TransactionCallback<Object>() {
public Object doInTransaction(TransactionStatus status) {
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
if (values.getClass().isArray()) {
Object[] array = (Object[])values;
for (int index = 0; index < array.length; index++) {
@@ -77,7 +79,9 @@ public class JpaProducer extends DefaultProducer {
if (getEndpoint().isFlushOnSend()) {
// there may be concurrency so need to join tx before flush
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
entityManager.flush();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/fe1552e5/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
index 78c2084..e0989f2 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
@@ -44,6 +44,7 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
private final String processorName;
private final EntityManager entityManager;
private final TransactionTemplate transactionTemplate;
+ private boolean joinTransaction = true;
public JpaMessageIdRepository(EntityManagerFactory entityManagerFactory, String processorName) {
this(entityManagerFactory, createTransactionTemplate(entityManagerFactory), processorName);
@@ -75,7 +76,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
// Run this in single transaction.
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -99,7 +102,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
// Run this in single transaction.
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -116,7 +121,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
public boolean remove(final String messageId) {
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -149,6 +156,14 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
return processorName;
}
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
+
@Override
protected void doStart() throws Exception {
}
[2/2] git commit: CAMEL-7269: Added option joinTransaction to
camel-jpa to allow to turn this off in case jpa provider does not work with
that for RESOURCE_LOCAL which seems to be a problem for EclipseLink.
Posted by da...@apache.org.
CAMEL-7269: Added option joinTransaction to camel-jpa to allow to turn this off in case jpa provider does not work with that for RESOURCE_LOCAL which seems to be a problem for EclipseLink.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/709595fc
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/709595fc
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/709595fc
Branch: refs/heads/camel-2.12.x
Commit: 709595fcc1936953a596920e01715f43b7f19396
Parents: e170feb
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Mar 12 17:22:53 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Mar 12 17:23:36 2014 +0100
----------------------------------------------------------------------
.../camel/component/jpa/JpaComponent.java | 11 +++++++++-
.../apache/camel/component/jpa/JpaConsumer.java | 4 +++-
.../apache/camel/component/jpa/JpaEndpoint.java | 9 +++++++++
.../apache/camel/component/jpa/JpaProducer.java | 8 ++++++--
.../idempotent/jpa/JpaMessageIdRepository.java | 21 +++++++++++++++++---
5 files changed, 46 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/709595fc/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
index de38f9a..3b0cae5 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
@@ -36,6 +36,7 @@ public class JpaComponent extends DefaultComponent {
private static final Logger LOG = LoggerFactory.getLogger(JpaComponent.class);
private EntityManagerFactory entityManagerFactory;
private PlatformTransactionManager transactionManager;
+ private boolean joinTransaction = true;
// Properties
//-------------------------------------------------------------------------
@@ -61,6 +62,7 @@ public class JpaComponent extends DefaultComponent {
@Override
protected Endpoint createEndpoint(String uri, String path, Map<String, Object> options) throws Exception {
JpaEndpoint endpoint = new JpaEndpoint(uri, this);
+ endpoint.setJoinTransaction(isJoinTransaction());
// lets interpret the next string as a class
if (ObjectHelper.isNotEmpty(path)) {
@@ -71,7 +73,6 @@ public class JpaComponent extends DefaultComponent {
endpoint.setEntityType(type);
}
}
-
return endpoint;
}
@@ -133,4 +134,12 @@ public class JpaComponent extends DefaultComponent {
LOG.warn("No TransactionManager has been configured on this JpaComponent. Each JpaEndpoint will auto create their own JpaTransactionManager.");
}
}
+
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/709595fc/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 3d5a03f..9dadbe4 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
@@ -79,7 +79,9 @@ public class JpaConsumer extends ScheduledBatchPollingConsumer {
Object messagePolled = transactionTemplate.execute(new TransactionCallback<Object>() {
public Object doInTransaction(TransactionStatus status) {
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
Queue<DataHolder> answer = new LinkedList<DataHolder>();
http://git-wip-us.apache.org/repos/asf/camel/blob/709595fc/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
index 97d7fdc..4d8eb00 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
@@ -53,6 +53,7 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
private boolean flushOnSend = true;
private int maxMessagesPerPoll;
private boolean usePersist;
+ private boolean joinTransaction = true;
public JpaEndpoint() {
}
@@ -241,6 +242,14 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
this.usePersist = usePersist;
}
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
+
// Implementation methods
// -------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/709595fc/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
index 202f1d9..8afb038 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaProducer.java
@@ -57,7 +57,9 @@ public class JpaProducer extends DefaultProducer {
if (values != null) {
transactionTemplate.execute(new TransactionCallback<Object>() {
public Object doInTransaction(TransactionStatus status) {
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
if (values.getClass().isArray()) {
Object[] array = (Object[])values;
for (int index = 0; index < array.length; index++) {
@@ -77,7 +79,9 @@ public class JpaProducer extends DefaultProducer {
if (getEndpoint().isFlushOnSend()) {
// there may be concurrency so need to join tx before flush
- entityManager.joinTransaction();
+ if (getEndpoint().isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
entityManager.flush();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/709595fc/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
index 78c2084..e0989f2 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/processor/idempotent/jpa/JpaMessageIdRepository.java
@@ -44,6 +44,7 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
private final String processorName;
private final EntityManager entityManager;
private final TransactionTemplate transactionTemplate;
+ private boolean joinTransaction = true;
public JpaMessageIdRepository(EntityManagerFactory entityManagerFactory, String processorName) {
this(entityManagerFactory, createTransactionTemplate(entityManagerFactory), processorName);
@@ -75,7 +76,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
// Run this in single transaction.
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -99,7 +102,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
// Run this in single transaction.
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -116,7 +121,9 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
public boolean remove(final String messageId) {
Boolean rc = transactionTemplate.execute(new TransactionCallback<Boolean>() {
public Boolean doInTransaction(TransactionStatus arg0) {
- entityManager.joinTransaction();
+ if (isJoinTransaction()) {
+ entityManager.joinTransaction();
+ }
List<?> list = query(messageId);
if (list.isEmpty()) {
@@ -149,6 +156,14 @@ public class JpaMessageIdRepository extends ServiceSupport implements Idempotent
return processorName;
}
+ public boolean isJoinTransaction() {
+ return joinTransaction;
+ }
+
+ public void setJoinTransaction(boolean joinTransaction) {
+ this.joinTransaction = joinTransaction;
+ }
+
@Override
protected void doStart() throws Exception {
}