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 <[email protected]>
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);