This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new c5cd46e  CAMEL-15017: camel-jpa JpaEndpoint should defer to get EMF/TM 
when its started instead of constructor.
c5cd46e is described below

commit c5cd46ecef3006932e853a902d5415aa33f045db
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 6 14:19:14 2020 +0200

    CAMEL-15017: camel-jpa JpaEndpoint should defer to get EMF/TM when its 
started instead of constructor.
---
 .../java/org/apache/camel/component/jpa/JpaEndpoint.java  | 15 +++++++++++----
 .../apache/camel/processor/jpa/JpaRouteEndpointTest.java  |  2 ++
 2 files changed, 13 insertions(+), 4 deletions(-)

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 fb2e57a..a42ca03 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
@@ -115,10 +115,6 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
 
     public JpaEndpoint(String uri, JpaComponent component) {
         super(uri, component);
-        if (component != null) {
-            entityManagerFactory = component.getEntityManagerFactory();
-            transactionManager = component.getTransactionManager();
-        }
     }
 
     @Override
@@ -586,4 +582,15 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
         };
     }
 
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+
+        if (entityManagerFactory == null && getComponent() != null) {
+            entityManagerFactory = getComponent().getEntityManagerFactory();
+        }
+        if (transactionManager == null && getComponent() != null) {
+            transactionManager = getComponent().getTransactionManager();
+        }
+    }
 }
diff --git 
a/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteEndpointTest.java
 
b/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteEndpointTest.java
index 2de6b84..9cc5092 100644
--- 
a/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteEndpointTest.java
+++ 
b/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaRouteEndpointTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.processor.jpa;
 import javax.persistence.EntityManagerFactory;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jpa.JpaComponent;
 import org.apache.camel.component.jpa.JpaEndpoint;
 import org.apache.camel.examples.SendEmail;
 import org.apache.camel.spring.SpringRouteBuilder;
@@ -30,6 +31,7 @@ public class JpaRouteEndpointTest extends JpaRouteTest {
         return new SpringRouteBuilder() {
             public void configure() throws Exception {
                 JpaEndpoint jpa = new JpaEndpoint();
+                jpa.setComponent(new JpaComponent());
                 jpa.setCamelContext(context);
                 jpa.setEntityType(SendEmail.class);
                 
jpa.setEntityManagerFactory(context.getRegistry().lookupByNameAndType("entityManagerFactory",
 EntityManagerFactory.class));

Reply via email to