Updated Branches: refs/heads/master 8bcaa4524 -> 3d543dc78
CAMEL-6876: JpaProducer should provide the Header 'CamelEntityManager' of the IN payload. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3d543dc7 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3d543dc7 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3d543dc7 Branch: refs/heads/master Commit: 3d543dc7826607e7044a658c238e66fa3abe2c3e Parents: 8bcaa45 Author: Babak Vahdat <bvah...@apache.org> Authored: Sat Oct 19 17:04:48 2013 +0200 Committer: Babak Vahdat <bvah...@apache.org> Committed: Sat Oct 19 17:04:48 2013 +0200 ---------------------------------------------------------------------- .../main/java/org/apache/camel/component/jpa/JpaProducer.java | 4 ++-- .../java/org/apache/camel/component/jpa/JpaUseMergeTest.java | 2 +- .../java/org/apache/camel/processor/jpa/JpaRouteTest.java | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3d543dc7/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 cb981ce..80cd486 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 @@ -51,7 +51,6 @@ public class JpaProducer extends DefaultProducer { } public void process(final Exchange exchange) { - exchange.getIn().setHeader(JpaConstants.ENTITYMANAGER, entityManager); final Object values = expression.evaluate(exchange, Object.class); if (values != null) { transactionTemplate.execute(new TransactionCallback<Object>() { @@ -99,7 +98,8 @@ public class JpaProducer extends DefaultProducer { } }); } - exchange.getIn().removeHeader(JpaConstants.ENTITYMANAGER); + + exchange.getIn().setHeader(JpaConstants.ENTITYMANAGER, entityManager); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/3d543dc7/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaUseMergeTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaUseMergeTest.java b/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaUseMergeTest.java index 8106c5a..100f1f3 100644 --- a/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaUseMergeTest.java +++ b/components/camel-jpa/src/test/java/org/apache/camel/component/jpa/JpaUseMergeTest.java @@ -50,7 +50,7 @@ public class JpaUseMergeTest extends AbstractJpaMethodTest { assertEntitiesInDatabase(1, Customer.class.getName()); assertEntitiesInDatabase(1, Address.class.getName()); - // do detach the persisted entity first before modifying it + // do detach the persisted entity first before modifying it, as we intend to merge it later on below entityManager.detach(customer); customer.setName("Max Mustermann"); customer.getAddress().setAddressLine1("Musterstr. 1"); http://git-wip-us.apache.org/repos/asf/camel/blob/3d543dc7/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteTest.java b/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteTest.java index 1f26f76..2336e36 100644 --- a/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteTest.java +++ b/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteTest.java @@ -16,8 +16,12 @@ */ package org.apache.camel.processor.jpa; +import javax.persistence.EntityManager; + import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.builder.ValueBuilder; import org.apache.camel.component.jpa.JpaComponent; +import org.apache.camel.component.jpa.JpaConstants; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.examples.SendEmail; import org.apache.camel.spring.SpringRouteBuilder; @@ -38,6 +42,9 @@ public class JpaRouteTest extends AbstractJpaTest { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); + ValueBuilder header = mock.message(0).header(JpaConstants.ENTITYMANAGER); + header.isNotNull(); + header.isInstanceOf(EntityManager.class); template.sendBody("direct:start", new SendEmail("some...@somewhere.org"));