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-examples.git
commit 434b0b03413cbd41ea2248f91ab7515220bc9b0a Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Sep 28 19:09:56 2020 +0200 Camel-AWS2-Evenbridge-example: Skeleton --- .../aws2-eventbridge-creator/pom.xml | 102 +++++++++++++++++++++ .../aws2-eventbridge-creator/readme.adoc | 27 ++++++ .../org/apache/camel/example/MyApplication.java | 38 ++++++++ .../org/apache/camel/example/MyRouteBuilder.java | 32 +++++++ .../src/main/resources/application.properties | 26 ++++++ .../src/main/resources/logback.xml | 30 ++++++ .../aws2-s3-events-inject/pom.xml | 102 +++++++++++++++++++++ .../aws2-s3-events-inject/readme.adoc | 27 ++++++ .../org/apache/camel/example/MyApplication.java | 38 ++++++++ .../org/apache/camel/example/MyRouteBuilder.java | 32 +++++++ .../src/main/resources/application.properties | 26 ++++++ .../src/main/resources/logback.xml | 30 ++++++ .../aws2-sqs-consumer/pom.xml | 102 +++++++++++++++++++++ .../aws2-sqs-consumer/readme.adoc | 27 ++++++ .../org/apache/camel/example/MyApplication.java | 38 ++++++++ .../org/apache/camel/example/MyRouteBuilder.java | 32 +++++++ .../src/main/resources/application.properties | 26 ++++++ .../src/main/resources/logback.xml | 30 ++++++ .../camel-example-main-endpointdsl-aws2/pom.xml | 45 +++++++++ 19 files changed, 810 insertions(+) diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml new file mode 100644 index 0000000..9e67e36 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel.example</groupId> + <artifactId>camel-example-main-endpointdsl-aws2</artifactId> + <version>3.6.0-SNAPSHOT</version> + </parent> + + <artifactId>aws2-eventbridge-creator</artifactId> + <packaging>jar</packaging> + <name>Camel :: Example :: Main :: Endpoint DSL :: AWS2 Eventbridge Creator</name> + <description>An example for showing standalone Camel with Endpoint DSL and AWS2-Eventbridge</description> + + <properties> + <category>Beginner</category> + </properties> + + <dependencyManagement> + <dependencies> + <!-- Add Camel BOM --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bom</artifactId> + <version>${camel.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> + </dependency> + <!-- we use the endpoint-dsl --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-endpointdsl</artifactId> + </dependency> + <!-- we use these 2 camel components in this example --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bean</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-aws2-eventbridge</artifactId> + </dependency> + + <!-- logging --> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + <version>${logback-version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback-version}</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <!-- to run the application --> + <plugin> + <groupId>org.apache.camel</groupId> + <artifactId>camel-maven-plugin</artifactId> + <version>${camel.version}</version> + <configuration> + <mainClass>org.apache.camel.example.MyApplication</mainClass> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/readme.adoc b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/readme.adoc new file mode 100644 index 0000000..f39297b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/readme.adoc @@ -0,0 +1,27 @@ +== Camel Example Main Endpoint DSL with AWS2 S3 component + +This example shows how to use the endpoint DSL in your Camel routes +to define endpoints using type safe fluent builders, which are Java methods +that are compiled. + +The example will poll an S3 bucket and Log the content of the file. + +Notice how you can configure Camel in the `application.properties` file. + +Don't forget to add your AWS Credentials and the bucket name. + +=== How to run + +You can run this example using + + mvn camel:run + +=== Help and contributions + +If you hit any problem using Camel or have some feedback, then please +https://camel.apache.org/support.html[let us know]. + +We also love contributors, so +https://camel.apache.org/contributing.html[get involved] :-) + +The Camel riders! diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyApplication.java b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyApplication.java new file mode 100644 index 0000000..496b37d --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyApplication.java @@ -0,0 +1,38 @@ +/* + * 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.example; + +import org.apache.camel.main.Main; + +/** + * Main class that boot the Camel application + */ +public final class MyApplication { + + private MyApplication() { + } + + public static void main(String[] args) throws Exception { + // use Camels Main class + Main main = new Main(); + // and add the routes (you can specify multiple classes) + main.configure().addRoutesBuilder(MyRouteBuilder.class); + // now keep the application running until the JVM is terminated (ctrl + c or sigterm) + main.run(args); + } + +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java new file mode 100644 index 0000000..206ea2c --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -0,0 +1,32 @@ +/* + * 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.example; + +import org.apache.camel.builder.endpoint.EndpointRouteBuilder; + +/** + * To use the endpoint DSL then we must extend EndpointRouteBuilder instead of RouteBuilder + */ +public class MyRouteBuilder extends EndpointRouteBuilder { + + @Override + public void configure() throws Exception { + + from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) + .log("The content is ${body}"); + } +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties new file mode 100644 index 0000000..77bc0d3 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties @@ -0,0 +1,26 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# to configure camel main +# here you can configure options on camel main (see MainConfigurationProperties class) +camel.main.name = AWS2-S3-Consumer + +# properties used in the route +camel.component.aws2-s3.accessKey=xxxx +camel.component.aws2-s3.secretKey=yyyy +camel.component.aws2-s3.region=region +bucketName=camel diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/logback.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/logback.xml new file mode 100644 index 0000000..a798d0b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/logback.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml new file mode 100644 index 0000000..2e02f1b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel.example</groupId> + <artifactId>camel-example-main-endpointdsl-aws2</artifactId> + <version>3.6.0-SNAPSHOT</version> + </parent> + + <artifactId>aws2-s3-events-inject</artifactId> + <packaging>jar</packaging> + <name>Camel :: Example :: Main :: Endpoint DSL :: AWS2 S3 Events Inject</name> + <description>An example for showing standalone Camel with Endpoint DSL and AWS2-S3</description> + + <properties> + <category>Beginner</category> + </properties> + + <dependencyManagement> + <dependencies> + <!-- Add Camel BOM --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bom</artifactId> + <version>${camel.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> + </dependency> + <!-- we use the endpoint-dsl --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-endpointdsl</artifactId> + </dependency> + <!-- we use these 2 camel components in this example --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bean</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-aws2-s3</artifactId> + </dependency> + + <!-- logging --> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + <version>${logback-version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback-version}</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <!-- to run the application --> + <plugin> + <groupId>org.apache.camel</groupId> + <artifactId>camel-maven-plugin</artifactId> + <version>${camel.version}</version> + <configuration> + <mainClass>org.apache.camel.example.MyApplication</mainClass> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/readme.adoc b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/readme.adoc new file mode 100644 index 0000000..f39297b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/readme.adoc @@ -0,0 +1,27 @@ +== Camel Example Main Endpoint DSL with AWS2 S3 component + +This example shows how to use the endpoint DSL in your Camel routes +to define endpoints using type safe fluent builders, which are Java methods +that are compiled. + +The example will poll an S3 bucket and Log the content of the file. + +Notice how you can configure Camel in the `application.properties` file. + +Don't forget to add your AWS Credentials and the bucket name. + +=== How to run + +You can run this example using + + mvn camel:run + +=== Help and contributions + +If you hit any problem using Camel or have some feedback, then please +https://camel.apache.org/support.html[let us know]. + +We also love contributors, so +https://camel.apache.org/contributing.html[get involved] :-) + +The Camel riders! diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyApplication.java b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyApplication.java new file mode 100644 index 0000000..496b37d --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyApplication.java @@ -0,0 +1,38 @@ +/* + * 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.example; + +import org.apache.camel.main.Main; + +/** + * Main class that boot the Camel application + */ +public final class MyApplication { + + private MyApplication() { + } + + public static void main(String[] args) throws Exception { + // use Camels Main class + Main main = new Main(); + // and add the routes (you can specify multiple classes) + main.configure().addRoutesBuilder(MyRouteBuilder.class); + // now keep the application running until the JVM is terminated (ctrl + c or sigterm) + main.run(args); + } + +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java new file mode 100644 index 0000000..206ea2c --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -0,0 +1,32 @@ +/* + * 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.example; + +import org.apache.camel.builder.endpoint.EndpointRouteBuilder; + +/** + * To use the endpoint DSL then we must extend EndpointRouteBuilder instead of RouteBuilder + */ +public class MyRouteBuilder extends EndpointRouteBuilder { + + @Override + public void configure() throws Exception { + + from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) + .log("The content is ${body}"); + } +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties new file mode 100644 index 0000000..77bc0d3 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties @@ -0,0 +1,26 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# to configure camel main +# here you can configure options on camel main (see MainConfigurationProperties class) +camel.main.name = AWS2-S3-Consumer + +# properties used in the route +camel.component.aws2-s3.accessKey=xxxx +camel.component.aws2-s3.secretKey=yyyy +camel.component.aws2-s3.region=region +bucketName=camel diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/logback.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/logback.xml new file mode 100644 index 0000000..a798d0b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/logback.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml new file mode 100644 index 0000000..44a94f3 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel.example</groupId> + <artifactId>camel-example-main-endpointdsl-aws2</artifactId> + <version>3.6.0-SNAPSHOT</version> + </parent> + + <artifactId>aws2-sqs-consumer</artifactId> + <packaging>jar</packaging> + <name>Camel :: Example :: Main :: Endpoint DSL :: AWS2 SQS Consumer</name> + <description>An example for showing standalone Camel with Endpoint DSL and AWS2-SQS</description> + + <properties> + <category>Beginner</category> + </properties> + + <dependencyManagement> + <dependencies> + <!-- Add Camel BOM --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bom</artifactId> + <version>${camel.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> + </dependency> + <!-- we use the endpoint-dsl --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-endpointdsl</artifactId> + </dependency> + <!-- we use these 2 camel components in this example --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-bean</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-aws2-sqs</artifactId> + </dependency> + + <!-- logging --> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-core</artifactId> + <version>${logback-version}</version> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <version>${logback-version}</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <!-- to run the application --> + <plugin> + <groupId>org.apache.camel</groupId> + <artifactId>camel-maven-plugin</artifactId> + <version>${camel.version}</version> + <configuration> + <mainClass>org.apache.camel.example.MyApplication</mainClass> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/readme.adoc b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/readme.adoc new file mode 100644 index 0000000..f39297b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/readme.adoc @@ -0,0 +1,27 @@ +== Camel Example Main Endpoint DSL with AWS2 S3 component + +This example shows how to use the endpoint DSL in your Camel routes +to define endpoints using type safe fluent builders, which are Java methods +that are compiled. + +The example will poll an S3 bucket and Log the content of the file. + +Notice how you can configure Camel in the `application.properties` file. + +Don't forget to add your AWS Credentials and the bucket name. + +=== How to run + +You can run this example using + + mvn camel:run + +=== Help and contributions + +If you hit any problem using Camel or have some feedback, then please +https://camel.apache.org/support.html[let us know]. + +We also love contributors, so +https://camel.apache.org/contributing.html[get involved] :-) + +The Camel riders! diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyApplication.java b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyApplication.java new file mode 100644 index 0000000..496b37d --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyApplication.java @@ -0,0 +1,38 @@ +/* + * 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.example; + +import org.apache.camel.main.Main; + +/** + * Main class that boot the Camel application + */ +public final class MyApplication { + + private MyApplication() { + } + + public static void main(String[] args) throws Exception { + // use Camels Main class + Main main = new Main(); + // and add the routes (you can specify multiple classes) + main.configure().addRoutesBuilder(MyRouteBuilder.class); + // now keep the application running until the JVM is terminated (ctrl + c or sigterm) + main.run(args); + } + +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java new file mode 100644 index 0000000..206ea2c --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java @@ -0,0 +1,32 @@ +/* + * 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.example; + +import org.apache.camel.builder.endpoint.EndpointRouteBuilder; + +/** + * To use the endpoint DSL then we must extend EndpointRouteBuilder instead of RouteBuilder + */ +public class MyRouteBuilder extends EndpointRouteBuilder { + + @Override + public void configure() throws Exception { + + from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false)) + .log("The content is ${body}"); + } +} diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties new file mode 100644 index 0000000..77bc0d3 --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties @@ -0,0 +1,26 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# to configure camel main +# here you can configure options on camel main (see MainConfigurationProperties class) +camel.main.name = AWS2-S3-Consumer + +# properties used in the route +camel.component.aws2-s3.accessKey=xxxx +camel.component.aws2-s3.secretKey=yyyy +camel.component.aws2-s3.region=region +bucketName=camel diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/logback.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/logback.xml new file mode 100644 index 0000000..a798d0b --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/logback.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<configuration> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + </encoder> + </appender> + + <root level="INFO"> + <appender-ref ref="STDOUT" /> + </root> +</configuration> diff --git a/examples/camel-example-main-endpointdsl-aws2/pom.xml b/examples/camel-example-main-endpointdsl-aws2/pom.xml new file mode 100644 index 0000000..330062f --- /dev/null +++ b/examples/camel-example-main-endpointdsl-aws2/pom.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel.example</groupId> + <artifactId>examples</artifactId> + <version>3.6.0-SNAPSHOT</version> + </parent> + + <artifactId>camel-example-main-endpointdsl-aws2</artifactId> + <name>Camel :: Example :: Main :: Endpoint DSL :: AWS2</name> + <description>An example for showing standalone Camel with multiple AWS2 components</description> + <packaging>pom</packaging> + + <properties> + <category>Cloud</category> + </properties> + + <modules> + <module>aws2-eventbridge-creator</module> + <module>aws2-sqs-consumer</module> + <module>aws2-s3-events-inject</module> + </modules> + +</project>