CAMEL-11832: Polished and fixed a few things. This closes #1994

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/67ca92b6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/67ca92b6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/67ca92b6

Branch: refs/heads/master
Commit: 67ca92b600db50fdd1e6465a687804970ecaf897
Parents: 16c8245
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Oct 3 17:16:14 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Oct 3 17:16:35 2017 +0200

----------------------------------------------------------------------
 .../src/main/docs/aws-lambda-component.adoc     |  37 +++---
 components/camel-aws/src/main/docs/aws.adoc     |  32 +----
 .../component/aws/lambda/LambdaComponent.java   |  10 +-
 .../aws/lambda/LambdaConfiguration.java         |  27 ++--
 .../component/aws/lambda/LambdaEndpoint.java    |   7 +-
 .../component/aws/lambda/LambdaProducer.java    |  20 +--
 .../LambdaComponentAutoConfiguration.java       | 128 +++++++++++++++++++
 .../LambdaComponentConfiguration.java           |  50 ++++++++
 .../main/resources/META-INF/spring.factories    |   4 +-
 9 files changed, 230 insertions(+), 85 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/docs/aws-lambda-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/docs/aws-lambda-component.adoc 
b/components/camel-aws/src/main/docs/aws-lambda-component.adoc
index f08fe23..d8a92dc 100644
--- a/components/camel-aws/src/main/docs/aws-lambda-component.adoc
+++ b/components/camel-aws/src/main/docs/aws-lambda-component.adoc
@@ -1,6 +1,6 @@
-## AWS Lambda Component
+== AWS Lambda Component
 
-*Available as of Camel version 2.21*
+*Available as of Camel version 2.20*
 
 The Lambda component supports create, get, list, delete and invoke
 https://aws.amazon.com/lambda/[AWS Lambda] functions.
@@ -40,31 +40,34 @@ The AWS Lambda component has no options.
 // endpoint options: START
 The AWS Lambda endpoint is configured using URI syntax:
 
-    aws-lambda:functionName
+----
+aws-lambda:function
+----
 
 with the following path and query parameters:
 
-#### Path Parameters (1 parameters):
+==== Path Parameters (1 parameters):
 
 [width="100%",cols="2,5,^1,2",options="header"]
-|=======================================================================
+|===
 | Name | Description | Default | Type
-| **function** | *Required* Name of the Lambda function. |  | String
-|=======================================================================
+| *function* | *Required* Name of the Lambda function. |  | String
+|===
 
-#### Query Parameters (8 parameters):
+==== Query Parameters (8 parameters):
 
 [width="100%",cols="2,5,^1,2",options="header"]
-|=======================================================================
+|===
 | Name | Description | Default | Type
-| **accessKey** (producer) | Amazon AWS Access Key |  | String
-| **awsLambdaClient** (producer) | To use a existing configured 
AwsLambdaClient as client |  | AWSLambda
-| **awsLambdaEndpoint** (producer) | The region with which the AWS-Lambda 
client wants to work with. |  | String
-| **operation** (producer) | *Required* The operation to perform. It can be 
listFunctions getFunction createFunction deleteFunction or invokeFunction |  | 
LambdaOperations
-| **proxyHost** (producer) | To define a proxy host when instantiating the 
Lambda client |  | String
-| **proxyPort** (producer) | To define a proxy port when instantiating the 
Lambda client |  | Integer
-| **secretKey** (producer) | Amazon AWS Secret Key |  | String
-|=======================================================================
+| *awsLambdaEndpoint* (producer) | The region with which the AWS-Lambda client 
wants to work with. |  | String
+| *operation* (producer) | *Required* The operation to perform. It can be 
listFunctions getFunction createFunction deleteFunction or invokeFunction |  | 
LambdaOperations
+| *awsLambdaClient* (advanced) | To use a existing configured AwsLambdaClient 
as client |  | AWSLambda
+| *synchronous* (advanced) | Sets whether synchronous processing should be 
strictly used or Camel is allowed to use asynchronous processing (if 
supported). | false | boolean
+| *proxyHost* (proxy) | To define a proxy host when instantiating the Lambda 
client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the Lambda 
client |  | Integer
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
 // endpoint options: END
 
 

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/docs/aws.adoc
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/docs/aws.adoc 
b/components/camel-aws/src/main/docs/aws.adoc
index 7a3f9bb..aef3a44 100644
--- a/components/camel-aws/src/main/docs/aws.adoc
+++ b/components/camel-aws/src/main/docs/aws.adoc
@@ -1,35 +1,5 @@
-[[AWS-CamelComponentsforAmazonWebServices]]
-Camel Components for Amazon Web Services
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+=== Camel Components for Amazon Web Services
 
 The Camel Components for http://aws.amazon.com[Amazon Web Services]
 provide connectivity to AWS services from Camel.
-
  
-[width="100%",cols="30%,10%,10%,50%",options="header",]
-|=======================================================================
-|AWS Service |Camel Component |Camel Version | Component Description
-
-|http://aws.amazon.com/sqs/[Simple Queue Service (SQS)] 
|link:aws-sqs.html[AWS-SQS] |2.6.0 |Supports sending and receiving messages 
using SQS
-
-|http://aws.amazon.com/sns/[Simple Notification Service (SNS)] 
|link:aws-sns.html[AWS-SNS] |2.8.0 |Supports sending messages using SNS
-
-|http://aws.amazon.com/s3/[Simple Storage Service (S3)] 
|link:aws-s3.html[AWS-S3] |2.8.0 |Supports storing and retrieving of objects 
using S3
-
-|http://aws.amazon.com/ses/[Simple Email Service (SES)] 
|link:aws-ses.html[AWS-SES] |2.8.4 |Supports sending emails using SES
-
-|http://aws.amazon.com/simpledb/[SimpleDB] |link:aws-sdb.html[AWS-SDB] |2.8.4 
|Supports storing retrieving data to/from SDB
-
-|http://aws.amazon.com/dynamodb/[DynamoDB] |link:aws-ddb.html[AWS-DDB] |2.10.0 
|Supports storing retrieving data to/from DDB
-
-|http://aws.amazon.com/cloudwatch/[CloudWatch] |link:aws-cw.html[AWS-CW] 
|2.10.3 |Supports sending metrics to CloudWatch
-
-|http://aws.amazon.com/swf/[Simple Workflow] |link:aws-swf.html[AWS-SWF] 
|2.13.0 |Supports managing workflows with SWF
-
-|http://aws.amazon.com/ec2/[EC2] |link:aws-ec2.html[AWS-EC2] |2.16.0 |Supports 
sending messages to AWS EC2 platform to create, run, start,
-stop, describe and terminate EC2 instances
-
-|https://aws.amazon.com/kinesis/streams/[Kinesis Streams] 
|link:aws-kinesis.html[AWS-KINESIS] |2.17.0 |Supports receiving from AWS Kinesis
-
-|http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html[DynamoDb
 Streams] |link:aws-ddbstream.html[AWS-DDBSTREAM] |2.17.0 |Supports receiving 
from DynamoDB Streams
-|=======================================================================

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
index 371cc38..9f958ab 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
@@ -16,20 +16,20 @@
  */
 package org.apache.camel.component.aws.lambda;
 
-import java.util.*;
+import java.util.Map;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.util.ObjectHelper;
 
-public class LambdaComponent extends UriEndpointComponent {
+public class LambdaComponent extends DefaultComponent {
 
     public LambdaComponent() {
-        super(LambdaEndpoint.class);
     }
 
     public LambdaComponent(CamelContext context) {
-        super(context, LambdaEndpoint.class);
+        super(context);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
index 4286c1d..e672da6 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaConfiguration.java
@@ -23,27 +23,26 @@ import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
 
 @UriParams
-public class LambdaConfiguration implements Cloneable {
+public class LambdaConfiguration {
 
     @UriPath
     @Metadata(required = "true")
     private String function;
-    @UriParam(label = "producer")
-    private AWSLambda awsLambdaClient;
-    @UriParam(label = "producer", secret = true)
-    private String accessKey;
-    @UriParam(label = "producer", secret = true)
-    private String secretKey;
-    @UriParam(label = "producer")
-    private String awsLambdaEndpoint;
-    @UriParam(label = "producer")
+    @UriParam
     @Metadata(required = "true")
     private LambdaOperations operation;
-    @UriParam(label = "producer")
+    @UriParam
+    private String awsLambdaEndpoint;
+    @UriParam(label = "security", secret = true)
+    private String accessKey;
+    @UriParam(label = "security", secret = true)
+    private String secretKey;
+    @UriParam(label = "proxy")
     private String proxyHost;
-    @UriParam(label = "producer")
+    @UriParam(label = "proxy")
     private Integer proxyPort;
-
+    @UriParam(label = "advanced")
+    private AWSLambda awsLambdaClient;
 
     public String getFunction() {
         return function;
@@ -56,7 +55,6 @@ public class LambdaConfiguration implements Cloneable {
         this.function = function;
     }
 
-
     public AWSLambda getAwsLambdaClient() {
         return awsLambdaClient;
     }
@@ -134,5 +132,4 @@ public class LambdaConfiguration implements Cloneable {
         this.proxyPort = proxyPort;
     }
 
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
index 086a2fe..725a404 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
-import org.apache.camel.impl.ScheduledPollEndpoint;
+import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
@@ -34,8 +34,9 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * The aws-lambda is used for managing and invoking functions from Amazon 
Lambda.
  */
-@UriEndpoint(firstVersion = "2.21.0", scheme = "aws-lambda", title = "AWS 
Lambda", syntax = "aws-lambda:functionName", producerOnly = true, label = 
"cloud,computing,serverless")
-public class LambdaEndpoint extends ScheduledPollEndpoint {
+@UriEndpoint(firstVersion = "2.20.0", scheme = "aws-lambda", title = "AWS 
Lambda",
+    syntax = "aws-lambda:function", producerOnly = true, label = 
"cloud,computing,serverless")
+public class LambdaEndpoint extends DefaultEndpoint {
 
     private AWSLambda awsLambdaClient;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
index cff6ac5..226c08f 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/lambda/LambdaProducer.java
@@ -16,10 +16,12 @@
  */
 package org.apache.camel.component.aws.lambda;
 
-import java.io.*;
-import java.nio.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
 
 import com.amazonaws.AmazonServiceException;
 import com.amazonaws.services.lambda.AWSLambda;
@@ -49,7 +51,6 @@ import org.slf4j.LoggerFactory;
 
 import static 
org.apache.camel.component.aws.common.AwsExchangeUtil.getMessageForResponse;
 
-
 /**
  * A Producer which sends messages to the Amazon Web Service Lambda <a
  * href="https://aws.amazon.com/lambda/";>AWS Lambda</a>
@@ -62,7 +63,6 @@ public class LambdaProducer extends DefaultProducer {
         super(endpoint);
     }
 
-
     @Override
     public void process(final Exchange exchange) throws Exception {
         switch (determineOperation(exchange)) {
@@ -86,7 +86,6 @@ public class LambdaProducer extends DefaultProducer {
         }
     }
 
-
     private void getFunction(AWSLambda lambdaClient, Exchange exchange) {
         GetFunctionResult result;
         try {
@@ -99,7 +98,6 @@ public class LambdaProducer extends DefaultProducer {
         message.setBody(result);
     }
 
-
     private void deleteFunction(AWSLambda lambdaClient, Exchange exchange) {
         DeleteFunctionResult result;
         try {
@@ -112,7 +110,6 @@ public class LambdaProducer extends DefaultProducer {
         message.setBody(result);
     }
 
-
     private void listFunctions(AWSLambda lambdaClient, Exchange exchange) {
         ListFunctionsResult result;
         try {
@@ -125,7 +122,6 @@ public class LambdaProducer extends DefaultProducer {
         message.setBody(result);
     }
 
-
     private void invokeFunction(AWSLambda lambdaClient, Exchange exchange) {
         InvokeResult result;
         try {
@@ -141,11 +137,10 @@ public class LambdaProducer extends DefaultProducer {
         
message.setBody(StandardCharsets.UTF_8.decode(result.getPayload()).toString());
     }
 
-
     private void createFunction(AWSLambda lambdaClient, Exchange exchange) 
throws Exception {
         CreateFunctionResult result;
-        try {
 
+        try {
             CreateFunctionRequest request = new CreateFunctionRequest()
                 .withFunctionName(getConfiguration().getFunction());
 
@@ -269,15 +264,14 @@ public class LambdaProducer extends DefaultProducer {
             result = lambdaClient.createFunction(request);
 
         } catch (AmazonServiceException ase) {
-            System.out.println(ase.getErrorCode() + " - " + 
ase.getErrorMessage());
             LOG.trace("invokeFunction command returned the error code {}", 
ase.getErrorCode());
             throw ase;
         }
+
         Message message = getMessageForResponse(exchange);
         message.setBody(result);
     }
 
-
     private LambdaOperations determineOperation(Exchange exchange) {
         LambdaOperations operation = 
exchange.getIn().getHeader(LambdaConstants.OPERATION, LambdaOperations.class);
         if (operation == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git 
a/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
new file mode 100644
index 0000000..a71d351
--- /dev/null
+++ 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
@@ -0,0 +1,128 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.lambda.springboot;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.aws.lambda.LambdaComponent;
+import org.apache.camel.spi.ComponentCustomizer;
+import org.apache.camel.spi.HasId;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.ComponentConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import 
org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.GroupCondition;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import 
org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@Configuration
+@Conditional({ConditionalOnCamelContextAndAutoConfigurationBeans.class,
+        LambdaComponentAutoConfiguration.GroupConditions.class})
+@AutoConfigureAfter(CamelAutoConfiguration.class)
+@EnableConfigurationProperties({ComponentConfigurationProperties.class,
+        LambdaComponentConfiguration.class})
+public class LambdaComponentAutoConfiguration {
+
+    private static final Logger LOGGER = LoggerFactory
+            .getLogger(LambdaComponentAutoConfiguration.class);
+    @Autowired
+    private ApplicationContext applicationContext;
+    @Autowired
+    private CamelContext camelContext;
+    @Autowired
+    private LambdaComponentConfiguration configuration;
+    @Autowired(required = false)
+    private List<ComponentCustomizer<LambdaComponent>> customizers;
+
+    static class GroupConditions extends GroupCondition {
+        public GroupConditions() {
+            super("camel.component", "camel.component.aws-lambda");
+        }
+    }
+
+    @Lazy
+    @Bean(name = "aws-lambda-component")
+    @ConditionalOnMissingBean(LambdaComponent.class)
+    public LambdaComponent configureLambdaComponent() throws Exception {
+        LambdaComponent component = new LambdaComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null,
+                false);
+        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+            Object value = entry.getValue();
+            Class<?> paramClass = value.getClass();
+            if (paramClass.getName().endsWith("NestedConfiguration")) {
+                Class nestedClass = null;
+                try {
+                    nestedClass = (Class) paramClass.getDeclaredField(
+                            "CAMEL_NESTED_CLASS").get(null);
+                    HashMap<String, Object> nestedParameters = new HashMap<>();
+                    IntrospectionSupport.getProperties(value, nestedParameters,
+                            null, false);
+                    Object nestedProperty = nestedClass.newInstance();
+                    CamelPropertiesHelper.setCamelProperties(camelContext,
+                            nestedProperty, nestedParameters, false);
+                    entry.setValue(nestedProperty);
+                } catch (NoSuchFieldException e) {
+                }
+            }
+        }
+        CamelPropertiesHelper.setCamelProperties(camelContext, component,
+                parameters, false);
+        if (ObjectHelper.isNotEmpty(customizers)) {
+            for (ComponentCustomizer<LambdaComponent> customizer : 
customizers) {
+                boolean useCustomizer = (customizer instanceof HasId)
+                        ? HierarchicalPropertiesEvaluator.evaluate(
+                                applicationContext.getEnvironment(),
+                                "camel.component.customizer",
+                                "camel.component.aws-lambda.customizer",
+                                ((HasId) customizer).getId())
+                        : HierarchicalPropertiesEvaluator.evaluate(
+                                applicationContext.getEnvironment(),
+                                "camel.component.customizer",
+                                "camel.component.aws-lambda.customizer");
+                if (useCustomizer) {
+                    LOGGER.debug("Configure component {}, with customizer {}",
+                            component, customizer);
+                    customizer.customize(component);
+                }
+            }
+        }
+        return component;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
----------------------------------------------------------------------
diff --git 
a/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
new file mode 100644
index 0000000..5e1025d
--- /dev/null
+++ 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.lambda.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * The aws-lambda is used for managing and invoking functions from Amazon
+ * Lambda.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@ConfigurationProperties(prefix = "camel.component.aws-lambda")
+public class LambdaComponentConfiguration
+        extends
+            ComponentConfigurationPropertiesCommon {
+
+    /**
+     * Whether the component should resolve property placeholders on itself 
when
+     * starting. Only properties which are of String type can use property
+     * placeholders.
+     */
+    private Boolean resolvePropertyPlaceholders = true;
+
+    public Boolean getResolvePropertyPlaceholders() {
+        return resolvePropertyPlaceholders;
+    }
+
+    public void setResolvePropertyPlaceholders(
+            Boolean resolvePropertyPlaceholders) {
+        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/67ca92b6/platforms/spring-boot/components-starter/camel-aws-starter/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git 
a/platforms/spring-boot/components-starter/camel-aws-starter/src/main/resources/META-INF/spring.factories
 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/resources/META-INF/spring.factories
index 74ef782..e126ade 100644
--- 
a/platforms/spring-boot/components-starter/camel-aws-starter/src/main/resources/META-INF/spring.factories
+++ 
b/platforms/spring-boot/components-starter/camel-aws-starter/src/main/resources/META-INF/spring.factories
@@ -26,7 +26,9 @@ 
org.apache.camel.component.aws.sqs.springboot.SqsComponentAutoConfiguration,\
 org.apache.camel.component.aws.ec2.springboot.EC2ComponentAutoConfiguration,\
 org.apache.camel.component.aws.cw.springboot.CwComponentAutoConfiguration,\
 org.apache.camel.component.aws.ddb.springboot.DdbComponentAutoConfiguration,\
-org.apache.camel.component.aws.firehose.springboot.KinesisFirehoseComponentAutoConfiguration
+org.apache.camel.component.aws.firehose.springboot.KinesisFirehoseComponentAutoConfiguration,\
+org.apache.camel.component.aws.lambda.springboot.LambdaComponentAutoConfiguration
+
 
 
 

Reply via email to