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