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

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


The following commit(s) were added to refs/heads/main by this push:
     new 3b1cdf8  camel-salesforce: Move stuff from constructor to doStart. 
Fixed test.
3b1cdf8 is described below

commit 3b1cdf8c88fb54fec999c2fad2216a9de6e73ce0
Author: Jeremy Ross <jeremy.g.r...@gmail.com>
AuthorDate: Mon Sep 20 12:46:44 2021 -0500

    camel-salesforce: Move stuff from constructor to doStart. Fixed test.
---
 .../component/salesforce/SalesforceConsumer.java   | 54 +++++++++++-----------
 .../salesforce/SalesforceConsumerTest.java         |  1 +
 2 files changed, 29 insertions(+), 26 deletions(-)

diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
index 3f2836d..6b152bf 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
@@ -76,7 +76,7 @@ public class SalesforceConsumer extends DefaultConsumer {
     private final ObjectMapper objectMapper;
 
     private final boolean rawPayload;
-    private final Class<?> sObjectClass;
+    private Class<?> sObjectClass;
     private boolean subscribed;
     private final SubscriptionHelper subscriptionHelper;
     private final String topicName;
@@ -102,30 +102,6 @@ public class SalesforceConsumer extends DefaultConsumer {
         messageKind = MessageKind.fromTopicName(topicName);
 
         rawPayload = endpoint.getConfiguration().isRawPayload();
-
-        // get sObjectClass to convert to
-        if (!rawPayload) {
-            final String sObjectName = 
endpoint.getConfiguration().getSObjectName();
-            if (sObjectName != null) {
-                sObjectClass = 
endpoint.getComponent().getClassMap().get(sObjectName);
-                if (sObjectClass == null) {
-                    throw new IllegalArgumentException(String.format("SObject 
Class not found for %s", sObjectName));
-                }
-            } else {
-                final String className = 
endpoint.getConfiguration().getSObjectClass();
-                if (className != null) {
-                    sObjectClass = 
endpoint.getComponent().getCamelContext().getClassResolver().resolveClass(className);
-                    if (sObjectClass == null) {
-                        throw new 
IllegalArgumentException(String.format("SObject Class not found %s", 
className));
-                    }
-                } else {
-                    LOG.warn("Property sObjectName or sObjectClass NOT set, 
messages will be of type java.lang.Map");
-                    sObjectClass = null;
-                }
-            }
-        } else {
-            sObjectClass = null;
-        }
     }
 
     public String getTopicName() {
@@ -284,6 +260,7 @@ public class SalesforceConsumer extends DefaultConsumer {
     protected void doStart() throws Exception {
         super.doStart();
 
+        determineSObjectClass();
         final SalesforceEndpointConfig config = endpoint.getConfiguration();
 
         // is a query configured in the endpoint?
@@ -314,7 +291,6 @@ public class SalesforceConsumer extends DefaultConsumer {
     @Override
     protected void doStop() throws Exception {
         super.doStop();
-
         if (subscribed) {
             subscribed = false;
             // unsubscribe from topic
@@ -322,4 +298,30 @@ public class SalesforceConsumer extends DefaultConsumer {
         }
     }
 
+    // May be necessary to call from some unit tests.
+    void determineSObjectClass() {
+        // get sObjectClass to convert to
+        if (!rawPayload) {
+            final String sObjectName = 
endpoint.getConfiguration().getSObjectName();
+            if (sObjectName != null) {
+                sObjectClass = 
endpoint.getComponent().getClassMap().get(sObjectName);
+                if (sObjectClass == null) {
+                    throw new IllegalArgumentException(String.format("SObject 
Class not found for %s", sObjectName));
+                }
+            } else {
+                final String className = 
endpoint.getConfiguration().getSObjectClass();
+                if (className != null) {
+                    sObjectClass = 
endpoint.getComponent().getCamelContext().getClassResolver().resolveClass(className);
+                    if (sObjectClass == null) {
+                        throw new 
IllegalArgumentException(String.format("SObject Class not found %s", 
className));
+                    }
+                } else {
+                    LOG.warn("Property sObjectName or sObjectClass NOT set, 
messages will be of type java.lang.Map");
+                    sObjectClass = null;
+                }
+            }
+        } else {
+            sObjectClass = null;
+        }
+    }
 }
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
index 9d37d70..b9b4027 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
@@ -154,6 +154,7 @@ public class SalesforceConsumerTest {
         configuration.setSObjectClass(AccountUpdates.class.getName());
 
         final SalesforceConsumer consumer = new SalesforceConsumer(endpoint, 
processor, NOT_USED);
+        consumer.determineSObjectClass();
 
         consumer.processMessage(mock(ClientSessionChannel.class), 
pushTopicMessage);
 

Reply via email to