You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2020/03/23 12:53:07 UTC

[camel-quarkus] branch master updated (8231cb2 -> a14579d)

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

ppalaga pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git.


    from 8231cb2  Add Google BigQuery extension
     new 8e56e4e  Fix #941 AWS 2 CloudWatch support (JVM only)
     new 9bba969  Fix #942 AWS 2 DynamoDB support (JVM only)
     new f1abe8c  Fix #943 AWS 2 EC2 support (JVM only)
     new ae84718  Fix #944 AWS 2 ECS support (JVM only)
     new 437b7ed  Fix #945 AWS 2 EKS support (JVM only)
     new 084caf7  Fix #946 AWS 2 IAM support (JVM only)
     new c4ad7bf  Fix #947 AWS 2 KMS support (JVM only)
     new 0e61388  Fix #948 AWS 2 MQ support (JVM only)
     new 596a12e  Fix #949 AWS 2 MSK support (JVM only)
     new 863e518  Fix #950 AWS 2 Simple Email Service support (JVM only)
     new a96252c  Fix #951 AWS 2 Simple Notification System support (JVM only)
     new 4608d1b  Fix #952 AWS 2 Simple Queue Service support (JVM only)
     new 40f806e  Fix #953 AWS 2 Translate support (JVM only)
     new a14579d  Regenerate the list of extensions

The 14 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../pages/list-of-camel-quarkus-extensions.adoc    |  58 +++++++-
 extensions-jvm/aws2-cw/deployment/pom.xml          |  75 +++++++++++
 .../aws2/cw/deployment/Aws2CwProcessor.java        |  31 +++++
 extensions-jvm/aws2-cw/integration-test/pom.xml    |  82 +++++++++++
 .../component/aws2/cw/it/Aws2CwResource.java       |  51 +++++++
 .../quarkus/component/aws2/cw/it/Aws2CwTest.java   |  34 +++++
 extensions-jvm/aws2-cw/pom.xml                     |  40 ++++++
 extensions-jvm/aws2-cw/runtime/pom.xml             |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-ddb/deployment/pom.xml         |  79 +++++++++++
 .../aws2/ddb/deployment/Aws2DdbProcessor.java      |  31 +++++
 extensions-jvm/aws2-ddb/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/ddb/it/Aws2DdbResource.java     |  64 +++++++++
 .../quarkus/component/aws2/ddb/it/Aws2DdbTest.java |  42 ++++++
 extensions-jvm/aws2-ddb/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-ddb/runtime/pom.xml            |  87 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  30 +++++
 extensions-jvm/aws2-ec2/deployment/pom.xml         |  75 +++++++++++
 .../aws2/ec2/deployment/Aws2Ec2Processor.java      |  31 +++++
 extensions-jvm/aws2-ec2/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/ec2/it/Aws2Ec2Resource.java     |  51 +++++++
 .../quarkus/component/aws2/ec2/it/Aws2Ec2Test.java |  34 +++++
 extensions-jvm/aws2-ec2/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-ec2/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-ecs/deployment/pom.xml         |  75 +++++++++++
 .../aws2/ecs/deployment/Aws2EcsProcessor.java      |  31 +++++
 extensions-jvm/aws2-ecs/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/ecs/it/Aws2EcsResource.java     |  51 +++++++
 .../quarkus/component/aws2/ecs/it/Aws2EcsTest.java |  34 +++++
 extensions-jvm/aws2-ecs/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-ecs/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-eks/deployment/pom.xml         |  75 +++++++++++
 .../aws2/eks/deployment/Aws2EksProcessor.java      |  31 +++++
 extensions-jvm/aws2-eks/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/eks/it/Aws2EksResource.java     |  51 +++++++
 .../quarkus/component/aws2/eks/it/Aws2EksTest.java |  34 +++++
 extensions-jvm/aws2-eks/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-eks/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-iam/deployment/pom.xml         |  75 +++++++++++
 .../aws2/iam/deployment/Aws2IamProcessor.java      |  31 +++++
 extensions-jvm/aws2-iam/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/iam/it/Aws2IamResource.java     |  51 +++++++
 .../quarkus/component/aws2/iam/it/Aws2IamTest.java |  34 +++++
 extensions-jvm/aws2-iam/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-iam/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-kms/deployment/pom.xml         |  75 +++++++++++
 .../aws2/kms/deployment/Aws2KmsProcessor.java      |  31 +++++
 extensions-jvm/aws2-kms/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/kms/it/Aws2KmsResource.java     |  51 +++++++
 .../quarkus/component/aws2/kms/it/Aws2KmsTest.java |  34 +++++
 extensions-jvm/aws2-kms/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-kms/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-mq/deployment/pom.xml          |  75 +++++++++++
 .../aws2/mq/deployment/Aws2MqProcessor.java        |  31 +++++
 extensions-jvm/aws2-mq/integration-test/pom.xml    |  82 +++++++++++
 .../component/aws2/mq/it/Aws2MqResource.java       |  51 +++++++
 .../quarkus/component/aws2/mq/it/Aws2MqTest.java   |  34 +++++
 extensions-jvm/aws2-mq/pom.xml                     |  40 ++++++
 extensions-jvm/aws2-mq/runtime/pom.xml             |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-msk/deployment/pom.xml         |  75 +++++++++++
 .../aws2/msk/deployment/Aws2MskProcessor.java      |  31 +++++
 extensions-jvm/aws2-msk/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/msk/it/Aws2MskResource.java     |  51 +++++++
 .../quarkus/component/aws2/msk/it/Aws2MskTest.java |  34 +++++
 extensions-jvm/aws2-msk/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-msk/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-ses/deployment/pom.xml         |  75 +++++++++++
 .../aws2/ses/deployment/Aws2SesProcessor.java      |  31 +++++
 extensions-jvm/aws2-ses/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/ses/it/Aws2SesResource.java     |  51 +++++++
 .../quarkus/component/aws2/ses/it/Aws2SesTest.java |  34 +++++
 extensions-jvm/aws2-ses/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-ses/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-sns/deployment/pom.xml         |  75 +++++++++++
 .../aws2/sns/deployment/Aws2SnsProcessor.java      |  31 +++++
 extensions-jvm/aws2-sns/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/sns/it/Aws2SnsResource.java     |  51 +++++++
 .../quarkus/component/aws2/sns/it/Aws2SnsTest.java |  34 +++++
 extensions-jvm/aws2-sns/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-sns/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  30 +++++
 extensions-jvm/aws2-sqs/deployment/pom.xml         |  75 +++++++++++
 .../aws2/sqs/deployment/Aws2SqsProcessor.java      |  31 +++++
 extensions-jvm/aws2-sqs/integration-test/pom.xml   |  82 +++++++++++
 .../component/aws2/sqs/it/Aws2SqsResource.java     |  51 +++++++
 .../quarkus/component/aws2/sqs/it/Aws2SqsTest.java |  34 +++++
 extensions-jvm/aws2-sqs/pom.xml                    |  40 ++++++
 extensions-jvm/aws2-sqs/runtime/pom.xml            |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/aws2-translate/deployment/pom.xml   |  75 +++++++++++
 .../deployment/Aws2TranslateProcessor.java         |  31 +++++
 .../aws2-translate/integration-test/pom.xml        |  82 +++++++++++
 .../aws2/translate/it/Aws2TranslateResource.java   |  51 +++++++
 .../aws2/translate/it/Aws2TranslateTest.java       |  34 +++++
 extensions-jvm/aws2-translate/pom.xml              |  40 ++++++
 extensions-jvm/aws2-translate/runtime/pom.xml      |  83 ++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  29 ++++
 extensions-jvm/pom.xml                             |  13 ++
 pom.xml                                            |   1 +
 poms/bom-deployment/pom.xml                        |  65 +++++++++
 poms/bom/pom.xml                                   | 150 +++++++++++++++++++++
 109 files changed, 5842 insertions(+), 1 deletion(-)
 create mode 100644 extensions-jvm/aws2-cw/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
 create mode 100644 extensions-jvm/aws2-cw/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java
 create mode 100644 extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java
 create mode 100644 extensions-jvm/aws2-cw/pom.xml
 create mode 100644 extensions-jvm/aws2-cw/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-ddb/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
 create mode 100644 extensions-jvm/aws2-ddb/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-ddb/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbResource.java
 create mode 100644 extensions-jvm/aws2-ddb/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTest.java
 create mode 100644 extensions-jvm/aws2-ddb/pom.xml
 create mode 100644 extensions-jvm/aws2-ddb/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-ddb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-ec2/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
 create mode 100644 extensions-jvm/aws2-ec2/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-ec2/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Resource.java
 create mode 100644 extensions-jvm/aws2-ec2/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Test.java
 create mode 100644 extensions-jvm/aws2-ec2/pom.xml
 create mode 100644 extensions-jvm/aws2-ec2/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-ec2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-ecs/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
 create mode 100644 extensions-jvm/aws2-ecs/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-ecs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsResource.java
 create mode 100644 extensions-jvm/aws2-ecs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsTest.java
 create mode 100644 extensions-jvm/aws2-ecs/pom.xml
 create mode 100644 extensions-jvm/aws2-ecs/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-ecs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-eks/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
 create mode 100644 extensions-jvm/aws2-eks/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-eks/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksResource.java
 create mode 100644 extensions-jvm/aws2-eks/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksTest.java
 create mode 100644 extensions-jvm/aws2-eks/pom.xml
 create mode 100644 extensions-jvm/aws2-eks/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-eks/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-iam/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
 create mode 100644 extensions-jvm/aws2-iam/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-iam/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamResource.java
 create mode 100644 extensions-jvm/aws2-iam/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamTest.java
 create mode 100644 extensions-jvm/aws2-iam/pom.xml
 create mode 100644 extensions-jvm/aws2-iam/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-iam/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-kms/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
 create mode 100644 extensions-jvm/aws2-kms/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-kms/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsResource.java
 create mode 100644 extensions-jvm/aws2-kms/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsTest.java
 create mode 100644 extensions-jvm/aws2-kms/pom.xml
 create mode 100644 extensions-jvm/aws2-kms/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-kms/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-mq/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
 create mode 100644 extensions-jvm/aws2-mq/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-mq/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqResource.java
 create mode 100644 extensions-jvm/aws2-mq/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqTest.java
 create mode 100644 extensions-jvm/aws2-mq/pom.xml
 create mode 100644 extensions-jvm/aws2-mq/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-mq/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-msk/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
 create mode 100644 extensions-jvm/aws2-msk/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-msk/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskResource.java
 create mode 100644 extensions-jvm/aws2-msk/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskTest.java
 create mode 100644 extensions-jvm/aws2-msk/pom.xml
 create mode 100644 extensions-jvm/aws2-msk/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-msk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-ses/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
 create mode 100644 extensions-jvm/aws2-ses/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-ses/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesResource.java
 create mode 100644 extensions-jvm/aws2-ses/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesTest.java
 create mode 100644 extensions-jvm/aws2-ses/pom.xml
 create mode 100644 extensions-jvm/aws2-ses/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-ses/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-sns/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
 create mode 100644 extensions-jvm/aws2-sns/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-sns/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsResource.java
 create mode 100644 extensions-jvm/aws2-sns/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsTest.java
 create mode 100644 extensions-jvm/aws2-sns/pom.xml
 create mode 100644 extensions-jvm/aws2-sns/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-sns/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-sqs/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
 create mode 100644 extensions-jvm/aws2-sqs/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-sqs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java
 create mode 100644 extensions-jvm/aws2-sqs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java
 create mode 100644 extensions-jvm/aws2-sqs/pom.xml
 create mode 100644 extensions-jvm/aws2-sqs/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-sqs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/aws2-translate/deployment/pom.xml
 create mode 100644 extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
 create mode 100644 extensions-jvm/aws2-translate/integration-test/pom.xml
 create mode 100644 extensions-jvm/aws2-translate/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateResource.java
 create mode 100644 extensions-jvm/aws2-translate/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateTest.java
 create mode 100644 extensions-jvm/aws2-translate/pom.xml
 create mode 100644 extensions-jvm/aws2-translate/runtime/pom.xml
 create mode 100644 extensions-jvm/aws2-translate/runtime/src/main/resources/META-INF/quarkus-extension.yaml


[camel-quarkus] 13/14: Fix #953 AWS 2 Translate support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 40f806ee326043b04c3cf0c4d3fa117e9fb02e9e
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:30:53 2020 +0100

    Fix #953 AWS 2 Translate support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-translate/deployment/pom.xml   | 75 +++++++++++++++++++
 .../deployment/Aws2TranslateProcessor.java         | 31 ++++++++
 .../aws2-translate/integration-test/pom.xml        | 82 +++++++++++++++++++++
 .../aws2/translate/it/Aws2TranslateResource.java   | 51 +++++++++++++
 .../aws2/translate/it/Aws2TranslateTest.java       | 34 +++++++++
 extensions-jvm/aws2-translate/pom.xml              | 40 +++++++++++
 extensions-jvm/aws2-translate/runtime/pom.xml      | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 46d09e8..5f1ea22 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 119 in 100 JAR artifacts (0 deprecated)
+Number of Camel components: 120 in 101 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -89,6 +89,10 @@ Level | Since | Description
 `aws2-sqs:queueNameOrArn` | JVM +
  Preview | 1.0.0-M6 | The aws2-sqs component is used for sending and receiving messages to Amazon's SQS service.
 
+| link:https://camel.apache.org/components/latest/aws2-translate-component.html[AWS 2 Translate] (camel-quarkus-aws2-translate) +
+`aws2-translate:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-translate component is used for managing Amazon Translate
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-translate/deployment/pom.xml b/extensions-jvm/aws2-translate/deployment/pom.xml
new file mode 100644
index 0000000..d0e3e66
--- /dev/null
+++ b/extensions-jvm/aws2-translate/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-translate-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-translate-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 Translate :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-translate</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java b/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
new file mode 100644
index 0000000..63b42c4
--- /dev/null
+++ b/extensions-jvm/aws2-translate/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/translate/deployment/Aws2TranslateProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.translate.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2TranslateProcessor {
+
+    private static final String FEATURE = "camel-aws2-translate";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-translate/integration-test/pom.xml b/extensions-jvm/aws2-translate/integration-test/pom.xml
new file mode 100644
index 0000000..2d11f53
--- /dev/null
+++ b/extensions-jvm/aws2-translate/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-translate-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-translate-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 Translate :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 Translate extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-translate-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-translate</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-translate/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateResource.java b/extensions-jvm/aws2-translate/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateResource.java
new file mode 100644
index 0000000..1962e96
--- /dev/null
+++ b/extensions-jvm/aws2-translate/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.translate.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-translate")
+@ApplicationScoped
+public class Aws2TranslateResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2TranslateResource.class);
+
+    private static final String COMPONENT_AWS2_TRANSLATE = "aws2-translate";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-translate")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Translate() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_TRANSLATE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_TRANSLATE);
+        return Response.status(500, COMPONENT_AWS2_TRANSLATE + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-translate/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateTest.java b/extensions-jvm/aws2-translate/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateTest.java
new file mode 100644
index 0000000..bc4c044
--- /dev/null
+++ b/extensions-jvm/aws2-translate/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/translate/it/Aws2TranslateTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.translate.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2TranslateTest {
+
+    @Test
+    public void loadComponentAws2Translate() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-translate/load/component/aws2-translate")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-translate/pom.xml b/extensions-jvm/aws2-translate/pom.xml
new file mode 100644
index 0000000..e4992a1
--- /dev/null
+++ b/extensions-jvm/aws2-translate/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-translate-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 Translate</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-translate/runtime/pom.xml b/extensions-jvm/aws2-translate/runtime/pom.xml
new file mode 100644
index 0000000..84dbdde
--- /dev/null
+++ b/extensions-jvm/aws2-translate/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-translate-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-translate</artifactId>
+    <name>Camel Quarkus :: AWS 2 Translate :: Runtime</name>
+    <description>The aws2-translate component is used for managing Amazon Translate</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-translate</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-translate/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-translate/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..37812ae
--- /dev/null
+++ b/extensions-jvm/aws2-translate/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 Translate"
+description: "The aws2-translate component is used for managing Amazon Translate"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-translate-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 77adbbb..81f8fb6 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -46,6 +46,7 @@
         <module>aws2-ses</module>
         <module>aws2-sns</module>
         <module>aws2-sqs</module>
+        <module>aws2-translate</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 19d283c..bf9e9ea 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -209,6 +209,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-translate-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 151c5d8..3dbd932 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -221,6 +221,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-translate</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1070,6 +1075,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-translate</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 06/14: Fix #946 AWS 2 IAM support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 084caf7cb33b0f854b791c975f2caf1687cbaae3
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:18:52 2020 +0100

    Fix #946 AWS 2 IAM support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-iam/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/iam/deployment/Aws2IamProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-iam/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/iam/it/Aws2IamResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/iam/it/Aws2IamTest.java | 34 +++++++++
 extensions-jvm/aws2-iam/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-iam/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index d0bfff8..dd529bd 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 112 in 93 JAR artifacts (0 deprecated)
+Number of Camel components: 113 in 94 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -61,6 +61,10 @@ Level | Since | Description
 `aws2-eks:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-eks is used for managing Amazon EKS
 
+| link:https://camel.apache.org/components/latest/aws2-iam-component.html[AWS 2 IAM] (camel-quarkus-aws2-iam) +
+`aws2-iam:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-iam is used for managing Amazon IAM
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-iam/deployment/pom.xml b/extensions-jvm/aws2-iam/deployment/pom.xml
new file mode 100644
index 0000000..d5bb09b
--- /dev/null
+++ b/extensions-jvm/aws2-iam/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-iam-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-iam-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 IAM :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-iam</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java b/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
new file mode 100644
index 0000000..97a63c8
--- /dev/null
+++ b/extensions-jvm/aws2-iam/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/iam/deployment/Aws2IamProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.iam.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2IamProcessor {
+
+    private static final String FEATURE = "camel-aws2-iam";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-iam/integration-test/pom.xml b/extensions-jvm/aws2-iam/integration-test/pom.xml
new file mode 100644
index 0000000..ec6425f
--- /dev/null
+++ b/extensions-jvm/aws2-iam/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-iam-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-iam-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 IAM :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 IAM extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-iam-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-iam</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-iam/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamResource.java b/extensions-jvm/aws2-iam/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamResource.java
new file mode 100644
index 0000000..15f71f8
--- /dev/null
+++ b/extensions-jvm/aws2-iam/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.iam.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-iam")
+@ApplicationScoped
+public class Aws2IamResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2IamResource.class);
+
+    private static final String COMPONENT_AWS2_IAM = "aws2-iam";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-iam")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Iam() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_IAM) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_IAM);
+        return Response.status(500, COMPONENT_AWS2_IAM + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-iam/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamTest.java b/extensions-jvm/aws2-iam/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamTest.java
new file mode 100644
index 0000000..dbf66ca
--- /dev/null
+++ b/extensions-jvm/aws2-iam/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/iam/it/Aws2IamTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.iam.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2IamTest {
+
+    @Test
+    public void loadComponentAws2Iam() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-iam/load/component/aws2-iam")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-iam/pom.xml b/extensions-jvm/aws2-iam/pom.xml
new file mode 100644
index 0000000..d606f2c
--- /dev/null
+++ b/extensions-jvm/aws2-iam/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-iam-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 IAM</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-iam/runtime/pom.xml b/extensions-jvm/aws2-iam/runtime/pom.xml
new file mode 100644
index 0000000..523fbdd
--- /dev/null
+++ b/extensions-jvm/aws2-iam/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-iam-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-iam</artifactId>
+    <name>Camel Quarkus :: AWS 2 IAM :: Runtime</name>
+    <description>The aws2-iam is used for managing Amazon IAM</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-iam</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-iam/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-iam/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..c66733c
--- /dev/null
+++ b/extensions-jvm/aws2-iam/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 IAM"
+description: "The aws2-iam is used for managing Amazon IAM"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-iam-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index fe2fb6a..44ee5fa 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -39,6 +39,7 @@
         <module>aws2-ec2</module>
         <module>aws2-ecs</module>
         <module>aws2-eks</module>
+        <module>aws2-iam</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 2449337..c6489eb 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -174,6 +174,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-iam-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index be7a1c2..da53432 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -186,6 +186,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-iam</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1000,6 +1005,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-iam</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/14: Fix #941 AWS 2 CloudWatch support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8e56e4e1860bb70c4898d12fd3c3d1e506a0b262
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:04:43 2020 +0100

    Fix #941 AWS 2 CloudWatch support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-cw/deployment/pom.xml          | 75 +++++++++++++++++++
 .../aws2/cw/deployment/Aws2CwProcessor.java        | 31 ++++++++
 extensions-jvm/aws2-cw/integration-test/pom.xml    | 82 +++++++++++++++++++++
 .../component/aws2/cw/it/Aws2CwResource.java       | 51 +++++++++++++
 .../quarkus/component/aws2/cw/it/Aws2CwTest.java   | 34 +++++++++
 extensions-jvm/aws2-cw/pom.xml                     | 40 +++++++++++
 extensions-jvm/aws2-cw/runtime/pom.xml             | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 pom.xml                                            |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 30 ++++++++
 13 files changed, 467 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 2499ddb..ad2ac32 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 108 in 89 JAR artifacts (0 deprecated)
+Number of Camel components: 109 in 90 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -37,6 +37,10 @@ Level | Since | Description
 `ahc-ws:httpUri` | Native +
  Stable | 1.0.0-M3 | To exchange data with external Websocket servers using Async Http Client.
 
+| link:https://camel.apache.org/components/latest/aws2-cw-component.html[AWS 2 CloudWatch] (camel-quarkus-aws2-cw) +
+`aws2-cw:namespace` | JVM +
+ Preview | 1.0.0-M6 | The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-cw/deployment/pom.xml b/extensions-jvm/aws2-cw/deployment/pom.xml
new file mode 100644
index 0000000..284d597
--- /dev/null
+++ b/extensions-jvm/aws2-cw/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-cw-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-cw-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 CloudWatch :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-cw</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java b/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
new file mode 100644
index 0000000..9ea26cc
--- /dev/null
+++ b/extensions-jvm/aws2-cw/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/cw/deployment/Aws2CwProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.cw.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2CwProcessor {
+
+    private static final String FEATURE = "camel-aws2-cw";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-cw/integration-test/pom.xml b/extensions-jvm/aws2-cw/integration-test/pom.xml
new file mode 100644
index 0000000..e20bad7
--- /dev/null
+++ b/extensions-jvm/aws2-cw/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-cw-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-cw-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 CloudWatch :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 CloudWatch extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-cw-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-cw</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java b/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java
new file mode 100644
index 0000000..b408305
--- /dev/null
+++ b/extensions-jvm/aws2-cw/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.cw.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-cw")
+@ApplicationScoped
+public class Aws2CwResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2CwResource.class);
+
+    private static final String COMPONENT_AWS2_CW = "aws2-cw";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-cw")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Cw() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_CW) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_CW);
+        return Response.status(500, COMPONENT_AWS2_CW + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java b/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java
new file mode 100644
index 0000000..036b081
--- /dev/null
+++ b/extensions-jvm/aws2-cw/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.cw.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2CwTest {
+
+    @Test
+    public void loadComponentAws2Cw() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-cw/load/component/aws2-cw")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-cw/pom.xml b/extensions-jvm/aws2-cw/pom.xml
new file mode 100644
index 0000000..cad9ad7
--- /dev/null
+++ b/extensions-jvm/aws2-cw/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-cw-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 CloudWatch</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-cw/runtime/pom.xml b/extensions-jvm/aws2-cw/runtime/pom.xml
new file mode 100644
index 0000000..3f995a3
--- /dev/null
+++ b/extensions-jvm/aws2-cw/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-cw-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-cw</artifactId>
+    <name>Camel Quarkus :: AWS 2 CloudWatch :: Runtime</name>
+    <description>The aws2-cw component is used for sending metrics to an Amazon CloudWatch.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-cw</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..b23156a
--- /dev/null
+++ b/extensions-jvm/aws2-cw/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 CloudWatch"
+description: "The aws2-cw component is used for sending metrics to an Amazon CloudWatch."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "monitoring"
+  guide: "https://camel.apache.org/components/latest/aws2-cw-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index ce09f8d..2168a0a 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -34,6 +34,7 @@
 
     <modules>
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
+        <module>aws2-cw</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/pom.xml b/pom.xml
index 3439c3c..990f88d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
         <ahc.version>2.10.4</ahc.version>
+        <awssdk2.version>2.10.67</awssdk2.version>
         <camel.version>3.1.0</camel.version>
         <freemarker.version>2.3.30</freemarker.version>
         <google-http-client.version>1.22.0</google-http-client.version>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index c77e6a3..cc40dee 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -149,6 +149,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-cw-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index c7d7be4..116329f 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -161,6 +161,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-cw</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -950,6 +955,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-cw</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -1730,6 +1740,26 @@
                 <version>${snakeyaml.version}</version>
             </dependency>
             <dependency>
+                <groupId>software.amazon.awssdk</groupId>
+                <artifactId>apache-client</artifactId>
+                <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+            </dependency>
+            <dependency>
+                <groupId>software.amazon.awssdk</groupId>
+                <artifactId>dynamodb</artifactId>
+                <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+            </dependency>
+            <dependency>
+                <groupId>software.amazon.awssdk</groupId>
+                <artifactId>netty-nio-client</artifactId>
+                <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+            </dependency>
+            <dependency>
+                <groupId>software.amazon.awssdk</groupId>
+                <artifactId>url-connection-client</artifactId>
+                <version>${awssdk2.version}</version><!-- override the version set in the quarkus BOM -->
+            </dependency>
+            <dependency>
                 <groupId>xalan</groupId>
                 <artifactId>xalan</artifactId>
                 <version>${xalan.version}</version>


[camel-quarkus] 05/14: Fix #945 AWS 2 EKS support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 437b7edf43455674818a197cca6f5ecca9c49422
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:16:51 2020 +0100

    Fix #945 AWS 2 EKS support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-eks/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/eks/deployment/Aws2EksProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-eks/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/eks/it/Aws2EksResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/eks/it/Aws2EksTest.java | 34 +++++++++
 extensions-jvm/aws2-eks/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-eks/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 4400fb8..d0bfff8 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 111 in 92 JAR artifacts (0 deprecated)
+Number of Camel components: 112 in 93 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -57,6 +57,10 @@ Level | Since | Description
 `aws2-ecs:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-ecs is used for managing Amazon ECS
 
+| link:https://camel.apache.org/components/latest/aws2-eks-component.html[AWS 2 EKS] (camel-quarkus-aws2-eks) +
+`aws2-eks:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-eks is used for managing Amazon EKS
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-eks/deployment/pom.xml b/extensions-jvm/aws2-eks/deployment/pom.xml
new file mode 100644
index 0000000..bc36eab
--- /dev/null
+++ b/extensions-jvm/aws2-eks/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-eks-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-eks-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 EKS :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-eks</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java b/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
new file mode 100644
index 0000000..a94ca1b
--- /dev/null
+++ b/extensions-jvm/aws2-eks/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/eks/deployment/Aws2EksProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.eks.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2EksProcessor {
+
+    private static final String FEATURE = "camel-aws2-eks";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-eks/integration-test/pom.xml b/extensions-jvm/aws2-eks/integration-test/pom.xml
new file mode 100644
index 0000000..c1d0990
--- /dev/null
+++ b/extensions-jvm/aws2-eks/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-eks-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-eks-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 EKS :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 EKS extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-eks-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-eks</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-eks/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksResource.java b/extensions-jvm/aws2-eks/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksResource.java
new file mode 100644
index 0000000..c126702
--- /dev/null
+++ b/extensions-jvm/aws2-eks/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.eks.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-eks")
+@ApplicationScoped
+public class Aws2EksResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2EksResource.class);
+
+    private static final String COMPONENT_AWS2_EKS = "aws2-eks";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-eks")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Eks() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_EKS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_EKS);
+        return Response.status(500, COMPONENT_AWS2_EKS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-eks/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksTest.java b/extensions-jvm/aws2-eks/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksTest.java
new file mode 100644
index 0000000..7315de8
--- /dev/null
+++ b/extensions-jvm/aws2-eks/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/eks/it/Aws2EksTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.eks.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2EksTest {
+
+    @Test
+    public void loadComponentAws2Eks() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-eks/load/component/aws2-eks")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-eks/pom.xml b/extensions-jvm/aws2-eks/pom.xml
new file mode 100644
index 0000000..d7e8286
--- /dev/null
+++ b/extensions-jvm/aws2-eks/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-eks-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 EKS</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-eks/runtime/pom.xml b/extensions-jvm/aws2-eks/runtime/pom.xml
new file mode 100644
index 0000000..0df3f2a
--- /dev/null
+++ b/extensions-jvm/aws2-eks/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-eks-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-eks</artifactId>
+    <name>Camel Quarkus :: AWS 2 EKS :: Runtime</name>
+    <description>The aws2-eks is used for managing Amazon EKS</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-eks</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-eks/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-eks/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..ec3fc32
--- /dev/null
+++ b/extensions-jvm/aws2-eks/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 EKS"
+description: "The aws2-eks is used for managing Amazon EKS"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-eks-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 4ad7687..fe2fb6a 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -38,6 +38,7 @@
         <module>aws2-ddb</module>
         <module>aws2-ec2</module>
         <module>aws2-ecs</module>
+        <module>aws2-eks</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index fcdab11..2449337 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -169,6 +169,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-eks-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index cdc9e46..be7a1c2 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -181,6 +181,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-eks</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -990,6 +995,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-eks</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/14: Fix #942 AWS 2 DynamoDB support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 9bba969a6a1b40ad7392dbc215643293f7549c14
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:11:33 2020 +0100

    Fix #942 AWS 2 DynamoDB support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  8 ++
 extensions-jvm/aws2-ddb/deployment/pom.xml         | 79 ++++++++++++++++++++
 .../aws2/ddb/deployment/Aws2DdbProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-ddb/integration-test/pom.xml   | 82 ++++++++++++++++++++
 .../component/aws2/ddb/it/Aws2DdbResource.java     | 64 ++++++++++++++++
 .../quarkus/component/aws2/ddb/it/Aws2DdbTest.java | 42 +++++++++++
 extensions-jvm/aws2-ddb/pom.xml                    | 40 ++++++++++
 extensions-jvm/aws2-ddb/runtime/pom.xml            | 87 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 479 insertions(+)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index ad2ac32..03cd068 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -41,6 +41,14 @@ Level | Since | Description
 `aws2-cw:namespace` | JVM +
  Preview | 1.0.0-M6 | The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
 
+| link:https://camel.apache.org/components/latest/aws2-ddb-component.html[AWS 2 DynamoDB] (camel-quarkus-aws2-ddb) +
+`aws2-ddb:tableName` | JVM +
+ Preview | 1.0.0-M6 | The aws2-ddb component is used for storing and retrieving data from Amazon's DynamoDB service.
+
+| link:https://camel.apache.org/components/latest/aws2-ddbstream-component.html[AWS 2 DynamoDB Streams] (camel-quarkus-aws2-ddb) +
+`aws2-ddbstream:tableName` | JVM +
+ Preview | 1.0.0-M6 | The aws2-ddbstream component is used for working with Amazon DynamoDB Streams.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-ddb/deployment/pom.xml b/extensions-jvm/aws2-ddb/deployment/pom.xml
new file mode 100644
index 0000000..d759187
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/deployment/pom.xml
@@ -0,0 +1,79 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ddb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ddb-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 DynamoDB :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-amazon-dynamodb-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ddb</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java b/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
new file mode 100644
index 0000000..ae0cea0
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/deployment/Aws2DdbProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.ddb.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2DdbProcessor {
+
+    private static final String FEATURE = "camel-aws2-ddb";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ddb/integration-test/pom.xml b/extensions-jvm/aws2-ddb/integration-test/pom.xml
new file mode 100644
index 0000000..f9a86af
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ddb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ddb-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 DynamoDB :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 DynamoDB extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-ddb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ddb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ddb/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbResource.java b/extensions-jvm/aws2-ddb/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbResource.java
new file mode 100644
index 0000000..d6fc5ef
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbResource.java
@@ -0,0 +1,64 @@
+/*
+ * 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.quarkus.component.aws2.ddb.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-ddb")
+@ApplicationScoped
+public class Aws2DdbResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2DdbResource.class);
+
+    private static final String COMPONENT_AWS2_DDB = "aws2-ddb";
+    private static final String COMPONENT_AWS2_DDBSTREAM = "aws2-ddbstream";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-ddb")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Ddb() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_DDB) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_DDB);
+        return Response.status(500, COMPONENT_AWS2_DDB + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/aws2-ddbstream")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Ddbstream() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_DDBSTREAM) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_DDBSTREAM);
+        return Response.status(500, COMPONENT_AWS2_DDBSTREAM + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-ddb/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTest.java b/extensions-jvm/aws2-ddb/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTest.java
new file mode 100644
index 0000000..3deb4f8
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbTest.java
@@ -0,0 +1,42 @@
+/*
+ * 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.quarkus.component.aws2.ddb.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2DdbTest {
+
+    @Test
+    public void loadComponentAws2Ddb() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-ddb/load/component/aws2-ddb")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentAws2Ddbstream() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-ddb/load/component/aws2-ddbstream")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ddb/pom.xml b/extensions-jvm/aws2-ddb/pom.xml
new file mode 100644
index 0000000..7fa247e
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ddb-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 DynamoDB</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-ddb/runtime/pom.xml b/extensions-jvm/aws2-ddb/runtime/pom.xml
new file mode 100644
index 0000000..3b6dcec
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/runtime/pom.xml
@@ -0,0 +1,87 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ddb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ddb</artifactId>
+    <name>Camel Quarkus :: AWS 2 DynamoDB :: Runtime</name>
+    <description>The aws2-ddb component is used for storing and retrieving data from Amazon's DynamoDB service.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-amazon-dynamodb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-ddb</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ddb/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-ddb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..6fbb757
--- /dev/null
+++ b/extensions-jvm/aws2-ddb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 DynamoDB"
+description: "The aws2-ddb component is used for storing and retrieving data from Amazon's DynamoDB service."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "database"
+  - "nosql"
+  guide: "https://camel.apache.org/components/latest/aws2-ddb-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 2168a0a..176d913 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -35,6 +35,7 @@
     <modules>
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>aws2-cw</module>
+        <module>aws2-ddb</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index cc40dee..5478f83 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -154,6 +154,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ddb-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 116329f..35ce5ba 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -166,6 +166,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-ddb</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -960,6 +965,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ddb</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 10/14: Fix #950 AWS 2 Simple Email Service support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 863e518367a3263ad0e4461f37f04e68e92154dc
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:26:57 2020 +0100

    Fix #950 AWS 2 Simple Email Service support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-ses/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/ses/deployment/Aws2SesProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-ses/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/ses/it/Aws2SesResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/ses/it/Aws2SesTest.java | 34 +++++++++
 extensions-jvm/aws2-ses/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-ses/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 8699aca..27de8b0 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 116 in 97 JAR artifacts (0 deprecated)
+Number of Camel components: 117 in 98 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -77,6 +77,10 @@ Level | Since | Description
 `aws2-msk:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-msk is used for managing Amazon MSK
 
+| link:https://camel.apache.org/components/latest/aws2-ses-component.html[AWS 2 Simple Email Service] (camel-quarkus-aws2-ses) +
+`aws2-ses:from` | JVM +
+ Preview | 1.0.0-M6 | The aws2-ses component is used for sending emails with Amazon's SES service.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-ses/deployment/pom.xml b/extensions-jvm/aws2-ses/deployment/pom.xml
new file mode 100644
index 0000000..8f3caa1
--- /dev/null
+++ b/extensions-jvm/aws2-ses/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ses-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ses-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Email Service :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ses</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java b/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
new file mode 100644
index 0000000..b166791
--- /dev/null
+++ b/extensions-jvm/aws2-ses/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ses/deployment/Aws2SesProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.ses.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2SesProcessor {
+
+    private static final String FEATURE = "camel-aws2-ses";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ses/integration-test/pom.xml b/extensions-jvm/aws2-ses/integration-test/pom.xml
new file mode 100644
index 0000000..02db197
--- /dev/null
+++ b/extensions-jvm/aws2-ses/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ses-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ses-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Email Service :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 Simple Email Service extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-ses-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ses</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ses/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesResource.java b/extensions-jvm/aws2-ses/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesResource.java
new file mode 100644
index 0000000..3acf7aa
--- /dev/null
+++ b/extensions-jvm/aws2-ses/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.ses.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-ses")
+@ApplicationScoped
+public class Aws2SesResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2SesResource.class);
+
+    private static final String COMPONENT_AWS2_SES = "aws2-ses";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-ses")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Ses() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_SES) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_SES);
+        return Response.status(500, COMPONENT_AWS2_SES + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-ses/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesTest.java b/extensions-jvm/aws2-ses/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesTest.java
new file mode 100644
index 0000000..f9ec118
--- /dev/null
+++ b/extensions-jvm/aws2-ses/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.ses.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2SesTest {
+
+    @Test
+    public void loadComponentAws2Ses() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-ses/load/component/aws2-ses")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ses/pom.xml b/extensions-jvm/aws2-ses/pom.xml
new file mode 100644
index 0000000..708ab9d
--- /dev/null
+++ b/extensions-jvm/aws2-ses/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ses-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Email Service</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-ses/runtime/pom.xml b/extensions-jvm/aws2-ses/runtime/pom.xml
new file mode 100644
index 0000000..4135b2e
--- /dev/null
+++ b/extensions-jvm/aws2-ses/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ses-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ses</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Email Service :: Runtime</name>
+    <description>The aws2-ses component is used for sending emails with Amazon's SES service.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-ses</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ses/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-ses/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..88bfc74
--- /dev/null
+++ b/extensions-jvm/aws2-ses/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 Simple Email Service"
+description: "The aws2-ses component is used for sending emails with Amazon's SES service."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "mail"
+  guide: "https://camel.apache.org/components/latest/aws2-ses-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 1fa98dc..b1446a4 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -43,6 +43,7 @@
         <module>aws2-kms</module>
         <module>aws2-mq</module>
         <module>aws2-msk</module>
+        <module>aws2-ses</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index ade3afc..128d9a1 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -194,6 +194,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ses-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 35aae11..a16054a 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -206,6 +206,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-ses</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1040,6 +1045,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ses</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 12/14: Fix #952 AWS 2 Simple Queue Service support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4608d1ba31628350c01d8032c2c091a9307a16ad
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:29:44 2020 +0100

    Fix #952 AWS 2 Simple Queue Service support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-sqs/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/sqs/deployment/Aws2SqsProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-sqs/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/sqs/it/Aws2SqsResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/sqs/it/Aws2SqsTest.java | 34 +++++++++
 extensions-jvm/aws2-sqs/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-sqs/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 54676fc..46d09e8 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 118 in 99 JAR artifacts (0 deprecated)
+Number of Camel components: 119 in 100 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -85,6 +85,10 @@ Level | Since | Description
 `aws2-sns:topicNameOrArn` | JVM +
  Preview | 1.0.0-M6 | The aws2-sns component is used for sending messages to an Amazon Simple Notification Topic.
 
+| link:https://camel.apache.org/components/latest/aws2-sqs-component.html[AWS 2 Simple Queue Service] (camel-quarkus-aws2-sqs) +
+`aws2-sqs:queueNameOrArn` | JVM +
+ Preview | 1.0.0-M6 | The aws2-sqs component is used for sending and receiving messages to Amazon's SQS service.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-sqs/deployment/pom.xml b/extensions-jvm/aws2-sqs/deployment/pom.xml
new file mode 100644
index 0000000..e042b60
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sqs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sqs-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Queue Service :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-sqs</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java b/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
new file mode 100644
index 0000000..90b948c
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/deployment/Aws2SqsProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.sqs.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2SqsProcessor {
+
+    private static final String FEATURE = "camel-aws2-sqs";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-sqs/integration-test/pom.xml b/extensions-jvm/aws2-sqs/integration-test/pom.xml
new file mode 100644
index 0000000..9a28103
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sqs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sqs-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Queue Service :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 Simple Queue Service extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-sqs-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-sqs</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-sqs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java b/extensions-jvm/aws2-sqs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java
new file mode 100644
index 0000000..bc79e58
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.sqs.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-sqs")
+@ApplicationScoped
+public class Aws2SqsResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2SqsResource.class);
+
+    private static final String COMPONENT_AWS2_SQS = "aws2-sqs";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-sqs")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Sqs() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_SQS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_SQS);
+        return Response.status(500, COMPONENT_AWS2_SQS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-sqs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java b/extensions-jvm/aws2-sqs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java
new file mode 100644
index 0000000..17ad46e
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.sqs.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2SqsTest {
+
+    @Test
+    public void loadComponentAws2Sqs() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-sqs/load/component/aws2-sqs")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-sqs/pom.xml b/extensions-jvm/aws2-sqs/pom.xml
new file mode 100644
index 0000000..1ed396b
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sqs-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Queue Service</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-sqs/runtime/pom.xml b/extensions-jvm/aws2-sqs/runtime/pom.xml
new file mode 100644
index 0000000..4421204
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sqs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sqs</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Queue Service :: Runtime</name>
+    <description>The aws2-sqs component is used for sending and receiving messages to Amazon's SQS service.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-sqs</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-sqs/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-sqs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..27f44d8
--- /dev/null
+++ b/extensions-jvm/aws2-sqs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 Simple Queue Service"
+description: "The aws2-sqs component is used for sending and receiving messages to Amazon's SQS service."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "messaging"
+  guide: "https://camel.apache.org/components/latest/aws2-sqs-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 366792a..77adbbb 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -45,6 +45,7 @@
         <module>aws2-msk</module>
         <module>aws2-ses</module>
         <module>aws2-sns</module>
+        <module>aws2-sqs</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 1c5177c..19d283c 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -204,6 +204,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-sqs-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index b2febda..151c5d8 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -216,6 +216,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-sqs</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1060,6 +1065,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-sqs</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 04/14: Fix #944 AWS 2 ECS support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ae84718d728b8bf5ce8bc9530361482968e5fbae
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:15:01 2020 +0100

    Fix #944 AWS 2 ECS support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-ecs/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/ecs/deployment/Aws2EcsProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-ecs/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/ecs/it/Aws2EcsResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/ecs/it/Aws2EcsTest.java | 34 +++++++++
 extensions-jvm/aws2-ecs/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-ecs/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 3815784..4400fb8 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 110 in 91 JAR artifacts (0 deprecated)
+Number of Camel components: 111 in 92 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -53,6 +53,10 @@ Level | Since | Description
 `aws2-ec2:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-ec2 is used for managing Amazon EC2 instances.
 
+| link:https://camel.apache.org/components/latest/aws2-ecs-component.html[AWS 2 ECS] (camel-quarkus-aws2-ecs) +
+`aws2-ecs:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-ecs is used for managing Amazon ECS
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-ecs/deployment/pom.xml b/extensions-jvm/aws2-ecs/deployment/pom.xml
new file mode 100644
index 0000000..8a3b903
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ecs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ecs-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 ECS :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ecs</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java b/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
new file mode 100644
index 0000000..8fb0795
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/deployment/Aws2EcsProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.ecs.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2EcsProcessor {
+
+    private static final String FEATURE = "camel-aws2-ecs";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ecs/integration-test/pom.xml b/extensions-jvm/aws2-ecs/integration-test/pom.xml
new file mode 100644
index 0000000..a275570
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ecs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ecs-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 ECS :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 ECS extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-ecs-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ecs</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ecs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsResource.java b/extensions-jvm/aws2-ecs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsResource.java
new file mode 100644
index 0000000..4ef9258
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.ecs.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-ecs")
+@ApplicationScoped
+public class Aws2EcsResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2EcsResource.class);
+
+    private static final String COMPONENT_AWS2_ECS = "aws2-ecs";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-ecs")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Ecs() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_ECS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_ECS);
+        return Response.status(500, COMPONENT_AWS2_ECS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-ecs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsTest.java b/extensions-jvm/aws2-ecs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsTest.java
new file mode 100644
index 0000000..52a710a
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ecs/it/Aws2EcsTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.ecs.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2EcsTest {
+
+    @Test
+    public void loadComponentAws2Ecs() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-ecs/load/component/aws2-ecs")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ecs/pom.xml b/extensions-jvm/aws2-ecs/pom.xml
new file mode 100644
index 0000000..eacec9b
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ecs-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 ECS</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-ecs/runtime/pom.xml b/extensions-jvm/aws2-ecs/runtime/pom.xml
new file mode 100644
index 0000000..554a2fe
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ecs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ecs</artifactId>
+    <name>Camel Quarkus :: AWS 2 ECS :: Runtime</name>
+    <description>The aws2-ecs is used for managing Amazon ECS</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-ecs</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ecs/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-ecs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..17e5114
--- /dev/null
+++ b/extensions-jvm/aws2-ecs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 ECS"
+description: "The aws2-ecs is used for managing Amazon ECS"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-ecs-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 107d316..4ad7687 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -37,6 +37,7 @@
         <module>aws2-cw</module>
         <module>aws2-ddb</module>
         <module>aws2-ec2</module>
+        <module>aws2-ecs</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 9babdca..fcdab11 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -164,6 +164,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ecs-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 3c85e38..cdc9e46 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -176,6 +176,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-ecs</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -980,6 +985,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ecs</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 07/14: Fix #947 AWS 2 KMS support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c4ad7bfe4d57cb503101f7f88cf18eac9ac8b435
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:20:19 2020 +0100

    Fix #947 AWS 2 KMS support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-kms/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/kms/deployment/Aws2KmsProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-kms/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/kms/it/Aws2KmsResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/kms/it/Aws2KmsTest.java | 34 +++++++++
 extensions-jvm/aws2-kms/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-kms/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index dd529bd..735f739 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 113 in 94 JAR artifacts (0 deprecated)
+Number of Camel components: 114 in 95 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -65,6 +65,10 @@ Level | Since | Description
 `aws2-iam:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-iam is used for managing Amazon IAM
 
+| link:https://camel.apache.org/components/latest/aws2-kms-component.html[AWS 2 KMS] (camel-quarkus-aws2-kms) +
+`aws2-kms:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-kms is used for managing Amazon KMS
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-kms/deployment/pom.xml b/extensions-jvm/aws2-kms/deployment/pom.xml
new file mode 100644
index 0000000..7919468
--- /dev/null
+++ b/extensions-jvm/aws2-kms/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-kms-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-kms-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 KMS :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-kms</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java b/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
new file mode 100644
index 0000000..41c6c9b
--- /dev/null
+++ b/extensions-jvm/aws2-kms/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/kms/deployment/Aws2KmsProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.kms.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2KmsProcessor {
+
+    private static final String FEATURE = "camel-aws2-kms";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-kms/integration-test/pom.xml b/extensions-jvm/aws2-kms/integration-test/pom.xml
new file mode 100644
index 0000000..2fc0937
--- /dev/null
+++ b/extensions-jvm/aws2-kms/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-kms-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-kms-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 KMS :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 KMS extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-kms-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-kms</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-kms/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsResource.java b/extensions-jvm/aws2-kms/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsResource.java
new file mode 100644
index 0000000..b679ee3
--- /dev/null
+++ b/extensions-jvm/aws2-kms/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.kms.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-kms")
+@ApplicationScoped
+public class Aws2KmsResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2KmsResource.class);
+
+    private static final String COMPONENT_AWS2_KMS = "aws2-kms";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-kms")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Kms() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_KMS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_KMS);
+        return Response.status(500, COMPONENT_AWS2_KMS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-kms/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsTest.java b/extensions-jvm/aws2-kms/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsTest.java
new file mode 100644
index 0000000..13a42b1
--- /dev/null
+++ b/extensions-jvm/aws2-kms/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/kms/it/Aws2KmsTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.kms.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2KmsTest {
+
+    @Test
+    public void loadComponentAws2Kms() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-kms/load/component/aws2-kms")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-kms/pom.xml b/extensions-jvm/aws2-kms/pom.xml
new file mode 100644
index 0000000..3c48ac4
--- /dev/null
+++ b/extensions-jvm/aws2-kms/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-kms-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 KMS</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-kms/runtime/pom.xml b/extensions-jvm/aws2-kms/runtime/pom.xml
new file mode 100644
index 0000000..8bfb12d
--- /dev/null
+++ b/extensions-jvm/aws2-kms/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-kms-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-kms</artifactId>
+    <name>Camel Quarkus :: AWS 2 KMS :: Runtime</name>
+    <description>The aws2-kms is used for managing Amazon KMS</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-kms</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-kms/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-kms/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..ed9b5c7
--- /dev/null
+++ b/extensions-jvm/aws2-kms/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 KMS"
+description: "The aws2-kms is used for managing Amazon KMS"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-kms-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 44ee5fa..6a2716c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -40,6 +40,7 @@
         <module>aws2-ecs</module>
         <module>aws2-eks</module>
         <module>aws2-iam</module>
+        <module>aws2-kms</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index c6489eb..e1ca323 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -179,6 +179,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-kms-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index da53432..495b8f5 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -191,6 +191,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-kms</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1010,6 +1015,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-kms</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 11/14: Fix #951 AWS 2 Simple Notification System support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a96252cdb2884c25c1b221e72e76f4daa707401f
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:28:29 2020 +0100

    Fix #951 AWS 2 Simple Notification System support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-sns/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/sns/deployment/Aws2SnsProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-sns/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/sns/it/Aws2SnsResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/sns/it/Aws2SnsTest.java | 34 +++++++++
 extensions-jvm/aws2-sns/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-sns/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 447 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 27de8b0..54676fc 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 117 in 98 JAR artifacts (0 deprecated)
+Number of Camel components: 118 in 99 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -81,6 +81,10 @@ Level | Since | Description
 `aws2-ses:from` | JVM +
  Preview | 1.0.0-M6 | The aws2-ses component is used for sending emails with Amazon's SES service.
 
+| link:https://camel.apache.org/components/latest/aws2-sns-component.html[AWS 2 Simple Notification System] (camel-quarkus-aws2-sns) +
+`aws2-sns:topicNameOrArn` | JVM +
+ Preview | 1.0.0-M6 | The aws2-sns component is used for sending messages to an Amazon Simple Notification Topic.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-sns/deployment/pom.xml b/extensions-jvm/aws2-sns/deployment/pom.xml
new file mode 100644
index 0000000..2c98898
--- /dev/null
+++ b/extensions-jvm/aws2-sns/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sns-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sns-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Notification System :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-sns</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java b/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
new file mode 100644
index 0000000..a0fac4a
--- /dev/null
+++ b/extensions-jvm/aws2-sns/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/sns/deployment/Aws2SnsProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.sns.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2SnsProcessor {
+
+    private static final String FEATURE = "camel-aws2-sns";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-sns/integration-test/pom.xml b/extensions-jvm/aws2-sns/integration-test/pom.xml
new file mode 100644
index 0000000..96310f4
--- /dev/null
+++ b/extensions-jvm/aws2-sns/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sns-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sns-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Notification System :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 Simple Notification System extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-sns-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-sns</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-sns/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsResource.java b/extensions-jvm/aws2-sns/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsResource.java
new file mode 100644
index 0000000..466a91c
--- /dev/null
+++ b/extensions-jvm/aws2-sns/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.sns.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-sns")
+@ApplicationScoped
+public class Aws2SnsResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2SnsResource.class);
+
+    private static final String COMPONENT_AWS2_SNS = "aws2-sns";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-sns")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Sns() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_SNS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_SNS);
+        return Response.status(500, COMPONENT_AWS2_SNS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-sns/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsTest.java b/extensions-jvm/aws2-sns/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsTest.java
new file mode 100644
index 0000000..c9a2278
--- /dev/null
+++ b/extensions-jvm/aws2-sns/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SnsTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.sns.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2SnsTest {
+
+    @Test
+    public void loadComponentAws2Sns() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-sns/load/component/aws2-sns")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-sns/pom.xml b/extensions-jvm/aws2-sns/pom.xml
new file mode 100644
index 0000000..fd0ddb6
--- /dev/null
+++ b/extensions-jvm/aws2-sns/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sns-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Notification System</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-sns/runtime/pom.xml b/extensions-jvm/aws2-sns/runtime/pom.xml
new file mode 100644
index 0000000..e0d7b5f
--- /dev/null
+++ b/extensions-jvm/aws2-sns/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-sns-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-sns</artifactId>
+    <name>Camel Quarkus :: AWS 2 Simple Notification System :: Runtime</name>
+    <description>The aws2-sns component is used for sending messages to an Amazon Simple Notification Topic.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-sns</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-sns/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-sns/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..6d46de0
--- /dev/null
+++ b/extensions-jvm/aws2-sns/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 Simple Notification System"
+description: "The aws2-sns component is used for sending messages to an Amazon Simple Notification Topic."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "messaging"
+  - "mobile"
+  guide: "https://camel.apache.org/components/latest/aws2-sns-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index b1446a4..366792a 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -44,6 +44,7 @@
         <module>aws2-mq</module>
         <module>aws2-msk</module>
         <module>aws2-ses</module>
+        <module>aws2-sns</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 128d9a1..1c5177c 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -199,6 +199,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-sns-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index a16054a..b2febda 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -211,6 +211,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-sns</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1050,6 +1055,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-sns</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 14/14: Regenerate the list of extensions

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a14579d7549d5068fc04cfe9cdafd55bd7828d1a
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 12:48:05 2020 +0100

    Regenerate the list of extensions
---
 docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 5f1ea22..99fc6fc 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 120 in 101 JAR artifacts (0 deprecated)
+Number of Camel components: 122 in 102 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===


[camel-quarkus] 09/14: Fix #949 AWS 2 MSK support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 596a12ecc3144209de82e91cbbf183b596d872dd
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:24:01 2020 +0100

    Fix #949 AWS 2 MSK support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-msk/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/msk/deployment/Aws2MskProcessor.java      | 31 ++++++++
 extensions-jvm/aws2-msk/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/msk/it/Aws2MskResource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/msk/it/Aws2MskTest.java | 34 +++++++++
 extensions-jvm/aws2-msk/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-msk/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 15ea7a5..8699aca 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 115 in 96 JAR artifacts (0 deprecated)
+Number of Camel components: 116 in 97 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -73,6 +73,10 @@ Level | Since | Description
 `aws2-mq:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-mq is used for managing Amazon MQ instances.
 
+| link:https://camel.apache.org/components/latest/aws2-msk-component.html[AWS 2 MSK] (camel-quarkus-aws2-msk) +
+`aws2-msk:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-msk is used for managing Amazon MSK
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-msk/deployment/pom.xml b/extensions-jvm/aws2-msk/deployment/pom.xml
new file mode 100644
index 0000000..fb114cf
--- /dev/null
+++ b/extensions-jvm/aws2-msk/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-msk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-msk-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 MSK :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-msk</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java b/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
new file mode 100644
index 0000000..90c875d
--- /dev/null
+++ b/extensions-jvm/aws2-msk/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/msk/deployment/Aws2MskProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.msk.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2MskProcessor {
+
+    private static final String FEATURE = "camel-aws2-msk";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-msk/integration-test/pom.xml b/extensions-jvm/aws2-msk/integration-test/pom.xml
new file mode 100644
index 0000000..ec2b6f2
--- /dev/null
+++ b/extensions-jvm/aws2-msk/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-msk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-msk-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 MSK :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 MSK extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-msk-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-msk</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-msk/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskResource.java b/extensions-jvm/aws2-msk/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskResource.java
new file mode 100644
index 0000000..c5f7600
--- /dev/null
+++ b/extensions-jvm/aws2-msk/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.msk.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-msk")
+@ApplicationScoped
+public class Aws2MskResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2MskResource.class);
+
+    private static final String COMPONENT_AWS2_MSK = "aws2-msk";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-msk")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Msk() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_MSK) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_MSK);
+        return Response.status(500, COMPONENT_AWS2_MSK + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-msk/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskTest.java b/extensions-jvm/aws2-msk/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskTest.java
new file mode 100644
index 0000000..8506a22
--- /dev/null
+++ b/extensions-jvm/aws2-msk/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/msk/it/Aws2MskTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.msk.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2MskTest {
+
+    @Test
+    public void loadComponentAws2Msk() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-msk/load/component/aws2-msk")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-msk/pom.xml b/extensions-jvm/aws2-msk/pom.xml
new file mode 100644
index 0000000..e9899df
--- /dev/null
+++ b/extensions-jvm/aws2-msk/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-msk-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 MSK</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-msk/runtime/pom.xml b/extensions-jvm/aws2-msk/runtime/pom.xml
new file mode 100644
index 0000000..aee41fe
--- /dev/null
+++ b/extensions-jvm/aws2-msk/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-msk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-msk</artifactId>
+    <name>Camel Quarkus :: AWS 2 MSK :: Runtime</name>
+    <description>The aws2-msk is used for managing Amazon MSK</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-msk</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-msk/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-msk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..8327a52
--- /dev/null
+++ b/extensions-jvm/aws2-msk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 MSK"
+description: "The aws2-msk is used for managing Amazon MSK"
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-msk-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 3faa376..1fa98dc 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -42,6 +42,7 @@
         <module>aws2-iam</module>
         <module>aws2-kms</module>
         <module>aws2-mq</module>
+        <module>aws2-msk</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 0831597..ade3afc 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -189,6 +189,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-msk-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index e0a7f84..35aae11 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -201,6 +201,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-msk</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1030,6 +1035,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-msk</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/14: Fix #943 AWS 2 EC2 support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f1abe8c88202d6f3bf4a9a0523f49a51a10c3c4e
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:13:39 2020 +0100

    Fix #943 AWS 2 EC2 support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-ec2/deployment/pom.xml         | 75 +++++++++++++++++++
 .../aws2/ec2/deployment/Aws2Ec2Processor.java      | 31 ++++++++
 extensions-jvm/aws2-ec2/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/aws2/ec2/it/Aws2Ec2Resource.java     | 51 +++++++++++++
 .../quarkus/component/aws2/ec2/it/Aws2Ec2Test.java | 34 +++++++++
 extensions-jvm/aws2-ec2/pom.xml                    | 40 +++++++++++
 extensions-jvm/aws2-ec2/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 03cd068..3815784 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 109 in 90 JAR artifacts (0 deprecated)
+Number of Camel components: 110 in 91 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -49,6 +49,10 @@ Level | Since | Description
 `aws2-ddbstream:tableName` | JVM +
  Preview | 1.0.0-M6 | The aws2-ddbstream component is used for working with Amazon DynamoDB Streams.
 
+| link:https://camel.apache.org/components/latest/aws2-ec2-component.html[AWS 2 EC2] (camel-quarkus-aws2-ec2) +
+`aws2-ec2:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-ec2 is used for managing Amazon EC2 instances.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-ec2/deployment/pom.xml b/extensions-jvm/aws2-ec2/deployment/pom.xml
new file mode 100644
index 0000000..7c6d9ba
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ec2-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ec2-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 EC2 :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ec2</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java b/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
new file mode 100644
index 0000000..792317f
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/deployment/Aws2Ec2Processor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.ec2.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2Ec2Processor {
+
+    private static final String FEATURE = "camel-aws2-ec2";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ec2/integration-test/pom.xml b/extensions-jvm/aws2-ec2/integration-test/pom.xml
new file mode 100644
index 0000000..a6eaabf
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ec2-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ec2-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 EC2 :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 EC2 extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-ec2-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-ec2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ec2/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Resource.java b/extensions-jvm/aws2-ec2/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Resource.java
new file mode 100644
index 0000000..3b09877
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Resource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.ec2.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-ec2")
+@ApplicationScoped
+public class Aws2Ec2Resource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2Ec2Resource.class);
+
+    private static final String COMPONENT_AWS2_EC2 = "aws2-ec2";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-ec2")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Ec2() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_EC2) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_EC2);
+        return Response.status(500, COMPONENT_AWS2_EC2 + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-ec2/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Test.java b/extensions-jvm/aws2-ec2/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Test.java
new file mode 100644
index 0000000..20f9aaa
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/ec2/it/Aws2Ec2Test.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.ec2.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2Ec2Test {
+
+    @Test
+    public void loadComponentAws2Ec2() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-ec2/load/component/aws2-ec2")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-ec2/pom.xml b/extensions-jvm/aws2-ec2/pom.xml
new file mode 100644
index 0000000..8ce2c69
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ec2-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 EC2</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-ec2/runtime/pom.xml b/extensions-jvm/aws2-ec2/runtime/pom.xml
new file mode 100644
index 0000000..2fd5226
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-ec2-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-ec2</artifactId>
+    <name>Camel Quarkus :: AWS 2 EC2 :: Runtime</name>
+    <description>The aws2-ec2 is used for managing Amazon EC2 instances.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-ec2</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-ec2/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-ec2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..03d7679
--- /dev/null
+++ b/extensions-jvm/aws2-ec2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 EC2"
+description: "The aws2-ec2 is used for managing Amazon EC2 instances."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-ec2-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 176d913..107d316 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -36,6 +36,7 @@
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>aws2-cw</module>
         <module>aws2-ddb</module>
+        <module>aws2-ec2</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 5478f83..9babdca 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -159,6 +159,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ec2-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 35ce5ba..3c85e38 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -171,6 +171,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-ec2</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -970,6 +975,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-ec2</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 08/14: Fix #948 AWS 2 MQ support (JVM only)

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0e61388802ba7662b48bc678d86ccaf42b400b7f
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Mar 23 11:22:44 2020 +0100

    Fix #948 AWS 2 MQ support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/aws2-mq/deployment/pom.xml          | 75 +++++++++++++++++++
 .../aws2/mq/deployment/Aws2MqProcessor.java        | 31 ++++++++
 extensions-jvm/aws2-mq/integration-test/pom.xml    | 82 +++++++++++++++++++++
 .../component/aws2/mq/it/Aws2MqResource.java       | 51 +++++++++++++
 .../quarkus/component/aws2/mq/it/Aws2MqTest.java   | 34 +++++++++
 extensions-jvm/aws2-mq/pom.xml                     | 40 +++++++++++
 extensions-jvm/aws2-mq/runtime/pom.xml             | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 446 insertions(+), 1 deletion(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 735f739..15ea7a5 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 114 in 95 JAR artifacts (0 deprecated)
+Number of Camel components: 115 in 96 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -69,6 +69,10 @@ Level | Since | Description
 `aws2-kms:label` | JVM +
  Preview | 1.0.0-M6 | The aws2-kms is used for managing Amazon KMS
 
+| link:https://camel.apache.org/components/latest/aws2-mq-component.html[AWS 2 MQ] (camel-quarkus-aws2-mq) +
+`aws2-mq:label` | JVM +
+ Preview | 1.0.0-M6 | The aws2-mq is used for managing Amazon MQ instances.
+
 | link:https://camel.apache.org/components/latest/aws-ec2-component.html[AWS EC2] (camel-quarkus-aws-ec2) +
 `aws-ec2:label` | Native +
  Stable | 1.0.0-M3 | The aws-ec2 is used for managing Amazon EC2 instances.
diff --git a/extensions-jvm/aws2-mq/deployment/pom.xml b/extensions-jvm/aws2-mq/deployment/pom.xml
new file mode 100644
index 0000000..4e0d2e4
--- /dev/null
+++ b/extensions-jvm/aws2-mq/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-mq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-mq-deployment</artifactId>
+    <name>Camel Quarkus :: AWS 2 MQ :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-mq</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java b/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
new file mode 100644
index 0000000..b351f57
--- /dev/null
+++ b/extensions-jvm/aws2-mq/deployment/src/main/java/org/apache/camel/quarkus/component/aws2/mq/deployment/Aws2MqProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * 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.quarkus.component.aws2.mq.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class Aws2MqProcessor {
+
+    private static final String FEATURE = "camel-aws2-mq";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/aws2-mq/integration-test/pom.xml b/extensions-jvm/aws2-mq/integration-test/pom.xml
new file mode 100644
index 0000000..edafe01
--- /dev/null
+++ b/extensions-jvm/aws2-mq/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-mq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-mq-integration-test</artifactId>
+    <name>Camel Quarkus :: AWS 2 MQ :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus AWS 2 MQ extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-aws2-mq-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-aws2-mq</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-mq/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqResource.java b/extensions-jvm/aws2-mq/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqResource.java
new file mode 100644
index 0000000..60d3594
--- /dev/null
+++ b/extensions-jvm/aws2-mq/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.quarkus.component.aws2.mq.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.jboss.logging.Logger;
+
+@Path("/aws2-mq")
+@ApplicationScoped
+public class Aws2MqResource {
+
+    private static final Logger LOG = Logger.getLogger(Aws2MqResource.class);
+
+    private static final String COMPONENT_AWS2_MQ = "aws2-mq";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/aws2-mq")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentAws2Mq() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_AWS2_MQ) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_AWS2_MQ);
+        return Response.status(500, COMPONENT_AWS2_MQ + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/aws2-mq/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqTest.java b/extensions-jvm/aws2-mq/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqTest.java
new file mode 100644
index 0000000..2e313d2
--- /dev/null
+++ b/extensions-jvm/aws2-mq/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/mq/it/Aws2MqTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.component.aws2.mq.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Aws2MqTest {
+
+    @Test
+    public void loadComponentAws2Mq() {
+        /* A simple autogenerated test */
+        RestAssured.get("/aws2-mq/load/component/aws2-mq")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/aws2-mq/pom.xml b/extensions-jvm/aws2-mq/pom.xml
new file mode 100644
index 0000000..1ecbadd
--- /dev/null
+++ b/extensions-jvm/aws2-mq/pom.xml
@@ -0,0 +1,40 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-mq-parent</artifactId>
+    <name>Camel Quarkus :: AWS 2 MQ</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/aws2-mq/runtime/pom.xml b/extensions-jvm/aws2-mq/runtime/pom.xml
new file mode 100644
index 0000000..faf3afb
--- /dev/null
+++ b/extensions-jvm/aws2-mq/runtime/pom.xml
@@ -0,0 +1,83 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-aws2-mq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-aws2-mq</artifactId>
+    <name>Camel Quarkus :: AWS 2 MQ :: Runtime</name>
+    <description>The aws2-mq is used for managing Amazon MQ instances.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-aws2-mq</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/aws2-mq/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/aws2-mq/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..4698d56
--- /dev/null
+++ b/extensions-jvm/aws2-mq/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "AWS 2 MQ"
+description: "The aws2-mq is used for managing Amazon MQ instances."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "management"
+  guide: "https://camel.apache.org/components/latest/aws2-mq-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 6a2716c..3faa376 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -41,6 +41,7 @@
         <module>aws2-eks</module>
         <module>aws2-iam</module>
         <module>aws2-kms</module>
+        <module>aws2-mq</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index e1ca323..0831597 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -184,6 +184,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-mq-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 495b8f5..e0a7f84 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -196,6 +196,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-aws2-mq</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1020,6 +1025,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-aws2-mq</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>