You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/12/23 17:47:19 UTC

[camel] branch master updated: CAMEL-14328: camel-aws-lambda - Function should not be configurable on component level

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

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


The following commit(s) were added to refs/heads/master by this push:
     new f711b48  CAMEL-14328: camel-aws-lambda - Function should not be configurable on component level
f711b48 is described below

commit f711b483a58d9ba21f061df75aa5014348b9e13f
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Dec 23 18:46:45 2019 +0100

    CAMEL-14328: camel-aws-lambda - Function should not be configurable on component level
---
 .../camel/component/aws/lambda/LambdaComponent.java    |  2 +-
 .../component/aws/lambda/LambdaConfiguration.java      | 14 --------------
 .../camel/component/aws/lambda/LambdaEndpoint.java     | 16 ++++++++++++++++
 .../camel/component/aws/lambda/LambdaProducer.java     | 18 +++++++++---------
 .../aws/lambda/LambdaComponentConfigurationTest.java   |  4 ++--
 5 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
index 2d88ac9..4d8d460 100644
--- a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
+++ b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
@@ -51,12 +51,12 @@ public class LambdaComponent extends DefaultComponent {
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         LambdaConfiguration configuration = this.configuration != null ? this.configuration.copy() : new LambdaConfiguration();
-        configuration.setFunction(remaining);
         LambdaEndpoint endpoint = new LambdaEndpoint(uri, this, configuration);
         endpoint.getConfiguration().setAccessKey(accessKey);
         endpoint.getConfiguration().setSecretKey(secretKey);
         endpoint.getConfiguration().setRegion(region);
         setProperties(endpoint, parameters);
+        endpoint.setFunction(remaining);
         checkAndSetRegistryClient(configuration);
         if (configuration.getAwsLambdaClient() == null && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
             throw new IllegalArgumentException("accessKey/secretKey or awsLambdaClient must be specified");
diff --git a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
index 86afe2a..f32bbc8 100644
--- a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
+++ b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
@@ -27,9 +27,6 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class LambdaConfiguration implements Cloneable {
 
-    @UriPath
-    @Metadata(required = true)
-    private String function;
     @UriParam
     @Metadata(required = true)
     private LambdaOperations operation;
@@ -48,17 +45,6 @@ public class LambdaConfiguration implements Cloneable {
     @UriParam(label = "advanced")
     private AWSLambda awsLambdaClient;
 
-    public String getFunction() {
-        return function;
-    }
-
-    /**
-     * Name of the Lambda function.
-     */
-    public void setFunction(String function) {
-        this.function = function;
-    }
-
     public AWSLambda getAwsLambdaClient() {
         return awsLambdaClient;
     }
diff --git a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
index 43542c8..40ea4d6 100644
--- a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
+++ b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
@@ -27,8 +27,10 @@ import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 import org.apache.camel.util.ObjectHelper;
 
@@ -41,6 +43,9 @@ public class LambdaEndpoint extends DefaultEndpoint {
 
     private AWSLambda awsLambdaClient;
 
+    @UriPath
+    @Metadata(required = true)
+    private String function;
     @UriParam
     private LambdaConfiguration configuration;
 
@@ -59,6 +64,17 @@ public class LambdaEndpoint extends DefaultEndpoint {
         return new LambdaProducer(this);
     }
 
+    public String getFunction() {
+        return function;
+    }
+
+    /**
+     * Name of the Lambda function.
+     */
+    public void setFunction(String function) {
+        this.function = function;
+    }
+
     @Override
     public void doStart() throws Exception {
         super.doStart();
diff --git a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
index 3058764..bc8f1dc 100644
--- a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
+++ b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
@@ -128,7 +128,7 @@ public class LambdaProducer extends DefaultProducer {
     private void getFunction(AWSLambda lambdaClient, Exchange exchange) {
         GetFunctionResult result;
         try {
-            result = lambdaClient.getFunction(new GetFunctionRequest().withFunctionName(getConfiguration().getFunction()));
+            result = lambdaClient.getFunction(new GetFunctionRequest().withFunctionName(getEndpoint().getFunction()));
         } catch (AmazonServiceException ase) {
             log.trace("getFunction command returned the error code {}", ase.getErrorCode());
             throw ase;
@@ -140,7 +140,7 @@ public class LambdaProducer extends DefaultProducer {
     private void deleteFunction(AWSLambda lambdaClient, Exchange exchange) {
         DeleteFunctionResult result;
         try {
-            result = lambdaClient.deleteFunction(new DeleteFunctionRequest().withFunctionName(getConfiguration().getFunction()));
+            result = lambdaClient.deleteFunction(new DeleteFunctionRequest().withFunctionName(getEndpoint().getFunction()));
         } catch (AmazonServiceException ase) {
             log.trace("deleteFunction command returned the error code {}", ase.getErrorCode());
             throw ase;
@@ -165,7 +165,7 @@ public class LambdaProducer extends DefaultProducer {
         InvokeResult result;
         try {
             InvokeRequest request = new InvokeRequest()
-                .withFunctionName(getConfiguration().getFunction())
+                .withFunctionName(getEndpoint().getFunction())
                 .withPayload(exchange.getIn().getBody(String.class));
             result = lambdaClient.invoke(request);
         } catch (AmazonServiceException ase) {
@@ -181,7 +181,7 @@ public class LambdaProducer extends DefaultProducer {
 
         try {
             CreateFunctionRequest request = new CreateFunctionRequest()
-                .withFunctionName(getConfiguration().getFunction());
+                .withFunctionName(getEndpoint().getFunction());
 
             FunctionCode functionCode = new FunctionCode();
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(LambdaConstants.S3_BUCKET))) {
@@ -316,7 +316,7 @@ public class LambdaProducer extends DefaultProducer {
 
         try {
             UpdateFunctionCodeRequest request = new UpdateFunctionCodeRequest()
-                .withFunctionName(getConfiguration().getFunction());
+                .withFunctionName(getEndpoint().getFunction());
 
             FunctionCode functionCode = new FunctionCode();
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(LambdaConstants.S3_BUCKET))) {
@@ -378,7 +378,7 @@ public class LambdaProducer extends DefaultProducer {
     private void createEventSourceMapping(AWSLambda lambdaClient, Exchange exchange) {
         CreateEventSourceMappingResult result;
         try {
-            CreateEventSourceMappingRequest request = new CreateEventSourceMappingRequest().withFunctionName(getConfiguration().getFunction());
+            CreateEventSourceMappingRequest request = new CreateEventSourceMappingRequest().withFunctionName(getEndpoint().getFunction());
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(LambdaConstants.EVENT_SOURCE_ARN))) {
                 request.withEventSourceArn(exchange.getIn().getHeader(LambdaConstants.EVENT_SOURCE_ARN, String.class));
             } else {
@@ -436,7 +436,7 @@ public class LambdaProducer extends DefaultProducer {
     private void listEventSourceMapping(AWSLambda lambdaClient, Exchange exchange) {
         ListEventSourceMappingsResult result;
         try {
-            ListEventSourceMappingsRequest request = new ListEventSourceMappingsRequest().withFunctionName(getConfiguration().getFunction());
+            ListEventSourceMappingsRequest request = new ListEventSourceMappingsRequest().withFunctionName(getEndpoint().getFunction());
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(LambdaConstants.SDK_CLIENT_EXECUTION_TIMEOUT))) {
                 Integer timeout = exchange.getIn().getHeader(LambdaConstants.SDK_CLIENT_EXECUTION_TIMEOUT, Integer.class);
                 request.withSdkClientExecutionTimeout(timeout);
@@ -527,7 +527,7 @@ public class LambdaProducer extends DefaultProducer {
     private void publishVersion(AWSLambda lambdaClient, Exchange exchange) {
         PublishVersionResult result;
         try {
-            PublishVersionRequest request = new PublishVersionRequest().withFunctionName(getConfiguration().getFunction());
+            PublishVersionRequest request = new PublishVersionRequest().withFunctionName(getEndpoint().getFunction());
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(LambdaConstants.VERSION_DESCRIPTION))) {
                 String description = exchange.getIn().getHeader(LambdaConstants.VERSION_DESCRIPTION, String.class);
                 request.withDescription(description);
@@ -548,7 +548,7 @@ public class LambdaProducer extends DefaultProducer {
     private void listVersions(AWSLambda lambdaClient, Exchange exchange) {
         ListVersionsByFunctionResult result;
         try {
-            ListVersionsByFunctionRequest request = new ListVersionsByFunctionRequest().withFunctionName(getConfiguration().getFunction());
+            ListVersionsByFunctionRequest request = new ListVersionsByFunctionRequest().withFunctionName(getEndpoint().getFunction());
             result = lambdaClient.listVersionsByFunction(request);
         } catch (AmazonServiceException ase) {
             log.trace("publishVersion command returned the error code {}", ase.getErrorCode());
diff --git a/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java b/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
index bf7fec8..ff89e36 100644
--- a/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
+++ b/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
@@ -78,7 +78,7 @@ public class LambdaComponentConfigurationTest extends CamelTestSupport {
         component.setSecretKey("YYY");
         LambdaEndpoint endpoint = (LambdaEndpoint)component.createEndpoint("aws-lambda://myFunction");
         
-        assertEquals("myFunction", endpoint.getConfiguration().getFunction());
+        assertEquals("myFunction", endpoint.getFunction());
         assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
         assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
     }
@@ -91,7 +91,7 @@ public class LambdaComponentConfigurationTest extends CamelTestSupport {
         component.setRegion(Regions.US_WEST_1.toString());
         LambdaEndpoint endpoint = (LambdaEndpoint)component.createEndpoint("aws-lambda://myFunction?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
         
-        assertEquals("myFunction", endpoint.getConfiguration().getFunction());
+        assertEquals("myFunction", endpoint.getFunction());
         assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
         assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
         assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());