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 2021/03/30 11:32:31 UTC

[camel] 01/04: Camel-AWS2-Lambda: Producer operations refactoring - createFunction

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 9372b828bc8ba00cfe0e833b17504e3da901bcdb
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Mar 30 13:22:43 2021 +0200

    Camel-AWS2-Lambda: Producer operations refactoring - createFunction
---
 .../component/aws2/lambda/Lambda2Producer.java     | 59 +++++++++-------------
 1 file changed, 24 insertions(+), 35 deletions(-)

diff --git a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
index 3360aaf..63f282e 100644
--- a/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
+++ b/components/camel-aws/camel-aws2-lambda/src/main/java/org/apache/camel/component/aws2/lambda/Lambda2Producer.java
@@ -234,27 +234,13 @@ public class Lambda2Producer extends DefaultProducer {
 
     @SuppressWarnings("unchecked")
     private void createFunction(LambdaClient lambdaClient, Exchange exchange) throws Exception {
+    	CreateFunctionRequest request = null;
+    	CreateFunctionResponse result;
         if (getConfiguration().isPojoRequest()) {
-            Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof CreateFunctionRequest) {
-                CreateFunctionResponse result;
-                try {
-                    result = lambdaClient.createFunction((CreateFunctionRequest) payload);
-
-                } catch (AwsServiceException ase) {
-                    LOG.trace("createFunction command returned the error code {}", ase.awsErrorDetails().errorCode());
-                    throw ase;
-                }
-
-                Message message = getMessageForResponse(exchange);
-                message.setBody(result);
-            }
+            request = exchange.getIn().getMandatoryBody(CreateFunctionRequest.class);
         } else {
-            CreateFunctionResponse result;
-
-            try {
-                CreateFunctionRequest.Builder request
-                        = CreateFunctionRequest.builder().functionName(getEndpoint().getFunction());
+                CreateFunctionRequest.Builder builder = CreateFunctionRequest.builder();
+                builder.functionName(getEndpoint().getFunction());
 
                 FunctionCode.Builder functionCode = FunctionCode.builder();
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.S3_BUCKET))) {
@@ -286,72 +272,72 @@ public class Lambda2Producer extends DefaultProducer {
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getBody())
                         || (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.S3_BUCKET))
                                 && ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.S3_KEY)))) {
-                    request.code(functionCode.build());
+                    builder.code(functionCode.build());
                 } else {
                     throw new IllegalArgumentException("At least S3 bucket/S3 key or zip file must be specified");
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.ROLE))) {
-                    request.role(exchange.getIn().getHeader(Lambda2Constants.ROLE, String.class));
+                    builder.role(exchange.getIn().getHeader(Lambda2Constants.ROLE, String.class));
                 } else {
                     throw new IllegalArgumentException("Role must be specified");
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.RUNTIME))) {
-                    request.runtime(exchange.getIn().getHeader(Lambda2Constants.RUNTIME, String.class));
+                    builder.runtime(exchange.getIn().getHeader(Lambda2Constants.RUNTIME, String.class));
                 } else {
                     throw new IllegalArgumentException("Runtime must be specified");
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.HANDLER))) {
-                    request.handler(exchange.getIn().getHeader(Lambda2Constants.HANDLER, String.class));
+                    builder.handler(exchange.getIn().getHeader(Lambda2Constants.HANDLER, String.class));
                 } else {
                     throw new IllegalArgumentException("Handler must be specified");
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.DESCRIPTION))) {
                     String description = exchange.getIn().getHeader(Lambda2Constants.DESCRIPTION, String.class);
-                    request.description(description);
+                    builder.description(description);
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.TARGET_ARN))) {
                     String targetArn = exchange.getIn().getHeader(Lambda2Constants.TARGET_ARN, String.class);
-                    request.deadLetterConfig(DeadLetterConfig.builder().targetArn(targetArn).build());
+                    builder.deadLetterConfig(DeadLetterConfig.builder().targetArn(targetArn).build());
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.MEMORY_SIZE))) {
                     Integer memorySize = exchange.getIn().getHeader(Lambda2Constants.MEMORY_SIZE, Integer.class);
-                    request.memorySize(memorySize);
+                    builder.memorySize(memorySize);
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.KMS_KEY_ARN))) {
                     String kmsKeyARN = exchange.getIn().getHeader(Lambda2Constants.KMS_KEY_ARN, String.class);
-                    request.kmsKeyArn(kmsKeyARN);
+                    builder.kmsKeyArn(kmsKeyARN);
                 }
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.PUBLISH))) {
                     Boolean publish = exchange.getIn().getHeader(Lambda2Constants.PUBLISH, Boolean.class);
-                    request.publish(publish);
+                    builder.publish(publish);
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.TIMEOUT))) {
                     Integer timeout = exchange.getIn().getHeader(Lambda2Constants.TIMEOUT, Integer.class);
-                    request.timeout(timeout);
+                    builder.timeout(timeout);
                 }
 
                 if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(Lambda2Constants.TRACING_CONFIG))) {
                     String tracingConfigMode = exchange.getIn().getHeader(Lambda2Constants.TRACING_CONFIG, String.class);
-                    request.tracingConfig(TracingConfig.builder().mode(tracingConfigMode).build());
+                    builder.tracingConfig(TracingConfig.builder().mode(tracingConfigMode).build());
                 }
 
                 Map<String, String> environmentVariables
                         = CastUtils.cast(exchange.getIn().getHeader(Lambda2Constants.ENVIRONMENT_VARIABLES, Map.class));
                 if (environmentVariables != null) {
-                    request.environment(Environment.builder().variables(environmentVariables).build());
+                	builder.environment(Environment.builder().variables(environmentVariables).build());
                 }
 
                 Map<String, String> tags = CastUtils.cast(exchange.getIn().getHeader(Lambda2Constants.TAGS, Map.class));
                 if (tags != null) {
-                    request.tags(tags);
+                	builder.tags(tags);
                 }
 
                 List<String> securityGroupIds = CastUtils.cast(exchange.getIn().getHeader(Lambda2Constants.SECURITY_GROUP_IDS,
@@ -366,9 +352,13 @@ public class Lambda2Producer extends DefaultProducer {
                     if (subnetIds != null) {
                         vpcConfig.subnetIds(subnetIds);
                     }
-                    request.vpcConfig(vpcConfig.build());
+                    builder.vpcConfig(vpcConfig.build());
                 }
-                result = lambdaClient.createFunction(request.build());
+                
+                request = builder.build();
+        }
+                try {
+                result = lambdaClient.createFunction(request);
 
             } catch (AwsServiceException ase) {
                 LOG.trace("createFunction command returned the error code {}", ase.awsErrorDetails().errorCode());
@@ -377,7 +367,6 @@ public class Lambda2Producer extends DefaultProducer {
 
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
-        }
     }
 
     private void updateFunction(LambdaClient lambdaClient, Exchange exchange) throws Exception {