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 <anco...@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 {