You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/12/11 10:35:54 UTC
[camel] 01/02: CAMEL-14284: Configuring endpoint should set
properties on endpoint and not configuration object - aws-ddb
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6fb0ebf0e54cecf01c0e5c9d1807335a596f7da7
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Dec 11 11:28:30 2019 +0100
CAMEL-14284: Configuring endpoint should set properties on endpoint and not configuration object - aws-ddb
---
.../camel/component/aws/ddb/DdbComponent.java | 33 ++++++++--------------
.../aws/ddb/DdbComponentConfigurationTest.java | 6 ++--
.../aws/ddb/DdbComponentRegistryClientTest.java | 4 +--
.../camel/component/aws/ddb/DdbComponentTest.java | 6 ++--
4 files changed, 20 insertions(+), 29 deletions(-)
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java
index 7039f7a..b8ec016 100644
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java
+++ b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java
@@ -25,7 +25,6 @@ import org.apache.camel.Endpoint;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
-import org.apache.camel.util.ObjectHelper;
@Component("aws-ddb")
public class DdbComponent extends DefaultComponent {
@@ -46,35 +45,27 @@ public class DdbComponent extends DefaultComponent {
public DdbComponent(CamelContext context) {
super(context);
- this.configuration = new DdbConfiguration();
registerExtension(new DdbComponentVerifierExtension());
}
@Override
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
- DdbConfiguration configuration = this.configuration.copy();
- setProperties(configuration, parameters);
if (remaining == null || remaining.trim().length() == 0) {
throw new IllegalArgumentException("Table name must be specified.");
}
+ DdbConfiguration configuration = this.configuration != null ? this.configuration.copy() : new DdbConfiguration();
configuration.setTableName(remaining);
-
- if (ObjectHelper.isEmpty(configuration.getAccessKey())) {
- setAccessKey(accessKey);
- }
- if (ObjectHelper.isEmpty(configuration.getSecretKey())) {
- setSecretKey(secretKey);
- }
- if (ObjectHelper.isEmpty(configuration.getRegion())) {
- setRegion(region);
- }
+ DdbEndpoint endpoint = new DdbEndpoint(uri, this, configuration);
+ endpoint.getConfiguration().setAccessKey(accessKey);
+ endpoint.getConfiguration().setSecretKey(secretKey);
+ endpoint.getConfiguration().setRegion(region);
+ setProperties(endpoint, parameters);
checkAndSetRegistryClient(configuration);
if (configuration.getAmazonDDBClient() == null && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
throw new IllegalArgumentException("amazonDDBClient or accessKey and secretKey must be specified");
}
- DdbEndpoint endpoint = new DdbEndpoint(uri, this, configuration);
return endpoint;
}
@@ -90,36 +81,36 @@ public class DdbComponent extends DefaultComponent {
}
public String getAccessKey() {
- return configuration.getAccessKey();
+ return accessKey;
}
/**
* Amazon AWS Access Key
*/
public void setAccessKey(String accessKey) {
- configuration.setAccessKey(accessKey);
+ this.accessKey = accessKey;
}
public String getSecretKey() {
- return configuration.getSecretKey();
+ return secretKey;
}
/**
* Amazon AWS Secret Key
*/
public void setSecretKey(String secretKey) {
- configuration.setSecretKey(secretKey);
+ this.secretKey = secretKey;
}
/**
* The region in which DDB client needs to work
*/
public String getRegion() {
- return configuration.getRegion();
+ return region;
}
public void setRegion(String region) {
- configuration.setRegion(region);
+ this.region = region;
}
private void checkAndSetRegistryClient(DdbConfiguration configuration) {
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java
index 9d37410..ec82f03 100644
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java
+++ b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java
@@ -25,7 +25,7 @@ public class DdbComponentConfigurationTest extends CamelTestSupport {
@Test
public void createEndpointWithComponentElements() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.setAccessKey("XXX");
component.setSecretKey("YYY");
DdbEndpoint endpoint = (DdbEndpoint)component.createEndpoint("aws-ddb://myTable");
@@ -37,7 +37,7 @@ public class DdbComponentConfigurationTest extends CamelTestSupport {
@Test
public void createEndpointWithComponentAndEndpointElements() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.setAccessKey("XXX");
component.setSecretKey("YYY");
component.setRegion(Regions.US_WEST_1.toString());
@@ -51,7 +51,7 @@ public class DdbComponentConfigurationTest extends CamelTestSupport {
@Test
public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.setAccessKey("XXX");
component.setSecretKey("YYY");
component.setRegion(Regions.US_WEST_1.toString());
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java
index 79ef2a0..73b6b06 100644
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java
+++ b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java
@@ -25,7 +25,7 @@ public class DdbComponentRegistryClientTest extends CamelTestSupport {
public void createEndpointWithRegistryClient() throws Exception {
AmazonDDBClientMock ddbClient = new AmazonDDBClientMock();
context.getRegistry().bind("ddbClient", ddbClient);
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
DdbEndpoint endpoint = (DdbEndpoint)component.createEndpoint("aws-ddb://myTable");
assertEquals("myTable", endpoint.getConfiguration().getTableName());
@@ -33,7 +33,7 @@ public class DdbComponentRegistryClientTest extends CamelTestSupport {
@Test(expected = IllegalArgumentException.class)
public void createEndpointWithoutRegistryClient() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
DdbEndpoint endpoint = (DdbEndpoint)component.createEndpoint("aws-ddb://myTable");
assertEquals("myTable", endpoint.getConfiguration().getTableName());
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java
index 6fe7af0..6d069f1 100644
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java
+++ b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java
@@ -42,20 +42,20 @@ public class DdbComponentTest extends CamelTestSupport {
@Test
public void createEndpointWithOnlySecretKeyConfiguration() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.createEndpoint("aws-ddb://activeTable?secretKey=xxx");
}
@Test
public void createEndpointWithoutSecretKeyAndAccessKeyConfiguration() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.createEndpoint("aws-ddb://activeTable?amazonDDBClient=#amazonDDBClient");
}
@Test
public void createEndpointWithOnlyAccessKeyAndSecretKey() throws Exception {
- DdbComponent component = new DdbComponent(context);
+ DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
component.createEndpoint("aws-ddb://activeTable?accessKey=xxx&secretKey=yyy");
}