You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/09/02 11:56:15 UTC

[camel-quarkus] branch master updated (29b2694 -> f9ea1b7)

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

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


    from 29b2694  Add some logging to debug #1632
     new a68c4a3  Upgrade to Camel 3.5.0
     new 077bc80  Extension for camel-threadpoolfactory-vertx #1430
     new 09cc882  Add ArangoDB component extension #1533
     new 60f9b50  Add Camel AS2 Modules as Quarkus Extension #1471
     new 49b58c6  CAMEL-14297: Introduce RouteBuilderConfigurer.
     new 77324cd  Remove remaining camel UriParams reflective class registrations
     new de3f7e5  CAMEL-15413: RouteBuilderConfigurer - Rename to LambdaRouteBuilder
     new df18e9e  Fix route template in camel-quarkus (#1621)
     new 882a0e5  Add route template integration test
     new 1435c52  Fixup af1b12df Fix JAXB dependency alignment issues
     new ddc1d19  Fix #1664 KuduIT fails with Camel 3.5.0
     new d043ed7  Add Camel 3.5.0 staging repo temporarily
     new f9ea1b7  Reduce the amount of RAM spent by the AS2 itest

The 13 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:
 .github/workflows/ci-build.yaml                    |   3 +-
 catalog/pom.xml                                    |   5 +-
 docs/modules/ROOT/nav.adoc                         |   3 +
 docs/modules/ROOT/pages/reference/components.adoc  |  24 +-
 .../extensions/{master.adoc => arangodb.adoc}      |  12 +-
 .../ROOT/pages/reference/extensions/as2.adoc       |  37 ++
 .../ROOT/pages/reference/extensions/aws-s3.adoc    |   2 +-
 .../ROOT/pages/reference/extensions/aws2-s3.adoc   |   2 +-
 .../ROOT/pages/reference/extensions/azure.adoc     |   4 +-
 .../pages/reference/extensions/cassandraql.adoc    |   2 +-
 .../extensions/threadpoolfactory-vertx.adoc        |  29 ++
 docs/modules/ROOT/pages/reference/index.adoc       |  17 +-
 docs/modules/ROOT/pages/reference/others.adoc      |   3 +
 examples/file-split-log-xml/pom.xml                |   2 +-
 examples/health/pom.xml                            |   2 +-
 examples/http-log/pom.xml                          |   2 +-
 examples/observability/pom.xml                     |   2 +-
 examples/rest-json/pom.xml                         |   2 +-
 examples/timer-log-cdi/pom.xml                     |   2 +-
 examples/timer-log-kotlin/pom.xml                  |   2 +-
 examples/timer-log-main/pom.xml                    |   2 +-
 examples/timer-log-spring/pom.xml                  |   2 +-
 examples/timer-log-xml/pom.xml                     |   2 +-
 examples/timer-log/pom.xml                         |   2 +-
 .../quarkus/core/deployment/CamelProcessor.java    |   3 +
 .../org/apache/camel/quarkus/core/BaseModel.java   | 100 +++++
 .../camel/quarkus/core/CamelContextRecorder.java   |  10 +
 .../core/DisabledXMLRoutesDefinitionLoader.java    |   5 +
 .../camel/quarkus/core/FastCamelContext.java       |  56 +++
 .../camel/quarkus/core/RegistryRoutesLoaders.java  |  13 +
 ... CamelMainLambdaRouteBuilderDiscoveryTest.java} |  19 +-
 ...ctTest.java => CamelMainRouteTemplateTest.java} |  50 ++-
 .../quarkus/main/CamelMainRoutesCollector.java     |  26 ++
 extensions-core/pom.xml                            |   1 +
 .../threadpoolfactory-vertx}/deployment/pom.xml    |  14 +-
 .../ThreadpoolfactoryVertxProcessor.java}          |  20 +-
 .../threadpoolfactory-vertx}/pom.xml               |   4 +-
 .../threadpoolfactory-vertx}/runtime/pom.xml       |  20 +-
 .../vertx/ThreadPoolFactoryVertxRecorder.java}     |  14 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   6 +-
 extensions-jvm/asterisk/integration-test/pom.xml   |   2 +-
 extensions-jvm/avro-rpc/integration-test/pom.xml   |   2 +-
 .../cassandraql/integration-test/pom.xml           |  12 +-
 extensions-jvm/cassandraql/runtime/pom.xml         |  16 +
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 extensions-jvm/couchbase/integration-test/pom.xml  |   2 +-
 .../debezium-mongodb/integration-test/pom.xml      |   2 +-
 .../google-bigquery/integration-test/pom.xml       |   2 +-
 .../google-pubsub/integration-test/pom.xml         |   2 +-
 extensions-jvm/groovy/integration-test/pom.xml     |   2 +-
 extensions-jvm/grpc/integration-test/pom.xml       |   2 +-
 extensions-jvm/jbpm/runtime/pom.xml                |  10 +
 extensions-jvm/nitrite/integration-test/pom.xml    |   2 +-
 extensions-jvm/ognl/integration-test/pom.xml       |   2 +-
 extensions-jvm/openstack/integration-test/pom.xml  |   2 +-
 extensions-jvm/protobuf/integration-test/pom.xml   |   2 +-
 extensions-jvm/pubnub/integration-test/pom.xml     |   2 +-
 extensions-jvm/wordpress/runtime/pom.xml           |  10 +
 .../bouncycastle}/deployment/pom.xml               |  19 +-
 .../deployment/BouncycastleSupportProcessor.java   |  37 +-
 .../bouncycastle}/pom.xml                          |   4 +-
 .../{policy => bouncycastle}/runtime/pom.xml       |  16 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   4 +-
 .../deployment/DebeziumSupportProcessor.java       |  14 +-
 extensions-support/policy/deployment/pom.xml       |  61 ---
 .../support/policy/deployment/PolicyProcessor.java | 103 -----
 extensions-support/policy/pom.xml                  |  37 --
 .../main/resources/META-INF/quarkus-extension.yaml |  27 --
 extensions-support/pom.xml                         |   2 +-
 .../arangodb}/deployment/pom.xml                   |   8 +-
 .../arangodb/deployment/ArangodbProcessor.java}    |   7 +-
 extensions/{flatpack => arangodb}/pom.xml          |   4 +-
 .../atomix => extensions/arangodb}/runtime/pom.xml |  10 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   6 +-
 .../fop => extensions/as2}/deployment/pom.xml      |  10 +-
 .../component/as2/deployment/As2Processor.java     |  87 ++++
 extensions/{git => as2}/pom.xml                    |   4 +-
 .../bonita => extensions/as2}/runtime/pom.xml      |  24 +-
 .../runtime/src/main/doc/usage.adoc                |   2 +-
 .../camel/quarkus/component/as2/As2Recorder.java}  |  17 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   6 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 extensions/aws2-ses/integration-test/pom.xml       |   2 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   1 +
 .../component/box/deployment/BoxProcessor.java     |  46 ---
 .../braintree/deployment/BraintreeProcessor.java   |  26 +-
 .../component/cron/deployment/CronProcessor.java   |  13 -
 .../component/fhir/deployment/FhirProcessor.java   |  33 --
 .../deployment/GoogleCalendarProcessor.java        |  30 --
 .../drive/deployment/GoogleDriveProcessor.java     |  29 --
 .../mail/deployment/GoogleMailProcessor.java       |  29 --
 .../sheets/deployment/GoogleSheetsProcessor.java   |  29 --
 .../kudu/deployment/JBossNettyLoggerFactory.java   | 197 +++++++++
 .../component/kudu/deployment/KuduProcessor.java   | 169 ++++++++
 extensions/kudu/runtime/pom.xml                    |   5 +
 .../component/kudu/graal/EmptyByteBufStub.java     |  53 +++
 .../component/kudu/graal/NettySubstitutions.java   | 453 +++++++++++++++++++++
 .../component/kudu/graal/ZLibSubstitutions.java    |  88 ++++
 .../component/log/deployment/LogProcessor.java     |  10 -
 .../olingo4/deployment/Olingo4Processor.java       |   9 -
 .../component/pdf/deployment/PdfProcessor.java     |  28 +-
 extensions/pom.xml                                 |   2 +
 .../runtime/support/CustomRoutesCollector.java     |   7 +
 integration-tests/activemq/pom.xml                 |   2 +-
 integration-tests/amqp/pom.xml                     |   2 +-
 integration-tests/{git => arangodb}/pom.xml        |  18 +-
 .../component/arangodb/it/ArangodbResource.java    | 143 +++++++
 .../quarkus/component/arangodb/it/ArangodbIT.java} |   4 +-
 .../component/arangodb/it/ArangodbTest.java        | 152 +++++++
 .../arangodb/it/ArangodbTestResource.java}         |  25 +-
 integration-tests/{flatpack => as2}/pom.xml        |  43 +-
 .../component/as2/it/As2CertificateHelper.java     | 140 +++++++
 .../quarkus/component/as2/it/As2Resource.java      | 131 ++++++
 .../component/as2/it/transport/ClientResult.java   |  68 ++++
 .../component/as2/it/transport/Request.java        | 152 +++++++
 .../component/as2/it/transport/ServerResult.java}  |  29 +-
 .../src/main/resources/application.properties      |   3 -
 .../camel/quarkus/component/as2/it/As2Helper.java  | 123 ++++++
 .../camel/quarkus/component/as2/it/As2IT.java}     |   4 +-
 .../quarkus/component/as2/it/As2Receiver.java      | 169 ++++++++
 .../camel/quarkus/component/as2/it/As2Sender.java  |  54 +++
 .../camel/quarkus/component/as2/it/As2Test.java    | 127 ++++++
 .../quarkus/component/as2/it/As2TestResource.java} |   7 +-
 integration-tests/avro/pom.xml                     |   2 +-
 integration-tests/aws/pom.xml                      |   2 +-
 integration-tests/aws2/pom.xml                     |   2 +-
 integration-tests/azure/pom.xml                    |   2 +-
 integration-tests/base64/pom.xml                   |   2 +-
 integration-tests/bean-validator/pom.xml           |   2 +-
 integration-tests/bean/pom.xml                     |   2 +-
 integration-tests/bindy/pom.xml                    |   2 +-
 integration-tests/box/pom.xml                      |   2 +-
 integration-tests/braintree/pom.xml                |   2 +-
 integration-tests/compression/pom.xml              |   2 +-
 integration-tests/consul/pom.xml                   |   2 +-
 integration-tests/controlbus/pom.xml               |   2 +-
 integration-tests/core/pom.xml                     |   6 +-
 .../apache/camel/quarkus/core/CoreResource.java    |  30 ++
 .../org/apache/camel/quarkus/core/CoreRoutes.java  |   2 +-
 .../camel/quarkus/core/CoreTemplateRoutes.java}    |  12 +-
 .../org/apache/camel/quarkus/core/CoreTest.java    |  15 +-
 integration-tests/couchdb/pom.xml                  |   2 +-
 integration-tests/csv/pom.xml                      |   2 +-
 integration-tests/dataformat/pom.xml               |   2 +-
 integration-tests/dataformats-json/pom.xml         |   2 +-
 integration-tests/debezium/pom.xml                 |   2 +-
 integration-tests/dozer/pom.xml                    |   2 +-
 integration-tests/elasticsearch-rest/pom.xml       |   2 +-
 integration-tests/exec/pom.xml                     |   2 +-
 integration-tests/fhir/pom.xml                     |   2 +-
 integration-tests/file/pom.xml                     |   2 +-
 integration-tests/flatpack/pom.xml                 |   2 +-
 integration-tests/ftp/pom.xml                      |   2 +-
 integration-tests/git/pom.xml                      |   2 +-
 integration-tests/github/pom.xml                   |   2 +-
 integration-tests/google/pom.xml                   |   2 +-
 integration-tests/graphql/pom.xml                  |   2 +-
 integration-tests/grok/pom.xml                     |   2 +-
 integration-tests/http/pom.xml                     |   2 +-
 integration-tests/hystrix/pom.xml                  |   2 +-
 integration-tests/infinispan/pom.xml               |   2 +-
 integration-tests/influxdb/pom.xml                 |   2 +-
 integration-tests/jaxb/pom.xml                     |   2 +-
 integration-tests/jdbc/pom.xml                     |   2 +-
 integration-tests/jira/pom.xml                     |   2 +-
 integration-tests/jolt/pom.xml                     |   2 +-
 integration-tests/jpa/pom.xml                      |   2 +-
 integration-tests/json-validator/pom.xml           |   2 +-
 integration-tests/jsonpath/pom.xml                 |   2 +-
 integration-tests/jta/pom.xml                      |   2 +-
 integration-tests/kafka/pom.xml                    |   2 +-
 integration-tests/kubernetes/pom.xml               |   2 +-
 integration-tests/kudu/pom.xml                     |   2 +-
 integration-tests/mail/pom.xml                     |   2 +-
 integration-tests/main-caffeine-lrucache/pom.xml   |   2 +-
 integration-tests/main-collector/pom.xml           |   2 +-
 integration-tests/main-command-mode/pom.xml        |   2 +-
 integration-tests/main-devmode/pom.xml             |   2 +-
 integration-tests/main-xml-io/pom.xml              |   2 +-
 integration-tests/main-xml-jaxb/pom.xml            |   2 +-
 integration-tests/main/pom.xml                     |   6 +-
 .../camel/quarkus/main/CoreMainResource.java       |  19 +
 .../apache/camel/quarkus/main/CoreMainTest.java    |  14 +
 integration-tests/master/pom.xml                   |   2 +-
 integration-tests/messaging/pom.xml                |   2 +-
 integration-tests/microprofile/pom.xml             |   2 +-
 integration-tests/mock/pom.xml                     |   2 +-
 integration-tests/mongodb/pom.xml                  |   2 +-
 integration-tests/mustache/pom.xml                 |   2 +-
 integration-tests/netty/pom.xml                    |   2 +-
 integration-tests/olingo4/pom.xml                  |   2 +-
 integration-tests/openapi-java/pom.xml             |   2 +-
 integration-tests/opentracing/pom.xml              |   2 +-
 integration-tests/pdf/pom.xml                      |   2 +-
 integration-tests/platform-http-engine/pom.xml     |   2 +-
 integration-tests/platform-http/pom.xml            |   2 +-
 integration-tests/pom.xml                          |   8 +-
 integration-tests/quartz/pom.xml                   |   2 +-
 integration-tests/qute/pom.xml                     |   2 +-
 integration-tests/rabbitmq/pom.xml                 |   2 +-
 integration-tests/reactive-streams/pom.xml         |   2 +-
 integration-tests/ref/pom.xml                      |   2 +-
 integration-tests/rest-binding-mode-xml/pom.xml    |   2 +-
 integration-tests/rest-openapi/pom.xml             |   2 +-
 integration-tests/rest/pom.xml                     |   2 +-
 integration-tests/salesforce/pom.xml               |   2 +-
 integration-tests/sap-netweaver/pom.xml            |   2 +-
 integration-tests/scheduler/pom.xml                |   2 +-
 integration-tests/seda/pom.xml                     |   2 +-
 integration-tests/send-dynamic-http/pom.xml        |   2 +-
 integration-tests/servicenow/pom.xml               |   2 +-
 integration-tests/servlet/pom.xml                  |   2 +-
 integration-tests/slack/pom.xml                    |   2 +-
 .../smallrye-reactive-messaging/pom.xml            |   2 +-
 integration-tests/soap/pom.xml                     |   2 +-
 integration-tests/sql/pom.xml                      |   2 +-
 integration-tests/stream/pom.xml                   |   2 +-
 integration-tests/tarfile/pom.xml                  |   2 +-
 integration-tests/telegram/pom.xml                 |   2 +-
 integration-tests/tika/pom.xml                     |   2 +-
 integration-tests/twitter/pom.xml                  |   2 +-
 integration-tests/validator/pom.xml                |   2 +-
 integration-tests/vertx/pom.xml                    |   2 +-
 integration-tests/websocket-jsr356/pom.xml         |   2 +-
 integration-tests/xml/pom.xml                      |   2 +-
 integration-tests/xstream/pom.xml                  |   2 +-
 pom.xml                                            |  36 +-
 poms/bom/pom.xml                                   |  85 +++-
 tooling/scripts/test-categories.yaml               |   2 +
 230 files changed, 3304 insertions(+), 889 deletions(-)
 copy docs/modules/ROOT/pages/reference/extensions/{master.adoc => arangodb.adoc} (63%)
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/as2.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/threadpoolfactory-vertx.adoc
 copy extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/{CamelMainRoutesDiscoveryTest.java => CamelMainLambdaRouteBuilderDiscoveryTest.java} (81%)
 copy extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/{CamelMainInjectTest.java => CamelMainRouteTemplateTest.java} (61%)
 copy {extensions/git => extensions-core/threadpoolfactory-vertx}/deployment/pom.xml (86%)
 copy extensions-core/{reactive-executor/deployment/src/main/java/org/apache/camel/quarkus/reactive/executor/deployment/BuildProcessor.java => threadpoolfactory-vertx/deployment/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/deployment/ThreadpoolfactoryVertxProcessor.java} (65%)
 copy {extensions/flatpack => extensions-core/threadpoolfactory-vertx}/pom.xml (91%)
 copy {extensions/git => extensions-core/threadpoolfactory-vertx}/runtime/pom.xml (87%)
 copy extensions-core/{reactive-executor/runtime/src/main/java/org/apache/camel/quarkus/reactive/executor/ReactiveExecutorRecorder.java => threadpoolfactory-vertx/runtime/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/ThreadPoolFactoryVertxRecorder.java} (68%)
 copy extensions-core/{reactive-executor => threadpoolfactory-vertx}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (88%)
 copy {extensions/avro => extensions-support/bouncycastle}/deployment/pom.xml (80%)
 copy extensions/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java => extensions-support/bouncycastle/deployment/src/main/java/org/apache/camel/quarkus/support/bouncycastle/deployment/BouncycastleSupportProcessor.java (57%)
 copy {extensions/microprofile-metrics => extensions-support/bouncycastle}/pom.xml (92%)
 rename extensions-support/{policy => bouncycastle}/runtime/pom.xml (84%)
 copy extensions-support/{debezium => bouncycastle}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (90%)
 delete mode 100644 extensions-support/policy/deployment/pom.xml
 delete mode 100644 extensions-support/policy/deployment/src/main/java/org/apache/camel/quarkus/component/support/policy/deployment/PolicyProcessor.java
 delete mode 100644 extensions-support/policy/pom.xml
 delete mode 100644 extensions-support/policy/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 copy {extensions-jvm/apns => extensions/arangodb}/deployment/pom.xml (90%)
 copy extensions/{base64/deployment/src/main/java/org/apache/camel/quarkus/component/base64/deployment/Base64Processor.java => arangodb/deployment/src/main/java/org/apache/camel/quarkus/component/arangodb/deployment/ArangodbProcessor.java} (87%)
 copy extensions/{flatpack => arangodb}/pom.xml (93%)
 copy {extensions-jvm/atomix => extensions/arangodb}/runtime/pom.xml (91%)
 copy {extensions-core/reactive-executor => extensions/arangodb}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (89%)
 copy {extensions-jvm/fop => extensions/as2}/deployment/pom.xml (88%)
 create mode 100644 extensions/as2/deployment/src/main/java/org/apache/camel/quarkus/component/as2/deployment/As2Processor.java
 copy extensions/{git => as2}/pom.xml (94%)
 copy {extensions-jvm/bonita => extensions/as2}/runtime/pom.xml (82%)
 copy extensions/{debezium-sqlserver => as2}/runtime/src/main/doc/usage.adoc (64%)
 copy extensions/{telegram/runtime/src/main/java/org/apache/camel/quarkus/component/telegram/TelegramRecorder.java => as2/runtime/src/main/java/org/apache/camel/quarkus/component/as2/As2Recorder.java} (68%)
 copy extensions/{attachments => as2}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (89%)
 create mode 100644 extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/JBossNettyLoggerFactory.java
 create mode 100644 extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/EmptyByteBufStub.java
 create mode 100644 extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/NettySubstitutions.java
 create mode 100644 extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/ZLibSubstitutions.java
 copy integration-tests/{git => arangodb}/pom.xml (86%)
 create mode 100644 integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java
 copy integration-tests/{activemq/src/test/java/org/apache/camel/quarkus/component/activemq/it/ActiveMQIT.java => arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java} (90%)
 create mode 100644 integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
 copy integration-tests/{mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTestResource.java => arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java} (69%)
 copy integration-tests/{flatpack => as2}/pom.xml (81%)
 create mode 100644 integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2CertificateHelper.java
 create mode 100644 integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2Resource.java
 create mode 100644 integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ClientResult.java
 create mode 100644 integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/Request.java
 copy integration-tests/{master/src/main/java/org/apache/camel/quarkus/component/master/it/MasterResource.java => as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ServerResult.java} (66%)
 copy integration-tests/{mail => as2}/src/main/resources/application.properties (98%)
 create mode 100644 integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Helper.java
 copy integration-tests/{ftp/src/test/java/org/apache/camel/quarkus/component/ftp/it/FtpIT.java => as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java} (91%)
 create mode 100644 integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Receiver.java
 create mode 100644 integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Sender.java
 create mode 100644 integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Test.java
 copy integration-tests/{hystrix/src/test/java/org/apache/camel/quarkus/component/hystrix/it/HystrixTestResource.java => as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2TestResource.java} (83%)
 copy integration-tests/{bean-validator/src/main/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorRoute.java => core/src/main/java/org/apache/camel/quarkus/core/CoreTemplateRoutes.java} (76%)


[camel-quarkus] 06/13: Remove remaining camel UriParams reflective class registrations

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

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

commit 77324cd29a954d9339135fdf9d1e50a0e9e40c1a
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Aug 7 09:17:14 2020 +0100

    Remove remaining camel UriParams reflective class registrations
    
    Fixes #1108
---
 catalog/pom.xml                                    |   1 -
 examples/file-split-log-xml/pom.xml                |   2 +-
 examples/health/pom.xml                            |   2 +-
 examples/http-log/pom.xml                          |   2 +-
 examples/observability/pom.xml                     |   2 +-
 examples/rest-json/pom.xml                         |   2 +-
 examples/timer-log-cdi/pom.xml                     |   2 +-
 examples/timer-log-kotlin/pom.xml                  |   2 +-
 examples/timer-log-main/pom.xml                    |   2 +-
 examples/timer-log-spring/pom.xml                  |   2 +-
 examples/timer-log-xml/pom.xml                     |   2 +-
 examples/timer-log/pom.xml                         |   2 +-
 extensions-jvm/asterisk/integration-test/pom.xml   |   2 +-
 extensions-jvm/avro-rpc/integration-test/pom.xml   |   2 +-
 .../cassandraql/integration-test/pom.xml           |   2 +-
 extensions-jvm/couchbase/integration-test/pom.xml  |   2 +-
 .../debezium-mongodb/integration-test/pom.xml      |   2 +-
 .../google-bigquery/integration-test/pom.xml       |   2 +-
 .../google-pubsub/integration-test/pom.xml         |   2 +-
 extensions-jvm/groovy/integration-test/pom.xml     |   2 +-
 extensions-jvm/grpc/integration-test/pom.xml       |   2 +-
 extensions-jvm/nitrite/integration-test/pom.xml    |   2 +-
 extensions-jvm/ognl/integration-test/pom.xml       |   2 +-
 extensions-jvm/openstack/integration-test/pom.xml  |   2 +-
 extensions-jvm/protobuf/integration-test/pom.xml   |   2 +-
 extensions-jvm/pubnub/integration-test/pom.xml     |   2 +-
 extensions-support/policy/deployment/pom.xml       |  61 ------------
 .../support/policy/deployment/PolicyProcessor.java | 103 ---------------------
 extensions-support/policy/pom.xml                  |  37 --------
 extensions-support/policy/runtime/pom.xml          |  76 ---------------
 .../main/resources/META-INF/quarkus-extension.yaml |  27 ------
 extensions-support/pom.xml                         |   1 -
 extensions/aws2-ses/integration-test/pom.xml       |   2 +-
 .../component/box/deployment/BoxProcessor.java     |  46 ---------
 .../braintree/deployment/BraintreeProcessor.java   |  26 +-----
 .../component/cron/deployment/CronProcessor.java   |  13 ---
 .../component/fhir/deployment/FhirProcessor.java   |  33 -------
 .../deployment/GoogleCalendarProcessor.java        |  30 ------
 .../drive/deployment/GoogleDriveProcessor.java     |  29 ------
 .../mail/deployment/GoogleMailProcessor.java       |  29 ------
 .../sheets/deployment/GoogleSheetsProcessor.java   |  29 ------
 .../component/log/deployment/LogProcessor.java     |  10 --
 .../olingo4/deployment/Olingo4Processor.java       |   9 --
 integration-tests/activemq/pom.xml                 |   2 +-
 integration-tests/amqp/pom.xml                     |   2 +-
 integration-tests/arangodb/pom.xml                 |   2 +-
 integration-tests/as2/pom.xml                      |   2 +-
 integration-tests/avro/pom.xml                     |   2 +-
 integration-tests/aws/pom.xml                      |   2 +-
 integration-tests/aws2/pom.xml                     |   2 +-
 integration-tests/azure/pom.xml                    |   2 +-
 integration-tests/base64/pom.xml                   |   2 +-
 integration-tests/bean-validator/pom.xml           |   2 +-
 integration-tests/bean/pom.xml                     |   2 +-
 integration-tests/bindy/pom.xml                    |   2 +-
 integration-tests/box/pom.xml                      |   2 +-
 integration-tests/braintree/pom.xml                |   2 +-
 integration-tests/compression/pom.xml              |   2 +-
 integration-tests/consul/pom.xml                   |   2 +-
 integration-tests/controlbus/pom.xml               |   2 +-
 integration-tests/core/pom.xml                     |   2 +-
 integration-tests/couchdb/pom.xml                  |   2 +-
 integration-tests/csv/pom.xml                      |   2 +-
 integration-tests/dataformat/pom.xml               |   2 +-
 integration-tests/dataformats-json/pom.xml         |   2 +-
 integration-tests/debezium/pom.xml                 |   2 +-
 integration-tests/dozer/pom.xml                    |   2 +-
 integration-tests/elasticsearch-rest/pom.xml       |   2 +-
 integration-tests/exec/pom.xml                     |   2 +-
 integration-tests/fhir/pom.xml                     |   2 +-
 integration-tests/file/pom.xml                     |   2 +-
 integration-tests/flatpack/pom.xml                 |   2 +-
 integration-tests/ftp/pom.xml                      |   2 +-
 integration-tests/git/pom.xml                      |   2 +-
 integration-tests/github/pom.xml                   |   2 +-
 integration-tests/google/pom.xml                   |   2 +-
 integration-tests/graphql/pom.xml                  |   2 +-
 integration-tests/grok/pom.xml                     |   2 +-
 integration-tests/http/pom.xml                     |   2 +-
 integration-tests/hystrix/pom.xml                  |   2 +-
 integration-tests/infinispan/pom.xml               |   2 +-
 integration-tests/influxdb/pom.xml                 |   2 +-
 integration-tests/jaxb/pom.xml                     |   2 +-
 integration-tests/jdbc/pom.xml                     |   2 +-
 integration-tests/jira/pom.xml                     |   2 +-
 integration-tests/jolt/pom.xml                     |   2 +-
 integration-tests/jpa/pom.xml                      |   2 +-
 integration-tests/json-validator/pom.xml           |   2 +-
 integration-tests/jsonpath/pom.xml                 |   2 +-
 integration-tests/jta/pom.xml                      |   2 +-
 integration-tests/kafka/pom.xml                    |   2 +-
 integration-tests/kubernetes/pom.xml               |   2 +-
 integration-tests/kudu/pom.xml                     |   2 +-
 integration-tests/mail/pom.xml                     |   2 +-
 integration-tests/main-caffeine-lrucache/pom.xml   |   2 +-
 integration-tests/main-collector/pom.xml           |   2 +-
 integration-tests/main-command-mode/pom.xml        |   2 +-
 integration-tests/main-devmode/pom.xml             |   2 +-
 integration-tests/main-xml-io/pom.xml              |   2 +-
 integration-tests/main-xml-jaxb/pom.xml            |   2 +-
 integration-tests/main/pom.xml                     |   2 +-
 integration-tests/master/pom.xml                   |   2 +-
 integration-tests/messaging/pom.xml                |   2 +-
 integration-tests/microprofile/pom.xml             |   2 +-
 integration-tests/mock/pom.xml                     |   2 +-
 integration-tests/mongodb/pom.xml                  |   2 +-
 integration-tests/mustache/pom.xml                 |   2 +-
 integration-tests/netty/pom.xml                    |   2 +-
 integration-tests/olingo4/pom.xml                  |   2 +-
 integration-tests/openapi-java/pom.xml             |   2 +-
 integration-tests/opentracing/pom.xml              |   2 +-
 integration-tests/pdf/pom.xml                      |   2 +-
 integration-tests/platform-http-engine/pom.xml     |   2 +-
 integration-tests/platform-http/pom.xml            |   2 +-
 integration-tests/pom.xml                          |   6 --
 integration-tests/quartz/pom.xml                   |   2 +-
 integration-tests/qute/pom.xml                     |   2 +-
 integration-tests/rabbitmq/pom.xml                 |   2 +-
 integration-tests/reactive-streams/pom.xml         |   2 +-
 integration-tests/ref/pom.xml                      |   2 +-
 integration-tests/rest-binding-mode-xml/pom.xml    |   2 +-
 integration-tests/rest-openapi/pom.xml             |   2 +-
 integration-tests/rest/pom.xml                     |   2 +-
 integration-tests/salesforce/pom.xml               |   2 +-
 integration-tests/sap-netweaver/pom.xml            |   2 +-
 integration-tests/scheduler/pom.xml                |   2 +-
 integration-tests/seda/pom.xml                     |   2 +-
 integration-tests/send-dynamic-http/pom.xml        |   2 +-
 integration-tests/servicenow/pom.xml               |   2 +-
 integration-tests/servlet/pom.xml                  |   2 +-
 integration-tests/slack/pom.xml                    |   2 +-
 .../smallrye-reactive-messaging/pom.xml            |   2 +-
 integration-tests/soap/pom.xml                     |   2 +-
 integration-tests/sql/pom.xml                      |   2 +-
 integration-tests/stream/pom.xml                   |   2 +-
 integration-tests/tarfile/pom.xml                  |   2 +-
 integration-tests/telegram/pom.xml                 |   2 +-
 integration-tests/tika/pom.xml                     |   2 +-
 integration-tests/twitter/pom.xml                  |   2 +-
 integration-tests/validator/pom.xml                |   2 +-
 integration-tests/vertx/pom.xml                    |   2 +-
 integration-tests/websocket-jsr356/pom.xml         |   2 +-
 integration-tests/xml/pom.xml                      |   2 +-
 integration-tests/xstream/pom.xml                  |   2 +-
 poms/bom/pom.xml                                   |  10 --
 145 files changed, 127 insertions(+), 701 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 5aa78ea..ce96aaf 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -258,7 +258,6 @@
             camel-quarkus-support-jetty
             camel-quarkus-support-mail
             camel-quarkus-support-mongodb
-            camel-quarkus-support-policy
             camel-quarkus-support-retrofit
             camel-quarkus-support-spring
             camel-quarkus-support-webhook
diff --git a/examples/file-split-log-xml/pom.xml b/examples/file-split-log-xml/pom.xml
index 32dfca8..1781bb2 100644
--- a/examples/file-split-log-xml/pom.xml
+++ b/examples/file-split-log-xml/pom.xml
@@ -42,7 +42,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/health/pom.xml b/examples/health/pom.xml
index bae3d08..ac5d704 100644
--- a/examples/health/pom.xml
+++ b/examples/health/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-netty-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-netty-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/http-log/pom.xml b/examples/http-log/pom.xml
index d5485a1..f43b620 100644
--- a/examples/http-log/pom.xml
+++ b/examples/http-log/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-platform-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/observability/pom.xml b/examples/observability/pom.xml
index 366bceb..5c37571 100644
--- a/examples/observability/pom.xml
+++ b/examples/observability/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-opentracing-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-opentracing-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/rest-json/pom.xml b/examples/rest-json/pom.xml
index f971f15..bf750ff 100644
--- a/examples/rest-json/pom.xml
+++ b/examples/rest-json/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jackson-deployment,camel-quarkus-main-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jackson-deployment,camel-quarkus-main-deployment,camel-quarkus-platform-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log-cdi/pom.xml b/examples/timer-log-cdi/pom.xml
index e5e9ff4..23d79c5 100644
--- a/examples/timer-log-cdi/pom.xml
+++ b/examples/timer-log-cdi/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log-kotlin/pom.xml b/examples/timer-log-kotlin/pom.xml
index c846bc7..0f8ff59 100644
--- a/examples/timer-log-kotlin/pom.xml
+++ b/examples/timer-log-kotlin/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-kotlin-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-kotlin-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log-main/pom.xml b/examples/timer-log-main/pom.xml
index 70d4687..08d7a19 100644
--- a/examples/timer-log-main/pom.xml
+++ b/examples/timer-log-main/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log-spring/pom.xml b/examples/timer-log-spring/pom.xml
index 70f3b77..d4b5082 100644
--- a/examples/timer-log-spring/pom.xml
+++ b/examples/timer-log-spring/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log-xml/pom.xml b/examples/timer-log-xml/pom.xml
index 06761fc..879ffcd 100644
--- a/examples/timer-log-xml/pom.xml
+++ b/examples/timer-log-xml/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/examples/timer-log/pom.xml b/examples/timer-log/pom.xml
index c4def8d..9160003 100644
--- a/examples/timer-log/pom.xml
+++ b/examples/timer-log/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/asterisk/integration-test/pom.xml b/extensions-jvm/asterisk/integration-test/pom.xml
index 2fc3f14..32d693c 100644
--- a/extensions-jvm/asterisk/integration-test/pom.xml
+++ b/extensions-jvm/asterisk/integration-test/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-asterisk-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-asterisk-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/extensions-jvm/avro-rpc/integration-test/pom.xml b/extensions-jvm/avro-rpc/integration-test/pom.xml
index ce62052..7cc6e46 100644
--- a/extensions-jvm/avro-rpc/integration-test/pom.xml
+++ b/extensions-jvm/avro-rpc/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-avro-rpc-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-avro-rpc-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/cassandraql/integration-test/pom.xml b/extensions-jvm/cassandraql/integration-test/pom.xml
index e474676..d1a0573 100644
--- a/extensions-jvm/cassandraql/integration-test/pom.xml
+++ b/extensions-jvm/cassandraql/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-cassandraql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-cassandraql-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/couchbase/integration-test/pom.xml b/extensions-jvm/couchbase/integration-test/pom.xml
index 7e85621..10588a8 100644
--- a/extensions-jvm/couchbase/integration-test/pom.xml
+++ b/extensions-jvm/couchbase/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-couchbase-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-couchbase-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/debezium-mongodb/integration-test/pom.xml b/extensions-jvm/debezium-mongodb/integration-test/pom.xml
index 3d83e58..5fac6dd 100644
--- a/extensions-jvm/debezium-mongodb/integration-test/pom.xml
+++ b/extensions-jvm/debezium-mongodb/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-debezium-mongodb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-debezium-mongodb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/google-bigquery/integration-test/pom.xml b/extensions-jvm/google-bigquery/integration-test/pom.xml
index 2c21af5..095a001 100644
--- a/extensions-jvm/google-bigquery/integration-test/pom.xml
+++ b/extensions-jvm/google-bigquery/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-google-bigquery-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-google-bigquery-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/google-pubsub/integration-test/pom.xml b/extensions-jvm/google-pubsub/integration-test/pom.xml
index 14d91b6..0d012d2 100644
--- a/extensions-jvm/google-pubsub/integration-test/pom.xml
+++ b/extensions-jvm/google-pubsub/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-google-pubsub-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-google-pubsub-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/groovy/integration-test/pom.xml b/extensions-jvm/groovy/integration-test/pom.xml
index 5a0f354..e560ec2 100644
--- a/extensions-jvm/groovy/integration-test/pom.xml
+++ b/extensions-jvm/groovy/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-groovy-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-groovy-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/grpc/integration-test/pom.xml b/extensions-jvm/grpc/integration-test/pom.xml
index 7c4c88b..0b6dd94 100644
--- a/extensions-jvm/grpc/integration-test/pom.xml
+++ b/extensions-jvm/grpc/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-grpc-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-grpc-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/nitrite/integration-test/pom.xml b/extensions-jvm/nitrite/integration-test/pom.xml
index 8dc4c99..6a0a3bf 100644
--- a/extensions-jvm/nitrite/integration-test/pom.xml
+++ b/extensions-jvm/nitrite/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-nitrite-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-nitrite-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/ognl/integration-test/pom.xml b/extensions-jvm/ognl/integration-test/pom.xml
index 22d08a4..46fac63 100644
--- a/extensions-jvm/ognl/integration-test/pom.xml
+++ b/extensions-jvm/ognl/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-ognl-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-ognl-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/openstack/integration-test/pom.xml b/extensions-jvm/openstack/integration-test/pom.xml
index 88529be..4d54ff6 100644
--- a/extensions-jvm/openstack/integration-test/pom.xml
+++ b/extensions-jvm/openstack/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-openstack-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-openstack-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/protobuf/integration-test/pom.xml b/extensions-jvm/protobuf/integration-test/pom.xml
index 8b3ee51..509a2a6 100644
--- a/extensions-jvm/protobuf/integration-test/pom.xml
+++ b/extensions-jvm/protobuf/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-protobuf-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-protobuf-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-jvm/pubnub/integration-test/pom.xml b/extensions-jvm/pubnub/integration-test/pom.xml
index 0ee9c16..babac9a 100644
--- a/extensions-jvm/pubnub/integration-test/pom.xml
+++ b/extensions-jvm/pubnub/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-pubnub-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-pubnub-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions-support/policy/deployment/pom.xml b/extensions-support/policy/deployment/pom.xml
deleted file mode 100644
index 30265aa..0000000
--- a/extensions-support/policy/deployment/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?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-support-policy-parent</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>camel-quarkus-support-policy-deployment</artifactId>
-    <name>Camel Quarkus :: Support :: Policy :: Deployment</name>
-
-    <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-support-policy</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-support/policy/deployment/src/main/java/org/apache/camel/quarkus/component/support/policy/deployment/PolicyProcessor.java b/extensions-support/policy/deployment/src/main/java/org/apache/camel/quarkus/component/support/policy/deployment/PolicyProcessor.java
deleted file mode 100644
index 56bcd6e..0000000
--- a/extensions-support/policy/deployment/src/main/java/org/apache/camel/quarkus/component/support/policy/deployment/PolicyProcessor.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.support.policy.deployment;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import io.quarkus.deployment.annotations.BuildProducer;
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationTarget.Kind;
-import org.jboss.jandex.DotName;
-
-class PolicyProcessor {
-
-    private static final String FEATURE = "camel-policy";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-
-    @BuildStep
-    UnbannedReflectiveBuildItem unbanReflectives() {
-        /**
-         * A list of classes annotated with <code>@UriParams</code> which we accept to be registered for reflection
-         * mostly because there are errors when they are removed. TODO: solve the underlying problems and remove as
-         * many entries as possible from the list.
-         */
-        return new UnbannedReflectiveBuildItem(
-                "org.apache.camel.support.processor.DefaultExchangeFormatter",
-                "org.apache.camel.component.fhir.FhirUpdateEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirOperationEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirConfiguration",
-                "org.apache.camel.component.fhir.FhirLoadPageEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirSearchEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirTransactionEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirCreateEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirValidateEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirReadEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirCapabilitiesEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirHistoryEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirMetaEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirPatchEndpointConfiguration",
-                "org.apache.camel.component.fhir.FhirDeleteEndpointConfiguration");
-    }
-
-    /* Make the build fail as long as there are banned classes registered for reflection */
-    @BuildStep
-    void bannedReflectiveClasses(
-            CombinedIndexBuildItem combinedIndex,
-            List<ReflectiveClassBuildItem> reflectiveClasses,
-            List<UnbannedReflectiveBuildItem> unbannedReflectives,
-            BuildProducer<GeneratedResourceBuildItem> dummy // to force the execution of this method
-    ) {
-        final DotName uriParamsDotName = DotName.createSimple("org.apache.camel.spi.UriParams");
-
-        final Set<String> bannedClassNames = combinedIndex.getIndex()
-                .getAnnotations(uriParamsDotName)
-                .stream()
-                .filter(ai -> ai.target().kind() == Kind.CLASS)
-                .map(ai -> ai.target().asClass().name().toString())
-                .collect(Collectors.toSet());
-
-        final Set<String> unbannedClassNames = unbannedReflectives.stream()
-                .map(UnbannedReflectiveBuildItem::getClassNames)
-                .flatMap(Collection::stream)
-                .collect(Collectors.toSet());
-
-        Set<String> violations = reflectiveClasses.stream()
-                .map(ReflectiveClassBuildItem::getClassNames)
-                .flatMap(Collection::stream)
-                .filter(cl -> !unbannedClassNames.contains(cl))
-                .filter(bannedClassNames::contains)
-                .collect(Collectors.toSet());
-
-        if (!violations.isEmpty()) {
-            throw new IllegalStateException(
-                    "The following classes should either be whitelisted via an UnbannedReflectiveBuildItem or they should not be registered for reflection via ReflectiveClassBuildItem: "
-                            + violations);
-        }
-    }
-}
diff --git a/extensions-support/policy/pom.xml b/extensions-support/policy/pom.xml
deleted file mode 100644
index d794341..0000000
--- a/extensions-support/policy/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?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-support-policy-parent</artifactId>
-    <name>Camel Quarkus :: Support :: Policy</name>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>deployment</module>
-        <module>runtime</module>
-    </modules>
-</project>
diff --git a/extensions-support/policy/runtime/pom.xml b/extensions-support/policy/runtime/pom.xml
deleted file mode 100644
index e7520f1..0000000
--- a/extensions-support/policy/runtime/pom.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?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-support-policy-parent</artifactId>
-        <version>1.1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>camel-quarkus-support-policy</artifactId>
-    <name>Camel Quarkus :: Support :: Policy :: Runtime</name>
-
-    <properties>
-        <firstVersion>1.0.0</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>
-    </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-support/policy/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/policy/runtime/src/main/resources/META-INF/quarkus-extension.yaml
deleted file mode 100644
index 09d89fa..0000000
--- a/extensions-support/policy/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# 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: "Camel Quarkus Support Policy"
-description: "Camel Quarkus Support Policy"
-metadata:
-  unlisted: true
-  keywords:
-  - "camel"
-  guide: "https://quarkus.io/guides/camel"
-  categories:
-  - "integration"
diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml
index 8fd3916..f3fa837 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/pom.xml
@@ -47,7 +47,6 @@
         <module>jetty</module>
         <module>mail</module>
         <module>mongodb</module>
-        <module>policy</module>
         <module>retrofit</module>
         <module>spring</module>
         <module>webhook</module>
diff --git a/extensions/aws2-ses/integration-test/pom.xml b/extensions/aws2-ses/integration-test/pom.xml
index 5f3320d..7c4eebb 100644
--- a/extensions/aws2-ses/integration-test/pom.xml
+++ b/extensions/aws2-ses/integration-test/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the 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>
+        <mvnd.builder.rule>camel-quarkus-aws2-ses-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/extensions/box/deployment/src/main/java/org/apache/camel/quarkus/component/box/deployment/BoxProcessor.java b/extensions/box/deployment/src/main/java/org/apache/camel/quarkus/component/box/deployment/BoxProcessor.java
index dc7c3b1..eabdfb0 100644
--- a/extensions/box/deployment/src/main/java/org/apache/camel/quarkus/component/box/deployment/BoxProcessor.java
+++ b/extensions/box/deployment/src/main/java/org/apache/camel/quarkus/component/box/deployment/BoxProcessor.java
@@ -23,20 +23,7 @@ import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
-import org.apache.camel.component.box.BoxCollaborationsManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxCommentsManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxConfiguration;
-import org.apache.camel.component.box.BoxEventLogsManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxEventsManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxFilesManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxFoldersManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxGroupsManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxSearchManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxTasksManagerEndpointConfiguration;
-import org.apache.camel.component.box.BoxUsersManagerEndpointConfiguration;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
 
 class BoxProcessor {
 
@@ -63,37 +50,4 @@ class BoxProcessor {
         runtimeClasses.produce(new RuntimeInitializedClassBuildItem(BoxDeveloperEditionAPIConnection.class.getCanonicalName()));
         runtimeClasses.produce(new RuntimeInitializedClassBuildItem(BoxAPIRequest.class.getCanonicalName()));
     }
-
-    @BuildStep()
-    UnbannedReflectiveBuildItem boxEndpointConfigurations() {
-        return new UnbannedReflectiveBuildItem(
-                BoxCollaborationsManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxCommentsManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxEventLogsManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxEventsManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxFilesManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxFoldersManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxGroupsManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxSearchManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxTasksManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxUsersManagerEndpointConfiguration.class.getCanonicalName(),
-                BoxConfiguration.class.getCanonicalName());
-    }
-
-    @BuildStep()
-    ReflectiveClassBuildItem boxEndpointConfiguration() {
-        return new ReflectiveClassBuildItem(true, true,
-                BoxCollaborationsManagerEndpointConfiguration.class,
-                BoxCommentsManagerEndpointConfiguration.class,
-                BoxEventLogsManagerEndpointConfiguration.class,
-                BoxEventsManagerEndpointConfiguration.class,
-                BoxFilesManagerEndpointConfiguration.class,
-                BoxFoldersManagerEndpointConfiguration.class,
-                BoxGroupsManagerEndpointConfiguration.class,
-                BoxSearchManagerEndpointConfiguration.class,
-                BoxTasksManagerEndpointConfiguration.class,
-                BoxUsersManagerEndpointConfiguration.class,
-                BoxConfiguration.class);
-    }
-
 }
diff --git a/extensions/braintree/deployment/src/main/java/org/apache/camel/quarkus/component/braintree/deployment/BraintreeProcessor.java b/extensions/braintree/deployment/src/main/java/org/apache/camel/quarkus/component/braintree/deployment/BraintreeProcessor.java
index bf4573f..c38e85c 100644
--- a/extensions/braintree/deployment/src/main/java/org/apache/camel/quarkus/component/braintree/deployment/BraintreeProcessor.java
+++ b/extensions/braintree/deployment/src/main/java/org/apache/camel/quarkus/component/braintree/deployment/BraintreeProcessor.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.quarkus.component.braintree.deployment;
 
-import java.util.Collection;
-import java.util.stream.Collectors;
-
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.annotations.ExecutionTime;
@@ -30,11 +27,6 @@ import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import org.apache.camel.component.braintree.BraintreeComponent;
 import org.apache.camel.quarkus.component.braintree.graal.BraintreeRecorder;
 import org.apache.camel.quarkus.core.deployment.spi.CamelBeanBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationTarget;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexView;
 
 class BraintreeProcessor {
 
@@ -46,23 +38,7 @@ class BraintreeProcessor {
     }
 
     @BuildStep
-    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
-        IndexView index = combinedIndex.getIndex();
-        Collection<AnnotationInstance> uriParams = index
-                .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
-
-        String[] braintreeConfigClasses = uriParams.stream()
-                .map(annotation -> annotation.target())
-                .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
-                .map(annotationTarget -> annotationTarget.asClass().name().toString())
-                .filter(className -> className.startsWith("org.apache.camel.component.braintree"))
-                .collect(Collectors.toList())
-                .toArray(new String[0]);
-
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, braintreeConfigClasses));
-        unbannedClass.produce(new UnbannedReflectiveBuildItem(braintreeConfigClasses));
-
+    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass, CombinedIndexBuildItem combinedIndex) {
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false,
                 "com.braintreegateway.Address",
                 "com.braintreegateway.BraintreeGateway",
diff --git a/extensions/cron/deployment/src/main/java/org/apache/camel/quarkus/component/cron/deployment/CronProcessor.java b/extensions/cron/deployment/src/main/java/org/apache/camel/quarkus/component/cron/deployment/CronProcessor.java
index 63de0b9..9a3c2eb 100644
--- a/extensions/cron/deployment/src/main/java/org/apache/camel/quarkus/component/cron/deployment/CronProcessor.java
+++ b/extensions/cron/deployment/src/main/java/org/apache/camel/quarkus/component/cron/deployment/CronProcessor.java
@@ -18,11 +18,8 @@ package org.apache.camel.quarkus.component.cron.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.component.cron.api.CamelCronConfiguration;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServiceDestination;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServicePatternBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
 
 class CronProcessor {
 
@@ -34,16 +31,6 @@ class CronProcessor {
     }
 
     @BuildStep
-    UnbannedReflectiveBuildItem whitelistConfigurationClasses() {
-        return new UnbannedReflectiveBuildItem(CamelCronConfiguration.class.getName());
-    }
-
-    @BuildStep
-    ReflectiveClassBuildItem registerForReflection() {
-        return new ReflectiveClassBuildItem(true, false, CamelCronConfiguration.class);
-    }
-
-    @BuildStep
     CamelServicePatternBuildItem camelCronServicePattern() {
         return new CamelServicePatternBuildItem(CamelServiceDestination.DISCOVERY, true,
                 "META-INF/services/org/apache/camel/cron/*");
diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
index 70b976d..ab2f536 100644
--- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
+++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java
@@ -27,20 +27,6 @@ import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.component.fhir.FhirCapabilitiesEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirConfiguration;
-import org.apache.camel.component.fhir.FhirCreateEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirDeleteEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirHistoryEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirLoadPageEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirMetaEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirOperationEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirPatchEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirReadEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirSearchEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirTransactionEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirUpdateEndpointConfiguration;
-import org.apache.camel.component.fhir.FhirValidateEndpointConfiguration;
 import org.apache.camel.quarkus.component.fhir.FhirContextProducers;
 
 final class FhirProcessor {
@@ -57,25 +43,6 @@ final class FhirProcessor {
     }
 
     @BuildStep()
-    ReflectiveClassBuildItem fhirEndpointConfiguration() {
-        return new ReflectiveClassBuildItem(true, true,
-                FhirCreateEndpointConfiguration.class,
-                FhirCapabilitiesEndpointConfiguration.class,
-                FhirDeleteEndpointConfiguration.class,
-                FhirHistoryEndpointConfiguration.class,
-                FhirLoadPageEndpointConfiguration.class,
-                FhirMetaEndpointConfiguration.class,
-                FhirOperationEndpointConfiguration.class,
-                FhirPatchEndpointConfiguration.class,
-                FhirReadEndpointConfiguration.class,
-                FhirSearchEndpointConfiguration.class,
-                FhirTransactionEndpointConfiguration.class,
-                FhirUpdateEndpointConfiguration.class,
-                FhirValidateEndpointConfiguration.class,
-                FhirConfiguration.class);
-    }
-
-    @BuildStep()
     NativeImageResourceBundleBuildItem hapiMessages() {
         return new NativeImageResourceBundleBuildItem("ca.uhn.fhir.i18n.hapi-messages");
     }
diff --git a/extensions/google-calendar/deployment/src/main/java/org/apache/camel/quarkus/component/google/calendar/deployment/GoogleCalendarProcessor.java b/extensions/google-calendar/deployment/src/main/java/org/apache/camel/quarkus/component/google/calendar/deployment/GoogleCalendarProcessor.java
index 13bc4ef..68e82f8 100644
--- a/extensions/google-calendar/deployment/src/main/java/org/apache/camel/quarkus/component/google/calendar/deployment/GoogleCalendarProcessor.java
+++ b/extensions/google-calendar/deployment/src/main/java/org/apache/camel/quarkus/component/google/calendar/deployment/GoogleCalendarProcessor.java
@@ -16,19 +16,10 @@
  */
 package org.apache.camel.quarkus.component.google.calendar.deployment;
 
-import java.util.Collection;
-
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
-import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationTarget;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexView;
 
 class GoogleCalendarProcessor {
 
@@ -43,25 +34,4 @@ class GoogleCalendarProcessor {
     void applicationArchiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
         applicationArchiveMarker.produce(new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/services/calendar"));
     }
-
-    @BuildStep
-    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
-        IndexView index = combinedIndex.getIndex();
-
-        // Google calendar component configuration class reflection
-        Collection<AnnotationInstance> uriParams = index
-                .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
-
-        String[] googleDriveConfigClasses = uriParams.stream()
-                .map(annotation -> annotation.target())
-                .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
-                .map(annotationTarget -> annotationTarget.asClass().name().toString())
-                .filter(className -> className.startsWith("org.apache.camel.component.google.calendar"))
-                .toArray(String[]::new);
-
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, googleDriveConfigClasses));
-        unbannedClass.produce(new UnbannedReflectiveBuildItem(googleDriveConfigClasses));
-    }
-
 }
diff --git a/extensions/google-drive/deployment/src/main/java/org/apache/camel/quarkus/component/google/drive/deployment/GoogleDriveProcessor.java b/extensions/google-drive/deployment/src/main/java/org/apache/camel/quarkus/component/google/drive/deployment/GoogleDriveProcessor.java
index a93542c..34a41ad 100644
--- a/extensions/google-drive/deployment/src/main/java/org/apache/camel/quarkus/component/google/drive/deployment/GoogleDriveProcessor.java
+++ b/extensions/google-drive/deployment/src/main/java/org/apache/camel/quarkus/component/google/drive/deployment/GoogleDriveProcessor.java
@@ -16,19 +16,10 @@
  */
 package org.apache.camel.quarkus.component.google.drive.deployment;
 
-import java.util.Collection;
-
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
-import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationTarget;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexView;
 
 class GoogleDriveProcessor {
 
@@ -43,24 +34,4 @@ class GoogleDriveProcessor {
     void applicationArchiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
         applicationArchiveMarker.produce(new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/services/drive"));
     }
-
-    @BuildStep
-    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
-        IndexView index = combinedIndex.getIndex();
-
-        // Google drive component configuration class reflection
-        Collection<AnnotationInstance> uriParams = index
-                .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
-
-        String[] googleDriveConfigClasses = uriParams.stream()
-                .map(annotation -> annotation.target())
-                .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
-                .map(annotationTarget -> annotationTarget.asClass().name().toString())
-                .filter(className -> className.startsWith("org.apache.camel.component.google.drive"))
-                .toArray(String[]::new);
-
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, googleDriveConfigClasses));
-        unbannedClass.produce(new UnbannedReflectiveBuildItem(googleDriveConfigClasses));
-    }
 }
diff --git a/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java b/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java
index 3ed4562..702ea79 100644
--- a/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java
+++ b/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java
@@ -16,19 +16,10 @@
  */
 package org.apache.camel.quarkus.component.google.mail.deployment;
 
-import java.util.Collection;
-
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
-import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationTarget;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexView;
 
 class GoogleMailProcessor {
 
@@ -43,24 +34,4 @@ class GoogleMailProcessor {
     void applicationArchiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
         applicationArchiveMarker.produce(new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/services/gmail"));
     }
-
-    @BuildStep
-    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
-        IndexView index = combinedIndex.getIndex();
-
-        // Google mail component configuration class reflection
-        Collection<AnnotationInstance> uriParams = index
-                .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
-
-        String[] googleMailConfigClasses = uriParams.stream()
-                .map(annotation -> annotation.target())
-                .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
-                .map(annotationTarget -> annotationTarget.asClass().name().toString())
-                .filter(className -> className.startsWith("org.apache.camel.component.google.mail"))
-                .toArray(String[]::new);
-
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, googleMailConfigClasses));
-        unbannedClass.produce(new UnbannedReflectiveBuildItem(googleMailConfigClasses));
-    }
 }
diff --git a/extensions/google-sheets/deployment/src/main/java/org/apache/camel/quarkus/component/google/sheets/deployment/GoogleSheetsProcessor.java b/extensions/google-sheets/deployment/src/main/java/org/apache/camel/quarkus/component/google/sheets/deployment/GoogleSheetsProcessor.java
index f8104b8..c4919bc 100644
--- a/extensions/google-sheets/deployment/src/main/java/org/apache/camel/quarkus/component/google/sheets/deployment/GoogleSheetsProcessor.java
+++ b/extensions/google-sheets/deployment/src/main/java/org/apache/camel/quarkus/component/google/sheets/deployment/GoogleSheetsProcessor.java
@@ -16,19 +16,10 @@
  */
 package org.apache.camel.quarkus.component.google.sheets.deployment;
 
-import java.util.Collection;
-
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
-import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationTarget;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexView;
 
 class GoogleSheetsProcessor {
 
@@ -43,24 +34,4 @@ class GoogleSheetsProcessor {
     void applicationArchiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
         applicationArchiveMarker.produce(new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/services/sheets"));
     }
-
-    @BuildStep
-    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
-            BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
-        IndexView index = combinedIndex.getIndex();
-
-        // Google sheets component configuration class reflection
-        Collection<AnnotationInstance> uriParams = index
-                .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
-
-        String[] googleMailConfigClasses = uriParams.stream()
-                .map(annotation -> annotation.target())
-                .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
-                .map(annotationTarget -> annotationTarget.asClass().name().toString())
-                .filter(className -> className.startsWith("org.apache.camel.component.google.sheets"))
-                .toArray(String[]::new);
-
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, googleMailConfigClasses));
-        unbannedClass.produce(new UnbannedReflectiveBuildItem(googleMailConfigClasses));
-    }
 }
diff --git a/extensions/log/deployment/src/main/java/org/apache/camel/quarkus/component/log/deployment/LogProcessor.java b/extensions/log/deployment/src/main/java/org/apache/camel/quarkus/component/log/deployment/LogProcessor.java
index 1e8da12..8378f5a 100644
--- a/extensions/log/deployment/src/main/java/org/apache/camel/quarkus/component/log/deployment/LogProcessor.java
+++ b/extensions/log/deployment/src/main/java/org/apache/camel/quarkus/component/log/deployment/LogProcessor.java
@@ -18,7 +18,6 @@ package org.apache.camel.quarkus.component.log.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 
 class LogProcessor {
 
@@ -28,13 +27,4 @@ class LogProcessor {
     FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
-
-    @BuildStep
-    ReflectiveClassBuildItem reflectiveClasses() {
-        return new ReflectiveClassBuildItem(
-                true,
-                false,
-                org.apache.camel.support.processor.DefaultExchangeFormatter.class);
-    }
-
 }
diff --git a/extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java b/extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java
index 7b1ed71..2b90eb4 100644
--- a/extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java
+++ b/extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java
@@ -23,8 +23,6 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.component.olingo4.Olingo4AppEndpointConfiguration;
-import org.apache.camel.quarkus.core.deployment.spi.UnbannedReflectiveBuildItem;
 import org.apache.olingo.server.core.ODataImpl;
 
 class Olingo4Processor {
@@ -37,12 +35,6 @@ class Olingo4Processor {
     }
 
     @BuildStep
-    UnbannedReflectiveBuildItem whitelistOlingo4AppEndpointConfiguration() {
-        // TODO: Remove this and the associated ReflectiveClassBuildItem for this class in Camel 3.1
-        return new UnbannedReflectiveBuildItem(Olingo4AppEndpointConfiguration.class.getName());
-    }
-
-    @BuildStep
     AdditionalApplicationArchiveMarkerBuildItem olingoArchiveMarker() {
         return new AdditionalApplicationArchiveMarkerBuildItem("org/apache/olingo");
     }
@@ -50,7 +42,6 @@ class Olingo4Processor {
     @BuildStep
     void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass, CombinedIndexBuildItem combinedIndex) {
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, ODataImpl.class));
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, Olingo4AppEndpointConfiguration.class));
     }
 
     @BuildStep
diff --git a/integration-tests/activemq/pom.xml b/integration-tests/activemq/pom.xml
index 9c62162..26877be 100644
--- a/integration-tests/activemq/pom.xml
+++ b/integration-tests/activemq/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-activemq-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-activemq-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/amqp/pom.xml b/integration-tests/amqp/pom.xml
index f981a4e..ba73082 100644
--- a/integration-tests/amqp/pom.xml
+++ b/integration-tests/amqp/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-amqp-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-amqp-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/arangodb/pom.xml b/integration-tests/arangodb/pom.xml
index 43c78bd..0eec4f5 100644
--- a/integration-tests/arangodb/pom.xml
+++ b/integration-tests/arangodb/pom.xml
@@ -39,7 +39,7 @@
         <!-- 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-arangodb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-arangodb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/as2/pom.xml b/integration-tests/as2/pom.xml
index e1d0dad..16e4a81 100644
--- a/integration-tests/as2/pom.xml
+++ b/integration-tests/as2/pom.xml
@@ -39,7 +39,7 @@
         <!-- 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-as2-deployment,camel-quarkus-mock-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-as2-deployment,camel-quarkus-mock-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/avro/pom.xml b/integration-tests/avro/pom.xml
index cc48dd0..3b26c47 100644
--- a/integration-tests/avro/pom.xml
+++ b/integration-tests/avro/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-avro-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-avro-deployment,camel-quarkus-direct-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/aws/pom.xml b/integration-tests/aws/pom.xml
index 2eb3f93..989d1a2 100644
--- a/integration-tests/aws/pom.xml
+++ b/integration-tests/aws/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-aws-ec2-deployment,camel-quarkus-aws-ecs-deployment,camel-quarkus-aws-eks-deployment,camel-quarkus-aws-iam-deployment,camel-quarkus-aws-kinesis-deployment,camel-quarkus-aws-kms-deployment,camel-quarkus-aws-lambda-deployment,camel-quarkus-aws-s3-deployment,camel-quarkus-aws-sdb-deployment,camel-quarkus-aws-sns-deployment,camel-quarkus-aws-sqs-deployment,camel-quarkus-aws-swf-deployment,camel-quarkus-aws-translate-deployment,camel-quarkus-log-deploy [...]
+        <mvnd.builder.rule>camel-quarkus-aws-ec2-deployment,camel-quarkus-aws-ecs-deployment,camel-quarkus-aws-eks-deployment,camel-quarkus-aws-iam-deployment,camel-quarkus-aws-kinesis-deployment,camel-quarkus-aws-kms-deployment,camel-quarkus-aws-lambda-deployment,camel-quarkus-aws-s3-deployment,camel-quarkus-aws-sdb-deployment,camel-quarkus-aws-sns-deployment,camel-quarkus-aws-sqs-deployment,camel-quarkus-aws-swf-deployment,camel-quarkus-aws-translate-deployment,camel-quarkus-log-deploy [...]
     </properties>
 
     <dependencies>
diff --git a/integration-tests/aws2/pom.xml b/integration-tests/aws2/pom.xml
index 3f6f7c9..319a3bf 100644
--- a/integration-tests/aws2/pom.xml
+++ b/integration-tests/aws2/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the 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-athena-deployment,camel-quarkus-aws2-cw-deployment,camel-quarkus-aws2-ddb-deployment,camel-quarkus-aws2-ec2-deployment,camel-quarkus-aws2-ecs-deployment,camel-quarkus-aws2-eks-deployment,camel-quarkus-aws2-iam-deployment,camel-quarkus-aws2-kms-deployment,camel-quarkus-aws2-mq-deployment,camel-quarkus-aws2-msk-deployment,camel-quarkus-aws2-s3-deployment,camel-quarkus-aws2-sns-deployment,camel-quarkus-aws2-sqs-deployment,camel-quarkus-aws2-tran [...]
+        <mvnd.builder.rule>camel-quarkus-aws2-athena-deployment,camel-quarkus-aws2-cw-deployment,camel-quarkus-aws2-ddb-deployment,camel-quarkus-aws2-ec2-deployment,camel-quarkus-aws2-ecs-deployment,camel-quarkus-aws2-eks-deployment,camel-quarkus-aws2-iam-deployment,camel-quarkus-aws2-kms-deployment,camel-quarkus-aws2-mq-deployment,camel-quarkus-aws2-msk-deployment,camel-quarkus-aws2-s3-deployment,camel-quarkus-aws2-sns-deployment,camel-quarkus-aws2-sqs-deployment,camel-quarkus-aws2-tran [...]
     </properties>
 
     <dependencies>
diff --git a/integration-tests/azure/pom.xml b/integration-tests/azure/pom.xml
index bd69c25..8dd68f2 100644
--- a/integration-tests/azure/pom.xml
+++ b/integration-tests/azure/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-azure-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-azure-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/base64/pom.xml b/integration-tests/base64/pom.xml
index 202b12c..5eee56b 100644
--- a/integration-tests/base64/pom.xml
+++ b/integration-tests/base64/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-base64-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-base64-deployment,camel-quarkus-direct-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/bean-validator/pom.xml b/integration-tests/bean-validator/pom.xml
index 7958e1a..9aa9d15 100644
--- a/integration-tests/bean-validator/pom.xml
+++ b/integration-tests/bean-validator/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-validator-deployment,camel-quarkus-direct-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-validator-deployment,camel-quarkus-direct-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/bean/pom.xml b/integration-tests/bean/pom.xml
index 9c3ac1c..e6b7ff5 100644
--- a/integration-tests/bean/pom.xml
+++ b/integration-tests/bean/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/bindy/pom.xml b/integration-tests/bindy/pom.xml
index 1ddf23b..37182a6 100644
--- a/integration-tests/bindy/pom.xml
+++ b/integration-tests/bindy/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bindy-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bindy-deployment,camel-quarkus-direct-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/box/pom.xml b/integration-tests/box/pom.xml
index 62eb03c..66468d8 100644
--- a/integration-tests/box/pom.xml
+++ b/integration-tests/box/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-box-deployment,camel-quarkus-direct-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-box-deployment,camel-quarkus-direct-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/braintree/pom.xml b/integration-tests/braintree/pom.xml
index ee3d2ed..4fb10db 100644
--- a/integration-tests/braintree/pom.xml
+++ b/integration-tests/braintree/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-braintree-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-braintree-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/compression/pom.xml b/integration-tests/compression/pom.xml
index bd66c06..f0e8ab0 100644
--- a/integration-tests/compression/pom.xml
+++ b/integration-tests/compression/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-lzf-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-zip-deflater-deployment,camel-quarkus-zipfile-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-lzf-deployment,camel-quarkus-zip-deflater-deployment,camel-quarkus-zipfile-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/consul/pom.xml b/integration-tests/consul/pom.xml
index 55e0fe6..82f68fb 100644
--- a/integration-tests/consul/pom.xml
+++ b/integration-tests/consul/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-consul-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-consul-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/controlbus/pom.xml b/integration-tests/controlbus/pom.xml
index 61c9dc4..647b4fd 100644
--- a/integration-tests/controlbus/pom.xml
+++ b/integration-tests/controlbus/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-controlbus-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-controlbus-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/core/pom.xml b/integration-tests/core/pom.xml
index c9eca03..85ef4f3 100644
--- a/integration-tests/core/pom.xml
+++ b/integration-tests/core/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/couchdb/pom.xml b/integration-tests/couchdb/pom.xml
index 196e7ef..6f402ee 100644
--- a/integration-tests/couchdb/pom.xml
+++ b/integration-tests/couchdb/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-couchdb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-couchdb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/csv/pom.xml b/integration-tests/csv/pom.xml
index 8c00113..03e348e 100644
--- a/integration-tests/csv/pom.xml
+++ b/integration-tests/csv/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-csv-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-csv-deployment,camel-quarkus-direct-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/dataformat/pom.xml b/integration-tests/dataformat/pom.xml
index be70d41..a59f56a 100644
--- a/integration-tests/dataformat/pom.xml
+++ b/integration-tests/dataformat/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-ical-deployment,camel-quarkus-dataformat-deployment,camel-quarkus-direct-deployment,camel-quarkus-snakeyaml-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-ical-deployment,camel-quarkus-dataformat-deployment,camel-quarkus-direct-deployment,camel-quarkus-snakeyaml-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/dataformats-json/pom.xml b/integration-tests/dataformats-json/pom.xml
index 15b21d8..96dd78f 100644
--- a/integration-tests/dataformats-json/pom.xml
+++ b/integration-tests/dataformats-json/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-gson-deployment,camel-quarkus-jackson-deployment,camel-quarkus-jacksonxml-deployment,camel-quarkus-johnzon-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-vm-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-gson-deployment,camel-quarkus-jackson-deployment,camel-quarkus-jacksonxml-deployment,camel-quarkus-johnzon-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-vm-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/debezium/pom.xml b/integration-tests/debezium/pom.xml
index 9159989..23bd31b 100644
--- a/integration-tests/debezium/pom.xml
+++ b/integration-tests/debezium/pom.xml
@@ -38,7 +38,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-debezium-postgres-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-debezium-postgres-deployment</mvnd.builder.rule>
         <!-- You need to download the driver yourself. We cannot add a compile scope dependency for legal reasons. -->
         <!-- See https://camel.apache.org/camel-quarkus/latest/extensions/debezium-mysql.html#_usage for more details -->
         <mysql.driver.file>libs/mysql-connector-java-8.0.20.jar</mysql.driver.file>
diff --git a/integration-tests/dozer/pom.xml b/integration-tests/dozer/pom.xml
index 10f6293..cf3fa0c 100644
--- a/integration-tests/dozer/pom.xml
+++ b/integration-tests/dozer/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-dozer-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-dozer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/elasticsearch-rest/pom.xml b/integration-tests/elasticsearch-rest/pom.xml
index 1fc8fd3..6cbf622 100644
--- a/integration-tests/elasticsearch-rest/pom.xml
+++ b/integration-tests/elasticsearch-rest/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-elasticsearch-rest-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-elasticsearch-rest-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/exec/pom.xml b/integration-tests/exec/pom.xml
index 4be20fe..b709004 100644
--- a/integration-tests/exec/pom.xml
+++ b/integration-tests/exec/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-exec-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-exec-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/fhir/pom.xml b/integration-tests/fhir/pom.xml
index 2fd6272..bafecc5 100644
--- a/integration-tests/fhir/pom.xml
+++ b/integration-tests/fhir/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-fhir-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-fhir-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/file/pom.xml b/integration-tests/file/pom.xml
index 884b69f..513658d 100644
--- a/integration-tests/file/pom.xml
+++ b/integration-tests/file/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-file-watch-deployment,camel-quarkus-quartz-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-file-watch-deployment,camel-quarkus-quartz-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/flatpack/pom.xml b/integration-tests/flatpack/pom.xml
index 271fd56..1012dda 100644
--- a/integration-tests/flatpack/pom.xml
+++ b/integration-tests/flatpack/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-flatpack-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-flatpack-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/ftp/pom.xml b/integration-tests/ftp/pom.xml
index 8b76941..9d3a7a1 100644
--- a/integration-tests/ftp/pom.xml
+++ b/integration-tests/ftp/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-ftp-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-ftp-deployment,camel-quarkus-log-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/git/pom.xml b/integration-tests/git/pom.xml
index 99486ca..bc26039 100644
--- a/integration-tests/git/pom.xml
+++ b/integration-tests/git/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-git-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-git-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/github/pom.xml b/integration-tests/github/pom.xml
index 53772b4..3c506b3 100644
--- a/integration-tests/github/pom.xml
+++ b/integration-tests/github/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-github-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-github-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/google/pom.xml b/integration-tests/google/pom.xml
index 9c968f3..a90e579 100644
--- a/integration-tests/google/pom.xml
+++ b/integration-tests/google/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-google-calendar-deployment,camel-quarkus-google-drive-deployment,camel-quarkus-google-mail-deployment,camel-quarkus-google-sheets-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-google-calendar-deployment,camel-quarkus-google-drive-deployment,camel-quarkus-google-mail-deployment,camel-quarkus-google-sheets-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/graphql/pom.xml b/integration-tests/graphql/pom.xml
index e7656d4..a80b41a 100644
--- a/integration-tests/graphql/pom.xml
+++ b/integration-tests/graphql/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-graphql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-graphql-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/grok/pom.xml b/integration-tests/grok/pom.xml
index ec47b7a..42832aa 100644
--- a/integration-tests/grok/pom.xml
+++ b/integration-tests/grok/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-grok-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-grok-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/http/pom.xml b/integration-tests/http/pom.xml
index 362195d..067e429 100644
--- a/integration-tests/http/pom.xml
+++ b/integration-tests/http/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-ahc-deployment,camel-quarkus-ahc-ws-deployment,camel-quarkus-direct-deployment,camel-quarkus-http-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-ahc-deployment,camel-quarkus-ahc-ws-deployment,camel-quarkus-direct-deployment,camel-quarkus-http-deployment,camel-quarkus-netty-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/hystrix/pom.xml b/integration-tests/hystrix/pom.xml
index 2536721..3ee65f8 100644
--- a/integration-tests/hystrix/pom.xml
+++ b/integration-tests/hystrix/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-hystrix-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-hystrix-deployment,camel-quarkus-netty-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/infinispan/pom.xml b/integration-tests/infinispan/pom.xml
index 97bd7d1..70766c3 100644
--- a/integration-tests/infinispan/pom.xml
+++ b/integration-tests/infinispan/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-infinispan-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-infinispan-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/influxdb/pom.xml b/integration-tests/influxdb/pom.xml
index 53a78ef..e3b84d5 100644
--- a/integration-tests/influxdb/pom.xml
+++ b/integration-tests/influxdb/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-influxdb-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-influxdb-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/jaxb/pom.xml b/integration-tests/jaxb/pom.xml
index bec663f..6aa960d 100644
--- a/integration-tests/jaxb/pom.xml
+++ b/integration-tests/jaxb/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jaxb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jaxb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/jdbc/pom.xml b/integration-tests/jdbc/pom.xml
index cac5de5..920b757 100644
--- a/integration-tests/jdbc/pom.xml
+++ b/integration-tests/jdbc/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jdbc-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jdbc-deployment,camel-quarkus-log-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/jira/pom.xml b/integration-tests/jira/pom.xml
index 5d18405..800f964 100644
--- a/integration-tests/jira/pom.xml
+++ b/integration-tests/jira/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jira-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jira-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/jolt/pom.xml b/integration-tests/jolt/pom.xml
index 569ce97..eabc232 100644
--- a/integration-tests/jolt/pom.xml
+++ b/integration-tests/jolt/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jolt-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jolt-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/jpa/pom.xml b/integration-tests/jpa/pom.xml
index c38796e..708f6dc 100644
--- a/integration-tests/jpa/pom.xml
+++ b/integration-tests/jpa/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jpa-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jpa-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/json-validator/pom.xml b/integration-tests/json-validator/pom.xml
index 7082fe6..da9b451 100644
--- a/integration-tests/json-validator/pom.xml
+++ b/integration-tests/json-validator/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-json-validator-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-json-validator-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/jsonpath/pom.xml b/integration-tests/jsonpath/pom.xml
index b22e3fc..5b0f65b 100644
--- a/integration-tests/jsonpath/pom.xml
+++ b/integration-tests/jsonpath/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-jsonpath-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-jsonpath-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/jta/pom.xml b/integration-tests/jta/pom.xml
index f7cd7a5..d3e93ce 100644
--- a/integration-tests/jta/pom.xml
+++ b/integration-tests/jta/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jta-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jta-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/kafka/pom.xml b/integration-tests/kafka/pom.xml
index afd9a56..5176b91 100644
--- a/integration-tests/kafka/pom.xml
+++ b/integration-tests/kafka/pom.xml
@@ -31,7 +31,7 @@
 
     <properties>
         <rerun.failing.test.count>2</rerun.failing.test.count>
-        <mvnd.builder.rule>camel-quarkus-kafka-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-kafka-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/kubernetes/pom.xml b/integration-tests/kubernetes/pom.xml
index 6e47632..11a7bee 100644
--- a/integration-tests/kubernetes/pom.xml
+++ b/integration-tests/kubernetes/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-kubernetes-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-kubernetes-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/kudu/pom.xml b/integration-tests/kudu/pom.xml
index eb0c50b..8979da5 100644
--- a/integration-tests/kudu/pom.xml
+++ b/integration-tests/kudu/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-kudu-deployment,camel-quarkus-support-commons-logging-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-kudu-deployment,camel-quarkus-support-commons-logging-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/mail/pom.xml b/integration-tests/mail/pom.xml
index 34bed18..9f83630 100644
--- a/integration-tests/mail/pom.xml
+++ b/integration-tests/mail/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-mail-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-mail-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main-caffeine-lrucache/pom.xml b/integration-tests/main-caffeine-lrucache/pom.xml
index 212ceb7..bde8467 100644
--- a/integration-tests/main-caffeine-lrucache/pom.xml
+++ b/integration-tests/main-caffeine-lrucache/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-caffeine-lrucache-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-caffeine-lrucache-deployment,camel-quarkus-main-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main-collector/pom.xml b/integration-tests/main-collector/pom.xml
index 08d79fb..9a599d7 100644
--- a/integration-tests/main-collector/pom.xml
+++ b/integration-tests/main-collector/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main-command-mode/pom.xml b/integration-tests/main-command-mode/pom.xml
index 3e89c0c..329ecbb 100644
--- a/integration-tests/main-command-mode/pom.xml
+++ b/integration-tests/main-command-mode/pom.xml
@@ -35,7 +35,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
 
         <quarkus.runner.jar>${project.build.directory}/${project.artifactId}-${project.version}-runner.jar</quarkus.runner.jar>
     </properties>
diff --git a/integration-tests/main-devmode/pom.xml b/integration-tests/main-devmode/pom.xml
index ab7711a..a338be1 100644
--- a/integration-tests/main-devmode/pom.xml
+++ b/integration-tests/main-devmode/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main-xml-io/pom.xml b/integration-tests/main-xml-io/pom.xml
index f458727..01c15c3 100644
--- a/integration-tests/main-xml-io/pom.xml
+++ b/integration-tests/main-xml-io/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main-xml-jaxb/pom.xml b/integration-tests/main-xml-jaxb/pom.xml
index 0175cb9..69a7108 100644
--- a/integration-tests/main-xml-jaxb/pom.xml
+++ b/integration-tests/main-xml-jaxb/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-timer-deployment,camel-quarkus-xml-io-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/main/pom.xml b/integration-tests/main/pom.xml
index f16bc56..b6ac520 100644
--- a/integration-tests/main/pom.xml
+++ b/integration-tests/main/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-componentdsl-deployment,camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-executor-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-threadpoolfactory-vertx-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-componentdsl-deployment,camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-executor-deployment,camel-quarkus-threadpoolfactory-vertx-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/master/pom.xml b/integration-tests/master/pom.xml
index 0cd4168..80b4884 100644
--- a/integration-tests/master/pom.xml
+++ b/integration-tests/master/pom.xml
@@ -39,7 +39,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-log-deployment,camel-quarkus-master-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-file-deployment,camel-quarkus-log-deployment,camel-quarkus-master-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
 
         <quarkus.runner>${project.build.directory}/${project.artifactId}-${project.version}-runner.jar</quarkus.runner>
     </properties>
diff --git a/integration-tests/messaging/pom.xml b/integration-tests/messaging/pom.xml
index 71e441e..5bc3843 100644
--- a/integration-tests/messaging/pom.xml
+++ b/integration-tests/messaging/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jms-deployment,camel-quarkus-main-deployment,camel-quarkus-paho-deployment,camel-quarkus-sjms-deployment,camel-quarkus-sjms2-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jms-deployment,camel-quarkus-main-deployment,camel-quarkus-paho-deployment,camel-quarkus-sjms-deployment,camel-quarkus-sjms2-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/microprofile/pom.xml b/integration-tests/microprofile/pom.xml
index d33b85a..a2d5f9a 100644
--- a/integration-tests/microprofile/pom.xml
+++ b/integration-tests/microprofile/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-fault-tolerance-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-microprofile-fault-tolerance-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/mock/pom.xml b/integration-tests/mock/pom.xml
index 4e93639..9c5da69 100644
--- a/integration-tests/mock/pom.xml
+++ b/integration-tests/mock/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-mock-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-mock-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/mongodb/pom.xml b/integration-tests/mongodb/pom.xml
index 8c0d967..43a4a06 100644
--- a/integration-tests/mongodb/pom.xml
+++ b/integration-tests/mongodb/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-mongodb-deployment,camel-quarkus-mongodb-gridfs-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-mongodb-deployment,camel-quarkus-mongodb-gridfs-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/mustache/pom.xml b/integration-tests/mustache/pom.xml
index a892c3a..f88d0f7 100644
--- a/integration-tests/mustache/pom.xml
+++ b/integration-tests/mustache/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-mustache-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-mustache-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/netty/pom.xml b/integration-tests/netty/pom.xml
index f75ca29..594812c 100644
--- a/integration-tests/netty/pom.xml
+++ b/integration-tests/netty/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-netty-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-netty-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/olingo4/pom.xml b/integration-tests/olingo4/pom.xml
index 7f1aea0..a28ab71 100644
--- a/integration-tests/olingo4/pom.xml
+++ b/integration-tests/olingo4/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-olingo4-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-olingo4-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/openapi-java/pom.xml b/integration-tests/openapi-java/pom.xml
index d877458..340a290 100644
--- a/integration-tests/openapi-java/pom.xml
+++ b/integration-tests/openapi-java/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jackson-deployment,camel-quarkus-main-deployment,camel-quarkus-openapi-java-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-jackson-deployment,camel-quarkus-main-deployment,camel-quarkus-openapi-java-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-rest-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/opentracing/pom.xml b/integration-tests/opentracing/pom.xml
index 21f0c31..68db157 100644
--- a/integration-tests/opentracing/pom.xml
+++ b/integration-tests/opentracing/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-opentracing-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-opentracing-deployment,camel-quarkus-platform-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/pdf/pom.xml b/integration-tests/pdf/pom.xml
index 2448e1f..6ce8ea7 100644
--- a/integration-tests/pdf/pom.xml
+++ b/integration-tests/pdf/pom.xml
@@ -34,7 +34,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-pdf-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-pdf-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/platform-http-engine/pom.xml b/integration-tests/platform-http-engine/pom.xml
index 4cc9547..9ac1668 100644
--- a/integration-tests/platform-http-engine/pom.xml
+++ b/integration-tests/platform-http-engine/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-platform-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/platform-http/pom.xml b/integration-tests/platform-http/pom.xml
index af01233..d26b0b0 100644
--- a/integration-tests/platform-http/pom.xml
+++ b/integration-tests/platform-http/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-attachments-deployment,camel-quarkus-log-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-support-webhook-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-attachments-deployment,camel-quarkus-log-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-support-webhook-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index b235131..8f8642b 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -45,12 +45,6 @@
             </dependency>
         </dependencies>
     </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-support-policy</artifactId><!-- enforce the policy in all tests -->
-        </dependency>
-    </dependencies>
 
     <modules>
         <!-- build those first -->
diff --git a/integration-tests/quartz/pom.xml b/integration-tests/quartz/pom.xml
index 41a5b62..dfd31b1 100644
--- a/integration-tests/quartz/pom.xml
+++ b/integration-tests/quartz/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-cron-deployment,camel-quarkus-quartz-deployment,camel-quarkus-seda-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-cron-deployment,camel-quarkus-quartz-deployment,camel-quarkus-seda-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/qute/pom.xml b/integration-tests/qute/pom.xml
index ad38fa5..5cfb772 100644
--- a/integration-tests/qute/pom.xml
+++ b/integration-tests/qute/pom.xml
@@ -35,7 +35,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-qute-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-qute-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/rabbitmq/pom.xml b/integration-tests/rabbitmq/pom.xml
index 7eb79b8..6c9f79b 100644
--- a/integration-tests/rabbitmq/pom.xml
+++ b/integration-tests/rabbitmq/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-rabbitmq-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-rabbitmq-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/reactive-streams/pom.xml b/integration-tests/reactive-streams/pom.xml
index 7b8c76f..94cf4e3 100644
--- a/integration-tests/reactive-streams/pom.xml
+++ b/integration-tests/reactive-streams/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-streams-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-streams-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/ref/pom.xml b/integration-tests/ref/pom.xml
index 87b6220..94f04e6 100644
--- a/integration-tests/ref/pom.xml
+++ b/integration-tests/ref/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-ref-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-ref-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/rest-binding-mode-xml/pom.xml b/integration-tests/rest-binding-mode-xml/pom.xml
index 24ecf33..4aa8609 100644
--- a/integration-tests/rest-binding-mode-xml/pom.xml
+++ b/integration-tests/rest-binding-mode-xml/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-jaxb-deployment,camel-quarkus-rest-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-jaxb-deployment,camel-quarkus-rest-deployment,camel-quarkus-xml-jaxb-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/rest-openapi/pom.xml b/integration-tests/rest-openapi/pom.xml
index 7981287..52c946a 100644
--- a/integration-tests/rest-openapi/pom.xml
+++ b/integration-tests/rest-openapi/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-rest-openapi-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-rest-openapi-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/rest/pom.xml b/integration-tests/rest/pom.xml
index 15ed11b..c022381 100644
--- a/integration-tests/rest/pom.xml
+++ b/integration-tests/rest/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-rest-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-rest-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/salesforce/pom.xml b/integration-tests/salesforce/pom.xml
index 3d5997b..b041907 100644
--- a/integration-tests/salesforce/pom.xml
+++ b/integration-tests/salesforce/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-salesforce-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-salesforce-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/sap-netweaver/pom.xml b/integration-tests/sap-netweaver/pom.xml
index 5a4e05f..abda44f 100644
--- a/integration-tests/sap-netweaver/pom.xml
+++ b/integration-tests/sap-netweaver/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-http-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-sap-netweaver-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-http-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-sap-netweaver-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/scheduler/pom.xml b/integration-tests/scheduler/pom.xml
index 934ec77..71d484e 100644
--- a/integration-tests/scheduler/pom.xml
+++ b/integration-tests/scheduler/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-scheduler-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-scheduler-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/seda/pom.xml b/integration-tests/seda/pom.xml
index bf738bc..09100d8 100644
--- a/integration-tests/seda/pom.xml
+++ b/integration-tests/seda/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-seda-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-seda-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/send-dynamic-http/pom.xml b/integration-tests/send-dynamic-http/pom.xml
index c36a129..da62fae 100644
--- a/integration-tests/send-dynamic-http/pom.xml
+++ b/integration-tests/send-dynamic-http/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-http-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/servicenow/pom.xml b/integration-tests/servicenow/pom.xml
index d2082b9..aa43651 100644
--- a/integration-tests/servicenow/pom.xml
+++ b/integration-tests/servicenow/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-servicenow-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-servicenow-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/servlet/pom.xml b/integration-tests/servlet/pom.xml
index 8860797..4ee3648 100644
--- a/integration-tests/servlet/pom.xml
+++ b/integration-tests/servlet/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-core-cloud-deployment,camel-quarkus-rest-deployment,camel-quarkus-servlet-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-core-cloud-deployment,camel-quarkus-rest-deployment,camel-quarkus-servlet-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/slack/pom.xml b/integration-tests/slack/pom.xml
index 12e0f0d..5525950 100644
--- a/integration-tests/slack/pom.xml
+++ b/integration-tests/slack/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-slack-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-slack-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/smallrye-reactive-messaging/pom.xml b/integration-tests/smallrye-reactive-messaging/pom.xml
index 766294f..edf1012 100644
--- a/integration-tests/smallrye-reactive-messaging/pom.xml
+++ b/integration-tests/smallrye-reactive-messaging/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-file-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-smallrye-reactive-messaging-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-file-deployment,camel-quarkus-smallrye-reactive-messaging-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/soap/pom.xml b/integration-tests/soap/pom.xml
index 9a41065..1d0a524 100644
--- a/integration-tests/soap/pom.xml
+++ b/integration-tests/soap/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-soap-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-soap-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/sql/pom.xml b/integration-tests/sql/pom.xml
index 2fc5e1b..56b140f 100644
--- a/integration-tests/sql/pom.xml
+++ b/integration-tests/sql/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-sql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-sql-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/stream/pom.xml b/integration-tests/stream/pom.xml
index 0b93c40..3672a1f 100644
--- a/integration-tests/stream/pom.xml
+++ b/integration-tests/stream/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-stream-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-stream-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/tarfile/pom.xml b/integration-tests/tarfile/pom.xml
index 1bca8dd..83b87ff 100644
--- a/integration-tests/tarfile/pom.xml
+++ b/integration-tests/tarfile/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-tarfile-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-tarfile-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/telegram/pom.xml b/integration-tests/telegram/pom.xml
index 5394f6f..e83ef31 100644
--- a/integration-tests/telegram/pom.xml
+++ b/integration-tests/telegram/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-attachments-deployment,camel-quarkus-main-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-telegram-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-attachments-deployment,camel-quarkus-main-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-telegram-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/tika/pom.xml b/integration-tests/tika/pom.xml
index 6dc8909..d0afa05 100644
--- a/integration-tests/tika/pom.xml
+++ b/integration-tests/tika/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-support-policy-deployment,camel-quarkus-tika-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-tika-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/twitter/pom.xml b/integration-tests/twitter/pom.xml
index f77cf00..f545b97 100644
--- a/integration-tests/twitter/pom.xml
+++ b/integration-tests/twitter/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-twitter-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-main-deployment,camel-quarkus-twitter-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/validator/pom.xml b/integration-tests/validator/pom.xml
index a8ea64f..e114f77 100644
--- a/integration-tests/validator/pom.xml
+++ b/integration-tests/validator/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-validator-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-validator-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/vertx/pom.xml b/integration-tests/vertx/pom.xml
index 975ee65..075e149 100644
--- a/integration-tests/vertx/pom.xml
+++ b/integration-tests/vertx/pom.xml
@@ -37,7 +37,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-vertx-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-vertx-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencyManagement>
diff --git a/integration-tests/websocket-jsr356/pom.xml b/integration-tests/websocket-jsr356/pom.xml
index 066036e..0d58fef 100644
--- a/integration-tests/websocket-jsr356/pom.xml
+++ b/integration-tests/websocket-jsr356/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-support-policy-deployment,camel-quarkus-websocket-jsr356-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-websocket-jsr356-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/xml/pom.xml b/integration-tests/xml/pom.xml
index 3afb007..bc84f68 100644
--- a/integration-tests/xml/pom.xml
+++ b/integration-tests/xml/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-tagsoup-deployment,camel-quarkus-xpath-deployment,camel-quarkus-xslt-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-tagsoup-deployment,camel-quarkus-xpath-deployment,camel-quarkus-xslt-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/xstream/pom.xml b/integration-tests/xstream/pom.xml
index 9bcdc91..3bb2c62 100644
--- a/integration-tests/xstream/pom.xml
+++ b/integration-tests/xstream/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-xml-jaxb-deployment,camel-quarkus-xstream-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-direct-deployment,camel-quarkus-xml-jaxb-deployment,camel-quarkus-xstream-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index dc7ec44..2bc9d8c 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -3800,16 +3800,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-policy</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-support-policy-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-retrofit</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/13: Extension for camel-threadpoolfactory-vertx #1430

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

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

commit 077bc80e0f684225ec64153b90d8408ffc7fdc07
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Tue Jul 7 15:34:29 2020 +0200

    Extension for camel-threadpoolfactory-vertx #1430
---
 catalog/pom.xml                                    |   1 +
 docs/modules/ROOT/nav.adoc                         |   1 +
 .../extensions/threadpoolfactory-vertx.adoc        |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 docs/modules/ROOT/pages/reference/others.adoc      |   3 +
 extensions-core/pom.xml                            |   1 +
 .../threadpoolfactory-vertx/deployment/pom.xml     |  67 ++++++++++++++
 .../ThreadpoolfactoryVertxProcessor.java           |  42 +++++++++
 .../{ => threadpoolfactory-vertx}/pom.xml          |  25 ++----
 .../threadpoolfactory-vertx/runtime/pom.xml        | 100 +++++++++++++++++++++
 .../vertx/ThreadPoolFactoryVertxRecorder.java      |  40 +++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 +++++++
 .../cassandraql/integration-test/pom.xml           |  10 +++
 integration-tests/main/pom.xml                     |   6 +-
 .../camel/quarkus/main/CoreMainResource.java       |  19 ++++
 .../apache/camel/quarkus/main/CoreMainTest.java    |  14 +++
 poms/bom/pom.xml                                   |  15 ++++
 17 files changed, 390 insertions(+), 17 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 9fc53e8..d286eda 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -265,6 +265,7 @@
             camel-quarkus-tagsoup
             camel-quarkus-tarfile
             camel-quarkus-telegram
+            camel-quarkus-threadpoolfactory-vertx
             camel-quarkus-thrift
             camel-quarkus-tika
             camel-quarkus-timer
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index f52a6bf..68830af 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -216,6 +216,7 @@
 *** xref:reference/extensions/stub.adoc[Stub]
 *** xref:reference/extensions/tarfile.adoc[Tar File]
 *** xref:reference/extensions/telegram.adoc[Telegram]
+*** xref:reference/extensions/threadpoolfactory-vertx.adoc[ThreadPoolFactory Vert.x]
 *** xref:reference/extensions/thrift.adoc[Thrift]
 *** xref:reference/extensions/tagsoup.adoc[TidyMarkup]
 *** xref:reference/extensions/tika.adoc[Tika]
diff --git a/docs/modules/ROOT/pages/reference/extensions/threadpoolfactory-vertx.adoc b/docs/modules/ROOT/pages/reference/extensions/threadpoolfactory-vertx.adoc
new file mode 100644
index 0000000..315f5e5
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/threadpoolfactory-vertx.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[threadpoolfactory-vertx]]
+= ThreadPoolFactory Vert.x
+:page-aliases: extensions/threadpoolfactory-vertx.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0-CR4## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
+
+ThreadPoolFactory for camel-core using Vert.x
+
+== What's inside
+
+* https://camel.apache.org/components/latest/others/threadpoolfactory-vertx.html[ThreadPoolFactory Vert.x]
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 76a338c..76670d0 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -626,6 +626,9 @@ Stable | 0.3.0 | Archive files into tarballs or extract files from tarballs.
 |  xref:reference/extensions/telegram.adoc[Telegram]  | camel-quarkus-telegram | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Send and receive messages acting as a Telegram Bot Telegram Bot API.
 
+|  xref:reference/extensions/threadpoolfactory-vertx.adoc[ThreadPoolFactory Vert.x]  | camel-quarkus-threadpoolfactory-vertx | [.camel-element-Native]##Native## +
+Stable | 1.0.0-CR4 | ThreadPoolFactory for camel-core using Vert.x
+
 |  xref:reference/extensions/thrift.adoc[Thrift]  | camel-quarkus-thrift | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Call and expose remote procedures (RPC) with Apache Thrift data format and serialization mechanism.
 
diff --git a/docs/modules/ROOT/pages/reference/others.adoc b/docs/modules/ROOT/pages/reference/others.adoc
index 731fd42..57a79bf 100644
--- a/docs/modules/ROOT/pages/reference/others.adoc
+++ b/docs/modules/ROOT/pages/reference/others.adoc
@@ -58,6 +58,9 @@ Stable | 0.3.0 | Reactive Executor for camel-core using Vert.x
 | xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging] | [.camel-element-artifact]##camel-quarkus-smallrye-reactive-messaging## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Camel integration with SmallRye Reactive Messaging
 
+| xref:reference/extensions/threadpoolfactory-vertx.adoc[ThreadPoolFactory Vert.x] | [.camel-element-artifact]##camel-quarkus-threadpoolfactory-vertx## | [.camel-element-Native]##Native## +
+Stable | 1.0.0-CR4 | ThreadPoolFactory for camel-core using Vert.x
+
 | xref:reference/extensions/xml-io.adoc[XML IO] | [.camel-element-artifact]##camel-quarkus-xml-io## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | An XML stack for parsing XML route definitions. A fast an light weight alternative to camel-quarkus-xml-jaxp
 
diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml
index 8d687ce..12a4aa0 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/pom.xml
@@ -36,6 +36,7 @@
         <module>core-cloud</module>
         <module>http-common</module>
         <module>reactive-executor</module>
+        <module>threadpoolfactory-vertx</module>
         <module>xml-io</module>
         <module>xml-jaxb</module>
         <module>xml-jaxp</module>
diff --git a/extensions-core/threadpoolfactory-vertx/deployment/pom.xml b/extensions-core/threadpoolfactory-vertx/deployment/pom.xml
new file mode 100644
index 0000000..df8bca0
--- /dev/null
+++ b/extensions-core/threadpoolfactory-vertx/deployment/pom.xml
@@ -0,0 +1,67 @@
+<?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-threadpoolfactory-vertx-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-threadpoolfactory-vertx-deployment</artifactId>
+    <name>Camel Quarkus :: ThreadPoolFactory Vert.x :: Deployment</name>
+
+    <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-threadpoolfactory-vertx</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-vertx-deployment</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-core/threadpoolfactory-vertx/deployment/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/deployment/ThreadpoolfactoryVertxProcessor.java b/extensions-core/threadpoolfactory-vertx/deployment/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/deployment/ThreadpoolfactoryVertxProcessor.java
new file mode 100644
index 0000000..669245d
--- /dev/null
+++ b/extensions-core/threadpoolfactory-vertx/deployment/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/deployment/ThreadpoolfactoryVertxProcessor.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.threadpoolfactory.vertx.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.vertx.deployment.VertxBuildItem;
+import org.apache.camel.quarkus.component.threadpoolfactory.vertx.ThreadPoolFactoryVertxRecorder;
+import org.apache.camel.quarkus.core.deployment.spi.RuntimeCamelContextCustomizerBuildItem;
+
+class ThreadpoolfactoryVertxProcessor {
+
+    private static final String FEATURE = "camel-threadpoolfactory-vertx";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @Record(value = ExecutionTime.RUNTIME_INIT, optional = true)
+    @BuildStep
+    public RuntimeCamelContextCustomizerBuildItem threadPoolFactoryCustomizer(ThreadPoolFactoryVertxRecorder recorder,
+            VertxBuildItem vertx) {
+        return new RuntimeCamelContextCustomizerBuildItem(recorder.createThreadPoolFactoryCustomizer(vertx.getVertx()));
+    }
+}
diff --git a/extensions-core/pom.xml b/extensions-core/threadpoolfactory-vertx/pom.xml
similarity index 61%
copy from extensions-core/pom.xml
copy to extensions-core/threadpoolfactory-vertx/pom.xml
index 8d687ce..01581ff 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/threadpoolfactory-vertx/pom.xml
@@ -17,30 +17,23 @@
     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">
-
+<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</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-core</artifactId>
+    <artifactId>camel-quarkus-threadpoolfactory-vertx-parent</artifactId>
+    <name>Camel Quarkus :: ThreadPoolFactory Vert.x</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions :: Core</name>
-
     <modules>
-        <module>core</module>
-        <module>core-cloud</module>
-        <module>http-common</module>
-        <module>reactive-executor</module>
-        <module>xml-io</module>
-        <module>xml-jaxb</module>
-        <module>xml-jaxp</module>
-        <module>caffeine-lrucache</module>
-        <module>main</module>
+        <module>deployment</module>
+        <module>runtime</module>
     </modules>
-
 </project>
diff --git a/extensions-core/threadpoolfactory-vertx/runtime/pom.xml b/extensions-core/threadpoolfactory-vertx/runtime/pom.xml
new file mode 100644
index 0000000..168d891
--- /dev/null
+++ b/extensions-core/threadpoolfactory-vertx/runtime/pom.xml
@@ -0,0 +1,100 @@
+<?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-threadpoolfactory-vertx-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId>
+    <name>Camel Quarkus :: ThreadPoolFactory Vert.x :: Runtime</name>
+    <description>ThreadPoolFactory for camel-core using Vert.x</description>
+
+    <properties>
+        <firstVersion>1.0.0-CR4</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-threadpoolfactory-vertx</artifactId>
+        </dependency>
+
+        <!-- quarkus -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-vertx</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <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-core/threadpoolfactory-vertx/runtime/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/ThreadPoolFactoryVertxRecorder.java b/extensions-core/threadpoolfactory-vertx/runtime/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/ThreadPoolFactoryVertxRecorder.java
new file mode 100644
index 0000000..833bd0d
--- /dev/null
+++ b/extensions-core/threadpoolfactory-vertx/runtime/src/main/java/org/apache/camel/quarkus/component/threadpoolfactory/vertx/ThreadPoolFactoryVertxRecorder.java
@@ -0,0 +1,40 @@
+/*
+ * 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.threadpoolfactory.vertx;
+
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import io.vertx.core.Vertx;
+import org.apache.camel.CamelContext;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.quarkus.core.CamelContextCustomizer;
+import org.apache.camel.reactive.vertx.VertXThreadPoolFactory;
+
+@Recorder
+public class ThreadPoolFactoryVertxRecorder {
+    public RuntimeValue<CamelContextCustomizer> createThreadPoolFactoryCustomizer(RuntimeValue<Vertx> vertx) {
+        return new RuntimeValue<>(new CamelContextCustomizer() {
+            @Override
+            public void customize(CamelContext context) {
+                VertXThreadPoolFactory threadPoolFactory = new VertXThreadPoolFactory();
+                threadPoolFactory.setVertx(vertx.getValue());
+
+                context.adapt(ExtendedCamelContext.class).getExecutorServiceManager().setThreadPoolFactory(threadPoolFactory);
+            }
+        });
+    }
+}
diff --git a/extensions-core/threadpoolfactory-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/threadpoolfactory-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..9b28950
--- /dev/null
+++ b/extensions-core/threadpoolfactory-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel ThreadPoolFactory Vert.x"
+description: "ThreadPoolFactory for camel-core using Vert.x"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/threadpoolfactory-vertx.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/extensions-jvm/cassandraql/integration-test/pom.xml b/extensions-jvm/cassandraql/integration-test/pom.xml
index f0649da..e474676 100644
--- a/extensions-jvm/cassandraql/integration-test/pom.xml
+++ b/extensions-jvm/cassandraql/integration-test/pom.xml
@@ -44,6 +44,16 @@
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-cassandraql</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy-json</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
diff --git a/integration-tests/main/pom.xml b/integration-tests/main/pom.xml
index 1be9480..f16bc56 100644
--- a/integration-tests/main/pom.xml
+++ b/integration-tests/main/pom.xml
@@ -36,7 +36,7 @@
         <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
         <!-- Please update the rule whenever you change the dependencies of this module by running -->
         <!--     mvn process-resources -Pformat    from the root directory -->
-        <mvnd.builder.rule>camel-quarkus-componentdsl-deployment,camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-executor-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+        <mvnd.builder.rule>camel-quarkus-componentdsl-deployment,camel-quarkus-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-log-deployment,camel-quarkus-main-deployment,camel-quarkus-reactive-executor-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-threadpoolfactory-vertx-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
@@ -58,6 +58,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-direct</artifactId>
         </dependency>
         <dependency>
diff --git a/integration-tests/main/src/main/java/org/apache/camel/quarkus/main/CoreMainResource.java b/integration-tests/main/src/main/java/org/apache/camel/quarkus/main/CoreMainResource.java
index 4985754..df1a819 100644
--- a/integration-tests/main/src/main/java/org/apache/camel/quarkus/main/CoreMainResource.java
+++ b/integration-tests/main/src/main/java/org/apache/camel/quarkus/main/CoreMainResource.java
@@ -41,11 +41,13 @@ import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.quarkus.core.FastFactoryFinderResolver;
 import org.apache.camel.quarkus.it.support.typeconverter.MyPair;
 import org.apache.camel.reactive.vertx.VertXReactiveExecutor;
+import org.apache.camel.reactive.vertx.VertXThreadPoolFactory;
 import org.apache.camel.spi.BeanRepository;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.ReactiveExecutor;
+import org.apache.camel.spi.ThreadPoolFactory;
 import org.apache.camel.support.DefaultRegistry;
 import org.apache.camel.support.LRUCacheFactory;
 import org.apache.camel.support.processor.DefaultExchangeFormatter;
@@ -185,6 +187,23 @@ public class CoreMainResource {
         return builder.build();
     }
 
+    @Path("/context/thread-pool-factory")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public JsonObject threadPoolFactory() {
+        ThreadPoolFactory threadPoolFactory = main.getCamelContext().adapt(ExtendedCamelContext.class)
+                .getExecutorServiceManager().getThreadPoolFactory();
+
+        JsonObjectBuilder builder = Json.createObjectBuilder();
+        builder.add("class", threadPoolFactory.getClass().getName());
+
+        if (threadPoolFactory instanceof VertXThreadPoolFactory) {
+            builder.add("configured", ((VertXThreadPoolFactory) threadPoolFactory).getVertx() != null);
+        }
+
+        return builder.build();
+    }
+
     @Path("/converter/my-pair")
     @POST
     @Produces(MediaType.APPLICATION_JSON)
diff --git a/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainTest.java b/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainTest.java
index 448b22e..1e2aeb0 100644
--- a/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainTest.java
+++ b/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainTest.java
@@ -32,6 +32,7 @@ import org.apache.camel.quarkus.core.DisabledXMLRoutesDefinitionLoader;
 import org.apache.camel.quarkus.core.RegistryRoutesLoaders;
 import org.apache.camel.quarkus.it.support.mainlistener.CustomMainListener;
 import org.apache.camel.reactive.vertx.VertXReactiveExecutor;
+import org.apache.camel.reactive.vertx.VertXThreadPoolFactory;
 import org.apache.camel.support.DefaultLRUCacheFactory;
 import org.junit.jupiter.api.Test;
 
@@ -167,6 +168,19 @@ public class CoreMainTest {
     }
 
     @Test
+    public void testThreadPoolFactory() {
+        JsonPath executor = RestAssured.when().get("/test/context/thread-pool-factory")
+                .then()
+                .statusCode(200)
+                .extract()
+                .body()
+                .jsonPath();
+
+        assertThat(executor.getString("class")).isEqualTo(VertXThreadPoolFactory.class.getName());
+        assertThat(executor.getBoolean("configured")).isTrue();
+    }
+
+    @Test
     public void testCustomTypeConverter() {
         RestAssured.given()
                 .contentType(ContentType.TEXT).body("a:b")
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 8212a0e..293293c 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1453,6 +1453,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-threadpoolfactory-vertx</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-thrift</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3850,6 +3855,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-threadpoolfactory-vertx</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-threadpoolfactory-vertx-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-thrift</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/13: Upgrade to Camel 3.5.0

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

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

commit a68c4a39b37546fe5fc5f668fed04fe401af4d1d
Author: James Netherton <ja...@gmail.com>
AuthorDate: Thu Jun 18 16:30:49 2020 +0100

    Upgrade to Camel 3.5.0
---
 docs/modules/ROOT/pages/reference/components.adoc  |  18 ++--
 .../ROOT/pages/reference/extensions/aws-s3.adoc    |   2 +-
 .../ROOT/pages/reference/extensions/aws2-s3.adoc   |   2 +-
 .../ROOT/pages/reference/extensions/azure.adoc     |   4 +-
 .../pages/reference/extensions/cassandraql.adoc    |   2 +-
 docs/modules/ROOT/pages/reference/index.adoc       |   8 +-
 .../org/apache/camel/quarkus/core/BaseModel.java   | 100 +++++++++++++++++++++
 .../core/DisabledXMLRoutesDefinitionLoader.java    |   5 ++
 .../camel/quarkus/core/FastCamelContext.java       |  45 ++++++++++
 .../quarkus/main/CamelMainRoutesCollector.java     |  26 ++++++
 extensions-jvm/cassandraql/runtime/pom.xml         |  16 ++++
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 .../deployment/DebeziumSupportProcessor.java       |  14 ++-
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   2 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   1 +
 .../component/pdf/deployment/PdfProcessor.java     |  28 +++++-
 .../runtime/support/CustomRoutesCollector.java     |   7 ++
 pom.xml                                            |  14 +--
 poms/bom/pom.xml                                   |  10 +++
 20 files changed, 274 insertions(+), 34 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 2662053..c6d3f04 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -83,10 +83,10 @@ Stable | 1.0.0 | Manage AWS IAM instances using AWS SDK version 2.x.
 Stable | 1.0.0 | Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
 
 | xref:reference/extensions/aws2-kinesis.adoc[AWS 2 Kinesis] | [.camel-element-artifact]##camel-quarkus-aws2-kinesis## | [.camel-element-JVM]##JVM## +
-Preview | 1.1.0 | Consume and produce records from AWS Kinesis Streams using AWS SDK version 2.x.
+Preview | 1.1.0 | Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.
 
 | xref:reference/extensions/aws2-kinesis.adoc[AWS 2 Kinesis Firehose] | [.camel-element-artifact]##camel-quarkus-aws2-kinesis## | [.camel-element-JVM]##JVM## +
-Preview | 1.1.0 | Consume data from AWS Kinesis Firehose streams using AWS SDK version 2.x.
+Preview | 1.1.0 | Produce data to AWS Kinesis Firehose streams using AWS SDK version 2.x.
 
 | xref:reference/extensions/aws2-lambda.adoc[AWS 2 Lambda] | [.camel-element-artifact]##camel-quarkus-aws2-lambda## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
@@ -98,7 +98,7 @@ Stable | 1.0.0 | Manage AWS MSK instances using AWS SDK version 2.x.
 Stable | 1.0.0 | Manage AWS MQ instances using AWS SDK version 2.x.
 
 | xref:reference/extensions/aws2-s3.adoc[AWS 2 S3 Storage Service] | [.camel-element-artifact]##camel-quarkus-aws2-s3## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Stable | 1.0.0 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
 
 | xref:reference/extensions/aws2-ses.adoc[AWS 2 Simple Email Service (SES)] | [.camel-element-artifact]##camel-quarkus-aws2-ses## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -137,7 +137,7 @@ Stable | 1.0.0 | Consume data from AWS Kinesis Firehose streams.
 Stable | 1.0.0 | Manage and invoke AWS Lambda functions.
 
 | xref:reference/extensions/aws-s3.adoc[AWS S3 Storage Service] | [.camel-element-artifact]##camel-quarkus-aws-s3## | [.camel-element-Native]##Native## +
-Stable | 0.2.0 | Store and retrie objects from AWS S3 Storage Service.
+Stable | 0.2.0 | Store and retrieve objects from AWS S3 Storage Service.
 
 | xref:reference/extensions/aws-sns.adoc[AWS Simple Notification System (SNS)] | [.camel-element-artifact]##camel-quarkus-aws-sns## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Send messages to an AWS Simple Notification Topic.
@@ -157,14 +157,14 @@ Stable | 1.0.0 | Translate texts using AWS Translate.
 | xref:reference/extensions/azure-storage-blob.adoc[Azure Storage Blob Service] | [.camel-element-artifact]##camel-quarkus-azure-storage-blob## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Store and retrieve blobs from Azure Storage Blob Service using SDK v12.
 
-| xref:reference/extensions/azure.adoc[Azure Storage Blob Service (Legacy)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve blobs from Azure Storage Blob Service.
+| xref:reference/extensions/azure.adoc[Azure Storage Blob Service (Deprecated)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve blobs from Azure Storage Blob Service.
 
 | xref:reference/extensions/azure-storage-queue.adoc[Azure Storage Queue Service] | [.camel-element-artifact]##camel-quarkus-azure-storage-queue## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | The azure-storage-queue component is used for storing and retrieving the messages to/from Azure Storage Queue using Azure SDK v12.
 
-| xref:reference/extensions/azure.adoc[Azure Storage Queue Service (Legacy)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve messages from Azure Storage Queue Service.
+| xref:reference/extensions/azure.adoc[Azure Storage Queue Service (Deprecated)] | [.camel-element-artifact]##camel-quarkus-azure## | [.camel-element-Native]##Native## +
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve messages from Azure Storage Queue Service.
 
 | xref:reference/extensions/bean.adoc[Bean] | [.camel-element-artifact]##camel-quarkus-bean## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Invoke methods of Java beans stored in Camel registry.
@@ -194,7 +194,7 @@ Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
 Preview | 1.1.0 | Perform caching operations using Caffeine Cache with an attached CacheLoader.
 
 | xref:reference/extensions/cassandraql.adoc[Cassandra CQL] | [.camel-element-artifact]##camel-quarkus-cassandraql## | [.camel-element-JVM]##JVM## +
-Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
 
 | xref:reference/extensions/chatscript.adoc[ChatScript] | [.camel-element-artifact]##camel-quarkus-chatscript## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Chat with a ChatScript Server.
diff --git a/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc b/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
index 70e597c..1c65c20 100644
--- a/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/aws-s3.adoc
@@ -8,7 +8,7 @@
 [.badges]
 [.badge-key]##Since Camel Quarkus##[.badge-version]##0.2.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
 
-Store and retrie objects from AWS S3 Storage Service.
+Store and retrieve objects from AWS S3 Storage Service.
 
 == What's inside
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc b/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
index ee5d5bb..596ae49 100644
--- a/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/aws2-s3.adoc
@@ -8,7 +8,7 @@
 [.badges]
 [.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
 
-Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
 
 == What's inside
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/azure.adoc b/docs/modules/ROOT/pages/reference/extensions/azure.adoc
index 6a86f80..fff8dd7 100644
--- a/docs/modules/ROOT/pages/reference/extensions/azure.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/azure.adoc
@@ -12,8 +12,8 @@ Store and retrieve blobs from Azure Storage Blob Service or store and retrieve m
 
 == What's inside
 
-* https://camel.apache.org/components/latest/azure-blob-component.html[Azure Storage Blob Service (Legacy) component], URI syntax: `azure-blob:containerOrBlobUri`
-* https://camel.apache.org/components/latest/azure-queue-component.html[Azure Storage Queue Service (Legacy) component], URI syntax: `azure-queue:containerAndQueueUri`
+* https://camel.apache.org/components/latest/azure-blob-component.html[Azure Storage Blob Service (Deprecated) component], URI syntax: `azure-blob:containerOrBlobUri`
+* https://camel.apache.org/components/latest/azure-queue-component.html[Azure Storage Queue Service (Deprecated) component], URI syntax: `azure-queue:containerAndQueueUri`
 
 Please refer to the above links for usage and configuration details.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc b/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
index ebc0f07..70508a1 100644
--- a/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/cassandraql.adoc
@@ -8,7 +8,7 @@
 [.badges]
 [.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
 
-Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
 
 == What's inside
 
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index b7458b1..76a338c 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -96,7 +96,7 @@ Stable | 1.0.0 | Manage AWS MSK instances using AWS SDK version 2.x.
 Stable | 1.0.0 | Manage AWS MQ instances using AWS SDK version 2.x.
 
 |  xref:reference/extensions/aws2-s3.adoc[AWS 2 S3 Storage Service]  | camel-quarkus-aws2-s3 | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x.
+Stable | 1.0.0 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
 
 |  xref:reference/extensions/aws2-ses.adoc[AWS 2 Simple Email Service (SES)]  | camel-quarkus-aws2-ses | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Send e-mails through AWS SES service using AWS SDK version 2.x.
@@ -132,7 +132,7 @@ Stable | 1.0.0 | Consume and produce records from AWS Kinesis Streams and AWS Ki
 Stable | 1.0.0 | Manage and invoke AWS Lambda functions.
 
 |  xref:reference/extensions/aws-s3.adoc[AWS S3 Storage Service]  | camel-quarkus-aws-s3 | [.camel-element-Native]##Native## +
-Stable | 0.2.0 | Store and retrie objects from AWS S3 Storage Service.
+Stable | 0.2.0 | Store and retrieve objects from AWS S3 Storage Service.
 
 |  xref:reference/extensions/aws-sns.adoc[AWS Simple Notification System (SNS)]  | camel-quarkus-aws-sns | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Send messages to an AWS Simple Notification Topic.
@@ -150,7 +150,7 @@ Stable | 1.0.0 | Store and Retrieve data from/to AWS SDB service.
 Stable | 1.0.0 | Translate texts using AWS Translate.
 
 |  xref:reference/extensions/azure.adoc[Azure]  | camel-quarkus-azure | [.camel-element-Native]##Native## +
-Stable | 1.0.0 | Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
+Stable | 1.0.0 | [.camel-element-deprecated]*deprecated* Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
 
 |  xref:reference/extensions/azure-storage-blob.adoc[Azure Storage Blob Service]  | camel-quarkus-azure-storage-blob | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Store and retrieve blobs from Azure Storage Blob Service using SDK v12.
@@ -192,7 +192,7 @@ Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
 Stable | 1.0.0 | An LRUCacheFactory implementation based on Caffeine
 
 |  xref:reference/extensions/cassandraql.adoc[Cassandra CQL]  | camel-quarkus-cassandraql | [.camel-element-JVM]##JVM## +
-Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
+Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax.
 
 |  xref:reference/extensions/chatscript.adoc[ChatScript]  | camel-quarkus-chatscript | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Chat with a ChatScript Server.
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
index 9bd3b06..636f6cc 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
@@ -27,12 +27,15 @@ import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.transformer.TransformerDefinition;
 import org.apache.camel.model.validator.ValidatorDefinition;
+import org.apache.camel.spi.NodeIdFactory;
+import org.apache.camel.util.CollectionStringBuffer;
 
 public abstract class BaseModel implements Model {
 
     private final CamelContext camelContext;
 
     private final List<RouteDefinition> routeDefinitions = new ArrayList<>();
+    private final List<RouteTemplateDefinition> routeTemplateDefinitions = new ArrayList<>();
     private final List<RestDefinition> restDefinitions = new ArrayList<>();
     private Map<String, DataFormatDefinition> dataFormats = new HashMap<>();
     private List<TransformerDefinition> transformers = new ArrayList<>();
@@ -42,6 +45,7 @@ public abstract class BaseModel implements Model {
     private Map<String, Resilience4jConfigurationDefinition> resilience4jConfigurations = new ConcurrentHashMap<>();
     private Map<String, FaultToleranceConfigurationDefinition> faultToleranceConfigurations = new ConcurrentHashMap<>();
     private Function<RouteDefinition, Boolean> routeFilter;
+    private final List<ModelLifecycleStrategy> modelLifecycleStrategies = new ArrayList<>();
 
     public BaseModel(CamelContext camelContext) {
         this.camelContext = camelContext;
@@ -111,6 +115,92 @@ public abstract class BaseModel implements Model {
     }
 
     @Override
+    public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
+        return routeTemplateDefinitions;
+    }
+
+    @Override
+    public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
+        NodeIdFactory nodeIdFactory = camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory();
+        for (RouteTemplateDefinition route : routeTemplateDefinitions) {
+            if (route.idOrCreate(nodeIdFactory).equals(id)) {
+                return route;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public void addRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+        if (routeTemplateDefinitions == null || routeTemplateDefinitions.isEmpty()) {
+            return;
+        }
+        this.routeTemplateDefinitions.addAll(routeTemplateDefinitions);
+    }
+
+    @Override
+    public void addRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+        this.routeTemplateDefinitions.add(routeTemplateDefinition);
+    }
+
+    @Override
+    public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+        this.routeTemplateDefinitions.removeAll(routeTemplateDefinitions);
+    }
+
+    @Override
+    public void removeRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+        routeTemplateDefinitions.remove(routeTemplateDefinition);
+    }
+
+    @Override
+    public String addRouteFromTemplate(String routeId, String routeTemplateId, Map<String, Object> parameters)
+            throws Exception {
+        RouteTemplateDefinition target = null;
+        for (RouteTemplateDefinition def : routeTemplateDefinitions) {
+            if (routeTemplateId.equals(def.getId())) {
+                target = def;
+                break;
+            }
+        }
+        if (target == null) {
+            throw new IllegalArgumentException("Cannot find RouteTemplate with id " + routeTemplateId);
+        }
+
+        CollectionStringBuffer cbs = new CollectionStringBuffer();
+        final Map<String, Object> prop = new HashMap();
+        // include default values first from the template (and validate that we have inputs for all required parameters)
+        if (target.getTemplateParameters() != null) {
+            for (RouteTemplateParameterDefinition temp : target.getTemplateParameters()) {
+                if (temp.getDefaultValue() != null) {
+                    prop.put(temp.getName(), temp.getDefaultValue());
+                } else {
+                    // this is a required parameter do we have that as input
+                    if (!parameters.containsKey(temp.getName())) {
+                        cbs.append(temp.getName());
+                    }
+                }
+            }
+        }
+        if (!cbs.isEmpty()) {
+            throw new IllegalArgumentException("Route template " + routeTemplateId
+                    + " the following mandatory parameters must be provided: " + cbs.toString());
+        }
+        // then override with user parameters
+        if (parameters != null) {
+            prop.putAll(parameters);
+        }
+
+        RouteDefinition def = target.asRouteDefinition();
+        if (routeId != null) {
+            def.setId(routeId);
+        }
+        def.setTemplateParameters(prop);
+        addRouteDefinition(def);
+        return def.getId();
+    }
+
+    @Override
     public synchronized List<RestDefinition> getRestDefinitions() {
         return restDefinitions;
     }
@@ -323,6 +413,16 @@ public abstract class BaseModel implements Model {
         this.routeFilter = routeFilter;
     }
 
+    @Override
+    public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+        this.modelLifecycleStrategies.add(modelLifecycleStrategy);
+    }
+
+    @Override
+    public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+        return modelLifecycleStrategies;
+    }
+
     /**
      * Should we start newly added routes?
      */
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
index 904d50d..a50befb 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
@@ -29,6 +29,11 @@ public class DisabledXMLRoutesDefinitionLoader implements XMLRoutesDefinitionLoa
     }
 
     @Override
+    public Object loadRouteTemplatesDefinition(CamelContext context, InputStream inputStream) throws Exception {
+        throw new UnsupportedOperationException("Please add a dependency to camel-quarkus-xml-io");
+    }
+
+    @Override
     public Object loadRestsDefinition(CamelContext context, InputStream inputStream) throws Exception {
         throw new UnsupportedOperationException("Please add a dependency to camel-quarkus-xml-io");
     }
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index 5066702..a41d181 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -87,6 +87,12 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
     }
 
     @Override
+    public String addRouteFromTemplate(String routeId, String routeTemplateId, Map<String, Object> parameters)
+            throws Exception {
+        return model.addRouteFromTemplate(routeId, routeTemplateId, parameters);
+    }
+
+    @Override
     protected Registry createRegistry() {
         throw new UnsupportedOperationException();
     }
@@ -512,6 +518,36 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
     }
 
     @Override
+    public List<RouteTemplateDefinition> getRouteTemplateDefinitions() {
+        return model.getRouteTemplateDefinitions();
+    }
+
+    @Override
+    public RouteTemplateDefinition getRouteTemplateDefinition(String id) {
+        return model.getRouteTemplateDefinition(id);
+    }
+
+    @Override
+    public void addRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+        model.addRouteTemplateDefinitions(routeTemplateDefinitions);
+    }
+
+    @Override
+    public void addRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+        model.addRouteTemplateDefinition(routeTemplateDefinition);
+    }
+
+    @Override
+    public void removeRouteTemplateDefinitions(Collection<RouteTemplateDefinition> routeTemplateDefinitions) throws Exception {
+        model.removeRouteTemplateDefinitions(routeTemplateDefinitions);
+    }
+
+    @Override
+    public void removeRouteTemplateDefinition(RouteTemplateDefinition routeTemplateDefinition) throws Exception {
+        model.removeRouteTemplateDefinition(routeTemplateDefinition);
+    }
+
+    @Override
     public List<RestDefinition> getRestDefinitions() {
         return model.getRestDefinitions();
     }
@@ -736,4 +772,13 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
                 : new TransformerKey(new DataType(def.getFromType()), new DataType(def.getToType()));
     }
 
+    @Override
+    public void addModelLifecycleStrategy(ModelLifecycleStrategy modelLifecycleStrategy) {
+        model.addModelLifecycleStrategy(modelLifecycleStrategy);
+    }
+
+    @Override
+    public List<ModelLifecycleStrategy> getModelLifecycleStrategies() {
+        return model.getModelLifecycleStrategies();
+    }
 }
diff --git a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
index da9350b..9498cc1 100644
--- a/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
+++ b/extensions-core/main/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainRoutesCollector.java
@@ -26,6 +26,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.main.RoutesCollector;
+import org.apache.camel.model.RouteTemplatesDefinition;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.quarkus.core.RegistryRoutesLoader;
@@ -87,6 +88,31 @@ public class CamelMainRoutesCollector implements RoutesCollector {
     }
 
     @Override
+    public List<RouteTemplatesDefinition> collectXmlRouteTemplatesFromDirectory(CamelContext camelContext, String directory)
+            throws Exception {
+        List<RouteTemplatesDefinition> answer = new ArrayList<>();
+        PackageScanResourceResolver resolver = camelContext.adapt(ExtendedCamelContext.class).getPackageScanResourceResolver();
+
+        for (String part : directory.split(",")) {
+            LOGGER.info("Loading additional Camel XML route templates from: {}", part);
+            try {
+                for (InputStream is : resolver.findResources(part)) {
+                    Object definition = xmlRoutesLoader.loadRouteTemplatesDefinition(camelContext, is);
+                    if (definition instanceof RestsDefinition) {
+                        answer.add((RouteTemplatesDefinition) definition);
+                    }
+                }
+            } catch (FileNotFoundException e) {
+                LOGGER.debug("No XML route templates found in {}. Skipping XML route templates detection.", part);
+            } catch (Exception e) {
+                throw RuntimeCamelException.wrapRuntimeException(e);
+            }
+        }
+
+        return answer;
+    }
+
+    @Override
     public List<RestsDefinition> collectXmlRestsFromDirectory(CamelContext camelContext, String directory) {
         List<RestsDefinition> answer = new ArrayList<>();
         PackageScanResourceResolver resolver = camelContext.adapt(ExtendedCamelContext.class).getPackageScanResourceResolver();
diff --git a/extensions-jvm/cassandraql/runtime/pom.xml b/extensions-jvm/cassandraql/runtime/pom.xml
index 04cff31..86d66ef 100644
--- a/extensions-jvm/cassandraql/runtime/pom.xml
+++ b/extensions-jvm/cassandraql/runtime/pom.xml
@@ -58,8 +58,24 @@
                     <groupId>org.ow2.asm</groupId>
                     <artifactId>asm-util</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy-json</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.groovy</groupId>
+            <artifactId>groovy-json</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index a0f9ec4..5f5467a 100644
--- a/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions-jvm/cassandraql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
 #
 ---
 name: "Camel Cassandra CQL"
-description: "Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API)"
+description: "Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API). Based on Cassandra Java Driver provided by DataStax"
 metadata:
   unlisted: true
   guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/cassandraql.html"
diff --git a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
index 7810d88..7fcda1a 100644
--- a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
+++ b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
@@ -21,6 +21,7 @@ import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import org.jboss.jandex.IndexView;
 
@@ -38,7 +39,7 @@ public class DebeziumSupportProcessor {
 
         String[] dtos = index.getKnownClasses().stream().map(ci -> ci.name().toString())
                 .filter(n -> n.startsWith("org.apache.kafka.connect.json")
-                        || n.startsWith("io.debezium.embedded.spi"))
+                        || n.startsWith("io.debezium.engine.spi"))
                 .sorted()
                 .toArray(String[]::new);
 
@@ -50,12 +51,19 @@ public class DebeziumSupportProcessor {
         return new ReflectiveClassBuildItem(false, false,
                 new String[] { "org.apache.kafka.connect.storage.FileOffsetBackingStore",
                         "org.apache.kafka.connect.storage.MemoryOffsetBackingStore",
-                        "io.debezium.relational.history.FileDatabaseHistory" });
+                        "io.debezium.relational.history.FileDatabaseHistory",
+                        "io.debezium.embedded.ConvertingEngineBuilderFactory" });
     }
 
     @BuildStep
     void addDependencies(BuildProducer<IndexDependencyBuildItem> indexDependency) {
         indexDependency.produce(new IndexDependencyBuildItem("org.apache.kafka", "connect-json"));
-        indexDependency.produce(new IndexDependencyBuildItem("io.debezium", "debezium-embedded"));
+        indexDependency.produce(new IndexDependencyBuildItem("io.debezium", "debezium-api"));
+    }
+
+    @BuildStep
+    void registerServiceProviders(BuildProducer<NativeImageResourceBuildItem> nativeImage) {
+        nativeImage.produce(
+                new NativeImageResourceBuildItem("META-INF/services/io.debezium.engine.DebeziumEngine$BuilderFactory"));
     }
 }
diff --git a/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index d9e3947..0f0a4a6 100644
--- a/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/aws-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
 #
 ---
 name: "Camel AWS S3 Storage Service"
-description: "Store and retrie objects from AWS S3 Storage Service"
+description: "Store and retrieve objects from AWS S3 Storage Service"
 metadata:
   keywords:
   - "Amazon"
diff --git a/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index ff8d18f..bfedec6 100644
--- a/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/aws2-s3/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -22,7 +22,7 @@
 #
 ---
 name: "Camel AWS 2 S3 Storage Service"
-description: "Store and retrie objects from AWS S3 Storage Service using AWS SDK version 2.x"
+description: "Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x"
 metadata:
   keywords:
   - "Amazon"
diff --git a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 1f6ddde..38a099a 100644
--- a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -29,3 +29,4 @@ metadata:
   - "integration"
   status:
   - "stable"
+  - "deprecated"
\ No newline at end of file
diff --git a/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java b/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
index 612e673..d6c3e90 100644
--- a/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
+++ b/extensions/pdf/deployment/src/main/java/org/apache/camel/quarkus/component/pdf/deployment/PdfProcessor.java
@@ -26,10 +26,30 @@ class PdfProcessor {
 
     private static final String FEATURE = "camel-pdf";
 
-    private static final String[] RUNTIME_RESOURCES = new String[] { "org/apache/pdfbox/resources/version.properties",
-            "org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc",
+    private static final String[] RUNTIME_RESOURCES = new String[] {
+            "org/apache/pdfbox/resources/version.properties",
+            "org/apache/pdfbox/resources/afm/Courier.afm",
+            "org/apache/pdfbox/resources/afm/Courier-Bold.afm",
+            "org/apache/pdfbox/resources/afm/Courier-BoldOblique.afm",
+            "org/apache/pdfbox/resources/afm/Courier-Oblique.afm",
+            "org/apache/pdfbox/resources/afm/Helvetica.afm",
+            "org/apache/pdfbox/resources/afm/Helvetica-Bold.afm",
+            "org/apache/pdfbox/resources/afm/Helvetica-BoldOblique.afm",
+            "org/apache/pdfbox/resources/afm/Helvetica-Oblique.afm",
+            "org/apache/pdfbox/resources/afm/MustRead.html",
+            "org/apache/pdfbox/resources/afm/Symbol.afm",
+            "org/apache/pdfbox/resources/afm/Times-Bold.afm",
+            "org/apache/pdfbox/resources/afm/Times-BoldItalic.afm",
+            "org/apache/pdfbox/resources/afm/Times-Italic.afm",
+            "org/apache/pdfbox/resources/afm/Times-Roman.afm",
+            "org/apache/pdfbox/resources/afm/ZapfDingbats.afm",
             "org/apache/pdfbox/resources/glyphlist/additional.txt",
-            "org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf" };
+            "org/apache/pdfbox/resources/glyphlist/glyphlist.txt",
+            "org/apache/pdfbox/resources/glyphlist/zapfdingbats.txt",
+            "org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc",
+            "org/apache/pdfbox/resources/text/BidiMirroring.txt",
+            "org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"
+    };
 
     private static final String[] RUNTIME_INITIALIZED_CLASSES = new String[] {
             "org.apache.pdfbox.pdmodel.font.PDType1Font",
@@ -43,7 +63,7 @@ class PdfProcessor {
     }
 
     @BuildStep
-    NativeImageResourceBuildItem initResources() {
+    NativeImageResourceBuildItem initResources(BuildProducer<NativeImageResourceBuildItem> nativeImageResource) {
         return new NativeImageResourceBuildItem(RUNTIME_RESOURCES);
     }
 
diff --git a/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java b/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
index 84029bc..34f58be 100644
--- a/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
+++ b/integration-tests-support/custom-routes-collector/runtime/src/main/java/org/apache/camel/quarkus/main/runtime/support/CustomRoutesCollector.java
@@ -22,6 +22,7 @@ import java.util.List;
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.main.RoutesCollector;
+import org.apache.camel.model.RouteTemplatesDefinition;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 
@@ -40,6 +41,12 @@ public class CustomRoutesCollector implements RoutesCollector {
     }
 
     @Override
+    public List<RouteTemplatesDefinition> collectXmlRouteTemplatesFromDirectory(CamelContext camelContext, String directory)
+            throws Exception {
+        return Collections.emptyList();
+    }
+
+    @Override
     public List<RestsDefinition> collectXmlRestsFromDirectory(CamelContext camelContext, String directory) throws Exception {
         return Collections.emptyList();
     }
diff --git a/pom.xml b/pom.xml
index 751f41c..f49bd71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,15 +41,17 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
         <!-- Compile dependency versions (keep sorted alphabetically) -->
-        <ahc.version>2.10.4</ahc.version>
+        <ahc.version>2.12.1</ahc.version>
         <animal-sniffer.version>1.18</animal-sniffer.version>
         <awssdk1.version>1.11.714</awssdk1.version>
         <awssdk1-swf-libs.version>1.11.22</awssdk1-swf-libs.version>
-        <awssdk2.version>2.13.33</awssdk2.version>
-        <camel.version>3.4.3</camel.version>
+        <awssdk2.version>2.14.3</awssdk2.version>
+        <bouncycastle.version>1.66</bouncycastle.version>
+        <camel.version>3.5.0</camel.version>
         <commons-beanutils.version>1.9.4</commons-beanutils.version><!-- keep in sync with Camel -->
         <commons-cli.version>1.4</commons-cli.version><!-- keep in sync with Quarkus, via quarkus-bootstrap-core -->
-        <debezium.version>1.2.0.Final</debezium.version>
+        <debezium.version>1.2.1.Final</debezium.version>
+        <elasticsearch.version>7.8.0</elasticsearch.version>
         <freemarker.version>2.3.30</freemarker.version>
         <fommil.netlib.core.version>1.1.2</fommil.netlib.core.version><!-- Mess in Weka transitive deps -->
         <github-api.version>1.111</github-api.version>
@@ -79,7 +81,7 @@
         <smallrye.reactive.messaging.camel.version>2.2.1</smallrye.reactive.messaging.camel.version>
         <soap-api.version>1.4.0</soap-api.version><!-- keep in sync with Camel -->
         <!-- Keep spring.version aligned with the version used by Camel -->
-        <spring.version>5.2.7.RELEASE</spring.version>
+        <spring.version>5.2.8.RELEASE</spring.version>
         <snakeyaml.version>1.26</snakeyaml.version>
         <threetenbp.version>1.4.0</threetenbp.version>
         <xalan.version>2.7.2</xalan.version>
@@ -117,7 +119,7 @@
         <google-auth-library-credentials.version>0.19.0</google-auth-library-credentials.version>
         <google-auth-library-oauth2-http.version>0.19.0</google-auth-library-oauth2-http.version>
         <groovy-maven-plugin.version>2.1.1</groovy-maven-plugin.version>
-        <groovy.version>3.0.4</groovy.version>
+        <groovy.version>3.0.5</groovy.version>
         <jandex-maven-plugin.version>1.0.8</jandex-maven-plugin.version>
         <os-maven-plugin.version>1.6.2</os-maven-plugin.version>
         <properties-maven-plugin.version>1.0.0</properties-maven-plugin.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index e6cbde2..8212a0e 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -4401,6 +4401,16 @@
                 <version>${ahc.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.codehaus.groovy</groupId>
+                <artifactId>groovy</artifactId>
+                <version>${groovy.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.groovy</groupId>
+                <artifactId>groovy-json</artifactId>
+                <version>${groovy.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>animal-sniffer-annotations</artifactId>
                 <version>${animal-sniffer.version}</version>


[camel-quarkus] 11/13: Fix #1664 KuduIT fails with Camel 3.5.0

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

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

commit ddc1d198cf4108e71513420662ca67d34e22213b
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 1 13:42:15 2020 +0200

    Fix #1664 KuduIT fails with Camel 3.5.0
---
 .../kudu/deployment/JBossNettyLoggerFactory.java   | 197 +++++++++
 .../component/kudu/deployment/KuduProcessor.java   | 169 ++++++++
 extensions/kudu/runtime/pom.xml                    |   5 +
 .../component/kudu/graal/EmptyByteBufStub.java     |  53 +++
 .../component/kudu/graal/NettySubstitutions.java   | 453 +++++++++++++++++++++
 .../component/kudu/graal/ZLibSubstitutions.java    |  88 ++++
 6 files changed, 965 insertions(+)

diff --git a/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/JBossNettyLoggerFactory.java b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/JBossNettyLoggerFactory.java
new file mode 100644
index 0000000..0e2520b
--- /dev/null
+++ b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/JBossNettyLoggerFactory.java
@@ -0,0 +1,197 @@
+/*
+ * 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.kudu.deployment;
+
+import org.apache.kudu.shaded.io.netty.util.internal.logging.AbstractInternalLogger;
+import org.apache.kudu.shaded.io.netty.util.internal.logging.InternalLogger;
+import org.apache.kudu.shaded.io.netty.util.internal.logging.InternalLoggerFactory;
+import org.jboss.logging.Logger;
+
+/**
+ * Adapted from
+ * https://github.com/quarkusio/quarkus/blob/master/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/JBossNettyLoggerFactory.java
+ *
+ */
+public class JBossNettyLoggerFactory extends InternalLoggerFactory {
+
+    @Override
+    protected InternalLogger newInstance(String name) {
+        return new JBossNettyInternalLogger(name);
+    }
+
+    private static final class JBossNettyInternalLogger extends AbstractInternalLogger {
+
+        final Logger log;
+
+        JBossNettyInternalLogger(String name) {
+            super(name);
+            log = Logger.getLogger(name);
+        }
+
+        @Override
+        public boolean isTraceEnabled() {
+            return log.isTraceEnabled();
+        }
+
+        @Override
+        public void trace(String msg) {
+            log.trace(msg);
+        }
+
+        @Override
+        public void trace(String format, Object arg) {
+            log.tracef(format, arg);
+        }
+
+        @Override
+        public void trace(String format, Object argA, Object argB) {
+            log.tracef(format, argA, argB);
+        }
+
+        @Override
+        public void trace(String format, Object... arguments) {
+            log.tracef(format, arguments);
+        }
+
+        @Override
+        public void trace(String msg, Throwable t) {
+            log.trace(msg, t);
+        }
+
+        @Override
+        public boolean isDebugEnabled() {
+            return log.isDebugEnabled();
+        }
+
+        @Override
+        public void debug(String msg) {
+            log.debug(msg);
+        }
+
+        @Override
+        public void debug(String format, Object arg) {
+            log.debugf(format, arg);
+        }
+
+        @Override
+        public void debug(String format, Object argA, Object argB) {
+            log.debugf(format, argA, argB);
+        }
+
+        @Override
+        public void debug(String format, Object... arguments) {
+            log.debugf(format, arguments);
+        }
+
+        @Override
+        public void debug(String msg, Throwable t) {
+            log.debug(msg, t);
+        }
+
+        @Override
+        public boolean isInfoEnabled() {
+            return log.isInfoEnabled();
+        }
+
+        @Override
+        public void info(String msg) {
+            log.info(msg);
+        }
+
+        @Override
+        public void info(String format, Object arg) {
+            log.infof(format, arg);
+        }
+
+        @Override
+        public void info(String format, Object argA, Object argB) {
+            log.infof(format, argA, argB);
+        }
+
+        @Override
+        public void info(String format, Object... arguments) {
+            log.infof(format, arguments);
+        }
+
+        @Override
+        public void info(String msg, Throwable t) {
+            log.info(msg, t);
+        }
+
+        @Override
+        public boolean isWarnEnabled() {
+            return log.isEnabled(Logger.Level.WARN);
+        }
+
+        @Override
+        public void warn(String msg) {
+            log.warn(msg);
+        }
+
+        @Override
+        public void warn(String format, Object arg) {
+            log.warnf(format, arg);
+        }
+
+        @Override
+        public void warn(String format, Object... arguments) {
+            log.warnf(format, arguments);
+        }
+
+        @Override
+        public void warn(String format, Object argA, Object argB) {
+            log.warnf(format, argA, argB);
+        }
+
+        @Override
+        public void warn(String msg, Throwable t) {
+            log.warn(msg, t);
+        }
+
+        @Override
+        public boolean isErrorEnabled() {
+            return log.isEnabled(Logger.Level.ERROR);
+        }
+
+        @Override
+        public void error(String msg) {
+            log.error(msg);
+        }
+
+        @Override
+        public void error(String format, Object arg) {
+            log.errorf(format, arg);
+        }
+
+        @Override
+        public void error(String format, Object argA, Object argB) {
+            log.errorf(format, argA, argB);
+        }
+
+        @Override
+        public void error(String format, Object... arguments) {
+            log.errorf(format, arguments);
+        }
+
+        @Override
+        public void error(String msg, Throwable t) {
+            log.error(msg, t);
+        }
+
+    }
+
+}
diff --git a/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
index d130641..56dee82 100644
--- a/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
+++ b/extensions/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
@@ -16,11 +16,27 @@
  */
 package org.apache.camel.quarkus.component.kudu.deployment;
 
+import java.util.Arrays;
+import java.util.List;
+
+import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.UnsafeAccessedFieldBuildItem;
+import org.apache.camel.quarkus.component.kudu.graal.EmptyByteBufStub;
+import org.apache.kudu.shaded.io.netty.util.internal.logging.InternalLoggerFactory;
+import org.jboss.logging.Logger;
 
 class KuduProcessor {
+    private static final Logger LOGGER = Logger.getLogger(KuduProcessor.class);
+    static {
+        InternalLoggerFactory.setDefaultFactory(new JBossNettyLoggerFactory());
+    }
 
     private static final String FEATURE = "camel-kudu";
 
@@ -34,4 +50,157 @@ class KuduProcessor {
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
 
+    @BuildStep
+    void reflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, false,
+                "org.apache.kudu.tserver.Tserver$ResourceMetricsPB",
+                "org.apache.kudu.tserver.Tserver$ResourceMetricsPB$Builder"));
+    }
+
+    /*
+     * Adapted from https://github.com/quarkusio/quarkus/blob/master/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+     */
+    @BuildStep
+    void netty(
+            BuildProducer<NativeImageConfigBuildItem> nativeImageConfig,
+            BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
+
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, false,
+                "org.apache.kudu.tserver.Tserver$ResourceMetricsPB",
+                "org.apache.kudu.tserver.Tserver$ResourceMetricsPB$Builder"));
+
+        reflectiveClass.produce(new ReflectiveClassBuildItem(false, false,
+                "org.apache.kudu.shaded.io.netty.channel.socket.nio.NioSocketChannel"));
+        reflectiveClass
+                .produce(new ReflectiveClassBuildItem(false, false,
+                        "org.apache.kudu.shaded.io.netty.channel.socket.nio.NioServerSocketChannel"));
+        reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, "java.util.LinkedHashMap"));
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, "sun.nio.ch.SelectorImpl"));
+
+        NativeImageConfigBuildItem.Builder builder = NativeImageConfigBuildItem.builder()
+                //.addNativeImageSystemProperty("io.netty.noUnsafe", "true")
+                // Use small chunks to avoid a lot of wasted space. Default is 16mb * arenas (derived from core count)
+                // Since buffers are cached to threads, the malloc overhead is temporary anyway
+                .addNativeImageSystemProperty("io.netty.allocator.maxOrder", "1")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.ConscryptAlpnSslEngine")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.ReferenceCountedOpenSslEngine")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.ReferenceCountedOpenSslContext")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.ReferenceCountedOpenSslClientContext")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.ssl.util.ThreadLocalInsecureRandom")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.buffer.ByteBufUtil$HexUtil")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.buffer.PooledByteBufAllocator")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.buffer.ByteBufAllocator")
+                .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.buffer.ByteBufUtil")
+                .addNativeImageSystemProperty("io.netty.leakDetection.level", "DISABLED");
+
+        try {
+            Class.forName("org.apache.kudu.shaded.io.netty.handler.codec.http.HttpObjectEncoder");
+            builder
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.codec.http.HttpObjectEncoder")
+                    .addRuntimeInitializedClass(
+                            "org.apache.kudu.shaded.io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder")
+                    .addRuntimeInitializedClass(
+                            "org.apache.kudu.shaded.io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder");
+        } catch (ClassNotFoundException e) {
+            //ignore
+            LOGGER.debug("Not registering Netty HTTP classes as they were not found");
+        }
+
+        try {
+            Class.forName("org.apache.kudu.shaded.io.netty.handler.codec.http2.Http2CodecUtil");
+            builder
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.codec.http2.Http2CodecUtil")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.codec.http2.Http2ClientUpgradeCodec")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.codec.http2.DefaultHttp2FrameWriter")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.handler.codec.http2.Http2ConnectionHandler");
+        } catch (ClassNotFoundException e) {
+            //ignore
+            LOGGER.debug("Not registering Netty HTTP2 classes as they were not found");
+        }
+
+        try {
+            Class.forName("org.apache.kudu.shaded.io.netty.channel.unix.UnixChannel");
+            builder.addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.unix.Errors")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.unix.FileDescriptor")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.unix.IovArray")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.unix.Limits");
+        } catch (ClassNotFoundException e) {
+            //ignore
+            LOGGER.debug("Not registering Netty native unix classes as they were not found");
+        }
+
+        try {
+            Class.forName("org.apache.kudu.shaded.io.netty.channel.epoll.EpollMode");
+            builder.addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.epoll.Epoll")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.epoll.EpollEventArray")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.epoll.EpollEventLoop")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.epoll.Native");
+        } catch (ClassNotFoundException e) {
+            //ignore
+            LOGGER.debug("Not registering Netty native epoll classes as they were not found");
+        }
+
+        try {
+            Class.forName("org.apache.kudu.shaded.io.netty.channel.kqueue.AcceptFilter");
+            builder.addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.kqueue.KQueue")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.kqueue.KQueueEventArray")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.kqueue.KQueueEventLoop")
+                    .addRuntimeInitializedClass("org.apache.kudu.shaded.io.netty.channel.kqueue.Native");
+        } catch (ClassNotFoundException e) {
+            //ignore
+            LOGGER.debug("Not registering Netty native kqueue classes as they were not found");
+        }
+
+        nativeImageConfig.produce(builder.build());
+    }
+
+    /*
+     * Adapted from https://github.com/quarkusio/quarkus/blob/master/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+     */
+    @BuildStep
+    public RuntimeReinitializedClassBuildItem nettyReinitScheduledFutureTask() {
+        return new RuntimeReinitializedClassBuildItem(
+                "org.apache.camel.quarkus.component.kudu.graal.Holder_io_netty_util_concurrent_ScheduledFutureTask");
+    }
+
+    /*
+     * Adapted from https://github.com/quarkusio/quarkus/blob/master/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+     */
+    @BuildStep
+    public List<UnsafeAccessedFieldBuildItem> nettyUnsafeAccessedFields() {
+        return Arrays.asList(
+                new UnsafeAccessedFieldBuildItem("sun.nio.ch.SelectorImpl", "selectedKeys"),
+                new UnsafeAccessedFieldBuildItem("sun.nio.ch.SelectorImpl", "publicSelectedKeys"),
+
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField",
+                        "producerIndex"),
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField",
+                        "producerLimit"),
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField",
+                        "consumerIndex"),
+
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
+                        "producerIndex"),
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
+                        "producerLimit"),
+                new UnsafeAccessedFieldBuildItem(
+                        "org.apache.kudu.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
+                        "consumerIndex"));
+    }
+
+    /*
+     * Adapted from https://github.com/quarkusio/quarkus/blob/master/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+     */
+    @BuildStep
+    RuntimeInitializedClassBuildItem nettyRuntimeInitBcryptUtil() {
+        // this holds a direct allocated byte buffer that needs to be initialised at run time
+        return new RuntimeInitializedClassBuildItem(EmptyByteBufStub.class.getName());
+    }
+
 }
diff --git a/extensions/kudu/runtime/pom.xml b/extensions/kudu/runtime/pom.xml
index ee37afd..11403aa 100644
--- a/extensions/kudu/runtime/pom.xml
+++ b/extensions/kudu/runtime/pom.xml
@@ -54,6 +54,11 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-kudu</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.graalvm.nativeimage</groupId>
+            <artifactId>svm</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/EmptyByteBufStub.java b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/EmptyByteBufStub.java
new file mode 100644
index 0000000..0bd25f9
--- /dev/null
+++ b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/EmptyByteBufStub.java
@@ -0,0 +1,53 @@
+/*
+ * 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.kudu.graal;
+
+import java.nio.ByteBuffer;
+
+import org.apache.kudu.shaded.io.netty.util.internal.PlatformDependent;
+
+/**
+ * Adapted from
+ * https://github.com/quarkusio/quarkus/blob/master/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/EmptyByteBufStub.java
+ */
+public final class EmptyByteBufStub {
+    private static final ByteBuffer EMPTY_BYTE_BUFFER = ByteBuffer.allocateDirect(0);
+    private static final long EMPTY_BYTE_BUFFER_ADDRESS;
+
+    static {
+        long emptyByteBufferAddress = 0;
+        try {
+            if (PlatformDependent.hasUnsafe()) {
+                emptyByteBufferAddress = PlatformDependent.directBufferAddress(EMPTY_BYTE_BUFFER);
+            }
+        } catch (Throwable t) {
+            // Ignore
+        }
+        EMPTY_BYTE_BUFFER_ADDRESS = emptyByteBufferAddress;
+    }
+
+    public static ByteBuffer emptyByteBuffer() {
+        return EMPTY_BYTE_BUFFER;
+    }
+
+    public static long emptyByteBufferAddress() {
+        return EMPTY_BYTE_BUFFER_ADDRESS;
+    }
+
+    private EmptyByteBufStub() {
+    }
+}
diff --git a/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/NettySubstitutions.java b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/NettySubstitutions.java
new file mode 100644
index 0000000..6a498c6
--- /dev/null
+++ b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/NettySubstitutions.java
@@ -0,0 +1,453 @@
+/*
+ * 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.kudu.graal;
+
+import java.nio.ByteBuffer;
+import java.security.PrivateKey;
+import java.security.Provider;
+import java.security.cert.X509Certificate;
+import java.util.Queue;
+import java.util.concurrent.LinkedBlockingDeque;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.TrustManagerFactory;
+
+import com.oracle.svm.core.annotate.Alias;
+import com.oracle.svm.core.annotate.RecomputeFieldValue;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import com.oracle.svm.core.jdk.JDK8OrEarlier;
+import org.apache.kudu.shaded.io.netty.bootstrap.AbstractBootstrapConfig;
+import org.apache.kudu.shaded.io.netty.bootstrap.ChannelFactory;
+import org.apache.kudu.shaded.io.netty.buffer.ByteBufAllocator;
+import org.apache.kudu.shaded.io.netty.channel.Channel;
+import org.apache.kudu.shaded.io.netty.channel.ChannelFuture;
+import org.apache.kudu.shaded.io.netty.channel.DefaultChannelPromise;
+import org.apache.kudu.shaded.io.netty.handler.ssl.ApplicationProtocolConfig;
+import org.apache.kudu.shaded.io.netty.handler.ssl.ApplicationProtocolConfig.SelectorFailureBehavior;
+import org.apache.kudu.shaded.io.netty.handler.ssl.CipherSuiteFilter;
+import org.apache.kudu.shaded.io.netty.handler.ssl.ClientAuth;
+import org.apache.kudu.shaded.io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator;
+import org.apache.kudu.shaded.io.netty.handler.ssl.JdkApplicationProtocolNegotiator;
+import org.apache.kudu.shaded.io.netty.handler.ssl.SslContext;
+import org.apache.kudu.shaded.io.netty.handler.ssl.SslProvider;
+import org.apache.kudu.shaded.io.netty.util.concurrent.GlobalEventExecutor;
+import org.apache.kudu.shaded.io.netty.util.internal.logging.InternalLoggerFactory;
+import org.apache.kudu.shaded.io.netty.util.internal.logging.JdkLoggerFactory;
+
+/**
+ * This substitution avoid having loggers added to the build.
+ * Adapted from
+ * https://github.com/quarkusio/quarkus/blob/master/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/NettySubstitutions.java
+ */
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.util.internal.logging.InternalLoggerFactory")
+final class Target_io_netty_util_internal_logging_InternalLoggerFactory {
+
+    @Substitute
+    private static InternalLoggerFactory newDefaultFactory(String name) {
+        return JdkLoggerFactory.INSTANCE;
+    }
+}
+
+// SSL
+// This whole section is mostly about removing static analysis references to openssl/tcnative
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkSslServerContext")
+final class Target_io_netty_handler_ssl_JdkSslServerContext {
+
+    @Alias
+    Target_io_netty_handler_ssl_JdkSslServerContext(Provider provider,
+            X509Certificate[] trustCertCollection, TrustManagerFactory trustManagerFactory,
+            X509Certificate[] keyCertChain, PrivateKey key, String keyPassword,
+            KeyManagerFactory keyManagerFactory, Iterable<String> ciphers, CipherSuiteFilter cipherFilter,
+            ApplicationProtocolConfig apn, long sessionCacheSize, long sessionTimeout,
+            ClientAuth clientAuth, String[] protocols, boolean startTls,
+            String keyStore)
+            throws SSLException {
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkSslClientContext")
+final class Target_io_netty_handler_ssl_JdkSslClientContext {
+
+    @Alias
+    Target_io_netty_handler_ssl_JdkSslClientContext(Provider sslContextProvider, X509Certificate[] trustCertCollection,
+            TrustManagerFactory trustManagerFactory, X509Certificate[] keyCertChain, PrivateKey key,
+            String keyPassword, KeyManagerFactory keyManagerFactory, Iterable<String> ciphers,
+            CipherSuiteFilter cipherFilter, ApplicationProtocolConfig apn, String[] protocols,
+            long sessionCacheSize, long sessionTimeout, String keyStoreType)
+            throws SSLException {
+
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.SslHandler$SslEngineType")
+final class Target_io_netty_handler_ssl_SslHandler$SslEngineType {
+
+    @Alias
+    public static Target_io_netty_handler_ssl_SslHandler$SslEngineType JDK;
+
+    @Substitute
+    static Target_io_netty_handler_ssl_SslHandler$SslEngineType forEngine(SSLEngine engine) {
+        return JDK;
+    }
+}
+//
+//@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator$AlpnWrapper", onlyWith = JDK11OrLater.class)
+//final class Target_io_netty_handler_ssl_JdkAlpnApplicationProtocolNegotiator_AlpnWrapper {
+//    @Substitute
+//    public SSLEngine wrapSslEngine(SSLEngine engine, ByteBufAllocator alloc,
+//            JdkApplicationProtocolNegotiator applicationNegotiator, boolean isServer) {
+//        return (SSLEngine) (Object) new Target_io_netty_handler_ssl_JdkAlpnSslEngine(engine, applicationNegotiator, isServer);
+//    }
+//
+//}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkAlpnApplicationProtocolNegotiator$AlpnWrapper", onlyWith = JDK8OrEarlier.class)
+final class Target_io_netty_handler_ssl_JdkAlpnApplicationProtocolNegotiator_AlpnWrapperJava8 {
+    @Substitute
+    public SSLEngine wrapSslEngine(SSLEngine engine, ByteBufAllocator alloc,
+            JdkApplicationProtocolNegotiator applicationNegotiator, boolean isServer) {
+        if (Target_io_netty_handler_ssl_JettyAlpnSslEngine.isAvailable()) {
+            return isServer
+                    ? (SSLEngine) (Object) Target_io_netty_handler_ssl_JettyAlpnSslEngine.newServerEngine(engine,
+                            applicationNegotiator)
+                    : (SSLEngine) (Object) Target_io_netty_handler_ssl_JettyAlpnSslEngine.newClientEngine(engine,
+                            applicationNegotiator);
+        }
+        throw new RuntimeException("Unable to wrap SSLEngine of type " + engine.getClass().getName());
+    }
+
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JettyAlpnSslEngine", onlyWith = JDK8OrEarlier.class)
+final class Target_io_netty_handler_ssl_JettyAlpnSslEngine {
+    @Substitute
+    static boolean isAvailable() {
+        return false;
+    }
+
+    @Substitute
+    static Target_io_netty_handler_ssl_JettyAlpnSslEngine newClientEngine(SSLEngine engine,
+            JdkApplicationProtocolNegotiator applicationNegotiator) {
+        return null;
+    }
+
+    @Substitute
+    static Target_io_netty_handler_ssl_JettyAlpnSslEngine newServerEngine(SSLEngine engine,
+            JdkApplicationProtocolNegotiator applicationNegotiator) {
+        return null;
+    }
+}
+//
+//@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkAlpnSslEngine", onlyWith = JDK11OrLater.class)
+//final class Target_io_netty_handler_ssl_JdkAlpnSslEngine {
+//    @Alias
+//    Target_io_netty_handler_ssl_JdkAlpnSslEngine(final SSLEngine engine,
+//            final JdkApplicationProtocolNegotiator applicationNegotiator, final boolean isServer) {
+//
+//    }
+//}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.SslContext")
+final class Target_io_netty_handler_ssl_SslContext {
+
+    @Substitute
+    static SslContext newServerContextInternal(SslProvider provider,
+            Provider sslContextProvider,
+            X509Certificate[] trustCertCollection, TrustManagerFactory trustManagerFactory,
+            X509Certificate[] keyCertChain, PrivateKey key, String keyPassword, KeyManagerFactory keyManagerFactory,
+            Iterable<String> ciphers, CipherSuiteFilter cipherFilter, ApplicationProtocolConfig apn,
+            long sessionCacheSize, long sessionTimeout, ClientAuth clientAuth, String[] protocols, boolean startTls,
+            boolean enableOcsp, String keyStoreType)
+            throws SSLException {
+
+        if (enableOcsp) {
+            throw new IllegalArgumentException("OCSP is not supported with this SslProvider: " + provider);
+        }
+        return (SslContext) (Object) new Target_io_netty_handler_ssl_JdkSslServerContext(sslContextProvider,
+                trustCertCollection, trustManagerFactory, keyCertChain, key, keyPassword,
+                keyManagerFactory, ciphers, cipherFilter, apn, sessionCacheSize, sessionTimeout,
+                clientAuth, protocols, startTls, keyStoreType);
+    }
+
+    @Substitute
+    static SslContext newClientContextInternal(
+            SslProvider provider,
+            Provider sslContextProvider,
+            X509Certificate[] trustCert, TrustManagerFactory trustManagerFactory,
+            X509Certificate[] keyCertChain, PrivateKey key, String keyPassword, KeyManagerFactory keyManagerFactory,
+            Iterable<String> ciphers, CipherSuiteFilter cipherFilter, ApplicationProtocolConfig apn, String[] protocols,
+            long sessionCacheSize, long sessionTimeout, boolean enableOcsp, String keyStoreType) throws SSLException {
+        if (enableOcsp) {
+            throw new IllegalArgumentException("OCSP is not supported with this SslProvider: " + provider);
+        }
+        return (SslContext) (Object) new Target_io_netty_handler_ssl_JdkSslClientContext(sslContextProvider,
+                trustCert, trustManagerFactory, keyCertChain, key, keyPassword,
+                keyManagerFactory, ciphers, cipherFilter, apn, protocols, sessionCacheSize,
+                sessionTimeout, keyStoreType);
+    }
+
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkDefaultApplicationProtocolNegotiator")
+final class Target_io_netty_handler_ssl_JdkDefaultApplicationProtocolNegotiator {
+
+    @Alias
+    public static Target_io_netty_handler_ssl_JdkDefaultApplicationProtocolNegotiator INSTANCE;
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.ssl.JdkSslContext")
+final class Target_io_netty_handler_ssl_JdkSslContext {
+
+    @Substitute
+    static JdkApplicationProtocolNegotiator toNegotiator(ApplicationProtocolConfig config, boolean isServer) {
+        if (config == null) {
+            return (JdkApplicationProtocolNegotiator) (Object) Target_io_netty_handler_ssl_JdkDefaultApplicationProtocolNegotiator.INSTANCE;
+        }
+
+        switch (config.protocol()) {
+        case NONE:
+            return (JdkApplicationProtocolNegotiator) (Object) Target_io_netty_handler_ssl_JdkDefaultApplicationProtocolNegotiator.INSTANCE;
+        case ALPN:
+            if (isServer) {
+                // GRAAL RC9 bug: https://github.com/oracle/graal/issues/813
+                //                switch(config.selectorFailureBehavior()) {
+                //                case FATAL_ALERT:
+                //                    return new JdkAlpnApplicationProtocolNegotiator(true, config.supportedProtocols());
+                //                case NO_ADVERTISE:
+                //                    return new JdkAlpnApplicationProtocolNegotiator(false, config.supportedProtocols());
+                //                default:
+                //                    throw new UnsupportedOperationException(new StringBuilder("JDK provider does not support ")
+                //                    .append(config.selectorFailureBehavior()).append(" failure behavior").toString());
+                //                }
+                SelectorFailureBehavior behavior = config.selectorFailureBehavior();
+                if (behavior == SelectorFailureBehavior.FATAL_ALERT)
+                    return new JdkAlpnApplicationProtocolNegotiator(true, config.supportedProtocols());
+                else if (behavior == SelectorFailureBehavior.NO_ADVERTISE)
+                    return new JdkAlpnApplicationProtocolNegotiator(false, config.supportedProtocols());
+                else {
+                    throw new UnsupportedOperationException(new StringBuilder("JDK provider does not support ")
+                            .append(config.selectorFailureBehavior()).append(" failure behavior").toString());
+                }
+            } else {
+                switch (config.selectedListenerFailureBehavior()) {
+                case ACCEPT:
+                    return new JdkAlpnApplicationProtocolNegotiator(false, config.supportedProtocols());
+                case FATAL_ALERT:
+                    return new JdkAlpnApplicationProtocolNegotiator(true, config.supportedProtocols());
+                default:
+                    throw new UnsupportedOperationException(new StringBuilder("JDK provider does not support ")
+                            .append(config.selectedListenerFailureBehavior()).append(" failure behavior").toString());
+                }
+            }
+        default:
+            throw new UnsupportedOperationException(
+                    new StringBuilder("JDK provider does not support ").append(config.protocol()).append(" protocol")
+                            .toString());
+        }
+    }
+
+}
+
+/*
+ * This one only prints exceptions otherwise we get a useless bogus
+ * exception message: https://github.com/eclipse-vertx/vert.x/issues/1657
+ */
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.bootstrap.AbstractBootstrap")
+final class Target_io_netty_bootstrap_AbstractBootstrap {
+
+    @Alias
+    private ChannelFactory channelFactory;
+
+    @Alias
+    void init(Channel channel) throws Exception {
+    }
+
+    @Alias
+    public AbstractBootstrapConfig config() {
+        return null;
+    }
+
+    @Substitute
+    final ChannelFuture initAndRegister() {
+        Channel channel = null;
+        try {
+            channel = channelFactory.newChannel();
+            init(channel);
+        } catch (Throwable t) {
+            // THE FIX IS HERE:
+            t.printStackTrace();
+            if (channel != null) {
+                // channel can be null if newChannel crashed (eg SocketException("too many open files"))
+                channel.unsafe().closeForcibly();
+            }
+            // as the Channel is not registered yet we need to force the usage of the GlobalEventExecutor
+            return new DefaultChannelPromise(channel, GlobalEventExecutor.INSTANCE).setFailure(t);
+        }
+
+        ChannelFuture regFuture = config().group().register(channel);
+        if (regFuture.cause() != null) {
+            if (channel.isRegistered()) {
+                channel.close();
+            } else {
+                channel.unsafe().closeForcibly();
+            }
+        }
+
+        // If we are here and the promise is not failed, it's one of the following cases:
+        // 1) If we attempted registration from the event loop, the registration has been completed at this point.
+        //    i.e. It's safe to attempt bind() or connect() now because the channel has been registered.
+        // 2) If we attempted registration from the other thread, the registration request has been successfully
+        //    added to the event loop's task queue for later execution.
+        //    i.e. It's safe to attempt bind() or connect() now:
+        //         because bind() or connect() will be executed *after* the scheduled registration task is executed
+        //         because register(), bind(), and connect() are all bound to the same thread.
+
+        return regFuture;
+
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.channel.nio.NioEventLoop")
+final class Target_io_netty_channel_nio_NioEventLoop {
+
+    @Substitute
+    private static Queue<Runnable> newTaskQueue0(int maxPendingTasks) {
+        return new LinkedBlockingDeque<>();
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.buffer.AbstractReferenceCountedByteBuf")
+final class Target_io_netty_buffer_AbstractReferenceCountedByteBuf {
+
+    @Alias
+    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FieldOffset, name = "refCnt")
+    private static long REFCNT_FIELD_OFFSET;
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.util.AbstractReferenceCounted")
+final class Target_io_netty_util_AbstractReferenceCounted {
+
+    @Alias
+    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FieldOffset, name = "refCnt")
+    private static long REFCNT_FIELD_OFFSET;
+}
+
+// This class is runtime-initialized by NettyProcessor
+final class Holder_io_netty_util_concurrent_ScheduledFutureTask {
+    static final long START_TIME = System.nanoTime();
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.util.concurrent.ScheduledFutureTask")
+final class Target_io_netty_util_concurrent_ScheduledFutureTask {
+
+    // The START_TIME field is kept but not used.
+    // All the accesses to it have been replaced with Holder_io_netty_util_concurrent_ScheduledFutureTask
+
+    @Substitute
+    static long initialNanoTime() {
+        return Holder_io_netty_util_concurrent_ScheduledFutureTask.START_TIME;
+    }
+
+    @Substitute
+    static long nanoTime() {
+        return System.nanoTime() - Holder_io_netty_util_concurrent_ScheduledFutureTask.START_TIME;
+    }
+
+    @Alias
+    public long deadlineNanos() {
+        return 0;
+    }
+
+    @Substitute
+    public long delayNanos(long currentTimeNanos) {
+        return Math.max(0,
+                deadlineNanos() - (currentTimeNanos - Holder_io_netty_util_concurrent_ScheduledFutureTask.START_TIME));
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.channel.ChannelHandlerMask")
+final class Target_io_netty_channel_ChannelHandlerMask {
+
+    // Netty tries to self-optimized itself, but it requires lots of reflection. We disable this behavior and avoid
+    // misleading DEBUG messages in the log.
+    @Substitute
+    private static boolean isSkippable(final Class<?> handlerType, final String methodName, final Class... paramTypes) {
+        return false;
+    }
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.util.internal.NativeLibraryLoader")
+final class Target_io_netty_util_internal_NativeLibraryLoader {
+
+    // This method can trick GraalVM into thinking that Classloader#defineClass is getting called
+    @Substitute
+    static Class<?> tryToLoadClass(final ClassLoader loader, final Class<?> helper)
+            throws ClassNotFoundException {
+        return Class.forName(helper.getName(), false, loader);
+    }
+
+}
+
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.buffer.EmptyByteBuf")
+final class Target_io_netty_buffer_EmptyByteBuf {
+
+    @Alias
+    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+    private static ByteBuffer EMPTY_BYTE_BUFFER;
+
+    @Alias
+    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+    private static long EMPTY_BYTE_BUFFER_ADDRESS;
+
+    @Substitute
+    public ByteBuffer nioBuffer() {
+        return EmptyByteBufStub.emptyByteBuffer();
+    }
+
+    @Substitute
+    public ByteBuffer[] nioBuffers() {
+        return new ByteBuffer[] { EmptyByteBufStub.emptyByteBuffer() };
+    }
+
+    @Substitute
+    public ByteBuffer internalNioBuffer(int index, int length) {
+        return EmptyByteBufStub.emptyByteBuffer();
+    }
+
+    @Substitute
+    public boolean hasMemoryAddress() {
+        return EmptyByteBufStub.emptyByteBufferAddress() != 0;
+    }
+
+    @Substitute
+    public long memoryAddress() {
+        if (hasMemoryAddress()) {
+            return EmptyByteBufStub.emptyByteBufferAddress();
+        } else {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+}
+
+class NettySubstitutions {
+
+}
diff --git a/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/ZLibSubstitutions.java b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/ZLibSubstitutions.java
new file mode 100644
index 0000000..9e80749
--- /dev/null
+++ b/extensions/kudu/runtime/src/main/java/org/apache/camel/quarkus/component/kudu/graal/ZLibSubstitutions.java
@@ -0,0 +1,88 @@
+/*
+ * 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.kudu.graal;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.kudu.shaded.io.netty.handler.codec.compression.JdkZlibDecoder;
+import org.apache.kudu.shaded.io.netty.handler.codec.compression.JdkZlibEncoder;
+import org.apache.kudu.shaded.io.netty.handler.codec.compression.ZlibDecoder;
+import org.apache.kudu.shaded.io.netty.handler.codec.compression.ZlibEncoder;
+import org.apache.kudu.shaded.io.netty.handler.codec.compression.ZlibWrapper;
+
+/**
+ * This substitution avoid having jcraft zlib added to the build
+ * Adapted from
+ * https://github.com/quarkusio/quarkus/blob/master/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/ZLibSubstitutions.java
+ */
+@TargetClass(className = "org.apache.kudu.shaded.io.netty.handler.codec.compression.ZlibCodecFactory")
+final class Target_io_netty_handler_codec_compression_ZlibCodecFactory {
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(int compressionLevel) {
+        return new JdkZlibEncoder(compressionLevel);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(ZlibWrapper wrapper) {
+        return new JdkZlibEncoder(wrapper);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(ZlibWrapper wrapper, int compressionLevel) {
+        return new JdkZlibEncoder(wrapper, compressionLevel);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(ZlibWrapper wrapper, int compressionLevel, int windowBits, int memLevel) {
+        return new JdkZlibEncoder(wrapper, compressionLevel);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(byte[] dictionary) {
+        return new JdkZlibEncoder(dictionary);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(int compressionLevel, byte[] dictionary) {
+        return new JdkZlibEncoder(compressionLevel, dictionary);
+    }
+
+    @Substitute
+    public static ZlibEncoder newZlibEncoder(int compressionLevel, int windowBits, int memLevel, byte[] dictionary) {
+        return new JdkZlibEncoder(compressionLevel, dictionary);
+    }
+
+    @Substitute
+    public static ZlibDecoder newZlibDecoder() {
+        return new JdkZlibDecoder();
+    }
+
+    @Substitute
+    public static ZlibDecoder newZlibDecoder(ZlibWrapper wrapper) {
+        return new JdkZlibDecoder(wrapper);
+    }
+
+    @Substitute
+    public static ZlibDecoder newZlibDecoder(byte[] dictionary) {
+        return new JdkZlibDecoder(dictionary);
+    }
+}
+
+class ZLibSubstitutions {
+
+}


[camel-quarkus] 03/13: Add ArangoDB component extension #1533

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

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

commit 09cc88287ddb6300d34faa226f625debe63a127d
Author: Zineb Bendhiba <be...@gmail.com>
AuthorDate: Tue Aug 18 09:41:58 2020 +0200

    Add ArangoDB component extension #1533
---
 catalog/pom.xml                                    |   1 +
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/arangodb.adoc  |  29 ++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions/arangodb/deployment/pom.xml             |  63 +++++++++
 .../arangodb/deployment/ArangodbProcessor.java     |  30 ++++
 extensions/arangodb/pom.xml                        |  39 ++++++
 extensions/arangodb/runtime/pom.xml                |  94 +++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 +++++
 extensions/pom.xml                                 |   1 +
 integration-tests/arangodb/pom.xml                 | 131 ++++++++++++++++++
 .../component/arangodb/it/ArangodbResource.java    | 143 +++++++++++++++++++
 .../quarkus/component/arangodb/it/ArangodbIT.java  |  24 ++++
 .../component/arangodb/it/ArangodbTest.java        | 152 +++++++++++++++++++++
 .../arangodb/it/ArangodbTestResource.java          |  71 ++++++++++
 integration-tests/pom.xml                          |   1 +
 poms/bom/pom.xml                                   |  15 ++
 tooling/scripts/test-categories.yaml               |   1 +
 19 files changed, 833 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index d286eda..c64a753 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -43,6 +43,7 @@
             camel-quarkus-ahc-ws
             camel-quarkus-amqp
             camel-quarkus-apns
+            camel-quarkus-arangodb
             camel-quarkus-asterisk
             camel-quarkus-atmos
             camel-quarkus-atom
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 68830af..e5e414b 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -18,6 +18,7 @@
 *** xref:reference/extensions/activemq.adoc[ActiveMQ]
 *** xref:reference/extensions/amqp.adoc[AMQP]
 *** xref:reference/extensions/apns.adoc[APNS]
+*** xref:reference/extensions/arangodb.adoc[ArangoDb]
 *** xref:reference/extensions/asterisk.adoc[Asterisk]
 *** xref:reference/extensions/ahc.adoc[Async HTTP Client (AHC)]
 *** xref:reference/extensions/ahc-ws.adoc[Async HTTP Client (AHC) Websocket]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index c6d3f04..5ea5ced 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -19,6 +19,9 @@ Stable | 1.0.0 | Messaging with AMQP protocol using Apache QPid Client.
 | xref:reference/extensions/apns.adoc[APNS] | [.camel-element-artifact]##camel-quarkus-apns## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send notifications to Apple iOS devices.
 
+| xref:reference/extensions/arangodb.adoc[ArangoDb] | [.camel-element-artifact]##camel-quarkus-arangodb## | [.camel-element-Native]##Native## +
+Stable | 1.1.0 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
+
 | xref:reference/extensions/asterisk.adoc[Asterisk] | [.camel-element-artifact]##camel-quarkus-asterisk## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with Asterisk PBX Server.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/arangodb.adoc b/docs/modules/ROOT/pages/reference/extensions/arangodb.adoc
new file mode 100644
index 0000000..16b937c
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/arangodb.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[arangodb]]
+= ArangoDb
+:page-aliases: extensions/arangodb.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
+
+Perform operations on ArangoDb documents, collections and graphs.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/arangodb-component.html[ArangoDb component], URI syntax: `arangodb:database`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-arangodb</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 76670d0..76e9a03 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -32,6 +32,9 @@ Stable | 1.0.0 | Messaging with AMQP protocol using Apache QPid Client.
 |  xref:reference/extensions/apns.adoc[APNS]  | camel-quarkus-apns | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send notifications to Apple iOS devices.
 
+|  xref:reference/extensions/arangodb.adoc[ArangoDb]  | camel-quarkus-arangodb | [.camel-element-Native]##Native## +
+Stable | 1.1.0 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
+
 |  xref:reference/extensions/asterisk.adoc[Asterisk]  | camel-quarkus-asterisk | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with Asterisk PBX Server.
 
diff --git a/extensions/arangodb/deployment/pom.xml b/extensions/arangodb/deployment/pom.xml
new file mode 100644
index 0000000..4bdd196
--- /dev/null
+++ b/extensions/arangodb/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-arangodb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-arangodb-deployment</artifactId>
+    <name>Camel Quarkus :: ArangoDb :: Deployment</name>
+
+    <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-arangodb</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/arangodb/deployment/src/main/java/org/apache/camel/quarkus/component/arangodb/deployment/ArangodbProcessor.java b/extensions/arangodb/deployment/src/main/java/org/apache/camel/quarkus/component/arangodb/deployment/ArangodbProcessor.java
new file mode 100644
index 0000000..c98ae1a
--- /dev/null
+++ b/extensions/arangodb/deployment/src/main/java/org/apache/camel/quarkus/component/arangodb/deployment/ArangodbProcessor.java
@@ -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.
+ */
+package org.apache.camel.quarkus.component.arangodb.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class ArangodbProcessor {
+
+    private static final String FEATURE = "camel-arangodb";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+}
diff --git a/extensions/arangodb/pom.xml b/extensions/arangodb/pom.xml
new file mode 100644
index 0000000..9c247e7
--- /dev/null
+++ b/extensions/arangodb/pom.xml
@@ -0,0 +1,39 @@
+<?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-arangodb-parent</artifactId>
+    <name>Camel Quarkus :: ArangoDb</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/arangodb/runtime/pom.xml b/extensions/arangodb/runtime/pom.xml
new file mode 100644
index 0000000..a21eb09
--- /dev/null
+++ b/extensions/arangodb/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-arangodb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-arangodb</artifactId>
+    <name>Camel Quarkus :: ArangoDb :: Runtime</name>
+    <description>Perform operations on ArangoDb documents, collections and graphs.</description>
+
+    <properties>
+        <firstVersion>1.1.0</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-arangodb</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <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/arangodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/arangodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..c7b1a0d
--- /dev/null
+++ b/extensions/arangodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel ArangoDb"
+description: "Perform operations on ArangoDb documents, collections and graphs"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/arangodb.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index cbb129b..dc708c9 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -37,6 +37,7 @@
         <module>ahc</module>
         <module>ahc-ws</module>
         <module>amqp</module>
+        <module>arangodb</module>
         <module>attachments</module>
         <module>avro</module>
         <module>aws-ec2</module>
diff --git a/integration-tests/arangodb/pom.xml b/integration-tests/arangodb/pom.xml
new file mode 100644
index 0000000..43c78bd
--- /dev/null
+++ b/integration-tests/arangodb/pom.xml
@@ -0,0 +1,131 @@
+<?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-integration-tests</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-arangodb</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: ArangoDb</name>
+    <description>Integration tests for Camel Quarkus ArangoDb 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-arangodb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-arangodb</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>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-testcontainers-support</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>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java b/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java
new file mode 100644
index 0000000..0f89335
--- /dev/null
+++ b/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java
@@ -0,0 +1,143 @@
+/*
+ * 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.arangodb.it;
+
+import java.net.URI;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import com.arangodb.entity.DocumentCreateEntity;
+import com.arangodb.entity.DocumentDeleteEntity;
+import com.arangodb.util.MapBuilder;
+import org.apache.camel.ProducerTemplate;
+import org.jboss.logging.Logger;
+
+import static org.apache.camel.component.arangodb.ArangoDbConstants.AQL_QUERY;
+import static org.apache.camel.component.arangodb.ArangoDbConstants.AQL_QUERY_BIND_PARAMETERS;
+import static org.apache.camel.component.arangodb.ArangoDbConstants.AQL_QUERY_OPTIONS;
+import static org.apache.camel.component.arangodb.ArangoDbConstants.ARANGO_KEY;
+import static org.apache.camel.component.arangodb.ArangoDbConstants.RESULT_CLASS_TYPE;
+
+@Path("/arangodb/camel")
+@ApplicationScoped
+public class ArangodbResource {
+
+    private static final Logger LOG = Logger.getLogger(ArangodbResource.class);
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @PUT
+    @Consumes(MediaType.TEXT_PLAIN)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response put(String message) throws Exception {
+        LOG.infof("Saving to arangodb: %s", message);
+        final DocumentCreateEntity response = producerTemplate.requestBody(
+                "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=SAVE_DOCUMENT",
+                message, DocumentCreateEntity.class);
+        LOG.infof("Got response from arangodb: %s", response);
+        return Response
+                .created(new URI("https://camel.apache.org/"))
+                .entity(response.getKey())
+                .build();
+    }
+
+    @Path("{key}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response get(@PathParam("key") String key) throws Exception {
+        LOG.infof("Retrieve document from arangodb with key: %s", key);
+        final String response = producerTemplate.requestBodyAndHeader(
+                "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=FIND_DOCUMENT_BY_KEY",
+                key, RESULT_CLASS_TYPE, String.class, String.class);
+        LOG.infof("Got response from arangodb: %s", response);
+        return Response
+                .ok()
+                .entity(response)
+                .build();
+    }
+
+    @Path("{key}")
+    @DELETE
+    public Response delete(@PathParam("key") String key) throws Exception {
+        LOG.infof("Delete document from arangodb with key : %s", key);
+        producerTemplate.requestBody(
+                "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=DELETE_DOCUMENT",
+                key, DocumentDeleteEntity.class);
+
+        return Response
+                .ok()
+                .build();
+    }
+
+    @Path("{key}")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    public Response post(@PathParam("key") String key, String msg) throws Exception {
+        LOG.infof("Update document from arangodb with key : %s", key);
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(RESULT_CLASS_TYPE, String.class);
+        headers.put(ARANGO_KEY, key);
+
+        producerTemplate.requestBodyAndHeaders(
+                "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=UPDATE_DOCUMENT",
+                msg, headers, String.class);
+        return Response
+                .ok()
+                .build();
+    }
+
+    @Path("/foo/{fooName}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response getByFooName(@PathParam("fooName") String fooName) throws Exception {
+        LOG.infof("Retrieve document from arangodb with foo: %s", fooName);
+
+        String query = "FOR t IN camel FILTER t.foo == @foo RETURN t";
+        Map<String, Object> bindVars = new MapBuilder().put("foo", fooName)
+                .get();
+
+        Map<String, Object> headers = new HashMap<>();
+        headers.put(AQL_QUERY, query);
+        headers.put(AQL_QUERY_BIND_PARAMETERS, bindVars);
+        headers.put(AQL_QUERY_OPTIONS, null);
+        headers.put(RESULT_CLASS_TYPE, String.class);
+
+        final Collection<String> responseList = producerTemplate.requestBodyAndHeaders(
+                "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&operation=AQL_QUERY",
+                fooName, headers, Collection.class);
+
+        return Response
+                .ok()
+                .entity(responseList.toString())
+                .build();
+    }
+}
diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java
new file mode 100644
index 0000000..8e86006
--- /dev/null
+++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java
@@ -0,0 +1,24 @@
+/*
+ * 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.arangodb.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+class ArangodbIT extends ArangodbTest {
+
+}
diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
new file mode 100644
index 0000000..96a86ec
--- /dev/null
+++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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.arangodb.it;
+
+import com.arangodb.ArangoCollection;
+import com.arangodb.ArangoDB;
+import com.arangodb.ArangoDatabase;
+import com.arangodb.entity.BaseDocument;
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.Response;
+import io.restassured.specification.RequestSpecification;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@QuarkusTest
+@QuarkusTestResource(ArangodbTestResource.class)
+class ArangodbTest {
+    protected static final String DATABASE_NAME = "test";
+    protected static final String COLLECTION_NAME = "camel";
+    protected static ArangoDB arangoDb;
+    protected static ArangoCollection collection;
+
+    @Test
+    public void testCreateGetDeleteDocument() {
+        // create a new document
+        RequestSpecification request = RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body("{\"foo\":\"bar\"}");
+        Response response = request.put("/arangodb/camel");
+
+        int statusCode = response.getStatusCode();
+        assertEquals(201, statusCode);
+        // getting key of the document inserted
+        String key = response.body().asString().trim();
+
+        // get the document by key
+        request = RestAssured.given()
+                .contentType(ContentType.TEXT);
+        response = request.get("/arangodb/camel/" + key);
+        statusCode = response.getStatusCode();
+        assertEquals(200, statusCode);
+        String document = response.body().asString().trim();
+        assertTrue(document.contains("\"foo\":\"bar\""));
+
+        // delete document
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .delete("/arangodb/camel/" + key)
+                .then()
+                .statusCode(200);
+
+        // search for the document deleted
+        BaseDocument documentDeleted = collection.getDocument(key, BaseDocument.class);
+        assertNull(documentDeleted);
+    }
+
+    @Test
+    public void testUpdateDocument() {
+        // insert one Document
+        BaseDocument myObject = new BaseDocument();
+        myObject.setKey("myKey");
+        myObject.addAttribute("foo", "bar");
+        collection.insertDocument(myObject);
+
+        // udpate document
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body("{\"key\":\"myKey\",\"foo\":\"hello\", \"gg\":\"42\"}")
+                .post("/arangodb/camel/myKey")
+                .then()
+                .statusCode(200);
+
+        // get document by key
+        RequestSpecification request = RestAssured.given()
+                .contentType(ContentType.TEXT);
+        Response response = request.get("/arangodb/camel/myKey");
+        assertEquals(200, response.getStatusCode());
+        String document = response.body().asString().trim();
+        assertTrue(document.contains("\"foo\":\"hello\""));
+        assertTrue(document.contains("\"gg\":\"42\""));
+    }
+
+    @Test
+    public void testAQLQuery() {
+        // insert first Document
+        BaseDocument myObject1 = new BaseDocument();
+        myObject1.setKey("keyBar1");
+        myObject1.addAttribute("foo", "bar1");
+        collection.insertDocument(myObject1);
+
+        // insert second Document
+        BaseDocument myObject2 = new BaseDocument();
+        myObject2.setKey("keyBar2");
+        myObject2.addAttribute("foo", "bar2");
+        collection.insertDocument(myObject2);
+
+        // get document with foo = bar1
+        RequestSpecification request = RestAssured.given()
+                .contentType(ContentType.TEXT);
+        Response response = request.get("/arangodb/camel/foo/bar1");
+        assertEquals(200, response.getStatusCode());
+        String result = response.body().asString();
+        assertTrue(result.contains("\"_key\":\"keyBar1\""));
+
+        //get document with foo = bar2
+        request = RestAssured.given()
+                .contentType(ContentType.TEXT);
+        response = request.get("/arangodb/camel/foo/bar2");
+        assertEquals(200, response.getStatusCode());
+        result = response.body().asString().trim();
+        assertTrue(result.contains("\"_key\":\"keyBar2\""));
+    }
+
+    @BeforeAll
+    public static void setup() {
+        String host = System.getProperty("camel.arangodb.host");
+        Integer port = Integer.valueOf(System.getProperty("camel.arangodb.port"));
+        arangoDb = new ArangoDB.Builder().host(host, port).build();
+        arangoDb.createDatabase(DATABASE_NAME);
+        ArangoDatabase arangoDatabase = arangoDb.db(DATABASE_NAME);
+        arangoDatabase.createCollection(COLLECTION_NAME);
+        collection = arangoDatabase.collection(COLLECTION_NAME);
+    }
+
+    @AfterAll
+    public static void teardown() {
+        arangoDb.shutdown();
+    }
+
+}
diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
new file mode 100644
index 0000000..beb6a64
--- /dev/null
+++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java
@@ -0,0 +1,71 @@
+/*
+ * 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.arangodb.it;
+
+import java.util.Map;
+
+import org.apache.camel.quarkus.testcontainers.ContainerResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.utility.TestcontainersConfiguration;
+
+public class ArangodbTestResource implements ContainerResourceLifecycleManager {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ArangodbTestResource.class);
+    private GenericContainer container;
+    private static final String CONTAINER_NAME = "arango";
+    private static final String ARANGO_IMAGE = "arangodb:latest";
+    private static final String ARANGO_NO_AUTH = "ARANGO_NO_AUTH";
+    private static final Integer PORT_DEFAULT = 8529;
+
+    @Override
+    public Map<String, String> start() {
+        LOGGER.info(TestcontainersConfiguration.getInstance().toString());
+
+        try {
+            container = new GenericContainer(ARANGO_IMAGE)
+                    .withExposedPorts(PORT_DEFAULT)
+                    .withEnv(ARANGO_NO_AUTH, "1")
+                    .withNetworkAliases(CONTAINER_NAME)
+                    .waitingFor(Wait.forListeningPort());
+
+            container.start();
+
+            return CollectionHelper.mapOf(
+                    "camel.arangodb.port",
+                    container.getMappedPort(PORT_DEFAULT).toString(),
+                    "camel.arangodb.host",
+                    container.getContainerIpAddress());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public void stop() {
+        try {
+            if (container != null) {
+                container.stop();
+            }
+        } catch (Exception e) {
+            // ignored
+        }
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index e114178..588d462 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -66,6 +66,7 @@
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>activemq</module>
         <module>amqp</module>
+        <module>arangodb</module>
         <module>avro</module>
         <module>aws</module>
         <module>aws2</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 293293c..2e8333b 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -136,6 +136,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-arangodb</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-asterisk</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1680,6 +1685,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-arangodb</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-arangodb-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-asterisk</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 830feb5..5c800ad 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -44,6 +44,7 @@ database:
   - kudu
   - mongodb
   - sql
+  - arangodb
 dataformats:
   - avro
   - base64


[camel-quarkus] 12/13: Add Camel 3.5.0 staging repo temporarily

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

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

commit d043ed7c39c31f1abfbffeb28ef5f1d7b70f9aea
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Wed Sep 2 09:09:52 2020 +0200

    Add Camel 3.5.0 staging repo temporarily
---
 pom.xml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/pom.xml b/pom.xml
index f49bd71..8ddc921 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,6 +206,17 @@
 
     <repositories>
         <repository>
+            <id>camel.next.staging</id>
+            <url>https://repository.apache.org/content/repositories/orgapachecamel-1243/</url>
+            <name>Camel 3.5.0 Staging Repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
+        <repository>
             <id>apache.snapshots</id>
             <url>https://repository.apache.org/snapshots/</url>
             <name>Apache Snapshot Repo</name>
@@ -219,6 +230,17 @@
     </repositories>
     <pluginRepositories>
         <pluginRepository>
+            <id>camel.next.staging</id>
+            <url>https://repository.apache.org/content/repositories/orgapachecamel-1243/</url>
+            <name>Camel 3.5.0 Staging Repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </pluginRepository>
+        <pluginRepository>
             <id>apache.snapshots</id>
             <url>https://repository.apache.org/snapshots/</url>
             <snapshots>


[camel-quarkus] 09/13: Add route template integration test

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

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

commit 882a0e52f8abd37fa63d4aa19897baef3418b328
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 26 13:57:29 2020 +0200

    Add route template integration test
---
 integration-tests/core/pom.xml                     |  4 ++++
 .../apache/camel/quarkus/core/CoreResource.java    | 15 ++++++++++++
 .../camel/quarkus/core/CoreTemplateRoutes.java     | 28 ++++++++++++++++++++++
 .../org/apache/camel/quarkus/core/CoreTest.java    | 11 ++++++---
 4 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/integration-tests/core/pom.xml b/integration-tests/core/pom.xml
index 85ef4f3..90a75d3 100644
--- a/integration-tests/core/pom.xml
+++ b/integration-tests/core/pom.xml
@@ -42,6 +42,10 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-log</artifactId>
         </dependency>
         <dependency>
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
index 34ee80e..44329de 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
@@ -41,6 +41,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.Route;
 import org.apache.camel.builder.LambdaRouteBuilder;
+import org.apache.camel.builder.TemplatedRouteBuilder;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.component.log.LogComponent;
 import org.apache.camel.model.ModelCamelContext;
@@ -85,6 +86,20 @@ public class CoreResource {
         return context.getRoutes().stream().map(Route::getId).sorted().collect(Collectors.joining(","));
     }
 
+    @Path("/routes/template/{id}/{greeting}")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String routeTemplate(@PathParam("id") String id, @PathParam("greeting") String greeting) {
+        String uuid = context.getUuidGenerator().generateUuid();
+        TemplatedRouteBuilder.builder(context, id)
+                .routeId(uuid)
+                .parameter("uuid", uuid)
+                .parameter("greeting", greeting)
+                .add();
+
+        return context.createFluentProducerTemplate().toF("direct:%s", uuid).request(String.class);
+    }
+
     @Path("/registry/lookup-registry")
     @GET
     @Produces(MediaType.TEXT_PLAIN)
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreTemplateRoutes.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreTemplateRoutes.java
new file mode 100644
index 0000000..1a5ad43
--- /dev/null
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreTemplateRoutes.java
@@ -0,0 +1,28 @@
+/*
+ * 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.core;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class CoreTemplateRoutes extends RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        routeTemplate("myTemplate").templateParameter("uuid").templateParameter("greeting")
+                .from("direct:{{uuid}}")
+                .transform().constant("Hello {{greeting}}");
+    }
+}
diff --git a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
index f45b7f0..e4ae286 100644
--- a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
+++ b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
@@ -25,8 +25,7 @@ import io.restassured.response.Response;
 import org.apache.camel.support.DefaultLRUCacheFactory;
 import org.junit.jupiter.api.Test;
 
-import static org.hamcrest.Matchers.emptyOrNullString;
-import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.*;
 import static org.hamcrest.core.IsNot.not;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -42,7 +41,13 @@ public class CoreTest {
 
     @Test
     public void testLookupRoutes() {
-        RestAssured.when().get("/test/routes/lookup-routes").then().body(is("bar,timer"));
+        RestAssured.when().get("/test/routes/lookup-routes").then().body(containsString("bar"), containsString("timer"));
+    }
+
+    @Test
+    public void testRouteTemplate() {
+        RestAssured.when().get("/test/routes/template/myTemplate/World").then().body(is("Hello World"));
+        RestAssured.when().get("/test/routes/template/myTemplate/Earth").then().body(is("Hello Earth"));
     }
 
     @Test


[camel-quarkus] 08/13: Fix route template in camel-quarkus (#1621)

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

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

commit df18e9eaf990894a50d0a8d81e07ed7c9ff96fd9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 26 13:37:43 2020 +0200

    Fix route template in camel-quarkus (#1621)
---
 .../camel/quarkus/core/FastCamelContext.java       |  11 +++
 .../deployment/CamelMainRouteTemplateTest.java     | 100 +++++++++++++++++++++
 2 files changed, 111 insertions(+)

diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index a41d181..b212414 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.function.Function;
 
@@ -705,6 +706,8 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
         if (!alreadyStartingRoutes) {
             setStartingRoutes(true);
         }
+
+        PropertiesComponent pc = getCamelContextReference().getPropertiesComponent();
         try {
             RouteDefinitionHelper.forceAssignIds(getCamelContextReference(), routeDefinitions);
             for (RouteDefinition routeDefinition : routeDefinitions) {
@@ -715,6 +718,14 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
                             "duplicate id detected: " + duplicate + ". Please correct ids to be unique among all your routes.");
                 }
 
+                // if the route definition was created via a route template then we need to prepare its parameters when the route is being created and started
+                if (routeDefinition.isTemplate() != null && routeDefinition.isTemplate()
+                        && routeDefinition.getTemplateParameters() != null) {
+                    Properties prop = new Properties();
+                    prop.putAll(routeDefinition.getTemplateParameters());
+                    pc.setLocalProperties(prop);
+                }
+
                 // must ensure route is prepared, before we can start it
                 if (!routeDefinition.isPrepared()) {
                     RouteDefinitionHelper.prepareRoute(getCamelContextReference(), routeDefinition);
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java
new file mode 100644
index 0000000..3925fb2
--- /dev/null
+++ b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteTemplateTest.java
@@ -0,0 +1,100 @@
+/*
+ * 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.main.deployment;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import io.quarkus.test.QuarkusUnitTest;
+import org.apache.camel.FluentProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.quarkus.main.CamelMain;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CamelMainRouteTemplateTest {
+    @RegisterExtension
+    static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
+            .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
+                    .addAsResource(applicationProperties(), "application.properties"));
+
+    @Inject
+    CamelMain main;
+
+    public static Asset applicationProperties() {
+        Writer writer = new StringWriter();
+
+        Properties props = new Properties();
+        props.setProperty("quarkus.banner.enabled", "false");
+
+        try {
+            props.store(writer, "");
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return new StringAsset(writer.toString());
+    }
+
+    @Test
+    public void testRouteTemplate() throws Exception {
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("foo", "one");
+        parameters.put("greeting", "Camel");
+        main.getCamelContext().addRouteFromTemplate("first", "myTemplate", parameters);
+
+        parameters.put("foo", "two");
+        parameters.put("greeting", "World");
+        main.getCamelContext().addRouteFromTemplate("second", "myTemplate", parameters);
+
+        assertThat(main.getCamelContext().getRoutes()).isNotEmpty();
+        assertThat(main.configure().getRoutesBuilders()).isNotEmpty();
+
+        FluentProducerTemplate p = main.getCamelContext().createFluentProducerTemplate();
+        String out1 = p.withBody("body1").to("direct:one").request(String.class);
+        String out2 = p.withBody("body2").to("direct:two").request(String.class);
+        assertThat(out1).isEqualTo("Hello Camel");
+        assertThat(out2).isEqualTo("Hello World");
+    }
+
+    @Named("my-template")
+    @ApplicationScoped
+    public static class MyTemplate extends RouteBuilder {
+        @Override
+        public void configure() throws Exception {
+            routeTemplate("myTemplate").templateParameter("foo").templateParameter("greeting")
+                    .description("Route saying {{greeting}}")
+                    .from("direct:{{foo}}")
+                    .transform(simple("Hello {{greeting}}"));
+        }
+    }
+
+}


[camel-quarkus] 04/13: Add Camel AS2 Modules as Quarkus Extension #1471

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

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

commit 60f9b50695adbd28f45bdce1f3620ed12eaac92a
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Mon Jul 20 15:30:39 2020 +0200

    Add Camel AS2 Modules as Quarkus Extension #1471
---
 catalog/pom.xml                                    |   2 +
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/as2.adoc       |  37 +++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-support/bouncycastle/deployment/pom.xml |  69 +++++++++
 .../deployment/BouncycastleSupportProcessor.java   |  54 +++++++
 extensions-support/{ => bouncycastle}/pom.xml      |  34 +----
 extensions-support/bouncycastle/runtime/pom.xml    |  80 ++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  27 ++++
 extensions-support/pom.xml                         |   1 +
 extensions/as2/deployment/pom.xml                  |  67 ++++++++
 .../component/as2/deployment/As2Processor.java     |  87 +++++++++++
 extensions/as2/pom.xml                             |  39 +++++
 extensions/as2/runtime/pom.xml                     | 108 +++++++++++++
 extensions/as2/runtime/src/main/doc/usage.adoc     |   4 +
 .../camel/quarkus/component/as2/As2Recorder.java   |  34 +++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 ++++
 extensions/pom.xml                                 |   1 +
 integration-tests/as2/pom.xml                      | 145 ++++++++++++++++++
 .../component/as2/it/As2CertificateHelper.java     | 140 +++++++++++++++++
 .../quarkus/component/as2/it/As2Resource.java      | 131 ++++++++++++++++
 .../component/as2/it/transport/ClientResult.java   |  68 +++++++++
 .../component/as2/it/transport/Request.java        | 152 ++++++++++++++++++
 .../component/as2/it/transport/ServerResult.java   |  39 +++++
 .../as2/src/main/resources/application.properties  |  18 +++
 .../camel/quarkus/component/as2/it/As2Helper.java  | 123 +++++++++++++++
 .../camel/quarkus/component/as2/it/As2IT.java      |  24 +++
 .../quarkus/component/as2/it/As2Receiver.java      | 169 +++++++++++++++++++++
 .../camel/quarkus/component/as2/it/As2Sender.java  |  54 +++++++
 .../camel/quarkus/component/as2/it/As2Test.java    | 127 ++++++++++++++++
 .../quarkus/component/as2/it/As2TestResource.java  |  35 +++++
 integration-tests/pom.xml                          |   1 +
 poms/bom/pom.xml                                   |  35 +++++
 tooling/scripts/test-categories.yaml               |   1 +
 35 files changed, 1917 insertions(+), 27 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index c64a753..5aa78ea 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -44,6 +44,7 @@
             camel-quarkus-amqp
             camel-quarkus-apns
             camel-quarkus-arangodb
+            camel-quarkus-as2
             camel-quarkus-asterisk
             camel-quarkus-atmos
             camel-quarkus-atom
@@ -246,6 +247,7 @@
             camel-quarkus-support-ahc
             camel-quarkus-support-aws
             camel-quarkus-support-aws2
+            camel-quarkus-support-bouncycastle
             camel-quarkus-support-common
             camel-quarkus-support-commons-logging
             camel-quarkus-support-consul-client
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index e5e414b..7dffb40 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -19,6 +19,7 @@
 *** xref:reference/extensions/amqp.adoc[AMQP]
 *** xref:reference/extensions/apns.adoc[APNS]
 *** xref:reference/extensions/arangodb.adoc[ArangoDb]
+*** xref:reference/extensions/as2.adoc[AS2]
 *** xref:reference/extensions/asterisk.adoc[Asterisk]
 *** xref:reference/extensions/ahc.adoc[Async HTTP Client (AHC)]
 *** xref:reference/extensions/ahc-ws.adoc[Async HTTP Client (AHC) Websocket]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 5ea5ced..09da315 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -22,6 +22,9 @@ Preview | 1.1.0 | Send notifications to Apple iOS devices.
 | xref:reference/extensions/arangodb.adoc[ArangoDb] | [.camel-element-artifact]##camel-quarkus-arangodb## | [.camel-element-Native]##Native## +
 Stable | 1.1.0 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
 
+| xref:reference/extensions/as2.adoc[AS2] | [.camel-element-artifact]##camel-quarkus-as2## | [.camel-element-Native]##Native## +
+Stable | 1.0.0-CR4 | Transfer data securely and reliably using the AS2 protocol (RFC4130).
+
 | xref:reference/extensions/asterisk.adoc[Asterisk] | [.camel-element-artifact]##camel-quarkus-asterisk## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with Asterisk PBX Server.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/as2.adoc b/docs/modules/ROOT/pages/reference/extensions/as2.adoc
new file mode 100644
index 0000000..23db52b
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/as2.adoc
@@ -0,0 +1,37 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[as2]]
+= AS2
+:page-aliases: extensions/as2.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.0.0-CR4## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-supported]##supported##
+
+Transfer data securely and reliably using the AS2 protocol (RFC4130).
+
+== What's inside
+
+* https://camel.apache.org/components/latest/as2-component.html[AS2 component], URI syntax: `as2:apiName/methodName`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-as2</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+
+== Usage
+
+Depending on its configuration, this component may require SSL encryption on its connections. In such a case, you will need
+to add `quarkus.ssl.native=true` to your `application.properties`.
+See also https://quarkus.io/guides/native-and-ssl[Quarkus native SSL guide] and xref:user-guide/native-mode.adoc[Native mode]
+section of Camel Quarkus user guide.
+
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 76e9a03..0a400c3 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -35,6 +35,9 @@ Preview | 1.1.0 | Send notifications to Apple iOS devices.
 |  xref:reference/extensions/arangodb.adoc[ArangoDb]  | camel-quarkus-arangodb | [.camel-element-Native]##Native## +
 Stable | 1.1.0 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
 
+|  xref:reference/extensions/as2.adoc[AS2]  | camel-quarkus-as2 | [.camel-element-Native]##Native## +
+Stable | 1.0.0-CR4 | Transfer data securely and reliably using the AS2 protocol (RFC4130).
+
 |  xref:reference/extensions/asterisk.adoc[Asterisk]  | camel-quarkus-asterisk | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with Asterisk PBX Server.
 
diff --git a/extensions-support/bouncycastle/deployment/pom.xml b/extensions-support/bouncycastle/deployment/pom.xml
new file mode 100644
index 0000000..477c47b
--- /dev/null
+++ b/extensions-support/bouncycastle/deployment/pom.xml
@@ -0,0 +1,69 @@
+<?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-support-bouncycastle-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-bouncycastle-deployment</artifactId>
+    <name>Camel Quarkus :: Support :: Bouncy Castle :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-bouncycastle</artifactId>
+        </dependency>
+        <dependency>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <groupId>org.bouncycastle</groupId>
+        </dependency>
+        <dependency>
+            <artifactId>bcpkix-jdk15on</artifactId>
+            <groupId>org.bouncycastle</groupId>
+        </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-support/bouncycastle/deployment/src/main/java/org/apache/camel/quarkus/support/bouncycastle/deployment/BouncycastleSupportProcessor.java b/extensions-support/bouncycastle/deployment/src/main/java/org/apache/camel/quarkus/support/bouncycastle/deployment/BouncycastleSupportProcessor.java
new file mode 100644
index 0000000..47dfbac
--- /dev/null
+++ b/extensions-support/bouncycastle/deployment/src/main/java/org/apache/camel/quarkus/support/bouncycastle/deployment/BouncycastleSupportProcessor.java
@@ -0,0 +1,54 @@
+/*
+ * 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.support.bouncycastle.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.jboss.jandex.IndexView;
+
+public class BouncycastleSupportProcessor {
+    static final String FEATURE = "camel-support-bouncycastle";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+
+        String[] dtos = index.getKnownClasses().stream()
+                .map(ci -> ci.name().toString())
+                .filter(n -> n.startsWith("org.bouncycastle.jcajce.provider.digest.") ||
+                        n.startsWith("org.bouncycastle.jcajce.provider.symmetric.") ||
+                        n.startsWith("org.bouncycastle.jcajce.provider.asymmetric.") ||
+                        n.startsWith("org.bouncycastle.jcajce.provider.keystore."))
+                .sorted()
+                .toArray(String[]::new);
+
+        return new ReflectiveClassBuildItem(false, false, dtos);
+    }
+
+    @BuildStep
+    IndexDependencyBuildItem registerBCDependencyForIndex() {
+        return new IndexDependencyBuildItem("org.bouncycastle", "bcprov-jdk15on");
+    }
+}
diff --git a/extensions-support/pom.xml b/extensions-support/bouncycastle/pom.xml
similarity index 57%
copy from extensions-support/pom.xml
copy to extensions-support/bouncycastle/pom.xml
index 12dee0c..f1bc64d 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/bouncycastle/pom.xml
@@ -18,40 +18,20 @@
 
 -->
 <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</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>camel-quarkus-extensions-support</artifactId>
-    <name>Camel Quarkus :: Extensions :: Support</name>
+    <artifactId>camel-quarkus-support-bouncycastle-parent</artifactId>
+    <name>Camel Quarkus :: Support :: Bouncy Castle</name>
     <packaging>pom</packaging>
 
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>ahc</module>
-        <module>aws</module>
-        <module>aws2</module>
-        <module>common</module>
-        <module>commons-logging</module>
-        <module>consul-client</module>
-        <module>debezium</module>
-        <module>google-http-client</module>
-        <module>httpclient</module>
-        <module>jackson-dataformat-xml</module>
-        <module>jetty</module>
-        <module>mail</module>
-        <module>mongodb</module>
-        <module>policy</module>
-        <module>retrofit</module>
-        <module>spring</module>
-        <module>webhook</module>
-        <module>xstream</module>
-        <module>xml</module>
-        <module>xalan</module>
+        <module>deployment</module>
+        <module>runtime</module>
     </modules>
 </project>
diff --git a/extensions-support/bouncycastle/runtime/pom.xml b/extensions-support/bouncycastle/runtime/pom.xml
new file mode 100644
index 0000000..07a6eac
--- /dev/null
+++ b/extensions-support/bouncycastle/runtime/pom.xml
@@ -0,0 +1,80 @@
+<?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-support-bouncycastle-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-bouncycastle</artifactId>
+    <name>Camel Quarkus :: Support :: Bouncy Castle :: Runtime</name>
+
+    <properties>
+        <firstVersion>1.1.0</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>io.quarkus</groupId>
+            <artifactId>quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</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-support/bouncycastle/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/bouncycastle/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..50c9c1a
--- /dev/null
+++ b/extensions-support/bouncycastle/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# 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: "Camel Quarkus Support Bouncy Castle"
+description: "Camel Quarkus Support Bouncy Castle"
+metadata:
+  unlisted: true
+  keywords:
+  - "camel"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+  - "integration"
diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml
index 12dee0c..8fd3916 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/pom.xml
@@ -36,6 +36,7 @@
         <module>ahc</module>
         <module>aws</module>
         <module>aws2</module>
+        <module>bouncycastle</module>
         <module>common</module>
         <module>commons-logging</module>
         <module>consul-client</module>
diff --git a/extensions/as2/deployment/pom.xml b/extensions/as2/deployment/pom.xml
new file mode 100644
index 0000000..83d9cf6
--- /dev/null
+++ b/extensions/as2/deployment/pom.xml
@@ -0,0 +1,67 @@
+<?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-as2-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-as2-deployment</artifactId>
+    <name>Camel Quarkus :: AS2 :: Deployment</name>
+
+    <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-as2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-bouncycastle-deployment</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/as2/deployment/src/main/java/org/apache/camel/quarkus/component/as2/deployment/As2Processor.java b/extensions/as2/deployment/src/main/java/org/apache/camel/quarkus/component/as2/deployment/As2Processor.java
new file mode 100644
index 0000000..8aebdaf
--- /dev/null
+++ b/extensions/as2/deployment/src/main/java/org/apache/camel/quarkus/component/as2/deployment/As2Processor.java
@@ -0,0 +1,87 @@
+/*
+ * 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.as2.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import io.quarkus.deployment.builditem.LogConsoleFormatBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import org.apache.camel.component.as2.AS2ClientManagerEndpointConfiguration;
+import org.apache.camel.component.as2.AS2ServerManagerEndpointConfiguration;
+import org.apache.camel.component.as2.api.util.AS2Utils;
+import org.apache.camel.quarkus.component.as2.As2Recorder;
+import org.jboss.jandex.IndexView;
+
+class As2Processor {
+
+    private static final String FEATURE = "camel-as2";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+        return new RuntimeInitializedClassBuildItem(AS2Utils.class.getCanonicalName());
+    }
+
+    @BuildStep
+    ReflectiveClassBuildItem registerAs2ConfigurationForReflection() {
+        return new ReflectiveClassBuildItem(true, true,
+                AS2ServerManagerEndpointConfiguration.class.getCanonicalName(),
+                AS2ClientManagerEndpointConfiguration.class.getCanonicalName(),
+                java.security.AlgorithmParameterGeneratorSpi.class.getCanonicalName());
+    }
+
+    @BuildStep
+    ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+
+        String[] dtos = index.getKnownClasses().stream()
+                .map(ci -> ci.name().toString())
+                .filter(n -> n.startsWith("org.apache.velocity.runtime") || n.startsWith("org.apache.velocity.util"))
+                .sorted()
+                .toArray(String[]::new);
+
+        return new ReflectiveClassBuildItem(false, false, dtos);
+    }
+
+    @BuildStep
+    IndexDependencyBuildItem registerDependencyForIndex() {
+        return new IndexDependencyBuildItem("org.apache.velocity", "velocity-engine-core");
+    }
+
+    @BuildStep
+    NativeImageResourceBuildItem initResources() {
+        return new NativeImageResourceBuildItem("org/apache/velocity/runtime/defaults/velocity.properties",
+                "org/apache/velocity/runtime/defaults/directive.properties");
+    }
+
+    @BuildStep
+    @Record(ExecutionTime.RUNTIME_INIT)
+    public LogConsoleFormatBuildItem setUpFormatter(As2Recorder as2Recorder) {
+        return new LogConsoleFormatBuildItem(as2Recorder.createFormatter());
+    }
+
+}
diff --git a/extensions/as2/pom.xml b/extensions/as2/pom.xml
new file mode 100644
index 0000000..6440496
--- /dev/null
+++ b/extensions/as2/pom.xml
@@ -0,0 +1,39 @@
+<?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-as2-parent</artifactId>
+    <name>Camel Quarkus :: AS2</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/as2/runtime/pom.xml b/extensions/as2/runtime/pom.xml
new file mode 100644
index 0000000..6ee151f
--- /dev/null
+++ b/extensions/as2/runtime/pom.xml
@@ -0,0 +1,108 @@
+<?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-as2-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-as2</artifactId>
+    <name>Camel Quarkus :: AS2 :: Runtime</name>
+    <description>Transfer data securely and reliably using the AS2 protocol (RFC4130).</description>
+
+    <properties>
+        <firstVersion>1.0.0-CR4</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-as2</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>log4j-slf4j-impl</artifactId>
+                    <groupId>org.apache.logging.log4j</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-bouncycastle</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.slf4j</groupId>
+            <artifactId>slf4j-jboss-logging</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <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/as2/runtime/src/main/doc/usage.adoc b/extensions/as2/runtime/src/main/doc/usage.adoc
new file mode 100644
index 0000000..f0af355
--- /dev/null
+++ b/extensions/as2/runtime/src/main/doc/usage.adoc
@@ -0,0 +1,4 @@
+Depending on its configuration, this component may require SSL encryption on its connections. In such a case, you will need
+to add `quarkus.ssl.native=true` to your `application.properties`.
+See also https://quarkus.io/guides/native-and-ssl[Quarkus native SSL guide] and xref:user-guide/native-mode.adoc[Native mode]
+section of Camel Quarkus user guide.
diff --git a/extensions/as2/runtime/src/main/java/org/apache/camel/quarkus/component/as2/As2Recorder.java b/extensions/as2/runtime/src/main/java/org/apache/camel/quarkus/component/as2/As2Recorder.java
new file mode 100644
index 0000000..cbfe6bb
--- /dev/null
+++ b/extensions/as2/runtime/src/main/java/org/apache/camel/quarkus/component/as2/As2Recorder.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.as2;
+
+import java.util.Optional;
+import java.util.logging.Formatter;
+
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import org.jboss.logmanager.formatters.PatternFormatter;
+
+@Recorder
+public class As2Recorder {
+
+    public RuntimeValue<Optional<Formatter>> createFormatter() {
+        final Formatter formatter = new PatternFormatter("[%30.30t] %-30.30c{1} %-5p %m%n");
+        return new RuntimeValue<>(Optional.of(formatter));
+    }
+}
diff --git a/extensions/as2/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/as2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..7ecc69c
--- /dev/null
+++ b/extensions/as2/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel AS2"
+description: "Transfer data securely and reliably using the AS2 protocol (RFC4130)"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/as2.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index dc708c9..15a1df3 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -38,6 +38,7 @@
         <module>ahc-ws</module>
         <module>amqp</module>
         <module>arangodb</module>
+        <module>as2</module>
         <module>attachments</module>
         <module>avro</module>
         <module>aws-ec2</module>
diff --git a/integration-tests/as2/pom.xml b/integration-tests/as2/pom.xml
new file mode 100644
index 0000000..e1d0dad
--- /dev/null
+++ b/integration-tests/as2/pom.xml
@@ -0,0 +1,145 @@
+<?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-integration-tests</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-as2</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: AS2</name>
+    <description>Integration tests for Camel Quarkus AS2 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-as2-deployment,camel-quarkus-mock-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-as2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jackson</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>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-integration-test-support</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mock</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>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2CertificateHelper.java b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2CertificateHelper.java
new file mode 100644
index 0000000..d6089e6
--- /dev/null
+++ b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2CertificateHelper.java
@@ -0,0 +1,140 @@
+/*
+ * 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.as2.it;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.security.GeneralSecurityException;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.Security;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.camel.component.as2.api.AS2ClientConnection;
+import org.apache.camel.component.as2.api.AS2ClientManager;
+import org.bouncycastle.asn1.x500.X500Name;
+import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;
+import org.bouncycastle.asn1.x509.Extension;
+import org.bouncycastle.asn1.x509.SubjectKeyIdentifier;
+import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
+import org.bouncycastle.cert.X509v3CertificateBuilder;
+import org.bouncycastle.cert.bc.BcX509ExtensionUtils;
+import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
+import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.bouncycastle.operator.OperatorCreationException;
+import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
+
+public class As2CertificateHelper {
+
+    private static final String TARGET_HOST = "localhost";
+    private static final String AS2_VERSION = "1.1";
+    private static final String USER_AGENT = "Camel AS2 Endpoint";
+    private static final String CLIENT_FQDN = "example.org";
+
+    private static KeyPair signingKP;
+    private static X509Certificate signingCert;
+    private static List<X509Certificate> certList;
+    // certificate serial number seed.
+    static int serialNo = 1;
+
+    private As2CertificateHelper() {
+    }
+
+    public static void setup() throws Exception {
+        Security.addProvider(new BouncyCastleProvider());
+
+        //
+        // set up our certificates
+        //
+        KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC");
+
+        kpg.initialize(1024, new SecureRandom());
+
+        String issueDN = "O=Earth 2 Software, C=E2";
+        KeyPair issueKP = kpg.generateKeyPair();
+        X509Certificate issueCert = makeCertificate(
+                issueKP, issueDN, issueKP, issueDN);
+
+        //
+        // certificate we sign against
+        //
+        String signingDN = "CN=Shekdon, E=test@gmail.com, O=Earth 2 Software, C=E2";
+        signingKP = kpg.generateKeyPair();
+        signingCert = makeCertificate(
+                signingKP, signingDN, issueKP, issueDN);
+
+        certList = new ArrayList<>();
+
+        certList.add(signingCert);
+        certList.add(issueCert);
+
+    }
+
+    /**
+     * create a basic X509 certificate from the given keys
+     */
+    public static X509Certificate makeCertificate(KeyPair subKP, String subDN, KeyPair issKP, String issDN)
+            throws GeneralSecurityException, IOException, OperatorCreationException {
+        PublicKey subPub = subKP.getPublic();
+        PrivateKey issPriv = issKP.getPrivate();
+        PublicKey issPub = issKP.getPublic();
+
+        X509v3CertificateBuilder v3CertGen = new JcaX509v3CertificateBuilder(new X500Name(issDN),
+                BigInteger.valueOf(serialNo++), new Date(System.currentTimeMillis()),
+                new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 100)), new X500Name(subDN), subPub);
+
+        v3CertGen.addExtension(Extension.subjectKeyIdentifier, false, createSubjectKeyId(subPub));
+
+        v3CertGen.addExtension(Extension.authorityKeyIdentifier, false, createAuthorityKeyId(issPub));
+
+        return new JcaX509CertificateConverter().setProvider("BC").getCertificate(
+                v3CertGen.build(new JcaContentSignerBuilder("MD5withRSA").setProvider("BC").build(issPriv)));
+    }
+
+    public static AuthorityKeyIdentifier createAuthorityKeyId(PublicKey pub) throws IOException {
+        SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance(pub.getEncoded());
+
+        BcX509ExtensionUtils utils = new BcX509ExtensionUtils();
+        return utils.createAuthorityKeyIdentifier(info);
+    }
+
+    public static SubjectKeyIdentifier createSubjectKeyId(PublicKey pub) throws IOException {
+        SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance(pub.getEncoded());
+
+        return new BcX509ExtensionUtils().createSubjectKeyIdentifier(info);
+    }
+
+    public static AS2ClientManager createClient(int port) throws IOException {
+        AS2ClientConnection clientConnection = new AS2ClientConnection(AS2_VERSION, USER_AGENT, CLIENT_FQDN, TARGET_HOST, port);
+        return new AS2ClientManager(clientConnection);
+    }
+
+    public static List<X509Certificate> getCertList() {
+        return certList;
+    }
+
+    public static KeyPair getSigningKP() {
+        return signingKP;
+    }
+}
diff --git a/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2Resource.java b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2Resource.java
new file mode 100644
index 0000000..3f4c04d
--- /dev/null
+++ b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/As2Resource.java
@@ -0,0 +1,131 @@
+/*
+ * 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.as2.it;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.as2.api.entity.DispositionNotificationMultipartReportEntity;
+import org.apache.camel.component.as2.api.entity.MimeEntity;
+import org.apache.camel.component.as2.api.entity.MultipartSignedEntity;
+import org.apache.camel.component.as2.internal.AS2Constants;
+import org.apache.camel.quarkus.component.as2.it.transport.ClientResult;
+import org.apache.camel.quarkus.component.as2.it.transport.Request;
+import org.apache.camel.quarkus.component.as2.it.transport.ServerResult;
+import org.apache.http.protocol.HttpCoreContext;
+import org.jboss.logging.Logger;
+
+@Path("/as2")
+@ApplicationScoped
+public class As2Resource {
+
+    public static String CLIENT_PORT_PARAMETER = As2Resource.class.getSimpleName() + "-client-port";
+    public static String SERVER_PORT_PARAMETER = As2Resource.class.getSimpleName() + "-server-port";
+
+    private static final Logger LOG = Logger.getLogger(As2Resource.class);
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    ConsumerTemplate consumerTemplate;
+
+    @Path("/client")
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    public ClientResult client(Request request) throws Exception {
+        LOG.infof("Sending to as2: %s", request.getHeaders());
+        As2CertificateHelper.setup();
+        final Object response = producerTemplate.requestBodyAndHeaders(getClientEndpoint(),
+                request.getEdiMessage(), request.collectHeaders());
+        ClientResult clientResult = new ClientResult();
+        if (response instanceof DispositionNotificationMultipartReportEntity) {
+            clientResult.setDispositionNotificationMultipartReportEntity(true);
+            clientResult.setPartsCount(((DispositionNotificationMultipartReportEntity) response).getPartCount());
+            if (clientResult.getPartsCount() > 1) {
+                clientResult.setSecondPartClassName(
+                        ((DispositionNotificationMultipartReportEntity) response).getPart(1).getClass().getSimpleName());
+            }
+        } else if (response instanceof MultipartSignedEntity) {
+            clientResult.setMultipartSignedEntity(true);
+            MimeEntity responseSignedDataEntity = ((MultipartSignedEntity) response).getSignedDataEntity();
+            clientResult
+                    .setPartsCount(((DispositionNotificationMultipartReportEntity) responseSignedDataEntity).getPartCount());
+            if (clientResult.getPartsCount() > 1) {
+                clientResult.setSecondPartClassName(
+                        ((DispositionNotificationMultipartReportEntity) responseSignedDataEntity).getPart(1).getClass()
+                                .getSimpleName());
+            }
+            clientResult.setSignedEntityReceived(((MultipartSignedEntity) response).getSignatureEntity() != null);
+        }
+
+        LOG.infof("Got response from as2: %s", response);
+        return clientResult;
+    }
+
+    @Path("/serverInit")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public boolean serverInit() throws Exception {
+        LOG.info("Initializing server from as2 component.");
+        //execute request, which won't return anything, because client doesn't send anything, but it starts component
+        consumerTemplate.receiveNoWait(getServerEndpoint());
+        return true;
+    }
+
+    @Path("/server")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public ServerResult server() throws Exception {
+        LOG.info("Receiving from as2.");
+        Exchange exchange = consumerTemplate.receive(getServerEndpoint());
+        if (exchange == null) {
+            return null;
+        }
+        ServerResult serverResult = new ServerResult();
+        serverResult.setResult(exchange.getIn().getBody(String.class));
+        HttpCoreContext coreContext = exchange.getProperty(AS2Constants.AS2_INTERCHANGE, HttpCoreContext.class);
+        if (coreContext != null) {
+            serverResult.setRequestClass(coreContext.getRequest().getClass().getSimpleName());
+        }
+        return serverResult;
+    }
+
+    private String getServerEndpoint() {
+        String url = String.format("as2://server/listen?serverPortNumber=%s&clientFqdn=%s&requestUriPattern=/",
+                System.getProperty(SERVER_PORT_PARAMETER), "example.com");
+
+        return url;
+    }
+
+    private String getClientEndpoint() {
+        String url = String.format("as2://client/send?inBody=ediMessage&targetPortNumber=%s&targetHostname=%s",
+                System.getProperty(CLIENT_PORT_PARAMETER), "localhost");
+
+        return url;
+    }
+}
diff --git a/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ClientResult.java b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ClientResult.java
new file mode 100644
index 0000000..2c8518e
--- /dev/null
+++ b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ClientResult.java
@@ -0,0 +1,68 @@
+/*
+ * 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.as2.it.transport;
+
+public class ClientResult {
+
+    boolean dispositionNotificationMultipartReportEntity;
+    boolean multipartSignedEntity;
+    boolean signedEntityReceived;
+
+    int partsCount;
+
+    String secondPartClassName;
+
+    public boolean isDispositionNotificationMultipartReportEntity() {
+        return dispositionNotificationMultipartReportEntity;
+    }
+
+    public void setDispositionNotificationMultipartReportEntity(boolean dispositionNotificationMultipartReportEntity) {
+        this.dispositionNotificationMultipartReportEntity = dispositionNotificationMultipartReportEntity;
+    }
+
+    public int getPartsCount() {
+        return partsCount;
+    }
+
+    public void setPartsCount(int partsCount) {
+        this.partsCount = partsCount;
+    }
+
+    public String getSecondPartClassName() {
+        return secondPartClassName;
+    }
+
+    public void setSecondPartClassName(String secondPartClassName) {
+        this.secondPartClassName = secondPartClassName;
+    }
+
+    public boolean isMultipartSignedEntity() {
+        return multipartSignedEntity;
+    }
+
+    public void setMultipartSignedEntity(boolean multipartSignedEntity) {
+        this.multipartSignedEntity = multipartSignedEntity;
+    }
+
+    public boolean isSignedEntityReceived() {
+        return signedEntityReceived;
+    }
+
+    public void setSignedEntityReceived(boolean signedEntityReceived) {
+        this.signedEntityReceived = signedEntityReceived;
+    }
+}
diff --git a/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/Request.java b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/Request.java
new file mode 100644
index 0000000..8b89a3b
--- /dev/null
+++ b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/Request.java
@@ -0,0 +1,152 @@
+/*
+ * 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.as2.it.transport;
+
+import java.security.cert.Certificate;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.component.as2.api.AS2Charset;
+import org.apache.camel.component.as2.api.AS2EncryptionAlgorithm;
+import org.apache.camel.component.as2.api.AS2MediaType;
+import org.apache.camel.component.as2.api.AS2MessageStructure;
+import org.apache.camel.component.as2.api.AS2SignatureAlgorithm;
+import org.apache.camel.quarkus.component.as2.it.As2CertificateHelper;
+import org.apache.http.entity.ContentType;
+
+public class Request {
+
+    private AS2MessageStructure messageStructure;
+    private String messageStructureKey;
+    private ContentType contentType;
+    private String contentTypeKey;
+    private Map<String, Object> headers = new HashMap<>();
+    private String ediMessage;
+    private AS2EncryptionAlgorithm encryptionAlgorithm;
+    private AS2SignatureAlgorithm signingAlgorithm;
+
+    public Request() {
+    }
+
+    public Request(String ediMessage) {
+        this.ediMessage = ediMessage;
+    }
+
+    public AS2MessageStructure getMessageStructure() {
+        return messageStructure;
+    }
+
+    public void setMessageStructure(AS2MessageStructure messageStructure) {
+        this.messageStructure = messageStructure;
+    }
+
+    public Map<String, Object> getHeaders() {
+        return headers;
+    }
+
+    public void addField(String key, Object value) {
+        this.headers.put(key, value);
+    }
+
+    public void setHeaders(Map<String, Object> headers) {
+        this.headers = headers;
+    }
+
+    public String getMessageStructureKey() {
+        return messageStructureKey;
+    }
+
+    public void setMessageStructureKey(String messageStructureKey) {
+        this.messageStructureKey = messageStructureKey;
+    }
+
+    public ContentType getContentType() {
+        return contentType;
+    }
+
+    public void setContentType(ContentType contentType) {
+        this.contentType = contentType;
+    }
+
+    public String getContentTypeKey() {
+        return contentTypeKey;
+    }
+
+    public void setContentTypeKey(String contentTypeKey) {
+        this.contentTypeKey = contentTypeKey;
+    }
+
+    public String getEdiMessage() {
+        return ediMessage;
+    }
+
+    public Request withEdiMessage(String ediMessage) {
+        this.ediMessage = ediMessage;
+        return this;
+    }
+
+    public Request withHeaders(Map<String, Object> headers) {
+        this.headers = headers;
+        for (Map.Entry<String, Object> entry : headers.entrySet()) {
+            if (entry.getValue() instanceof AS2MessageStructure) {
+                setMessageStructure((AS2MessageStructure) entry.getValue());
+                setMessageStructureKey(entry.getKey());
+            }
+        }
+        return this;
+    }
+
+    public Map<String, Object> collectHeaders() {
+        Map<String, Object> retVal = new HashMap<>(headers);
+        if (getMessageStructure() != null) {
+            retVal.put(getMessageStructureKey(), getMessageStructure());
+        }
+        retVal.put("CamelAS2.ediMessageContentType",
+                org.apache.http.entity.ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII));
+        if (getEncryptionAlgorithm() != null) {
+            retVal.put("CamelAS2.encryptingCertificateChain", As2CertificateHelper.getCertList());
+            retVal.put("CamelAS2.encryptingAlgorithm", getEncryptionAlgorithm());
+        }
+        if (getSigningAlgorithm() != null) {
+            // parameter type is java.security.cert.Certificate[]
+            retVal.put("CamelAS2.signingCertificateChain", As2CertificateHelper.getCertList().toArray(new Certificate[0]));
+            // parameter type is java.security.PrivateKey
+            retVal.put("CamelAS2.signingPrivateKey", As2CertificateHelper.getSigningKP().getPrivate());
+            // parameter type is org.apache.camel.component.as2.api.AS2SignatureAlgorithm
+            retVal.put("CamelAS2.signingAlgorithm", getSigningAlgorithm());
+        }
+        return retVal;
+    }
+
+    public AS2EncryptionAlgorithm getEncryptionAlgorithm() {
+        return encryptionAlgorithm;
+    }
+
+    public Request withEncryptionAlgorithm(AS2EncryptionAlgorithm encryptionAlgorithm) {
+        this.encryptionAlgorithm = encryptionAlgorithm;
+        return this;
+    }
+
+    public AS2SignatureAlgorithm getSigningAlgorithm() {
+        return signingAlgorithm;
+    }
+
+    public Request withSigningAlgorithm(AS2SignatureAlgorithm signingAlgorithm) {
+        this.signingAlgorithm = signingAlgorithm;
+        return this;
+    }
+}
diff --git a/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ServerResult.java b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ServerResult.java
new file mode 100644
index 0000000..bfc79cf
--- /dev/null
+++ b/integration-tests/as2/src/main/java/org/apache/camel/quarkus/component/as2/it/transport/ServerResult.java
@@ -0,0 +1,39 @@
+/*
+ * 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.as2.it.transport;
+
+public class ServerResult {
+
+    String result;
+    String requestClass;
+
+    public String getResult() {
+        return result;
+    }
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+    public String getRequestClass() {
+        return requestClass;
+    }
+
+    public void setRequestClass(String requestClass) {
+        this.requestClass = requestClass;
+    }
+}
diff --git a/integration-tests/as2/src/main/resources/application.properties b/integration-tests/as2/src/main/resources/application.properties
new file mode 100644
index 0000000..8136208
--- /dev/null
+++ b/integration-tests/as2/src/main/resources/application.properties
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+quarkus.ssl.native=true
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Helper.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Helper.java
new file mode 100644
index 0000000..d4b0123
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Helper.java
@@ -0,0 +1,123 @@
+/*
+ * 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.as2.it;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.component.as2.api.AS2Charset;
+import org.apache.camel.component.as2.api.AS2EncryptionAlgorithm;
+import org.apache.camel.component.as2.api.AS2MediaType;
+import org.apache.camel.component.as2.api.AS2MessageStructure;
+import org.apache.camel.component.as2.api.AS2SignatureAlgorithm;
+import org.apache.camel.quarkus.component.as2.it.transport.Request;
+import org.apache.http.entity.ContentType;
+
+public class As2Helper {
+
+    public static final String AS2_VERSION = "1.1";
+    public static final String REQUEST_URI = "/";
+    public static final String SUBJECT = "Test Case";
+    public static final String AS2_NAME = "878051556";
+    public static final String FROM = "mrAS@example.org";
+    public static final String[] SIGNED_RECEIPT_MIC_ALGORITHMS = new String[] { "sha1", "md5" };
+    public static final String DISPOSITION_NOTIFICATION_TO = FROM;
+    public static final String EDI_MESSAGE = "UNB+UNOA:1+005435656:1+006415160:1+060515:1434+00000000000778'\n"
+            + "UNH+00000000000117+INVOIC:D:97B:UN'\n"
+            + "BGM+380+342459+9'\n"
+            + "DTM+3:20060515:102'\n"
+            + "RFF+ON:521052'\n"
+            + "NAD+BY+792820524::16++CUMMINS MID-RANGE ENGINE PLANT'\n"
+            + "NAD+SE+005435656::16++GENERAL WIDGET COMPANY'\n"
+            + "CUX+1:USD'\n"
+            + "LIN+1++157870:IN'\n"
+            + "IMD+F++:::WIDGET'\n"
+            + "QTY+47:1020:EA'\n"
+            + "ALI+US'\n"
+            + "MOA+203:1202.58'\n"
+            + "PRI+INV:1.179'\n"
+            + "LIN+2++157871:IN'\n"
+            + "IMD+F++:::DIFFERENT WIDGET'\n"
+            + "QTY+47:20:EA'\n"
+            + "ALI+JP'\n"
+            + "MOA+203:410'\n"
+            + "PRI+INV:20.5'\n"
+            + "UNS+S'\n"
+            + "MOA+39:2137.58'\n"
+            + "ALC+C+ABG'\n"
+            + "MOA+8:525'\n"
+            + "UNT+23+00000000000117'\n"
+            + "UNZ+1+00000000000778'";
+
+    private static final String EDI_MESSAGE_CONTENT_TRANSFER_ENCODING = "7bit";
+
+    private As2Helper() {
+    }
+
+    public static Request createPlainRequest() {
+        final Map<String, Object> headers = createBaseHeaders(AS2MessageStructure.PLAIN);
+
+        return new Request()
+                .withHeaders(headers)
+                .withEdiMessage(EDI_MESSAGE);
+    }
+
+    public static Request createEncryptedRequest() {
+        final Map<String, Object> headers = createBaseHeaders(AS2MessageStructure.ENCRYPTED);
+
+        return new Request()
+                .withHeaders(headers)
+                .withEdiMessage(EDI_MESSAGE)
+                .withEncryptionAlgorithm(AS2EncryptionAlgorithm.AES128_CBC);
+    }
+
+    public static Request createMultipartSignedRequest() {
+        final Map<String, Object> headers = createBaseHeaders(AS2MessageStructure.SIGNED);
+        // parameter type is String[]
+        headers.put("CamelAS2.signedReceiptMicAlgorithms", SIGNED_RECEIPT_MIC_ALGORITHMS);
+
+        return new Request()
+                .withHeaders(headers)
+                .withEdiMessage(EDI_MESSAGE)
+                .withSigningAlgorithm(AS2SignatureAlgorithm.SHA512WITHRSA);
+    }
+
+    private static Map<String, Object> createBaseHeaders(AS2MessageStructure plain) {
+        final Map<String, Object> headers = new HashMap<>();
+        // parameter type is String
+        headers.put("CamelAS2.requestUri", REQUEST_URI);
+        // parameter type is String
+        headers.put("CamelAS2.subject", SUBJECT);
+        // parameter type is String
+        headers.put("CamelAS2.from", FROM);
+        // parameter type is String
+        headers.put("CamelAS2.as2From", AS2_NAME);
+        // parameter type is String
+        headers.put("CamelAS2.as2To", AS2_NAME);
+        // parameter type is org.apache.camel.component.as2.api.AS2MessageStructure
+        headers.put("CamelAS2.as2MessageStructure", plain);
+        // parameter type is org.apache.http.entity.ContentType
+        headers.put("CamelAS2.ediMessageContentType",
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII));
+        // parameter type is String
+        headers.put("CamelAS2.ediMessageTransferEncoding", EDI_MESSAGE_CONTENT_TRANSFER_ENCODING);
+        // parameter type is String
+        headers.put("CamelAS2.dispositionNotificationTo", DISPOSITION_NOTIFICATION_TO);
+        return headers;
+    }
+
+}
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java
new file mode 100644
index 0000000..1896dda
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java
@@ -0,0 +1,24 @@
+/*
+ * 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.as2.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+class As2IT extends As2Test {
+
+}
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Receiver.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Receiver.java
new file mode 100644
index 0000000..6b288bb
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Receiver.java
@@ -0,0 +1,169 @@
+/*
+ * 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.as2.it;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.security.GeneralSecurityException;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.Security;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.camel.component.as2.api.AS2ServerConnection;
+import org.apache.camel.component.as2.api.AS2SignatureAlgorithm;
+import org.apache.http.HttpException;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpRequestHandler;
+import org.bouncycastle.asn1.x500.X500Name;
+import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;
+import org.bouncycastle.asn1.x509.Extension;
+import org.bouncycastle.asn1.x509.SubjectKeyIdentifier;
+import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
+import org.bouncycastle.cert.X509v3CertificateBuilder;
+import org.bouncycastle.cert.bc.BcX509ExtensionUtils;
+import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
+import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.bouncycastle.operator.OperatorCreationException;
+import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
+
+public class As2Receiver {
+    private static final String SERVER_FQDN = "server.example.com";
+    private static final String ORIGIN_SERVER_NAME = "AS2ClientManagerIntegrationTest Server";
+    private static AS2ServerConnection serverConnection;
+    private static KeyPair serverSigningKP;
+    private static List<X509Certificate> serverCertList;
+    private static RequestHandler receiverHandler;
+    // certificate serial number seed.
+    private static int serialNo = 1;
+
+    private As2Receiver() {
+    }
+
+    public static RequestHandler startReceiver(int port) throws Exception {
+        if (receiverHandler == null) {
+            setupServerKeysAndCertificates();
+            receiverHandler = receiveTestMessages(port);
+        }
+        return receiverHandler;
+    }
+
+    private static void setupServerKeysAndCertificates() throws Exception {
+        Security.addProvider(new BouncyCastleProvider());
+
+        //
+        // set up our certificates
+        //
+        KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC");
+
+        kpg.initialize(1024, new SecureRandom());
+
+        String issueDN = "O=Earth2 Software, C=E2";
+        KeyPair issueKP = kpg.generateKeyPair();
+        X509Certificate issueCert = makeCertificate(
+                issueKP, issueDN, issueKP, issueDN);
+
+        //
+        // certificate we sign against
+        //
+        String signingDN = "CN=Sheldon, E=test@gmail.com, O=Earth2 Software, C=E2";
+        serverSigningKP = kpg.generateKeyPair();
+        X509Certificate signingCert = makeCertificate(
+                serverSigningKP, signingDN, issueKP, issueDN);
+
+        serverCertList = new ArrayList<>();
+
+        serverCertList.add(signingCert);
+        serverCertList.add(issueCert);
+    }
+
+    private static RequestHandler receiveTestMessages(int port) throws IOException {
+        serverConnection = new AS2ServerConnection(As2Helper.AS2_VERSION, ORIGIN_SERVER_NAME,
+                SERVER_FQDN, port, AS2SignatureAlgorithm.SHA256WITHRSA,
+                serverCertList.toArray(new Certificate[0]), serverSigningKP.getPrivate(), serverSigningKP.getPrivate());
+
+        RequestHandler handler = new RequestHandler();
+        serverConnection.listen("/", handler);
+
+        return handler;
+    }
+
+    /**
+     * create a basic X509 certificate from the given keys
+     */
+    public static X509Certificate makeCertificate(KeyPair subKP, String subDN, KeyPair issKP, String issDN)
+            throws GeneralSecurityException, IOException, OperatorCreationException {
+        PublicKey subPub = subKP.getPublic();
+        PrivateKey issPriv = issKP.getPrivate();
+        PublicKey issPub = issKP.getPublic();
+
+        X509v3CertificateBuilder v3CertGen = new JcaX509v3CertificateBuilder(new X500Name(issDN),
+                BigInteger.valueOf(serialNo++), new Date(System.currentTimeMillis()),
+                new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 100)), new X500Name(subDN), subPub);
+
+        v3CertGen.addExtension(Extension.subjectKeyIdentifier, false, createSubjectKeyId(subPub));
+
+        v3CertGen.addExtension(Extension.authorityKeyIdentifier, false, createAuthorityKeyId(issPub));
+
+        return new JcaX509CertificateConverter().setProvider("BC").getCertificate(
+                v3CertGen.build(new JcaContentSignerBuilder("MD5withRSA").setProvider("BC").build(issPriv)));
+    }
+
+    public static AuthorityKeyIdentifier createAuthorityKeyId(PublicKey pub) throws IOException {
+        SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance(pub.getEncoded());
+
+        BcX509ExtensionUtils utils = new BcX509ExtensionUtils();
+        return utils.createAuthorityKeyIdentifier(info);
+    }
+
+    public static SubjectKeyIdentifier createSubjectKeyId(PublicKey pub) throws IOException {
+        SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance(pub.getEncoded());
+
+        return new BcX509ExtensionUtils().createSubjectKeyIdentifier(info);
+    }
+
+    public static class RequestHandler implements HttpRequestHandler {
+
+        private HttpRequest request;
+        private HttpResponse response;
+
+        @Override
+        public void handle(HttpRequest request, HttpResponse response, HttpContext context)
+                throws HttpException, IOException {
+            this.request = request;
+            this.response = response;
+        }
+
+        public HttpRequest getRequest() {
+            return request;
+        }
+
+        public HttpResponse getResponse() {
+            return response;
+        }
+    }
+}
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Sender.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Sender.java
new file mode 100644
index 0000000..e8d2d9e
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Sender.java
@@ -0,0 +1,54 @@
+/*
+ * 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.as2.it;
+
+import java.io.IOException;
+
+import org.apache.camel.component.as2.api.AS2Charset;
+import org.apache.camel.component.as2.api.AS2ClientConnection;
+import org.apache.camel.component.as2.api.AS2ClientManager;
+import org.apache.camel.component.as2.api.AS2MediaType;
+import org.apache.camel.component.as2.api.AS2MessageStructure;
+import org.apache.http.HttpException;
+import org.apache.http.entity.ContentType;
+
+public class As2Sender {
+
+    private static final String TARGET_HOST = "localhost";
+    private static final String USER_AGENT = "Camel AS2 Endpoint";
+    private static final String CLIENT_FQDN = "example.org";
+
+    private As2Sender() {
+    }
+
+    public static As2SenderClient createClient(int port) throws IOException {
+        AS2ClientConnection clientConnection = new AS2ClientConnection(As2Helper.AS2_VERSION, USER_AGENT, CLIENT_FQDN,
+                TARGET_HOST, port);
+        AS2ClientManager clientManager = new AS2ClientManager(clientConnection);
+
+        return ediMessage -> clientManager.send(ediMessage, As2Helper.REQUEST_URI, As2Helper.SUBJECT, As2Helper.FROM,
+                As2Helper.AS2_NAME,
+                As2Helper.AS2_NAME, AS2MessageStructure.PLAIN,
+                ContentType.create(AS2MediaType.APPLICATION_EDIFACT, AS2Charset.US_ASCII), null, null, null, null,
+                null, As2Helper.DISPOSITION_NOTIFICATION_TO, As2Helper.SIGNED_RECEIPT_MIC_ALGORITHMS, null, null);
+    }
+
+    public interface As2SenderClient {
+
+        void sendMessage(String ediMessage) throws HttpException;
+    }
+}
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Test.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Test.java
new file mode 100644
index 0000000..d58986c
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2Test.java
@@ -0,0 +1,127 @@
+/*
+ * 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.as2.it;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.apache.camel.component.as2.api.entity.AS2MessageDispositionNotificationEntity;
+import org.apache.camel.quarkus.component.as2.it.transport.ClientResult;
+import org.apache.camel.quarkus.component.as2.it.transport.Request;
+import org.apache.camel.quarkus.component.as2.it.transport.ServerResult;
+import org.apache.http.message.BasicHttpEntityEnclosingRequest;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.awaitility.Awaitility.await;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@QuarkusTestResource(As2TestResource.class)
+@QuarkusTest
+public class As2Test {
+    private static final Logger LOG = LoggerFactory.getLogger(As2Test.class);
+
+    @Test
+    public void serverPlainTest() throws Exception {
+
+        //prepare component by sending empty request with no wait
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+        Future<Boolean> initResult = executor.submit(
+                () -> RestAssured.given().get("/as2/serverInit").then().statusCode(200).extract().as(Boolean.class));
+
+        //give some time for server component to be created
+        await().atMost(5L, TimeUnit.SECONDS).untilAsserted(() -> {
+            assertTrue(initResult.get());
+        });
+
+        //execute component server to wait for the result
+        Future<ServerResult> futureResult = executor.submit(
+                () -> RestAssured.given().get("/as2/server").then().statusCode(200).extract().as(ServerResult.class));
+
+        //create client for sending message to server
+        As2Sender.As2SenderClient client = As2Sender
+                .createClient(Integer.parseInt(System.getProperty(As2Resource.SERVER_PORT_PARAMETER)));
+
+        //send message to server
+        client.sendMessage(As2Helper.EDI_MESSAGE);
+
+        //wait for the result from the server
+        await().atMost(10L, TimeUnit.SECONDS).untilAsserted(() -> {
+            ServerResult result = futureResult.get();
+
+            assertEquals(As2Helper.EDI_MESSAGE.replaceAll("[\n\r]", ""), result.getResult().replaceAll("[\n\r]", ""),
+                    "Unexpected content for enveloped mime part");
+
+            assertEquals(BasicHttpEntityEnclosingRequest.class.getSimpleName(), result.getRequestClass(),
+                    "Request does not contain entity");
+        });
+    }
+
+    @Test
+    public void clientPlainTest() throws Exception {
+        clientTest(As2Helper.createPlainRequest());
+    }
+
+    @Test
+    public void clientEncryptionTest() throws Exception {
+        clientTest(As2Helper.createEncryptedRequest());
+    }
+
+    @Test
+    public void clientMultipartSignedTest() throws Exception {
+        ClientResult clientResult = clientTest(As2Helper.createMultipartSignedRequest());
+
+        Assertions.assertTrue(clientResult.isSignedEntityReceived(), "Signature Entity");
+    }
+
+    private ClientResult clientTest(Request request) throws Exception {
+
+        //start server (not component)
+        As2Receiver.RequestHandler requestHandler = As2Receiver
+                .startReceiver(Integer.parseInt(System.getProperty(As2Resource.CLIENT_PORT_PARAMETER)));
+
+        //send message by component (as client)
+        ClientResult clientResult = RestAssured.given() //
+                .contentType(io.restassured.http.ContentType.JSON)
+                .body(request)
+                .post("/as2/client") //
+                .then()
+                .statusCode(200)
+                .extract().body().as(ClientResult.class);
+
+        //assert result
+        assertNotNull(clientResult, "Response entity");
+        assertEquals(2, clientResult.getPartsCount(), "Unexpected number of body parts in report");
+        assertEquals(AS2MessageDispositionNotificationEntity.class.getSimpleName(), clientResult.getSecondPartClassName(),
+                "Unexpected type of As2Entity");
+
+        //assert that receiver was really used
+        assertNotNull(requestHandler.getRequest(), "Request");
+        assertNotNull(requestHandler.getResponse(), "Response");
+
+        return clientResult;
+    }
+}
diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2TestResource.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2TestResource.java
new file mode 100644
index 0000000..59a2f01
--- /dev/null
+++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2TestResource.java
@@ -0,0 +1,35 @@
+/*
+ * 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.as2.it;
+
+import java.util.Map;
+import java.util.Objects;
+
+import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+import org.apache.camel.quarkus.test.AvailablePortFinder;
+
+public class As2TestResource implements QuarkusTestResourceLifecycleManager {
+    @Override
+    public Map<String, String> start() {
+        return AvailablePortFinder.reserveNetworkPorts(Objects::toString, As2Resource.CLIENT_PORT_PARAMETER,
+                As2Resource.SERVER_PORT_PARAMETER);
+    }
+
+    @Override
+    public void stop() {
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 588d462..b235131 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -67,6 +67,7 @@
         <module>activemq</module>
         <module>amqp</module>
         <module>arangodb</module>
+        <module>as2</module>
         <module>avro</module>
         <module>aws</module>
         <module>aws2</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 2e8333b..dc7ec44 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -141,6 +141,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-as2</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-asterisk</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1695,6 +1700,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-as2</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-as2-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-asterisk</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -3675,6 +3690,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-bouncycastle</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-bouncycastle-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-common</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -4431,6 +4456,16 @@
                 <version>${ahc.version}</version>
             </dependency>
             <dependency>
+                <artifactId>bcpkix-jdk15on</artifactId>
+                <groupId>org.bouncycastle</groupId>
+                <version>${bouncycastle.version}</version>
+            </dependency>
+            <dependency>
+                <artifactId>bcprov-jdk15on</artifactId>
+                <groupId>org.bouncycastle</groupId>
+                <version>${bouncycastle.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.codehaus.groovy</groupId>
                 <artifactId>groovy</artifactId>
                 <version>${groovy.version}</version>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 5c800ad..b148895 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -95,6 +95,7 @@ misc:
   - qute
   - stream
   - tika
+  - as2
 networking2-dataformats:
   - git
   - mail


[camel-quarkus] 13/13: Reduce the amount of RAM spent by the AS2 itest

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

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

commit f9ea1b76f4a0947a769ab395c125ae5665e76599
Author: Lukas Lowinger <ll...@redhat.com>
AuthorDate: Wed Sep 2 11:59:40 2020 +0200

    Reduce the amount of RAM spent by the AS2 itest
---
 .github/workflows/ci-build.yaml | 3 +--
 integration-tests/as2/pom.xml   | 6 ++++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index fc6e0e4..cc34476 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -300,8 +300,7 @@ jobs:
           IFS=,
           eval ./mvnw -V -ntp ${BRANCH_OPTIONS} clean verify \
             -Dformatter.skip -Dimpsort.skip -Denforce=false \
-            -Dnative \
-            -Ddocker \
+            -Pnative,docker,ci \
             -pl "${modules[*]}"
       - name: Fail if there are uncommitted changes
         shell: bash
diff --git a/integration-tests/as2/pom.xml b/integration-tests/as2/pom.xml
index 16e4a81..2551f81 100644
--- a/integration-tests/as2/pom.xml
+++ b/integration-tests/as2/pom.xml
@@ -140,6 +140,12 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>ci</id>
+            <properties>
+                <quarkus.native.native-image-xmx>6g</quarkus.native.native-image-xmx>
+            </properties>
+        </profile>
     </profiles>
 
 </project>


[camel-quarkus] 10/13: Fixup af1b12df Fix JAXB dependency alignment issues

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

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

commit 1435c52ef8b43e412d3c3770c27d5510b44436ad
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 31 20:17:18 2020 +0200

    Fixup af1b12df Fix JAXB dependency alignment issues
---
 extensions-jvm/jbpm/runtime/pom.xml      | 10 ++++++++++
 extensions-jvm/wordpress/runtime/pom.xml | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/extensions-jvm/jbpm/runtime/pom.xml b/extensions-jvm/jbpm/runtime/pom.xml
index 174e588..3e56f59 100644
--- a/extensions-jvm/jbpm/runtime/pom.xml
+++ b/extensions-jvm/jbpm/runtime/pom.xml
@@ -56,6 +56,16 @@
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-jbpm</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>jakarta.xml.bind</groupId>
+                    <artifactId>jakarta.xml.bind-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.spec.javax.xml.bind</groupId>
+            <artifactId>jboss-jaxb-api_2.3_spec</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/extensions-jvm/wordpress/runtime/pom.xml b/extensions-jvm/wordpress/runtime/pom.xml
index 2f51fef..0f0d3d0 100644
--- a/extensions-jvm/wordpress/runtime/pom.xml
+++ b/extensions-jvm/wordpress/runtime/pom.xml
@@ -56,6 +56,16 @@
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-wordpress</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>jakarta.xml.bind</groupId>
+                    <artifactId>jakarta.xml.bind-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.spec.javax.xml.bind</groupId>
+            <artifactId>jboss-jaxb-api_2.3_spec</artifactId>
         </dependency>
     </dependencies>
 


[camel-quarkus] 05/13: CAMEL-14297: Introduce RouteBuilderConfigurer.

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

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

commit 49b58c60e14fb6e6bca5230276022e81c58cd44a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 12 09:10:16 2020 +0200

    CAMEL-14297: Introduce RouteBuilderConfigurer.
---
 .../quarkus/core/deployment/CamelProcessor.java    |  3 +
 .../camel/quarkus/core/CamelContextRecorder.java   | 10 +++
 .../camel/quarkus/core/RegistryRoutesLoaders.java  | 13 ++++
 ...melMainRouteBuilderConfigurerDiscoveryTest.java | 74 ++++++++++++++++++++++
 .../apache/camel/quarkus/core/CoreResource.java    | 15 +++++
 .../org/apache/camel/quarkus/core/CoreRoutes.java  |  2 +-
 .../org/apache/camel/quarkus/core/CoreTest.java    |  6 ++
 7 files changed, 122 insertions(+), 1 deletion(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
index 728812d..870fa8d 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
@@ -79,6 +79,8 @@ class CamelProcessor {
             "org.apache.camel.RoutesBuilder");
     private static final DotName ROUTE_BUILDER_TYPE = DotName.createSimple(
             "org.apache.camel.builder.RouteBuilder");
+    private static final DotName ROUTE_BUILDER_CONFIGURER_TYPE = DotName.createSimple(
+            "org.apache.camel.builder.RouteBuilderConfigurer");
     private static final DotName ADVICE_WITH_ROUTE_BUILDER_TYPE = DotName.createSimple(
             "org.apache.camel.builder.AdviceWithRouteBuilder");
     private static final DotName DATA_FORMAT_TYPE = DotName.createSimple(
@@ -94,6 +96,7 @@ class CamelProcessor {
 
     private static final Set<DotName> UNREMOVABLE_BEANS_TYPES = CamelSupport.setOf(
             ROUTES_BUILDER_TYPE,
+            ROUTE_BUILDER_CONFIGURER_TYPE,
             DATA_FORMAT_TYPE,
             LANGUAGE_TYPE,
             COMPONENT_TYPE,
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
index 17cb43b..9a555ba 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
@@ -21,6 +21,8 @@ import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.builder.RouteBuilderConfigurer;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.ModelJAXBContextFactory;
@@ -97,6 +99,14 @@ public class CamelContextRecorder {
 
     public void addRoutesFromContainer(RuntimeValue<CamelContext> context) {
         try {
+            for (RouteBuilderConfigurer builder : context.getValue().getRegistry().findByType(RouteBuilderConfigurer.class)) {
+                context.getValue().addRoutes(new RouteBuilder() {
+                    @Override
+                    public void configure() throws Exception {
+                        builder.accept(this);
+                    }
+                });
+            }
             for (RoutesBuilder builder : context.getValue().getRegistry().findByType(RoutesBuilder.class)) {
                 context.getValue().addRoutes(builder);
             }
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
index 2167689..2aa04f5 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
@@ -24,6 +24,8 @@ import java.util.Set;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.builder.RouteBuilderConfigurer;
 import org.apache.camel.util.AntPathMatcher;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -56,6 +58,17 @@ public final class RegistryRoutesLoaders {
             final List<RoutesBuilder> routes = new ArrayList<>();
             final AntPathMatcher matcher = new AntPathMatcher();
 
+            Set<RouteBuilderConfigurer> configurers = camelContext.getRegistry().findByType(RouteBuilderConfigurer.class);
+            for (RouteBuilderConfigurer configurer : configurers) {
+                RouteBuilder rb = new RouteBuilder() {
+                    @Override
+                    public void configure() throws Exception {
+                        configurer.accept(this);
+                    }
+                };
+                routes.add(rb);
+            }
+
             Set<RoutesBuilder> builders = camelContext.getRegistry().findByType(RoutesBuilder.class);
             for (RoutesBuilder routesBuilder : builders) {
                 // filter out abstract classes
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java
new file mode 100644
index 0000000..bbf9f3f
--- /dev/null
+++ b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.main.deployment;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.Properties;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import io.quarkus.test.QuarkusUnitTest;
+import org.apache.camel.builder.RouteBuilderConfigurer;
+import org.apache.camel.quarkus.main.CamelMain;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CamelMainRouteBuilderConfigurerDiscoveryTest {
+    @RegisterExtension
+    static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
+            .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
+                    .addAsResource(applicationProperties(), "application.properties"));
+
+    @Inject
+    CamelMain main;
+
+    public static Asset applicationProperties() {
+        Writer writer = new StringWriter();
+
+        Properties props = new Properties();
+        props.setProperty("quarkus.banner.enabled", "false");
+
+        try {
+            props.store(writer, "");
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return new StringAsset(writer.toString());
+    }
+
+    @Test
+    public void testRoutesDiscovery() {
+        assertThat(main.getCamelContext().getRoutes()).isNotEmpty();
+        assertThat(main.configure().getRoutesBuilders()).isNotEmpty();
+    }
+
+    @Produces
+    public RouteBuilderConfigurer myRoute() {
+        return rb -> rb.from("direct:in").routeId("my-route").to("log:out");
+    }
+
+}
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
index 21e5e80..af45a13 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
@@ -39,6 +39,8 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.NoSuchLanguageException;
+import org.apache.camel.Route;
+import org.apache.camel.builder.RouteBuilderConfigurer;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.component.log.LogComponent;
 import org.apache.camel.model.ModelCamelContext;
@@ -70,6 +72,19 @@ public class CoreResource {
         return result;
     }
 
+    @javax.enterprise.inject.Produces
+    public RouteBuilderConfigurer myOtherRoute() {
+        return rb -> rb.from("timer:bar").routeId("bar").to("log:bar");
+    }
+
+    @Path("/routes/lookup-routes")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String lookupRoutes() {
+        // there should be 2 routes, the one with RouteBuilderConfigurer method above and from CoreRoutes.java
+        return context.getRoutes().stream().map(Route::getId).sorted().collect(Collectors.joining(","));
+    }
+
     @Path("/registry/lookup-registry")
     @GET
     @Produces(MediaType.TEXT_PLAIN)
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreRoutes.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreRoutes.java
index e3bb7e3..4aa1678 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreRoutes.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreRoutes.java
@@ -23,7 +23,7 @@ public class CoreRoutes extends RouteBuilder {
     @Override
     public void configure() {
         from("timer:keep-alive")
-                .id("timer")
+                .routeId("timer")
                 .setBody().constant("I'm alive !")
                 .to("log:keep-alive");
 
diff --git a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
index 42db9c8..f45b7f0 100644
--- a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
+++ b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CoreTest.java
@@ -33,6 +33,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @QuarkusTest
 public class CoreTest {
+
     @Test
     public void testContainerLookupFromRegistry() {
         RestAssured.when().get("/test/registry/lookup-registry").then().body(is("true"));
@@ -40,6 +41,11 @@ public class CoreTest {
     }
 
     @Test
+    public void testLookupRoutes() {
+        RestAssured.when().get("/test/routes/lookup-routes").then().body(is("bar,timer"));
+    }
+
+    @Test
     public void testCamelContextAwareRegistryBeansInitialized() {
         RestAssured.when().get("/test/registry/camel-context-aware/initialized").then().body(is("true"));
     }


[camel-quarkus] 07/13: CAMEL-15413: RouteBuilderConfigurer - Rename to LambdaRouteBuilder

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

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

commit de3f7e5cb82538beaaa6780d62348bef8f8d8284
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 26 10:46:18 2020 +0200

    CAMEL-15413: RouteBuilderConfigurer - Rename to LambdaRouteBuilder
---
 .../org/apache/camel/quarkus/core/deployment/CamelProcessor.java  | 6 +++---
 .../java/org/apache/camel/quarkus/core/CamelContextRecorder.java  | 4 ++--
 .../java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java | 8 ++++----
 ...eryTest.java => CamelMainLambdaRouteBuilderDiscoveryTest.java} | 6 +++---
 .../src/main/java/org/apache/camel/quarkus/core/CoreResource.java | 6 +++---
 5 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
index 870fa8d..fcc0b70 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
@@ -79,8 +79,8 @@ class CamelProcessor {
             "org.apache.camel.RoutesBuilder");
     private static final DotName ROUTE_BUILDER_TYPE = DotName.createSimple(
             "org.apache.camel.builder.RouteBuilder");
-    private static final DotName ROUTE_BUILDER_CONFIGURER_TYPE = DotName.createSimple(
-            "org.apache.camel.builder.RouteBuilderConfigurer");
+    private static final DotName LAMBDA_ROUTE_BUILDER_TYPE = DotName.createSimple(
+            "org.apache.camel.builder.LambdaRouteBuilder");
     private static final DotName ADVICE_WITH_ROUTE_BUILDER_TYPE = DotName.createSimple(
             "org.apache.camel.builder.AdviceWithRouteBuilder");
     private static final DotName DATA_FORMAT_TYPE = DotName.createSimple(
@@ -96,7 +96,7 @@ class CamelProcessor {
 
     private static final Set<DotName> UNREMOVABLE_BEANS_TYPES = CamelSupport.setOf(
             ROUTES_BUILDER_TYPE,
-            ROUTE_BUILDER_CONFIGURER_TYPE,
+            LAMBDA_ROUTE_BUILDER_TYPE,
             DATA_FORMAT_TYPE,
             LANGUAGE_TYPE,
             COMPONENT_TYPE,
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
index 9a555ba..a9002fa 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
@@ -21,8 +21,8 @@ import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.LambdaRouteBuilder;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.builder.RouteBuilderConfigurer;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.ModelJAXBContextFactory;
@@ -99,7 +99,7 @@ public class CamelContextRecorder {
 
     public void addRoutesFromContainer(RuntimeValue<CamelContext> context) {
         try {
-            for (RouteBuilderConfigurer builder : context.getValue().getRegistry().findByType(RouteBuilderConfigurer.class)) {
+            for (LambdaRouteBuilder builder : context.getValue().getRegistry().findByType(LambdaRouteBuilder.class)) {
                 context.getValue().addRoutes(new RouteBuilder() {
                     @Override
                     public void configure() throws Exception {
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
index 2aa04f5..be76546 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/RegistryRoutesLoaders.java
@@ -24,8 +24,8 @@ import java.util.Set;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.LambdaRouteBuilder;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.builder.RouteBuilderConfigurer;
 import org.apache.camel.util.AntPathMatcher;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -58,12 +58,12 @@ public final class RegistryRoutesLoaders {
             final List<RoutesBuilder> routes = new ArrayList<>();
             final AntPathMatcher matcher = new AntPathMatcher();
 
-            Set<RouteBuilderConfigurer> configurers = camelContext.getRegistry().findByType(RouteBuilderConfigurer.class);
-            for (RouteBuilderConfigurer configurer : configurers) {
+            Set<LambdaRouteBuilder> lrbs = camelContext.getRegistry().findByType(LambdaRouteBuilder.class);
+            for (LambdaRouteBuilder lrb : lrbs) {
                 RouteBuilder rb = new RouteBuilder() {
                     @Override
                     public void configure() throws Exception {
-                        configurer.accept(this);
+                        lrb.accept(this);
                     }
                 };
                 routes.add(rb);
diff --git a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java
similarity index 93%
rename from extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java
rename to extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java
index bbf9f3f..3697f7e 100644
--- a/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainRouteBuilderConfigurerDiscoveryTest.java
+++ b/extensions-core/main/deployment/src/test/java/org/apache/camel/quarkus/main/deployment/CamelMainLambdaRouteBuilderDiscoveryTest.java
@@ -25,7 +25,7 @@ import javax.enterprise.inject.Produces;
 import javax.inject.Inject;
 
 import io.quarkus.test.QuarkusUnitTest;
-import org.apache.camel.builder.RouteBuilderConfigurer;
+import org.apache.camel.builder.LambdaRouteBuilder;
 import org.apache.camel.quarkus.main.CamelMain;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class CamelMainRouteBuilderConfigurerDiscoveryTest {
+public class CamelMainLambdaRouteBuilderDiscoveryTest {
     @RegisterExtension
     static final QuarkusUnitTest CONFIG = new QuarkusUnitTest()
             .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
@@ -67,7 +67,7 @@ public class CamelMainRouteBuilderConfigurerDiscoveryTest {
     }
 
     @Produces
-    public RouteBuilderConfigurer myRoute() {
+    public LambdaRouteBuilder myRoute() {
         return rb -> rb.from("direct:in").routeId("my-route").to("log:out");
     }
 
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
index af45a13..34ee80e 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CoreResource.java
@@ -40,7 +40,7 @@ import org.apache.camel.CamelContextAware;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.Route;
-import org.apache.camel.builder.RouteBuilderConfigurer;
+import org.apache.camel.builder.LambdaRouteBuilder;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.component.log.LogComponent;
 import org.apache.camel.model.ModelCamelContext;
@@ -73,7 +73,7 @@ public class CoreResource {
     }
 
     @javax.enterprise.inject.Produces
-    public RouteBuilderConfigurer myOtherRoute() {
+    public LambdaRouteBuilder myOtherRoute() {
         return rb -> rb.from("timer:bar").routeId("bar").to("log:bar");
     }
 
@@ -81,7 +81,7 @@ public class CoreResource {
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public String lookupRoutes() {
-        // there should be 2 routes, the one with RouteBuilderConfigurer method above and from CoreRoutes.java
+        // there should be 2 routes, the one with LambdaRouteBuilder method above and from CoreRoutes.java
         return context.getRoutes().stream().map(Route::getId).sorted().collect(Collectors.joining(","));
     }