You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by je...@apache.org on 2022/03/01 17:27:08 UTC
[camel] branch camel-3.14.x updated: CAMEL-17558: Fix salesforce lazy login
This is an automated email from the ASF dual-hosted git repository.
jeremyross pushed a commit to branch camel-3.14.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.14.x by this push:
new b66db9e CAMEL-17558: Fix salesforce lazy login
b66db9e is described below
commit b66db9e813f0f952524674f725736f98c06f5fe4
Author: Jeremy Ross <je...@gmail.com>
AuthorDate: Tue Mar 1 09:54:06 2022 -0600
CAMEL-17558: Fix salesforce lazy login
---
.../salesforce/SalesforceLoginConfig.java | 7 ++++
.../salesforce/internal/SalesforceSession.java | 4 --
.../salesforce/AbstractSalesforceTestBase.java | 3 +-
...tSalesforceTestBase.java => LazyLoginTest.java} | 49 +++++++++-------------
4 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceLoginConfig.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceLoginConfig.java
index c97a9cc..b969aaa 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceLoginConfig.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceLoginConfig.java
@@ -93,6 +93,10 @@ public class SalesforceLoginConfig {
*/
public void setLoginUrl(String loginUrl) {
this.loginUrl = loginUrl;
+ if (loginUrl != null) {
+ // strip trailing slash
+ this.loginUrl = loginUrl.endsWith("/") ? loginUrl.substring(0, loginUrl.length() - 1) : loginUrl;
+ }
}
public String getClientId() {
@@ -227,6 +231,9 @@ public class SalesforceLoginConfig {
}
public void validate() {
+ if (lazyLogin) {
+ return;
+ }
ObjectHelper.notNull(loginUrl, "loginUrl");
ObjectHelper.notNull(clientId, "clientId");
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
index a0a0c84..4072862 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
@@ -97,10 +97,6 @@ public class SalesforceSession extends ServiceSupport {
this.timeout = timeout;
this.config = config;
- // strip trailing '/'
- String loginUrl = config.getLoginUrl();
- config.setLoginUrl(loginUrl.endsWith("/") ? loginUrl.substring(0, loginUrl.length() - 1) : loginUrl);
-
this.objectMapper = JsonUtils.createObjectMapper();
this.listeners = new CopyOnWriteArraySet<>();
}
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
index dd6b88f..1772fd4 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
@@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory;
public abstract class AbstractSalesforceTestBase extends CamelTestSupport {
protected final Logger log = LoggerFactory.getLogger(getClass());
+ protected SalesforceComponent component;
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
@@ -46,7 +47,7 @@ public abstract class AbstractSalesforceTestBase extends CamelTestSupport {
protected void createComponent() throws Exception {
// create the component
- SalesforceComponent component = new SalesforceComponent();
+ component = new SalesforceComponent();
final SalesforceEndpointConfig config = new SalesforceEndpointConfig();
config.setApiVersion(System.getProperty("apiVersion", salesforceApiVersionToUse()));
component.setConfig(config);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LazyLoginTest.java
similarity index 61%
copy from components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
copy to components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LazyLoginTest.java
index dd6b88f..9dee1e3 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/AbstractSalesforceTestBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/LazyLoginTest.java
@@ -18,39 +18,35 @@ package org.apache.camel.component.salesforce;
import java.util.HashMap;
-import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.junit.jupiter.api.Test;
-public abstract class AbstractSalesforceTestBase extends CamelTestSupport {
+public class LazyLoginTest extends AbstractSalesforceTestBase {
- protected final Logger log = LoggerFactory.getLogger(getClass());
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- // create the test component
- createComponent();
-
- return doCreateRouteBuilder();
- }
-
- protected RouteBuilder doCreateRouteBuilder() throws Exception {
- return new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- }
- };
+ @Test
+ public void lazyLoginDoesNotThrowExceptions() throws Exception {
+ // If we got this far, then createComponent() succeeded without an exception related to lazy login
+ // Now we just need to make sure credentials provided after startup work
+ final SalesforceLoginConfig config = LoginConfigHelper.getLoginConfig();
+ component.getLoginConfig().setLoginUrl(config.getLoginUrl());
+ component.getLoginConfig().setClientId(config.getClientId());
+ component.getLoginConfig().setClientSecret(config.getClientSecret());
+ component.getLoginConfig().setUserName(config.getUserName());
+ component.getLoginConfig().setPassword(config.getPassword());
+ component.getLoginConfig().setKeystore(config.getKeystore());
+ component.getLoginConfig().setRefreshToken(config.getRefreshToken());
+ component.getSession().login(null);
}
+ @Override
protected void createComponent() throws Exception {
- // create the component
- SalesforceComponent component = new SalesforceComponent();
+ // create the component, but do not set any credentials or login info
+ component = new SalesforceComponent();
+ component.setLazyLogin(true);
+
final SalesforceEndpointConfig config = new SalesforceEndpointConfig();
config.setApiVersion(System.getProperty("apiVersion", salesforceApiVersionToUse()));
component.setConfig(config);
- component.setLoginConfig(LoginConfigHelper.getLoginConfig());
HashMap<String, Object> clientProperties = new HashMap<>();
clientProperties.put("timeout", "60000");
@@ -65,9 +61,4 @@ public abstract class AbstractSalesforceTestBase extends CamelTestSupport {
// add it to context
context().addComponent("salesforce", component);
}
-
- protected String salesforceApiVersionToUse() {
- return SalesforceEndpointConfig.DEFAULT_VERSION;
- }
-
}