[camel-quarkus] branch camel-master updated (e884ccb -> 460cc4e)

classic Classic list List threaded Threaded
35 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] branch camel-master updated (e884ccb -> 460cc4e)

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

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


    from e884ccb  GitHUb Actions: include quarkus-master for branches to watch
     new 287480e  Add olingo4 extension
     new 882bb40  chore: Remove redundant note related to fileWatcher param in stream extension docs
     new 4b1d7da  Add olingo4 itest to project list
     new 0e5feb3  Remove enableJni from integration tests as JNI si always enabled on GraalVM 19.3.1
     new be3ff25  Use camel-quarkus-support-httpclient in slack extension
     new 878a6d2  Cleanup: Declare quarkus-development-mode-spi as a nonExtensionArtifact
     new e8e5dc4  Fix #696 Test HTTPS with the HTTP clients
     new d5e5ba5  Re-use the cached local Maven repo even in build-alternative-jvm job
     new 23e36a1  #670 fix PDF itests in native mode
     new 983a629  Ensure that catalog files are added to the native image #686
     new f17423b  Ensure that catalog files are added to the native image #686 (fix findings)
     new 35ad157  Set -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
     new 6b3457c  Update <mvnd.builder.rule> via -Pformat
     new 875b0c9  Update mvnd.builder.rules by running mvn process-resources -Pformat
     new 797ac12  Fix #688 Create extension mojo not working after Quarkus 1.3.0.Alpha1 upgrade
     new d2f6b59  Fix #694 quarkus-maven-plugin generate application.properties file for IT tests
     new 5b22aa6  create camel-jira extension #710
     new 24b5ac4  camel-jira extension:more polish up
     new 0bbb279  Fix incompatibilities between Quarkus and Camel MongoDB dependencies
     new c43d9bd  Upgrade to Camel 3.1.0 - WIP
     new 6dac73a  Upgarde to Camel 3.1.0 - WIP (xml loader/dumper)
     new 8de15a2  Upgarde to Camel 3.1.0 - WIP (xml loader/dumper)
     new 030be62  Update docs
     new 220e0ba  Upgarde to Camel 3.1.0 - WIP (catalog)
     new fec7df2  Renamed camel-jaxp to camel-xml-jaxp
     new 5fd8ced  cleanup core extension pom
     new 704a28a  Stop unbanning some classes after the upgrade to Camel 3.1
     new d00d1de  Upgarde to Camel 3.1.0 - WIP (ConfigurerResolver, reifiers)
     new 15da541  Upgarde to Camel 3.1.0 - WIP (simplified RuntimeCamelCatalog)
     new 961f6f9  Upgarde to Camel 3.1.0 - WIP (bindy)
     new 8386dc9  Upgarde to Camel 3.1.0 - WIP (bindy)
     new 264b2d3  Fix #74 Telegram extension
     new c1451c7  Upgarde to Camel 3.1.0 - WIP (FastTypeConverter)
     new 460cc4e  Upgarde to Camel 3.1.0 - WIP (PDF)

The 34 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/pr-build.yaml                    |  12 +-
 .mvn/maven.config                                  |   1 +
 catalog/camel-quarkus-catalog/pom.xml              |  27 +-
 .../catalog/quarkus/QuarkusRuntimeProvider.java    |   5 +-
 .../quarkus/QuarkusRuntimeProviderTest.java        |  14 +-
 docs/modules/ROOT/pages/extensions/stream.adoc     |   4 -
 .../pages/list-of-camel-quarkus-extensions.adoc    |  17 +-
 examples/file-split-log-xml/pom.xml                |  10 +
 examples/observability/pom.xml                     |  10 +
 examples/rest-json/pom.xml                         |  10 +
 examples/timer-log-cdi/pom.xml                     |  10 +
 examples/timer-log-kotlin/pom.xml                  |   7 +
 examples/timer-log-spring/pom.xml                  |  10 +
 examples/timer-log-xml/pom.xml                     |  10 +
 examples/timer-log/pom.xml                         |  10 +
 .../component/bindy/deployment/BindyProcessor.java |  12 +
 .../consul/deployment/ConsulProcessor.java         |  12 -
 .../component/xml/deployment/XmlProcessor.java     |   9 +-
 extensions/core-xml/runtime/pom.xml                |   4 +
 .../component/xml/DefaultXmlRoutesLoader.java      |  39 --
 .../camel/quarkus/component/xml/XmlRecorder.java   |  27 +-
 .../quarkus/core/deployment/BuildProcessor.java    |  19 +-
 ...em.java => CamelModelToXMLDumperBuildItem.java} |  13 +-
 .../deployment/CamelRoutesLoaderBuildItems.java    |  10 +-
 .../core/deployment/NativeImageProcessor.java      |  86 +++-
 extensions/core/runtime/pom.xml                    |  10 +-
 .../org/apache/camel/quarkus/core/CamelConfig.java |  48 ++
 .../quarkus/core/CamelMainEventDispatcher.java     |   5 +
 .../apache/camel/quarkus/core/CamelMainEvents.java |   6 +
 .../camel/quarkus/core/CamelMainRecorder.java      |   7 +-
 .../apache/camel/quarkus/core/CamelRecorder.java   |  29 +-
 .../camel/quarkus/core/CamelRoutesCollector.java   |  17 +-
 .../camel/quarkus/core/CamelRuntimeCatalog.java    |  63 +++
 ...esLoader.java => DisabledModelToXMLDumper.java} |  15 +-
 .../core/DisabledPredicateValidatorReifier.java    |   6 +-
 .../quarkus/core/DisabledValidateReifier.java      |   6 +-
 ...java => DisabledXMLRoutesDefinitionLoader.java} |  15 +-
 .../camel/quarkus/core/FastCamelContext.java       | 172 +++++--
 .../org/apache/camel/quarkus/core/FastModel.java   |   8 +-
 .../camel/quarkus/core/FastTypeConverter.java      |  11 +-
 .../java/org/apache/camel/quarkus/core/Flags.java  |  10 +
 .../apache/camel/quarkus/core/XmlRoutesLoader.java |  31 --
 extensions/{bindy => jira}/deployment/pom.xml      |  12 +-
 .../component/jira/deployment/JiraProcessor.java}  |  19 +-
 extensions/{bindy => jira}/pom.xml                 |   4 +-
 extensions/{aws-iam => jira}/runtime/pom.xml       |  44 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   5 +-
 .../mongodb/deployment/MongoDbProcessor.java       |  11 +-
 extensions/mongodb/runtime/pom.xml                 |   4 +-
 .../component/mongodb/CamelMongoClient.java        | 124 -----
 .../graal/SubstituteMongoClientOptions.java        |  43 --
 .../{aws-kinesis => olingo4}/deployment/pom.xml    |  22 +-
 .../olingo4/deployment/Olingo4Processor.java       |  72 +++
 extensions/{bindy => olingo4}/pom.xml              |   4 +-
 extensions/{sql => olingo4}/runtime/pom.xml        |  32 +-
 .../olingo4/graal/ODataImplSubstitutions.java}     |  16 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   9 +-
 extensions/pdf/deployment/pom.xml                  |   4 +
 .../component/pdf/deployment/PdfProcessor.java     |  17 +-
 extensions/pdf/runtime/pom.xml                     |  10 +
 extensions/pom.xml                                 |   5 +-
 extensions/readme.adoc                             |  17 +-
 extensions/slack/deployment/pom.xml                |   4 +
 .../component/slack/deployment/SlackProcessor.java |   8 -
 extensions/slack/runtime/pom.xml                   |   4 +
 .../httpclient/deployment/HttpClientProcessor.java |   7 +
 .../support/policy/deployment/PolicyProcessor.java |   8 +-
 extensions/support/xml/runtime/pom.xml             |   2 +-
 extensions/{consul => telegram}/deployment/pom.xml |  22 +-
 .../telegram/deployment/TelegramProcessor.java     |  82 +++
 extensions/{bindy => telegram}/pom.xml             |   4 +-
 extensions/{slack => telegram}/runtime/pom.xml     |  30 +-
 .../component/telegram/TelegramRecorder.java}      |  12 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   9 +-
 integration-tests/aws/pom.xml                      |  11 +-
 integration-tests/base64/pom.xml                   |  11 +-
 integration-tests/bean-validator/pom.xml           |  11 +-
 integration-tests/bean/pom.xml                     |  11 +-
 integration-tests/bindy/pom.xml                    |  11 +-
 .../quarkus/component/bindy/it/BindyTestRoute.java |   4 +-
 integration-tests/consul/pom.xml                   |  11 +-
 integration-tests/controlbus/pom.xml               |  11 +-
 integration-tests/core-impl/pom.xml                |  11 +-
 integration-tests/core-main-collector/pom.xml      |  10 +
 integration-tests/core-main-xml/pom.xml            |  11 +-
 .../apache/camel/quarkus/core/CamelServlet.java    |   5 +
 .../org/apache/camel/quarkus/core/CamelTest.java   |   5 +
 integration-tests/core-main/pom.xml                |  11 +-
 .../apache/camel/quarkus/core/CamelServlet.java    |   4 +-
 .../org/apache/camel/quarkus/core/CamelTest.java   |   5 +-
 integration-tests/core/pom.xml                     |  11 +-
 .../apache/camel/quarkus/core/CamelServlet.java    |  23 +
 .../core/src/main/resources/application.properties |   5 +-
 .../org/apache/camel/quarkus/core/CamelTest.java   |   8 +
 integration-tests/csv/pom.xml                      |  11 +-
 integration-tests/dataformat/pom.xml               |  11 +-
 integration-tests/dozer/pom.xml                    |  11 +-
 integration-tests/exec/pom.xml                     |  11 +-
 integration-tests/fhir/pom.xml                     |  11 +-
 integration-tests/file/pom.xml                     |  11 +-
 integration-tests/ftp/pom.xml                      |  11 +-
 integration-tests/http/pom.xml                     |  11 +-
 .../quarkus/component/http/it/HttpResource.java    |  30 ++
 .../camel/quarkus/component/http/it/HttpTest.java  |  29 ++
 integration-tests/hystrix/pom.xml                  |  11 +-
 integration-tests/infinispan/pom.xml               |  11 +-
 integration-tests/jackson/pom.xml                  |  11 +-
 integration-tests/jdbc/pom.xml                     |  11 +-
 integration-tests/{bindy => jira}/pom.xml          |  35 +-
 .../quarkus/component/jira/it/JiraResource.java    |  37 +-
 .../component/jira/it/JiraRouteBuilder.java}       |  21 +-
 .../camel/quarkus/component/jira/it/JiraIT.java}   |   4 +-
 .../camel/quarkus/component/jira/it/JiraTest.java  |  14 +-
 integration-tests/jsonpath/pom.xml                 |  11 +-
 integration-tests/kafka/pom.xml                    |   2 +-
 integration-tests/mail/pom.xml                     |  11 +-
 integration-tests/microprofile/pom.xml             |  11 +-
 integration-tests/mongodb/pom.xml                  |  11 +-
 .../component/mongodb/it/MongoDbResource.java      |  10 -
 .../component/mongodb/it/MongoDbTestResource.java  |   4 +-
 integration-tests/netty/pom.xml                    |  11 +-
 integration-tests/{bindy => olingo4}/pom.xml       |  25 +-
 .../component/olingo4/it/Olingo4Resource.java      | 120 +++++
 .../quarkus/component/olingo4/it/Person.java}      |  46 +-
 .../quarkus/component/olingo4/it/Olingo4IT.java}   |   4 +-
 .../quarkus/component/olingo4/it/Olingo4Test.java  | 120 +++++
 integration-tests/opentracing/pom.xml              |  11 +-
 integration-tests/paho/pom.xml                     |  11 +-
 integration-tests/pdf/pom.xml                      |  11 +-
 integration-tests/platform-http-engine/pom.xml     |  11 +-
 integration-tests/platform-http/pom.xml            |  11 +-
 integration-tests/pom.xml                          |   3 +
 integration-tests/reactive-streams/pom.xml         |  10 +
 integration-tests/salesforce/pom.xml               |  11 +-
 integration-tests/scheduler/pom.xml                |  11 +-
 integration-tests/seda/pom.xml                     |  11 +-
 integration-tests/servlet/pom.xml                  |  11 +-
 integration-tests/sjms/pom.xml                     |  11 +-
 integration-tests/slack/pom.xml                    |  11 +-
 integration-tests/snakeyaml/pom.xml                |  11 +-
 integration-tests/sql/pom.xml                      |  11 +-
 integration-tests/stream/pom.xml                   |  11 +-
 .../core/runtime/support/SupportListener.java      |   4 +
 .../camel/quarkus/test/TrustStoreResource.java     |  58 +++
 integration-tests/tagsoup/pom.xml                  |  11 +-
 integration-tests/tarfile/pom.xml                  |  11 +-
 integration-tests/telegram/README.adoc             |  13 +
 integration-tests/{http => telegram}/pom.xml       |  64 ++-
 .../component/telegram/it/TelegramResource.java    | 157 ++++++
 .../component/telegram/it/TelegramRoutes.java      |  77 +++
 .../src/main/resources/application.properties      |  19 +-
 .../mock-messages/editMessageLiveLocation.json     |  24 +
 .../main/resources/mock-messages/getUpdates.json   |  41 ++
 .../main/resources/mock-messages/sendAudio.json    |  25 +
 .../main/resources/mock-messages/sendDocument.json |  24 +
 .../main/resources/mock-messages/sendLocation.json |  23 +
 .../main/resources/mock-messages/sendMessage.json  |  20 +
 .../main/resources/mock-messages/sendPhoto.json    |  27 +
 .../main/resources/mock-messages/sendVenue.json    |  31 ++
 .../main/resources/mock-messages/sendVideo.json    |  33 ++
 .../mock-messages/stopMessageLiveLocation.json     |  24 +
 .../quarkus/component/telegram/it/TelegramIT.java} |   4 +-
 .../component/telegram/it/TelegramTest.java        | 187 +++++++
 .../src/test/resources/camel-quarkus-rocks.mp3     | Bin 0 -> 9657 bytes
 .../src/test/resources/camel-quarkus-rocks.mp4     | Bin 0 -> 27845 bytes
 .../src/test/resources/camel-quarkus-rocks.pdf     | Bin 0 -> 7638 bytes
 .../src/test/resources/camel-quarkus-rocks.png     | Bin 0 -> 264 bytes
 integration-tests/twitter/pom.xml                  |  11 +-
 integration-tests/validator/pom.xml                |  11 +-
 integration-tests/xslt/pom.xml                     |  11 +-
 integration-tests/zipfile/pom.xml                  |  11 +-
 pom.xml                                            |  26 +-
 poms/bom-deployment/pom.xml                        |  10 +
 poms/bom/pom.xml                                   | 106 +++-
 .../integration-test-application.properties}       |   0
 .../integration-test-pom.xml                       |   1 -
 tooling/package-maven-plugin/pom.xml               |  32 ++
 .../apache/camel/quarkus/maven/ExtMvelHelper.java  |  12 +-
 .../camel/quarkus/maven/JSonSchemaHelper.java      | 567 +++++++++++++++++++++
 .../quarkus/maven/PrepareCatalogQuarkusMojo.java   |   2 +-
 .../quarkus/maven/UpdateDocExtensionsListMojo.java | 132 ++---
 tooling/scripts/sort-poms.groovy                   | 122 +++++
 tooling/scripts/validate-dependencies.groovy       |   4 +-
 183 files changed, 3720 insertions(+), 773 deletions(-)
 create mode 100644 .mvn/maven.config
 delete mode 100644 extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/DefaultXmlRoutesLoader.java
 copy extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/{CamelContextBuildItem.java => CamelModelToXMLDumperBuildItem.java} (74%)
 create mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
 copy extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/{DisabledXmlRoutesLoader.java => DisabledModelToXMLDumper.java} (73%)
 rename extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/{DisabledXmlRoutesLoader.java => DisabledXMLRoutesDefinitionLoader.java} (64%)
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/XmlRoutesLoader.java
 copy extensions/{bindy => jira}/deployment/pom.xml (86%)
 copy extensions/{core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/Feature.java => jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java} (74%)
 copy extensions/{bindy => jira}/pom.xml (94%)
 copy extensions/{aws-iam => jira}/runtime/pom.xml (75%)
 copy extensions/{core => jira}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (92%)
 delete mode 100644 extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClient.java
 delete mode 100644 extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/graal/SubstituteMongoClientOptions.java
 copy extensions/{aws-kinesis => olingo4}/deployment/pom.xml (80%)
 create mode 100644 extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java
 copy extensions/{bindy => olingo4}/pom.xml (93%)
 copy extensions/{sql => olingo4}/runtime/pom.xml (74%)
 copy extensions/{bean-validator/runtime/src/main/java/org/apache/camel/quarkus/component/bean/validator/graal/SubstituteBeanValidatorEndpoint.java => olingo4/runtime/src/main/java/org/apache/camel/quarkus/component/olingo4/graal/ODataImplSubstitutions.java} (63%)
 copy extensions/{consul => olingo4}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (87%)
 copy extensions/{consul => telegram}/deployment/pom.xml (83%)
 create mode 100644 extensions/telegram/deployment/src/main/java/org/apache/camel/quarkus/component/telegram/deployment/TelegramProcessor.java
 copy extensions/{bindy => telegram}/pom.xml (93%)
 copy extensions/{slack => telegram}/runtime/pom.xml (73%)
 rename extensions/{mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClientRecorder.java => telegram/runtime/src/main/java/org/apache/camel/quarkus/component/telegram/TelegramRecorder.java} (72%)
 copy extensions/{bindy => telegram}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (88%)
 copy integration-tests/{bindy => jira}/pom.xml (75%)
 copy tooling/create-extension-templates/TestResource.java => integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java (62%)
 copy integration-tests/{tarfile/src/main/java/org/apache/camel/quarkus/component/tarfile/it/TarfileRouteBuilder.java => jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRouteBuilder.java} (51%)
 copy integration-tests/{file/src/test/java/org/apache/camel/quarkus/component/file/it/FileIT.java => jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraIT.java} (91%)
 copy tooling/create-extension-templates/Test.java => integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java (77%)
 copy integration-tests/{bindy => olingo4}/pom.xml (82%)
 create mode 100644 integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Resource.java
 copy integration-tests/{dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerA.java => olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Person.java} (63%)
 copy integration-tests/{csv/src/test/java/org/apache/camel/quarkus/component/csv/it/CsvIT.java => olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4IT.java} (90%)
 create mode 100644 integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
 create mode 100644 integration-tests/support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
 create mode 100644 integration-tests/telegram/README.adoc
 copy integration-tests/{http => telegram}/pom.xml (72%)
 create mode 100644 integration-tests/telegram/src/main/java/org/apache/camel/quarkus/component/telegram/it/TelegramResource.java
 create mode 100644 integration-tests/telegram/src/main/java/org/apache/camel/quarkus/component/telegram/it/TelegramRoutes.java
 copy integration-tests/{platform-http => telegram}/src/main/resources/application.properties (60%)
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/editMessageLiveLocation.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/getUpdates.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendAudio.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendDocument.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendLocation.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendMessage.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendPhoto.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendVenue.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/sendVideo.json
 create mode 100644 integration-tests/telegram/src/main/resources/mock-messages/stopMessageLiveLocation.json
 copy integration-tests/{bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/CsvRecordIT.java => telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramIT.java} (90%)
 create mode 100644 integration-tests/telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramTest.java
 create mode 100644 integration-tests/telegram/src/test/resources/camel-quarkus-rocks.mp3
 create mode 100644 integration-tests/telegram/src/test/resources/camel-quarkus-rocks.mp4
 create mode 100644 integration-tests/telegram/src/test/resources/camel-quarkus-rocks.pdf
 create mode 100644 integration-tests/telegram/src/test/resources/camel-quarkus-rocks.png
 copy tooling/{package-maven-plugin/src/main/resources/camel-quarkus-package-maven-plugin.properties => create-extension-templates/integration-test-application.properties} (100%)
 create mode 100644 tooling/package-maven-plugin/src/main/java/org/apache/camel/quarkus/maven/JSonSchemaHelper.java

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 01/34: Add olingo4 extension

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

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

commit 287480e280d196ffb7354bcb6cf7aebbe6a195cb
Author: James Netherton <[hidden email]>
AuthorDate: Tue Feb 11 09:19:43 2020 +0000

    Add olingo4 extension
   
    fixes #692
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |   5 +-
 extensions/olingo4/deployment/pom.xml              |  91 ++++++++++++++
 .../olingo4/deployment/Olingo4Processor.java       |  72 +++++++++++
 extensions/olingo4/pom.xml                         |  39 ++++++
 extensions/olingo4/runtime/pom.xml                 | 102 ++++++++++++++++
 .../olingo4/graal/ODataImplSubstitutions.java      |  33 ++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  28 +++++
 extensions/pom.xml                                 |   1 +
 extensions/readme.adoc                             |   5 +-
 .../httpclient/deployment/HttpClientProcessor.java |   7 ++
 integration-tests/olingo4/pom.xml                  | 132 +++++++++++++++++++++
 .../component/olingo4/it/Olingo4Resource.java      | 120 +++++++++++++++++++
 .../camel/quarkus/component/olingo4/it/Person.java |  68 +++++++++++
 .../quarkus/component/olingo4/it/Olingo4IT.java    |  24 ++++
 .../quarkus/component/olingo4/it/Olingo4Test.java  | 120 +++++++++++++++++++
 integration-tests/pom.xml                          |   1 +
 pom.xml                                            |   1 +
 poms/bom-deployment/pom.xml                        |   5 +
 poms/bom/pom.xml                                   |  21 ++++
 19 files changed, 873 insertions(+), 2 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index cced184..b97e9be 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 62 in 53 JAR artifacts (0 deprecated)
+Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -135,6 +135,9 @@ Number of Camel components: 62 in 53 JAR artifacts (0 deprecated)
 | xref:extensions/netty-http.adoc[Netty HTTP] (camel-quarkus-netty-http) +
 `netty-http:protocol:host:port/path` | 0.2.0 | Netty HTTP server and client using the Netty 4.x library.
 
+| link:https://camel.apache.org/components/latest/olingo4-component.html[Olingo4] (camel-quarkus-olingo4) +
+`olingo4:apiName/methodName` | 1.2.0 | Communicates with OData 4.0 services using Apache Olingo OData API.
+
 | link:https://camel.apache.org/components/latest/paho-component.html[Paho] (camel-quarkus-paho) +
 `paho:topic` | 0.2.0 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.
 
diff --git a/extensions/olingo4/deployment/pom.xml b/extensions/olingo4/deployment/pom.xml
new file mode 100644
index 0000000..4271d30
--- /dev/null
+++ b/extensions/olingo4/deployment/pom.xml
@@ -0,0 +1,91 @@
+<?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-olingo4-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-olingo4-deployment</artifactId>
+    <name>Camel Quarkus :: Olingo4 :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-xml-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jackson-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-olingo4</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/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
new file mode 100644
index 0000000..967394f
--- /dev/null
+++ b/extensions/olingo4/deployment/src/main/java/org/apache/camel/quarkus/component/olingo4/deployment/Olingo4Processor.java
@@ -0,0 +1,72 @@
+/*
+ * 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.olingo4.deployment;
+
+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.component.olingo4.Olingo4AppEndpointConfiguration;
+import org.apache.camel.quarkus.core.deployment.UnbannedReflectiveBuildItem;
+import org.apache.olingo.server.core.ODataImpl;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
+
+class Olingo4Processor {
+
+    private static final String FEATURE = "camel-olingo4";
+    private static final DotName JSON_DESERIALIZE_DOT_NAME = DotName
+            .createSimple("com.fasterxml.jackson.databind.annotation.JsonDeserialize");
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @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");
+    }
+
+    @BuildStep
+    void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass, CombinedIndexBuildItem combinedIndex) {
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, ODataImpl.class));
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, Olingo4AppEndpointConfiguration.class));
+
+        /*
+         * Register Olingo Deserializer classes for reflection. We do this because the Quarkus Jackson extension only
+         * configures reflection where the 'using' annotation value is applied to fields & methods.
+         *
+         * TODO: Remove this when the Quarkus Jackson extension has this enhancement - https://github.com/quarkusio/quarkus/issues/7139
+         */
+        IndexView index = combinedIndex.getIndex();
+        index.getAnnotations(JSON_DESERIALIZE_DOT_NAME)
+                .stream()
+                .map(annotation -> annotation.value("using").asClass().name().toString())
+                .filter(className -> className.startsWith("org.apache.olingo"))
+                .map(className -> new ReflectiveClassBuildItem(true, false, false, className))
+                .forEach(reflectiveClass::produce);
+    }
+}
diff --git a/extensions/olingo4/pom.xml b/extensions/olingo4/pom.xml
new file mode 100644
index 0000000..f459038
--- /dev/null
+++ b/extensions/olingo4/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-olingo4-parent</artifactId>
+    <name>Camel Quarkus :: Olingo4</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/olingo4/runtime/pom.xml b/extensions/olingo4/runtime/pom.xml
new file mode 100644
index 0000000..f4d233b
--- /dev/null
+++ b/extensions/olingo4/runtime/pom.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-olingo4-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-olingo4</artifactId>
+    <name>Camel Quarkus :: Olingo4 :: Runtime</name>
+
+    <properties>
+        <firstVersion>1.2.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.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-xml</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jackson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-olingo4</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.graalvm.nativeimage</groupId>
+            <artifactId>svm</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/olingo4/runtime/src/main/java/org/apache/camel/quarkus/component/olingo4/graal/ODataImplSubstitutions.java b/extensions/olingo4/runtime/src/main/java/org/apache/camel/quarkus/component/olingo4/graal/ODataImplSubstitutions.java
new file mode 100644
index 0000000..6e967ec
--- /dev/null
+++ b/extensions/olingo4/runtime/src/main/java/org/apache/camel/quarkus/component/olingo4/graal/ODataImplSubstitutions.java
@@ -0,0 +1,33 @@
+/*
+ * 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.olingo4.graal;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.olingo.server.api.ODataHttpHandler;
+import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.core.ODataImpl;
+
+@TargetClass(ODataImpl.class)
+final class ODataImplSubstitutions {
+
+    @Substitute
+    public ODataHttpHandler createHandler(final ServiceMetadata serviceMetadata) {
+        // Avoid the optional and redundant servlet-api dependency
+        throw new UnsupportedOperationException("OData HTTP handlers are not supported in native mode");
+    }
+}
diff --git a/extensions/olingo4/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/olingo4/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..21e2e6e
--- /dev/null
+++ b/extensions/olingo4/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+---
+name: "Camel Quarkus Olingo4"
+description: "Camel Quarkus Olingo4 Support"
+metadata:
+  keywords:
+    - "camel"
+    - "olingo"
+    - "odata"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+    - "integration"
\ No newline at end of file
diff --git a/extensions/pom.xml b/extensions/pom.xml
index ddbddf9..373a23d 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -87,6 +87,7 @@
         <module>mongodb</module>
         <module>netty</module>
         <module>netty-http</module>
+        <module>olingo4</module>
         <module>opentracing</module>
         <module>paho</module>
         <module>pdf</module>
diff --git a/extensions/readme.adoc b/extensions/readme.adoc
index 1f46ba6..fffd02d 100644
--- a/extensions/readme.adoc
+++ b/extensions/readme.adoc
@@ -5,7 +5,7 @@ Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extension
 == Camel Components
 
 // components: START
-Number of Camel components: 62 in 53 JAR artifacts (0 deprecated)
+Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -122,6 +122,9 @@ Number of Camel components: 62 in 53 JAR artifacts (0 deprecated)
 | xref:extensions/netty-http.adoc[Netty HTTP] (camel-quarkus-netty-http) +
 `netty-http:protocol:host:port/path` | 0.2.0 | Netty HTTP server and client using the Netty 4.x library.
 
+| link:https://camel.apache.org/components/latest/olingo4-component.html[Olingo4] (camel-quarkus-olingo4) +
+`olingo4:apiName/methodName` | 1.2.0 | Communicates with OData 4.0 services using Apache Olingo OData API.
+
 | link:https://camel.apache.org/components/latest/paho-component.html[Paho] (camel-quarkus-paho) +
 `paho:topic` | 0.2.0 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.
 
diff --git a/extensions/support/httpclient/deployment/src/main/java/org/apache/camel/quarkus/support/httpclient/deployment/HttpClientProcessor.java b/extensions/support/httpclient/deployment/src/main/java/org/apache/camel/quarkus/support/httpclient/deployment/HttpClientProcessor.java
index 6e043af..f9cdda9 100644
--- a/extensions/support/httpclient/deployment/src/main/java/org/apache/camel/quarkus/support/httpclient/deployment/HttpClientProcessor.java
+++ b/extensions/support/httpclient/deployment/src/main/java/org/apache/camel/quarkus/support/httpclient/deployment/HttpClientProcessor.java
@@ -20,6 +20,7 @@ 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.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import org.jboss.jandex.ClassInfo;
 import org.jboss.jandex.DotName;
@@ -45,4 +46,10 @@ class HttpClientProcessor {
             reflectiveClasses.produce(new ReflectiveClassBuildItem(true, false, info.name().toString()));
         }
     }
+
+    @BuildStep
+    NativeImageResourceBuildItem suffixListResource() {
+        // Required by org.apache.http.conn.util.PublicSuffixMatcher
+        return new NativeImageResourceBuildItem("mozilla/public-suffix-list.txt");
+    }
 }
diff --git a/integration-tests/olingo4/pom.xml b/integration-tests/olingo4/pom.xml
new file mode 100644
index 0000000..294b65e
--- /dev/null
+++ b/integration-tests/olingo4/pom.xml
@@ -0,0 +1,132 @@
+<?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>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-olingo4</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Olingo4</name>
+    <description>Integration tests for Camel Quarkus Olingo4 extension</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-olingo4</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <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>
+                                <configuration>
+                                    <systemProperties>
+                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                    </systemProperties>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>io.quarkus</groupId>
+                        <artifactId>quarkus-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>native-image</id>
+                                <goals>
+                                    <goal>native-image</goal>
+                                </goals>
+                                <configuration>
+                                    <reportErrorsAtRuntime>false</reportErrorsAtRuntime>
+                                    <cleanupServer>true</cleanupServer>
+                                    <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
+                                    <enableServer>false</enableServer>
+                                    <dumpProxies>false</dumpProxies>
+                                    <graalvmHome>${graalvmHome}</graalvmHome>
+                                    <enableJni>true</enableJni>
+                                    <enableAllSecurityServices>true</enableAllSecurityServices>
+                                    <disableReports>true</disableReports>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Resource.java b/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Resource.java
new file mode 100644
index 0000000..de069a2
--- /dev/null
+++ b/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Resource.java
@@ -0,0 +1,120 @@
+/*
+ * 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.olingo4.it;
+
+import java.net.URI;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonObjectBuilder;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PATCH;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelExecutionException;
+import org.apache.camel.ProducerTemplate;
+import org.apache.olingo.client.api.communication.ODataClientErrorException;
+import org.apache.olingo.client.api.domain.ClientEntity;
+import org.apache.olingo.client.api.domain.ClientProperty;
+import org.apache.olingo.commons.api.http.HttpStatusCode;
+
+@Path("/olingo4")
+@ApplicationScoped
+public class Olingo4Resource {
+
+    public static final String TEST_SERVICE_BASE_URL = "https://services.odata.org/TripPinRESTierService";
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Path("/create")
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response create(@QueryParam("sessionId") String sessionId, String json) throws Exception {
+        ClientEntity entity = producerTemplate.requestBody(
+                "olingo4://create/People?contentType=application/json;charset=utf-8&serviceUri=" + getServiceURL(sessionId),
+                json, ClientEntity.class);
+        return Response
+                .created(new URI("https://camel.apache.org/"))
+                .entity(entity)
+                .build();
+    }
+
+    @Path("/read")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response read(@QueryParam("sessionId") String sessionId) {
+        Response.ResponseBuilder responseBuilder = Response.status(200);
+        try {
+            ClientEntity entity = producerTemplate.requestBody(
+                    "olingo4://read/People('lewisblack')?serviceUri=" + getServiceURL(sessionId), null, ClientEntity.class);
+
+            JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
+            String[] fields = new String[] { "FirstName", "LastName", "UserName", "MiddleName" };
+            for (String field : fields) {
+                ClientProperty property = entity.getProperty(field);
+                if (property != null) {
+                    objectBuilder.add(field, property.getPrimitiveValue().toString());
+                }
+            }
+            responseBuilder.entity(objectBuilder.build());
+        } catch (CamelExecutionException cee) {
+            Exception exception = cee.getExchange().getException();
+            if (exception instanceof ODataClientErrorException) {
+                ODataClientErrorException ex = (ODataClientErrorException) exception;
+                responseBuilder.status(ex.getStatusLine().getStatusCode());
+            } else {
+                throw cee;
+            }
+        }
+        return responseBuilder.build();
+    }
+
+    @Path("/update")
+    @PATCH
+    @Consumes(MediaType.APPLICATION_JSON)
+    public Response update(@QueryParam("sessionId") String sessionId, String json) {
+        HttpStatusCode status = producerTemplate.requestBody(
+                "olingo4://update/People('lewisblack')?serviceUri=" + getServiceURL(sessionId), json, HttpStatusCode.class);
+        return Response
+                .status(status.getStatusCode())
+                .build();
+    }
+
+    @Path("/delete")
+    @DELETE
+    public Response delete(@QueryParam("sessionId") String sessionId) {
+        HttpStatusCode status = producerTemplate.requestBody(
+                "olingo4://delete/People('lewisblack')?serviceUri=" + getServiceURL(sessionId), null, HttpStatusCode.class);
+        return Response
+                .status(status.getStatusCode())
+                .build();
+    }
+
+    private String getServiceURL(String sessionId) {
+        return String.format("%s/%s/", TEST_SERVICE_BASE_URL, sessionId);
+    }
+}
diff --git a/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Person.java b/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Person.java
new file mode 100644
index 0000000..d02e0a2
--- /dev/null
+++ b/integration-tests/olingo4/src/main/java/org/apache/camel/quarkus/component/olingo4/it/Person.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.olingo4.it;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class Person {
+
+    @JsonProperty("UserName")
+    private String userName;
+
+    @JsonProperty("FirstName")
+    private String firstName;
+
+    @JsonProperty("LastName")
+    private String lastName;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @JsonProperty("MiddleName")
+    private String middleName;
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getMiddleName() {
+        return middleName;
+    }
+
+    public void setMiddleName(String middleName) {
+        this.middleName = middleName;
+    }
+}
diff --git a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4IT.java b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4IT.java
new file mode 100644
index 0000000..482f054
--- /dev/null
+++ b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4IT.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.olingo4.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+class Olingo4IT extends Olingo4Test {
+
+}
diff --git a/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
new file mode 100644
index 0000000..845db3c
--- /dev/null
+++ b/integration-tests/olingo4/src/test/java/org/apache/camel/quarkus/component/olingo4/it/Olingo4Test.java
@@ -0,0 +1,120 @@
+/*
+ * 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.olingo4.it;
+
+import java.io.IOException;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpCoreContext;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import static org.apache.camel.quarkus.component.olingo4.it.Olingo4Resource.TEST_SERVICE_BASE_URL;
+import static org.hamcrest.core.Is.is;
+
+@QuarkusTest
+class Olingo4Test {
+
+    private static String sessionId;
+
+    @BeforeAll
+    public static void beforeAll() throws IOException {
+        // Use the same session id for each request to the demo Olingo4 Service
+        sessionId = getSession();
+    }
+
+    @Test
+    public void testOlingo4CrudOperations() {
+
+        // Create
+        Person person = new Person();
+        person.setUserName("lewisblack");
+        person.setFirstName("Lewis");
+        person.setLastName("Black");
+
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .contentType(ContentType.JSON)
+                .body(person)
+                .post("/olingo4/create")
+                .then()
+                .statusCode(201);
+
+        // Read
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .body("msg")
+                .get("/olingo4/read")
+                .then()
+                .contentType(ContentType.JSON)
+                .statusCode(200)
+                .body("FirstName", is(person.getFirstName()), "LastName", is(person.getLastName()), "UserName",
+                        is(person.getUserName()), "MiddleName", is(""));
+
+        // Update
+        person.setMiddleName("James");
+
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .contentType(ContentType.JSON)
+                .body(person)
+                .patch("/olingo4/update")
+                .then()
+                .statusCode(204);
+
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .body("msg")
+                .get("/olingo4/read")
+                .then()
+                .contentType(ContentType.JSON)
+                .statusCode(200)
+                .body("FirstName", is(person.getFirstName()), "LastName", is(person.getLastName()), "UserName",
+                        is(person.getUserName()), "MiddleName", is(person.getMiddleName()));
+
+        // Delete
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .delete("/olingo4/delete")
+                .then()
+                .statusCode(204);
+
+        RestAssured.given()
+                .queryParam("sessionId", sessionId)
+                .body("msg")
+                .get("/olingo4/read")
+                .then()
+                .statusCode(404);
+    }
+
+    private static String getSession() throws IOException {
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        HttpGet httpGet = new HttpGet(TEST_SERVICE_BASE_URL);
+        HttpContext httpContext = new BasicHttpContext();
+        httpClient.execute(httpGet, httpContext);
+        HttpUriRequest currentReq = (HttpUriRequest) httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST);
+        return currentReq.getURI().getPath().split("/")[2];
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 8809741..57b4e8c 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -194,6 +194,7 @@
         <module>microprofile</module>
         <module>mongodb</module>
         <module>netty</module>
+        <module>olingo4</module>
         <module>opentracing</module>
         <module>paho</module>
         <module>pdf</module>
diff --git a/pom.xml b/pom.xml
index a865bb0..191a8b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,7 @@
         <spring.version>5.2.1.RELEASE</spring.version>
         <retrofit.version>2.5.0</retrofit.version>
         <consul-client.version>1.3.3</consul-client.version>
+        <stax2.version>4.2</stax2.version>
 
         <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 264ab58..364be6a 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -301,6 +301,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-olingo4-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-opentracing-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 61ad17d..4c50f6b 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -378,6 +378,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-olingo4</artifactId>
+                <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>commons-logging</groupId>
+                        <artifactId>commons-logging</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-opentracing</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -766,6 +777,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-olingo4</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-opentracing</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -987,6 +1003,11 @@
                 <version>${ahc.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.codehaus.woodstox</groupId>
+                <artifactId>stax2-api</artifactId>
+                <version>${stax2.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.eclipse.jetty</groupId>
                 <artifactId>jetty-client</artifactId>
                 <version>${jetty.version}</version>

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 02/34: chore: Remove redundant note related to fileWatcher param in stream extension docs

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 882bb408d632a3be449a43a14d8596757ba71e36
Author: James Netherton <[hidden email]>
AuthorDate: Tue Feb 11 15:19:02 2020 +0000

    chore: Remove redundant note related to fileWatcher param in stream extension docs
---
 docs/modules/ROOT/pages/extensions/stream.adoc | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/docs/modules/ROOT/pages/extensions/stream.adoc b/docs/modules/ROOT/pages/extensions/stream.adoc
index 0da0e4c..eae7814 100644
--- a/docs/modules/ROOT/pages/extensions/stream.adoc
+++ b/docs/modules/ROOT/pages/extensions/stream.adoc
@@ -25,7 +25,3 @@ Please refer to the https://camel.apache.org/components/latest/stream-component.
 * Check the xref:native-mode.adoc#charsets[Character encodings section] of the Native mode guide if you want to use
  non-default encodings for the stream endpoint `encoding` URI parameter.
 
-[NOTE]
-====
-The `fileWatcher` feature of the stream consumer requires GraalVM >= 19.3.0, due to a https://github.com/oracle/graal/issues/1253[bug].
-====

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 03/34: Add olingo4 itest to project list

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 4b1d7da25b1d61f5bab621bca2d3e9d2ef0b761a
Author: James Netherton <[hidden email]>
AuthorDate: Tue Feb 11 18:31:57 2020 +0000

    Add olingo4 itest to project list
---
 .github/workflows/pr-build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index f36c6f2..3e4843a 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -366,6 +366,7 @@ jobs:
             -pl :camel-quarkus-integration-test-ftp \
             -pl :camel-quarkus-integration-test-infinispan \
             -pl :camel-quarkus-integration-test-mail \
+            -pl :camel-quarkus-integration-test-olingo4 \
             -pl :camel-quarkus-integration-test-pdf \
             -pl :camel-quarkus-integration-test-stream \
             -pl :camel-quarkus-integration-test-tarfile \

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 04/34: Remove enableJni from integration tests as JNI si always enabled on GraalVM 19.3.1

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 0e5feb3818131a80519d5c77533ac7c951ab1f05
Author: lburgazzoli <[hidden email]>
AuthorDate: Tue Feb 11 18:40:17 2020 +0100

    Remove enableJni from integration tests as JNI si always enabled on GraalVM 19.3.1
---
 integration-tests/aws/pom.xml                               | 1 -
 integration-tests/base64/pom.xml                            | 1 -
 integration-tests/bean-validator/pom.xml                    | 1 -
 integration-tests/bean/pom.xml                              | 1 -
 integration-tests/bindy/pom.xml                             | 1 -
 integration-tests/consul/pom.xml                            | 1 -
 integration-tests/controlbus/pom.xml                        | 1 -
 integration-tests/core-impl/pom.xml                         | 1 -
 integration-tests/core-main-xml/pom.xml                     | 1 -
 integration-tests/core-main/pom.xml                         | 1 -
 integration-tests/core/pom.xml                              | 1 -
 integration-tests/csv/pom.xml                               | 1 -
 integration-tests/dataformat/pom.xml                        | 1 -
 integration-tests/dozer/pom.xml                             | 1 -
 integration-tests/exec/pom.xml                              | 1 -
 integration-tests/fhir/pom.xml                              | 1 -
 integration-tests/file/pom.xml                              | 1 -
 integration-tests/ftp/pom.xml                               | 1 -
 integration-tests/http/pom.xml                              | 1 -
 integration-tests/hystrix/pom.xml                           | 1 -
 integration-tests/infinispan/pom.xml                        | 1 -
 integration-tests/jackson/pom.xml                           | 1 -
 integration-tests/jdbc/pom.xml                              | 1 -
 integration-tests/jsonpath/pom.xml                          | 1 -
 integration-tests/kafka/pom.xml                             | 1 -
 integration-tests/mail/pom.xml                              | 1 -
 integration-tests/microprofile/pom.xml                      | 1 -
 integration-tests/mongodb/pom.xml                           | 1 -
 integration-tests/netty/pom.xml                             | 1 -
 integration-tests/olingo4/pom.xml                           | 1 -
 integration-tests/opentracing/pom.xml                       | 1 -
 integration-tests/paho/pom.xml                              | 1 -
 integration-tests/pdf/pom.xml                               | 1 -
 integration-tests/platform-http-engine/pom.xml              | 1 -
 integration-tests/platform-http/pom.xml                     | 1 -
 integration-tests/salesforce/pom.xml                        | 1 -
 integration-tests/scheduler/pom.xml                         | 1 -
 integration-tests/seda/pom.xml                              | 1 -
 integration-tests/servlet/pom.xml                           | 1 -
 integration-tests/sjms/pom.xml                              | 1 -
 integration-tests/slack/pom.xml                             | 1 -
 integration-tests/snakeyaml/pom.xml                         | 1 -
 integration-tests/sql/pom.xml                               | 1 -
 integration-tests/stream/pom.xml                            | 1 -
 integration-tests/tagsoup/pom.xml                           | 1 -
 integration-tests/tarfile/pom.xml                           | 1 -
 integration-tests/twitter/pom.xml                           | 1 -
 integration-tests/validator/pom.xml                         | 1 -
 integration-tests/xslt/pom.xml                              | 1 -
 integration-tests/zipfile/pom.xml                           | 1 -
 tooling/create-extension-templates/integration-test-pom.xml | 1 -
 51 files changed, 51 deletions(-)

diff --git a/integration-tests/aws/pom.xml b/integration-tests/aws/pom.xml
index ed6e34c..19482fe 100644
--- a/integration-tests/aws/pom.xml
+++ b/integration-tests/aws/pom.xml
@@ -156,7 +156,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/base64/pom.xml b/integration-tests/base64/pom.xml
index c086814..f987b02 100644
--- a/integration-tests/base64/pom.xml
+++ b/integration-tests/base64/pom.xml
@@ -115,7 +115,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/bean-validator/pom.xml b/integration-tests/bean-validator/pom.xml
index 066d27c..c525317 100644
--- a/integration-tests/bean-validator/pom.xml
+++ b/integration-tests/bean-validator/pom.xml
@@ -115,7 +115,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/bean/pom.xml b/integration-tests/bean/pom.xml
index 738d62e..bfe1aa1 100644
--- a/integration-tests/bean/pom.xml
+++ b/integration-tests/bean/pom.xml
@@ -125,7 +125,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/bindy/pom.xml b/integration-tests/bindy/pom.xml
index fc7d8ed..d9958db 100644
--- a/integration-tests/bindy/pom.xml
+++ b/integration-tests/bindy/pom.xml
@@ -121,7 +121,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/consul/pom.xml b/integration-tests/consul/pom.xml
index 2392692..e2e6a05 100644
--- a/integration-tests/consul/pom.xml
+++ b/integration-tests/consul/pom.xml
@@ -118,7 +118,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/controlbus/pom.xml b/integration-tests/controlbus/pom.xml
index efb255c..26a8df8 100644
--- a/integration-tests/controlbus/pom.xml
+++ b/integration-tests/controlbus/pom.xml
@@ -123,7 +123,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/core-impl/pom.xml b/integration-tests/core-impl/pom.xml
index 40d415b..7409d0f 100644
--- a/integration-tests/core-impl/pom.xml
+++ b/integration-tests/core-impl/pom.xml
@@ -99,7 +99,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/core-main-xml/pom.xml b/integration-tests/core-main-xml/pom.xml
index 79ee762..477622a 100644
--- a/integration-tests/core-main-xml/pom.xml
+++ b/integration-tests/core-main-xml/pom.xml
@@ -132,7 +132,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/core-main/pom.xml b/integration-tests/core-main/pom.xml
index 262c9f1..0a0419d 100644
--- a/integration-tests/core-main/pom.xml
+++ b/integration-tests/core-main/pom.xml
@@ -154,7 +154,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/core/pom.xml b/integration-tests/core/pom.xml
index d88c6fd..5644c99 100644
--- a/integration-tests/core/pom.xml
+++ b/integration-tests/core/pom.xml
@@ -127,7 +127,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/csv/pom.xml b/integration-tests/csv/pom.xml
index e5972d2..ebe3f6e 100644
--- a/integration-tests/csv/pom.xml
+++ b/integration-tests/csv/pom.xml
@@ -117,7 +117,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/dataformat/pom.xml b/integration-tests/dataformat/pom.xml
index baf9c19..54160f5 100644
--- a/integration-tests/dataformat/pom.xml
+++ b/integration-tests/dataformat/pom.xml
@@ -119,7 +119,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/dozer/pom.xml b/integration-tests/dozer/pom.xml
index 96a34c8..53752ab 100644
--- a/integration-tests/dozer/pom.xml
+++ b/integration-tests/dozer/pom.xml
@@ -119,7 +119,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/exec/pom.xml b/integration-tests/exec/pom.xml
index 7dc8b4d..5332ea6 100644
--- a/integration-tests/exec/pom.xml
+++ b/integration-tests/exec/pom.xml
@@ -115,7 +115,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/fhir/pom.xml b/integration-tests/fhir/pom.xml
index e6b58dd..f149b8c 100644
--- a/integration-tests/fhir/pom.xml
+++ b/integration-tests/fhir/pom.xml
@@ -143,7 +143,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/file/pom.xml b/integration-tests/file/pom.xml
index 01ac766..d020885 100644
--- a/integration-tests/file/pom.xml
+++ b/integration-tests/file/pom.xml
@@ -111,7 +111,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/ftp/pom.xml b/integration-tests/ftp/pom.xml
index 6434d10..3bc09f1 100644
--- a/integration-tests/ftp/pom.xml
+++ b/integration-tests/ftp/pom.xml
@@ -145,7 +145,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/http/pom.xml b/integration-tests/http/pom.xml
index 82d1685..2b6118d 100644
--- a/integration-tests/http/pom.xml
+++ b/integration-tests/http/pom.xml
@@ -138,7 +138,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/hystrix/pom.xml b/integration-tests/hystrix/pom.xml
index ecc4de6..57b69c9 100644
--- a/integration-tests/hystrix/pom.xml
+++ b/integration-tests/hystrix/pom.xml
@@ -126,7 +126,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/infinispan/pom.xml b/integration-tests/infinispan/pom.xml
index ddb0fdb..5c4139f 100644
--- a/integration-tests/infinispan/pom.xml
+++ b/integration-tests/infinispan/pom.xml
@@ -224,7 +224,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/jackson/pom.xml b/integration-tests/jackson/pom.xml
index 0e17502..cec72a2 100644
--- a/integration-tests/jackson/pom.xml
+++ b/integration-tests/jackson/pom.xml
@@ -141,7 +141,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/jdbc/pom.xml b/integration-tests/jdbc/pom.xml
index 971b831..9e5ba03 100644
--- a/integration-tests/jdbc/pom.xml
+++ b/integration-tests/jdbc/pom.xml
@@ -124,7 +124,6 @@
                                 <configuration>
                                     <cleanupServer>true</cleanupServer>
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
-                                    <enableJni>false</enableJni>
                                     <debugBuildProcess>false</debugBuildProcess>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/jsonpath/pom.xml b/integration-tests/jsonpath/pom.xml
index 3863c4b..9f13bdc 100644
--- a/integration-tests/jsonpath/pom.xml
+++ b/integration-tests/jsonpath/pom.xml
@@ -119,7 +119,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/kafka/pom.xml b/integration-tests/kafka/pom.xml
index 49434b1..9347056 100644
--- a/integration-tests/kafka/pom.xml
+++ b/integration-tests/kafka/pom.xml
@@ -140,7 +140,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/mail/pom.xml b/integration-tests/mail/pom.xml
index 758922a..a53f7c1 100644
--- a/integration-tests/mail/pom.xml
+++ b/integration-tests/mail/pom.xml
@@ -137,7 +137,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>false</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/microprofile/pom.xml b/integration-tests/microprofile/pom.xml
index 0e9134c..3409c44 100644
--- a/integration-tests/microprofile/pom.xml
+++ b/integration-tests/microprofile/pom.xml
@@ -121,7 +121,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/mongodb/pom.xml b/integration-tests/mongodb/pom.xml
index d03f438..5804bc3 100644
--- a/integration-tests/mongodb/pom.xml
+++ b/integration-tests/mongodb/pom.xml
@@ -122,7 +122,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/netty/pom.xml b/integration-tests/netty/pom.xml
index 993905b..bbb55f3 100644
--- a/integration-tests/netty/pom.xml
+++ b/integration-tests/netty/pom.xml
@@ -120,7 +120,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/olingo4/pom.xml b/integration-tests/olingo4/pom.xml
index 294b65e..f96f3fc 100644
--- a/integration-tests/olingo4/pom.xml
+++ b/integration-tests/olingo4/pom.xml
@@ -117,7 +117,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/opentracing/pom.xml b/integration-tests/opentracing/pom.xml
index de8e5d6..1297c5a 100644
--- a/integration-tests/opentracing/pom.xml
+++ b/integration-tests/opentracing/pom.xml
@@ -123,7 +123,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/paho/pom.xml b/integration-tests/paho/pom.xml
index 669885d..08586d7 100644
--- a/integration-tests/paho/pom.xml
+++ b/integration-tests/paho/pom.xml
@@ -133,7 +133,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/pdf/pom.xml b/integration-tests/pdf/pom.xml
index d8426ea..bd626a1 100644
--- a/integration-tests/pdf/pom.xml
+++ b/integration-tests/pdf/pom.xml
@@ -104,7 +104,6 @@
                   <enableServer>false</enableServer>
                   <dumpProxies>false</dumpProxies>
                   <graalvmHome>${graalvmHome}</graalvmHome>
-                  <enableJni>true</enableJni>
                   <enableAllSecurityServices>true</enableAllSecurityServices>
                   <disableReports>true</disableReports>
                 </configuration>
diff --git a/integration-tests/platform-http-engine/pom.xml b/integration-tests/platform-http-engine/pom.xml
index 6b4a51a..2c8cd8a 100644
--- a/integration-tests/platform-http-engine/pom.xml
+++ b/integration-tests/platform-http-engine/pom.xml
@@ -121,7 +121,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/platform-http/pom.xml b/integration-tests/platform-http/pom.xml
index ae09986..4a5d267 100644
--- a/integration-tests/platform-http/pom.xml
+++ b/integration-tests/platform-http/pom.xml
@@ -125,7 +125,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/salesforce/pom.xml b/integration-tests/salesforce/pom.xml
index 4e07b7e..da2011c 100644
--- a/integration-tests/salesforce/pom.xml
+++ b/integration-tests/salesforce/pom.xml
@@ -117,7 +117,6 @@
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <disableReports>true</disableReports>
                                 </configuration>
                             </execution>
diff --git a/integration-tests/scheduler/pom.xml b/integration-tests/scheduler/pom.xml
index 0fb2ff7..9bc6162 100644
--- a/integration-tests/scheduler/pom.xml
+++ b/integration-tests/scheduler/pom.xml
@@ -126,7 +126,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/seda/pom.xml b/integration-tests/seda/pom.xml
index 50b4fc1..2da505a 100644
--- a/integration-tests/seda/pom.xml
+++ b/integration-tests/seda/pom.xml
@@ -111,7 +111,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/servlet/pom.xml b/integration-tests/servlet/pom.xml
index 004d05b..47d168d 100644
--- a/integration-tests/servlet/pom.xml
+++ b/integration-tests/servlet/pom.xml
@@ -111,7 +111,6 @@
                                 <configuration>
                                     <cleanupServer>true</cleanupServer>
                                     <enableHttpUrlHandler>true</enableHttpUrlHandler>
-                                    <enableJni>false</enableJni>
                                     <debugBuildProcess>false</debugBuildProcess>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/sjms/pom.xml b/integration-tests/sjms/pom.xml
index cdeb694..3502ae8 100644
--- a/integration-tests/sjms/pom.xml
+++ b/integration-tests/sjms/pom.xml
@@ -171,7 +171,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/slack/pom.xml b/integration-tests/slack/pom.xml
index 40f64da..586df17 100644
--- a/integration-tests/slack/pom.xml
+++ b/integration-tests/slack/pom.xml
@@ -119,7 +119,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/snakeyaml/pom.xml b/integration-tests/snakeyaml/pom.xml
index 56a2805..9c21d6c 100644
--- a/integration-tests/snakeyaml/pom.xml
+++ b/integration-tests/snakeyaml/pom.xml
@@ -115,7 +115,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/sql/pom.xml b/integration-tests/sql/pom.xml
index 4e08aeb..8a072f1 100644
--- a/integration-tests/sql/pom.xml
+++ b/integration-tests/sql/pom.xml
@@ -120,7 +120,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/stream/pom.xml b/integration-tests/stream/pom.xml
index 512a131..366c439 100644
--- a/integration-tests/stream/pom.xml
+++ b/integration-tests/stream/pom.xml
@@ -113,7 +113,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/tagsoup/pom.xml b/integration-tests/tagsoup/pom.xml
index e88a119..3113d43 100644
--- a/integration-tests/tagsoup/pom.xml
+++ b/integration-tests/tagsoup/pom.xml
@@ -123,7 +123,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/tarfile/pom.xml b/integration-tests/tarfile/pom.xml
index 4b25352..de34f7a 100644
--- a/integration-tests/tarfile/pom.xml
+++ b/integration-tests/tarfile/pom.xml
@@ -113,7 +113,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/twitter/pom.xml b/integration-tests/twitter/pom.xml
index 2d232d7..5ad072f 100644
--- a/integration-tests/twitter/pom.xml
+++ b/integration-tests/twitter/pom.xml
@@ -109,7 +109,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/validator/pom.xml b/integration-tests/validator/pom.xml
index 5d0d40d..385bb2e 100644
--- a/integration-tests/validator/pom.xml
+++ b/integration-tests/validator/pom.xml
@@ -117,7 +117,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/xslt/pom.xml b/integration-tests/xslt/pom.xml
index a3656d0..d19b0b1 100644
--- a/integration-tests/xslt/pom.xml
+++ b/integration-tests/xslt/pom.xml
@@ -123,7 +123,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/integration-tests/zipfile/pom.xml b/integration-tests/zipfile/pom.xml
index ff1b49a..b623e69 100644
--- a/integration-tests/zipfile/pom.xml
+++ b/integration-tests/zipfile/pom.xml
@@ -113,7 +113,6 @@
                                     <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>
diff --git a/tooling/create-extension-templates/integration-test-pom.xml b/tooling/create-extension-templates/integration-test-pom.xml
index 941052d..834259c 100644
--- a/tooling/create-extension-templates/integration-test-pom.xml
+++ b/tooling/create-extension-templates/integration-test-pom.xml
@@ -113,7 +113,6 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
                                     <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                 </configuration>

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 05/34: Use camel-quarkus-support-httpclient in slack extension

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit be3ff25bfb497224e8e12d42e994d783643fa59f
Author: James Netherton <[hidden email]>
AuthorDate: Wed Feb 12 08:00:03 2020 +0000

    Use camel-quarkus-support-httpclient in slack extension
---
 extensions/slack/deployment/pom.xml                               | 4 ++++
 .../camel/quarkus/component/slack/deployment/SlackProcessor.java  | 8 --------
 extensions/slack/runtime/pom.xml                                  | 4 ++++
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/extensions/slack/deployment/pom.xml b/extensions/slack/deployment/pom.xml
index 2e8fe49..30851b6 100644
--- a/extensions/slack/deployment/pom.xml
+++ b/extensions/slack/deployment/pom.xml
@@ -52,6 +52,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-slack</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java b/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
index 199bcdb..fbc8054 100644
--- a/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
+++ b/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
@@ -19,7 +19,6 @@ package org.apache.camel.quarkus.component.slack.deployment;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 
 class SlackProcessor {
 
@@ -34,11 +33,4 @@ class SlackProcessor {
     ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
-
-    @BuildStep
-    NativeImageResourceBuildItem suffixListResource() {
-        // Required by org.apache.http.conn.util.PublicSuffixMatcher
-        return new NativeImageResourceBuildItem("mozilla/public-suffix-list.txt");
-    }
-
 }
diff --git a/extensions/slack/runtime/pom.xml b/extensions/slack/runtime/pom.xml
index 79a0ae0..d794bb2 100644
--- a/extensions/slack/runtime/pom.xml
+++ b/extensions/slack/runtime/pom.xml
@@ -55,6 +55,10 @@
             <artifactId>camel-quarkus-support-commons-logging</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-httpclient</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-slack</artifactId>
             <exclusions>

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 06/34: Cleanup: Declare quarkus-development-mode-spi as a nonExtensionArtifact

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 878a6d22851a1ec781238856f36191d98dcf66f2
Author: Peter Palaga <[hidden email]>
AuthorDate: Mon Feb 10 10:45:59 2020 +0100

    Cleanup: Declare quarkus-development-mode-spi as a nonExtensionArtifact
---
 tooling/scripts/validate-dependencies.groovy | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tooling/scripts/validate-dependencies.groovy b/tooling/scripts/validate-dependencies.groovy
index 6d9cbd6..1328bf4 100644
--- a/tooling/scripts/validate-dependencies.groovy
+++ b/tooling/scripts/validate-dependencies.groovy
@@ -24,7 +24,7 @@ final File pomXml = new File(project.basedir, "pom.xml")
 /* groupIds that contain extensions */
 final Set<String> extensionGroupIds = ["org.apache.camel.quarkus", "io.quarkus"] as Set
 /* artifactIds from groups contained in extensionGroupIds that are not extensions */
-final Set<String> nonExtensionArtifactIds = [] as Set
+final Set<String> nonExtensionArtifactIds = ["quarkus-development-mode-spi"] as Set
 
 final Path treeRootDir = Paths.get(project.properties['camel.quarkus.project.root'])
 final Path relativePomPath = treeRootDir.relativize(pomXml.toPath().normalize())
@@ -86,7 +86,7 @@ if (pomXml.exists()) {
 
         actualRuntimeDeps
             .findAll {
-                !expectedRuntimeDeps.contains(it) && it.second != "quarkus-development-mode-spi"
+                !expectedRuntimeDeps.contains(it)
             }
             .each {
                 parityViolations << "${relativePomPath}  is missing  ${it.first}:${it.second}-deployment  dependency?"

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 07/34: Fix #696 Test HTTPS with the HTTP clients

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit e8e5dc4732d1a7057df5b4585942550bb72f8454
Author: Peter Palaga <[hidden email]>
AuthorDate: Tue Feb 11 07:52:52 2020 +0100

    Fix #696 Test HTTPS with the HTTP clients
---
 .../quarkus/component/http/it/HttpResource.java    | 30 +++++++++++
 .../camel/quarkus/component/http/it/HttpTest.java  | 29 +++++++++++
 .../camel/quarkus/test/TrustStoreResource.java     | 58 ++++++++++++++++++++++
 3 files changed, 117 insertions(+)

diff --git a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java
index 871fc1a..732a8e1 100644
--- a/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java
+++ b/integration-tests/http/src/main/java/org/apache/camel/quarkus/component/http/it/HttpResource.java
@@ -55,6 +55,16 @@ public class HttpResource {
                 .request(String.class);
     }
 
+    @Path("/ahc/get-https")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String getHttps() {
+        return producerTemplate
+                .to("ahc:https://restcountries.eu/rest/v2/alpha/cz?bridgeEndpoint=true")
+                .withHeader(Exchange.HTTP_METHOD, "GET")
+                .request(String.class);
+    }
+
     @Path("/ahc/post")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
@@ -102,6 +112,16 @@ public class HttpResource {
                 .request(String.class);
     }
 
+    @Path("/http/get-https")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String httpGetHttps() {
+        return producerTemplate
+                .to("https://restcountries.eu/rest/v2/alpha/cz?bridgeEndpoint=true")
+                .withHeader(Exchange.HTTP_METHOD, "GET")
+                .request(String.class);
+    }
+
     @Path("/http/post")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
@@ -131,6 +151,16 @@ public class HttpResource {
                 .request(String.class);
     }
 
+    @Path("/netty-http/get-https")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String nettyHttpGetHttps() {
+        return producerTemplate
+                .to("netty-http:https://restcountries.eu/rest/v2/alpha/cz")
+                .withHeader(Exchange.HTTP_METHOD, "GET")
+                .request(String.class);
+    }
+
     @Path("/netty-http/post")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
diff --git a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java
index 8423014..ab048c3 100644
--- a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java
+++ b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpTest.java
@@ -19,14 +19,17 @@ package org.apache.camel.quarkus.component.http.it;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
+import org.apache.camel.quarkus.test.TrustStoreResource;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
+import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.is;
 
 @QuarkusTest
 @QuarkusTestResource(HttpTestResource.class)
+@QuarkusTestResource(TrustStoreResource.class)
 class HttpTest {
     @ParameterizedTest
     @ValueSource(strings = { "ahc", "http", "netty-http" })
@@ -49,6 +52,32 @@ class HttpTest {
                 .body(is("MESSAGE"));
     }
 
+    @ParameterizedTest
+    @ValueSource(strings = { "ahc",
+            "http" /*, "netty-http" disabled because of https://github.com/apache/camel-quarkus/issues/695 */ })
+    public void httpsProducer(String component) {
+        RestAssured
+                .given()
+                .when()
+                .get("/test/client/{component}/get-https", component)
+                .then()
+                .body(containsString("Czech Republic"));
+    }
+
+    @Test
+    public void restcountries() throws Exception {
+        RestAssured
+                .given()
+                .baseUri("https://restcountries.eu")
+                .port(443)
+                .when()
+                .accept("application/json")
+                .get("/rest/v2/alpha/cz")
+                .then()
+                .statusCode(200)
+                .body(containsString("Czech Republic"));
+    }
+
     @Test
     public void basicNettyHttpServer() throws Exception {
         final int port = Integer.getInteger("camel.netty-http.test-port");
diff --git a/integration-tests/support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java b/integration-tests/support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
new file mode 100644
index 0000000..32c48c2
--- /dev/null
+++ b/integration-tests/support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
@@ -0,0 +1,58 @@
+/*
+ * 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.test;
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collections;
+import java.util.Map;
+
+import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+
+/**
+ * Native images built using a docker container end up with {@code javax.net.ssl.trustStore} system property
+ * pointing to a non-existing file; see https://quarkus.io/guides/native-and-ssl For that case, we have to set
+ * {@code javax.net.ssl.trustStore} to an existing path explicitly.
+ */
+public class TrustStoreResource implements QuarkusTestResourceLifecycleManager {
+
+    @Override
+    public Map<String, String> start() {
+        final String graalVmHome = System.getenv("GRAALVM_HOME");
+        final String javaHome = System.getenv("JAVA_HOME");
+        Path trustStorePath = null;
+        final String CACERTS_REL_PATH = "jre/lib/security/cacerts";
+        if (graalVmHome != null && !graalVmHome.isEmpty()
+                && Files.exists(trustStorePath = Paths.get(graalVmHome).resolve(CACERTS_REL_PATH))) {
+        } else if (javaHome != null && !javaHome.isEmpty()
+                && Files.exists(trustStorePath = Paths.get(javaHome).resolve(CACERTS_REL_PATH))) {
+        } else {
+            throw new IllegalStateException(
+                    "Could not find any existing file to set javax.net.ssl.trustStore; tried $GRAALVM_HOME/" + CACERTS_REL_PATH
+                            + " and $JAVA_HOME/" + CACERTS_REL_PATH
+                            + ". You may need to set GRAALVM_HOME or JAVA_HOME properly. Found $GRAALVM_HOME = " + graalVmHome
+                            + " and $JAVA_HOME = " + graalVmHome);
+        }
+        return Collections.singletonMap("javax.net.ssl.trustStore", trustStorePath.toString());
+    }
+
+    @Override
+    public void stop() {
+    }
+
+}

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 08/34: Re-use the cached local Maven repo even in build-alternative-jvm job

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit d5e5ba5a3a490313aa5486871663f067fd945c3e
Author: Peter Palaga <[hidden email]>
AuthorDate: Wed Feb 12 13:45:29 2020 +0100

    Re-use the cached local Maven repo even in build-alternative-jvm job
---
 .github/workflows/pr-build.yaml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index 3e4843a..4a29823 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -55,6 +55,7 @@ jobs:
             maven-${{ github.sha }}
   build-alternative-jvm:
     runs-on: ubuntu-latest
+    needs: build
     strategy:
       matrix:
         java: [ '11' , '12' ]
@@ -68,6 +69,13 @@ jobs:
         uses: actions/setup-java@v1
         with:
           java-version: ${{ matrix.java }}
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
       - name: Build on ${{ matrix.java }}
         run: |
           ./mvnw -V -B ${BRANCH_OPTIONS} \

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 09/34: #670 fix PDF itests in native mode

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 23e36a10c3083be2d899fc8e78e6e03055221445
Author: Freeman Fang <[hidden email]>
AuthorDate: Wed Feb 12 17:23:29 2020 -0500

    #670 fix PDF itests in native mode
---
 extensions/pdf/deployment/pom.xml                              |  4 ++++
 .../camel/quarkus/component/pdf/deployment/PdfProcessor.java   | 10 +++++++---
 extensions/pdf/runtime/pom.xml                                 | 10 ++++++++++
 .../org/apache/camel/quarkus/component/pdf/it/PdfResource.java |  2 +-
 4 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/extensions/pdf/deployment/pom.xml b/extensions/pdf/deployment/pom.xml
index 3b7e9a2..0058ff4 100644
--- a/extensions/pdf/deployment/pom.xml
+++ b/extensions/pdf/deployment/pom.xml
@@ -50,6 +50,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-pdf</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
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 60568c0..e7bbf14 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
@@ -16,11 +16,12 @@
  */
 package org.apache.camel.quarkus.component.pdf.deployment;
 
+import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.component.pdf.PdfConfiguration;
 
 class PdfProcessor {
 
@@ -42,8 +43,11 @@ class PdfProcessor {
     }
 
     @BuildStep
-    ReflectiveClassBuildItem initReflectiveConfiguration() {
-        return new ReflectiveClassBuildItem(true, false, PdfConfiguration.class);
+    NativeImageConfigBuildItem build(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
+        return NativeImageConfigBuildItem.builder()
+                .addRuntimeInitializedClass("org.apache.pdfbox.pdmodel.font.PDType1Font")
+                .addRuntimeInitializedClass("org.apache.camel.component.pdf.PdfConfiguration")
+                .build();
     }
 
 }
diff --git a/extensions/pdf/runtime/pom.xml b/extensions/pdf/runtime/pom.xml
index a4de961..72da6bc 100644
--- a/extensions/pdf/runtime/pom.xml
+++ b/extensions/pdf/runtime/pom.xml
@@ -53,6 +53,16 @@
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-pdf</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/integration-tests/pdf/src/main/java/org/apache/camel/quarkus/component/pdf/it/PdfResource.java b/integration-tests/pdf/src/main/java/org/apache/camel/quarkus/component/pdf/it/PdfResource.java
index ffd6fa8..c8d7bda 100644
--- a/integration-tests/pdf/src/main/java/org/apache/camel/quarkus/component/pdf/it/PdfResource.java
+++ b/integration-tests/pdf/src/main/java/org/apache/camel/quarkus/component/pdf/it/PdfResource.java
@@ -51,7 +51,7 @@ public class PdfResource {
     @Produces(MediaType.APPLICATION_OCTET_STREAM)
     public Response createFromText(String message) throws Exception {
         document = producerTemplate.requestBody(
-                "pdf:create?fontSize=6&pageSize=PAGE_SIZE_A5&font=Courier", message, byte[].class);
+                "pdf:create?fontSize=6&pageSize=PAGE_SIZE_A5", message, byte[].class);
 
         LOG.infof("The PDDocument has been created and contains %d bytes", document.length);
 

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 10/34: Ensure that catalog files are added to the native image #686

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 983a62921d8eae1178225b96b78401629adc469a
Author: lburgazzoli <[hidden email]>
AuthorDate: Fri Feb 7 16:14:34 2020 +0100

    Ensure that catalog files are added to the native image #686
---
 .../quarkus/core/deployment/BuildProcessor.java    |   6 +-
 .../core/deployment/NativeImageProcessor.java      |  86 ++++++++++++++++-
 .../org/apache/camel/quarkus/core/CamelConfig.java |  50 ++++++++++
 .../camel/quarkus/core/CamelMainRecorder.java      |   1 -
 .../apache/camel/quarkus/core/CamelRecorder.java   |   6 +-
 .../camel/quarkus/core/CamelRuntimeCatalog.java    |  66 +++++++++++++
 .../camel/quarkus/core/FastCamelContext.java       | 107 ++++++++++++++++++++-
 .../java/org/apache/camel/quarkus/core/Flags.java  |   7 ++
 .../apache/camel/quarkus/core/CamelServlet.java    |  23 +++++
 .../core/src/main/resources/application.properties |   5 +-
 .../org/apache/camel/quarkus/core/CamelTest.java   |   8 ++
 11 files changed, 354 insertions(+), 11 deletions(-)

diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index 1f27ff7..2672806 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -356,7 +356,8 @@ class BuildProcessor {
                 CamelModelJAXBContextFactoryBuildItem contextFactory,
                 CamelRoutesLoaderBuildItems.Xml xmlLoader,
                 CamelFactoryFinderResolverBuildItem factoryFinderResolverBuildItem,
-                BeanContainerBuildItem beanContainer) {
+                BeanContainerBuildItem beanContainer,
+                CamelConfig config) {
 
             RuntimeValue<CamelContext> context = recorder.createContext(
                     registry.getRegistry(),
@@ -365,7 +366,8 @@ class BuildProcessor {
                     xmlLoader.getLoader(),
                     factoryFinderResolverBuildItem.getFactoryFinderResolver(),
                     beanContainer.getValue(),
-                    CamelSupport.getCamelVersion());
+                    CamelSupport.getCamelVersion(),
+                    config);
 
             return new CamelContextBuildItem(context);
         }
diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
index ee075d8..f8f1d04 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
@@ -16,14 +16,20 @@
  */
 package org.apache.camel.quarkus.core.deployment;
 
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import io.quarkus.deployment.ApplicationArchive;
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem;
 import org.apache.camel.CamelContext;
@@ -33,12 +39,18 @@ import org.apache.camel.Converter;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Producer;
 import org.apache.camel.TypeConverter;
+import org.apache.camel.impl.engine.DefaultComponentResolver;
+import org.apache.camel.impl.engine.DefaultDataFormatResolver;
+import org.apache.camel.impl.engine.DefaultLanguageResolver;
+import org.apache.camel.quarkus.core.CamelConfig;
 import org.apache.camel.quarkus.core.Flags;
+import org.apache.camel.quarkus.core.deployment.util.PathFilter;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.ExchangeFormatter;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spi.ScheduledPollConsumerScheduler;
 import org.apache.camel.spi.StreamCachingStrategy;
+import org.apache.camel.support.CamelContextHelper;
 import org.jboss.jandex.AnnotationTarget.Kind;
 import org.jboss.jandex.AnnotationValue;
 import org.jboss.jandex.ClassInfo;
@@ -47,7 +59,11 @@ import org.jboss.jandex.IndexView;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.commons.lang3.ClassUtils.getPackageName;
+
 class NativeImageProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NativeImageProcessor.class);
+
     /*
      * NativeImage configuration steps related to camel core.
      */
@@ -82,7 +98,6 @@ class NativeImageProcessor {
                     .filter(CamelSupport::isPublic)
                     .forEach(v -> reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, v.name().toString())));
 
-            Logger log = LoggerFactory.getLogger(NativeImageProcessor.class);
             DotName converter = DotName.createSimple(Converter.class.getName());
             List<ClassInfo> converterClasses = view.getAnnotations(converter)
                     .stream()
@@ -94,20 +109,20 @@ class NativeImageProcessor {
                         // CoreStaticTypeConverterLoader
                         // need to revisit with Camel 3.0.0-M3 which should improve this area
                         if (ai.target().asClass().name().toString().startsWith("org.apache.camel.converter.")) {
-                            log.debug("Ignoring core " + ai + " " + ai.target().asClass().name());
+                            LOGGER.debug("Ignoring core " + ai + " " + ai.target().asClass().name());
                             return false;
                         } else if (isLoader) {
-                            log.debug("Ignoring " + ai + " " + ai.target().asClass().name());
+                            LOGGER.debug("Ignoring " + ai + " " + ai.target().asClass().name());
                             return false;
                         } else {
-                            log.debug("Accepting " + ai + " " + ai.target().asClass().name());
+                            LOGGER.debug("Accepting " + ai + " " + ai.target().asClass().name());
                             return true;
                         }
                     })
                     .map(ai -> ai.target().asClass())
                     .collect(Collectors.toList());
 
-            log.debug("Converter classes: " + converterClasses);
+            LOGGER.debug("Converter classes: " + converterClasses);
             converterClasses
                     .forEach(ci -> reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, ci.name().toString())));
 
@@ -132,6 +147,67 @@ class NativeImageProcessor {
 
         }
 
+        /*
+         * Add camel catalog files to the native image.
+         */
+        @BuildStep(onlyIf = Flags.RuntimeCatalogEnabled.class)
+        List<NativeImageResourceBuildItem> camelRuntimeCatalog(
+                CamelConfig config,
+                ApplicationArchivesBuildItem archives,
+                List<CamelServicePatternBuildItem> servicePatterns) {
+
+            List<NativeImageResourceBuildItem> resources = new ArrayList<>();
+
+            final PathFilter pathFilter = servicePatterns.stream()
+                    .collect(
+                            PathFilter.Builder::new,
+                            (builder, patterns) -> builder.patterns(patterns.isInclude(), patterns.getPatterns()),
+                            PathFilter.Builder::combine)
+                    .build();
+
+            CamelSupport.services(archives, pathFilter)
+                    .filter(service -> service.name != null && service.type != null && service.path != null)
+                    .forEach(service -> {
+
+                        String packageName = getPackageName(service.type);
+                        String jsonPath = String.format("%s/%s.json", packageName.replace('.', '/'), service.name);
+
+                        if (config.runtimeCatalog.components
+                                && service.path.startsWith(DefaultComponentResolver.RESOURCE_PATH)) {
+                            resources.add(new NativeImageResourceBuildItem(jsonPath));
+                        }
+                        if (config.runtimeCatalog.dataformats
+                                && service.path.startsWith(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH)) {
+                            resources.add(new NativeImageResourceBuildItem(jsonPath));
+                        }
+                        if (config.runtimeCatalog.languages
+                                && service.path.startsWith(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH)) {
+                            resources.add(new NativeImageResourceBuildItem(jsonPath));
+                        }
+                    });
+
+            if (config.runtimeCatalog.models) {
+                for (ApplicationArchive archive : archives.getAllApplicationArchives()) {
+                    final Path root = archive.getArchiveRoot();
+                    final Path resourcePath = root.resolve(CamelContextHelper.MODEL_DOCUMENTATION_PREFIX);
+
+                    if (!Files.isDirectory(resourcePath)) {
+                        continue;
+                    }
+
+                    List<String> items = CamelSupport.safeWalk(resourcePath)
+                            .filter(Files::isRegularFile)
+                            .map(root::relativize)
+                            .map(Path::toString)
+                            .collect(Collectors.toList());
+
+                    LOGGER.debug("Register catalog json: {}", items);
+                    resources.add(new NativeImageResourceBuildItem(items));
+                }
+            }
+
+            return resources;
+        }
     }
 
     /*
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
index b564d8f..4873c5e 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
@@ -38,6 +38,12 @@ public class CamelConfig {
     @ConfigItem
     public ServiceConfig service;
 
+    /**
+     * Build time configuration options for CamelRuntimeCatalog.
+     */
+    @ConfigItem
+    public RuntimeCatalogConfig runtimeCatalog;
+
     @ConfigGroup
     public static class MainConfig {
         /**
@@ -174,4 +180,48 @@ public class CamelConfig {
         public Optional<List<String>> includePatterns;
     }
 
+    @ConfigGroup
+    public static class RuntimeCatalogConfig {
+        /**
+         * Enable {@link CamelRuntimeCatalog} functionaries.
+         */
+        @ConfigItem(defaultValue = "true")
+        public boolean enabled;
+
+        /**
+         * Used to control the resolution of components catalog info.
+         * <p>
+         * Note that when building native images, this flag determine if the json metadata files related to components
+         * discovered at build time have to be included in the final binary.
+         */
+        @ConfigItem(defaultValue = "true")
+        public boolean components;
+
+        /**
+         * Used to control the resolution of languages catalog info.
+         * <p>
+         * Note that when building native images, this flag determine if the json metadata files related to languages
+         * discovered at build time have to be included in the final binary.
+         */
+        @ConfigItem(defaultValue = "true")
+        public boolean languages;
+
+        /**
+         * Used to control the resolution of dataformats catalog info.
+         * <p>
+         * Note that when building native images, this flag determine if the json metadata files related to dataformats
+         * discovered at build time have to be included in the final binary.
+         */
+        @ConfigItem(defaultValue = "true")
+        public boolean dataformats;
+
+        /**
+         * Used to control the resolution of model catalog info.
+         * <p>
+         * Note that when building native images, this flag determine if the json metadata files related to models
+         * has to be included in the final binary.
+         */
+        @ConfigItem(defaultValue = "true")
+        public boolean models;
+    }
 }
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
index 118d7a0..f023163 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
@@ -37,7 +37,6 @@ public class CamelMainRecorder {
             RuntimeValue<CamelContext> runtime,
             RuntimeValue<RoutesCollector> routesCollector,
             BeanContainer container) {
-
         CamelMain main = new CamelMain();
         main.setRoutesCollector(routesCollector.getValue());
         main.setCamelContext(runtime.getValue());
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
index 2dbf2ef..db05027 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
@@ -25,6 +25,7 @@ import org.apache.camel.model.validator.PredicateValidatorDefinition;
 import org.apache.camel.quarkus.core.FastFactoryFinderResolver.Builder;
 import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.validator.ValidatorReifier;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.ModelJAXBContextFactory;
 import org.apache.camel.spi.Registry;
@@ -62,8 +63,11 @@ public class CamelRecorder {
             RuntimeValue<XmlRoutesLoader> xmlLoader,
             RuntimeValue<FactoryFinderResolver> factoryFinderResolver,
             BeanContainer beanContainer,
-            String version) {
+            String version,
+            CamelConfig config) {
+
         FastCamelContext context = new FastCamelContext(factoryFinderResolver.getValue(), version);
+        context.setDefaultExtension(RuntimeCamelCatalog.class, () -> new CamelRuntimeCatalog(context, config.runtimeCatalog));
         context.setRegistry(registry.getValue());
         context.setTypeConverterRegistry(typeConverterRegistry.getValue());
         context.setLoadTypeConverters(false);
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
new file mode 100644
index 0000000..2f82322
--- /dev/null
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
@@ -0,0 +1,66 @@
+/*
+ * 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.CamelContext;
+import org.apache.camel.runtimecatalog.impl.DefaultRuntimeCamelCatalog;
+
+public class CamelRuntimeCatalog extends DefaultRuntimeCamelCatalog {
+    private final CamelConfig.RuntimeCatalogConfig config;
+
+    public CamelRuntimeCatalog(CamelContext camelContext, CamelConfig.RuntimeCatalogConfig config) {
+        super(camelContext, true);
+
+        this.config = config;
+    }
+
+    @Override
+    public String modelJSonSchema(String name) {
+        if (!config.enabled || !config.models) {
+            return null;
+        }
+
+        return super.modelJSonSchema(name);
+    }
+
+    @Override
+    public String componentJSonSchema(String name) {
+        if (!config.enabled || !config.components) {
+            return null;
+        }
+
+        return super.componentJSonSchema(name);
+    }
+
+    @Override
+    public String dataFormatJSonSchema(String name) {
+        if (!config.enabled || !config.dataformats) {
+            return null;
+        }
+
+        return super.dataFormatJSonSchema(name);
+    }
+
+    @Override
+    public String languageJSonSchema(String name) {
+        if (!config.enabled || !config.languages) {
+            return null;
+        }
+
+        return super.languageJSonSchema(name);
+    }
+}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index 24d6a94..1a2640b 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -16,11 +16,14 @@
  */
 package org.apache.camel.quarkus.core;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 
 import org.apache.camel.AsyncProcessor;
+import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.Endpoint;
 import org.apache.camel.PollingConsumer;
@@ -39,6 +42,7 @@ import org.apache.camel.impl.engine.DefaultBeanIntrospection;
 import org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor;
 import org.apache.camel.impl.engine.DefaultCamelContextNameStrategy;
 import org.apache.camel.impl.engine.DefaultClassResolver;
+import org.apache.camel.impl.engine.DefaultComponentResolver;
 import org.apache.camel.impl.engine.DefaultDataFormatResolver;
 import org.apache.camel.impl.engine.DefaultEndpointRegistry;
 import org.apache.camel.impl.engine.DefaultInflightRepository;
@@ -74,6 +78,7 @@ import org.apache.camel.spi.CamelBeanPostProcessor;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.spi.ComponentResolver;
+import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.EndpointRegistry;
 import org.apache.camel.spi.ExecutorServiceManager;
@@ -81,6 +86,7 @@ import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.HeadersMapFactory;
 import org.apache.camel.spi.InflightRepository;
 import org.apache.camel.spi.Injector;
+import org.apache.camel.spi.Language;
 import org.apache.camel.spi.LanguageResolver;
 import org.apache.camel.spi.ManagementNameStrategy;
 import org.apache.camel.spi.MessageHistoryFactory;
@@ -102,14 +108,18 @@ import org.apache.camel.spi.TypeConverterRegistry;
 import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.spi.UuidGenerator;
 import org.apache.camel.spi.ValidatorRegistry;
+import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.util.IOHelper;
 
-public class FastCamelContext extends AbstractCamelContext {
+public class FastCamelContext extends AbstractCamelContext implements CatalogCamelContext {
     private Model model;
     private final String version;
 
     public FastCamelContext(FactoryFinderResolver factoryFinderResolver, String version) {
         super(false);
+
         this.version = version;
+
         setFactoryFinderResolver(factoryFinderResolver);
         setTracing(Boolean.FALSE);
         setDebugging(Boolean.FALSE);
@@ -390,4 +400,99 @@ public class FastCamelContext extends AbstractCamelContext {
         forceLazyInitialization();
     }
 
+    @Override
+    public String getComponentParameterJsonSchema(String componentName) throws IOException {
+        Class<?> clazz;
+
+        Object instance = getRegistry().lookupByNameAndType(componentName, Component.class);
+        if (instance != null) {
+            clazz = instance.getClass();
+        } else {
+            clazz = getFactoryFinder(DefaultComponentResolver.RESOURCE_PATH).findClass(componentName).orElse(null);
+            if (clazz == null) {
+                instance = hasComponent(componentName);
+                if (instance != null) {
+                    clazz = instance.getClass();
+                } else {
+                    return null;
+                }
+            }
+        }
+
+        // special for ActiveMQ as it is really just JMS
+        if ("ActiveMQComponent".equals(clazz.getSimpleName())) {
+            return getComponentParameterJsonSchema("jms");
+        } else {
+            return getJsonSchema(clazz.getPackage().getName(), componentName);
+        }
+    }
+
+    @Override
+    public String getDataFormatParameterJsonSchema(String dataFormatName) throws IOException {
+        Class<?> clazz;
+
+        Object instance = getRegistry().lookupByNameAndType(dataFormatName, DataFormat.class);
+        if (instance != null) {
+            clazz = instance.getClass();
+        } else {
+            clazz = getFactoryFinder(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH).findClass(dataFormatName).orElse(null);
+            if (clazz == null) {
+                return null;
+            }
+        }
+
+        return getJsonSchema(clazz.getPackage().getName(), dataFormatName);
+    }
+
+    @Override
+    public String getLanguageParameterJsonSchema(String languageName) throws IOException {
+        Class<?> clazz;
+
+        Object instance = getRegistry().lookupByNameAndType(languageName, Language.class);
+        if (instance != null) {
+            clazz = instance.getClass();
+        } else {
+            clazz = getFactoryFinder(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH).findClass(languageName).orElse(null);
+            if (clazz == null) {
+                return null;
+            }
+        }
+
+        return getJsonSchema(clazz.getPackage().getName(), languageName);
+    }
+
+    @Override
+    public String getEipParameterJsonSchema(String eipName) throws IOException {
+        // the eip json schema may be in some of the sub-packages so look until
+        // we find it
+        String[] subPackages = new String[] { "", "/config", "/dataformat", "/language", "/loadbalancer", "/rest" };
+        for (String sub : subPackages) {
+            String path = CamelContextHelper.MODEL_DOCUMENTATION_PREFIX + sub + "/" + eipName + ".json";
+            InputStream inputStream = getClassResolver().loadResourceAsStream(path);
+            if (inputStream != null) {
+                try {
+                    return IOHelper.loadText(inputStream);
+                } finally {
+                    IOHelper.close(inputStream);
+                }
+            }
+        }
+        return null;
+    }
+
+    private String getJsonSchema(String packageName, String name) throws IOException {
+        String path = packageName.replace('.', '/') + "/" + name + ".json";
+        InputStream inputStream = getClassResolver().loadResourceAsStream(path);
+
+        if (inputStream != null) {
+            try {
+                log.debug("loading scheme {} ", path);
+                return IOHelper.loadText(inputStream);
+            } finally {
+                IOHelper.close(inputStream);
+            }
+        }
+
+        return null;
+    }
 }
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
index cdbcbe4..fe94b6d 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
@@ -41,4 +41,11 @@ public final class Flags {
             return asBoolean("quarkus.camel.main.routes-discovery.enabled", true);
         }
     }
+
+    public static final class RuntimeCatalogEnabled implements BooleanSupplier {
+        @Override
+        public boolean getAsBoolean() {
+            return asBoolean("quarkus.camel.runtime-catalog.enabled", true);
+        }
+    }
 }
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
index 9aa932d..d83da39 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.quarkus.core;
 
+import java.io.IOException;
+
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 import javax.json.Json;
@@ -29,6 +31,7 @@ import javax.ws.rs.core.MediaType;
 import org.apache.camel.CamelContext;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.component.log.LogComponent;
+import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.support.processor.DefaultExchangeFormatter;
 
@@ -95,4 +98,24 @@ public class CamelServlet {
 
         return true;
     }
+
+    @Path("/catalog/{type}/{name}")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public String catalog(@PathParam("type") String type, @PathParam("name") String name) throws IOException {
+        final RuntimeCamelCatalog catalog = context.getExtension(RuntimeCamelCatalog.class);
+
+        switch (type) {
+        case "component":
+            return catalog.componentJSonSchema(name);
+        case "language":
+            return catalog.languageJSonSchema(name);
+        case "dataformat":
+            return catalog.dataFormatJSonSchema(name);
+        case "model":
+            return catalog.modelJSonSchema(name);
+        default:
+            throw new IllegalArgumentException("Unknown type " + type);
+        }
+    }
 }
diff --git a/integration-tests/core/src/main/resources/application.properties b/integration-tests/core/src/main/resources/application.properties
index 4ea45a6..ebdc415 100644
--- a/integration-tests/core/src/main/resources/application.properties
+++ b/integration-tests/core/src/main/resources/application.properties
@@ -18,11 +18,14 @@
 # Quarkus
 #
 quarkus.log.file.enable = false
+quarkus.log.category."org.apache.camel.quarkus.core".level = DEBUG
 
 #
 # Quarkus :: Camel
 #
-quarkus.camel.main.enabled=false
+quarkus.camel.main.enabled = false
+quarkus.camel.runtime-catalog.enabled = true
+quarkus.camel.runtime-catalog.languages = false
 
 #
 # Camel
diff --git a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
index a46c52c..d665f65 100644
--- a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
+++ b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.quarkus.core;
 
+import java.io.IOException;
 import java.net.HttpURLConnection;
 
 import io.quarkus.test.junit.QuarkusTest;
@@ -23,6 +24,7 @@ import io.restassured.RestAssured;
 import io.restassured.response.Response;
 import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.Matchers.emptyOrNullString;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.core.IsNot.not;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -56,4 +58,10 @@ public class CamelTest {
         RestAssured.when().get("/test/language/simple").then().body(is("true"));
         RestAssured.when().get("/test/language/undefined").then().body(is("false"));
     }
+
+    @Test
+    public void testCatalogComponent() throws IOException {
+        RestAssured.when().get("/test/catalog/component/timer").then().body(not(emptyOrNullString()));
+        RestAssured.when().get("/test/catalog/language/simple").then().body(emptyOrNullString());
+    }
 }

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 11/34: Ensure that catalog files are added to the native image #686 (fix findings)

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit f17423b079f0a887b8286c4794b7d59b8e730d0a
Author: lburgazzoli <[hidden email]>
AuthorDate: Wed Feb 12 10:53:15 2020 +0100

    Ensure that catalog files are added to the native image #686 (fix findings)
---
 .../org/apache/camel/quarkus/core/CamelConfig.java   | 20 +++++++++-----------
 .../camel/quarkus/core/CamelRuntimeCatalog.java      |  8 ++++----
 .../java/org/apache/camel/quarkus/core/Flags.java    |  5 ++++-
 3 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
index 4873c5e..1b2c75c 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelConfig.java
@@ -39,7 +39,7 @@ public class CamelConfig {
     public ServiceConfig service;
 
     /**
-     * Build time configuration options for CamelRuntimeCatalog.
+     * Build time configuration options for {@link org.apache.camel.runtimecatalog.RuntimeCamelCatalog}.
      */
     @ConfigItem
     public RuntimeCatalogConfig runtimeCatalog;
@@ -183,16 +183,11 @@ public class CamelConfig {
     @ConfigGroup
     public static class RuntimeCatalogConfig {
         /**
-         * Enable {@link CamelRuntimeCatalog} functionaries.
-         */
-        @ConfigItem(defaultValue = "true")
-        public boolean enabled;
-
-        /**
          * Used to control the resolution of components catalog info.
          * <p>
          * Note that when building native images, this flag determine if the json metadata files related to components
-         * discovered at build time have to be included in the final binary.
+         * discovered at build time have to be included in the final binary. In JVM mode there is no real benefit of
+         * setting this flag to {@code false} if not to make the behavior consistent with native mode.
          */
         @ConfigItem(defaultValue = "true")
         public boolean components;
@@ -201,7 +196,8 @@ public class CamelConfig {
          * Used to control the resolution of languages catalog info.
          * <p>
          * Note that when building native images, this flag determine if the json metadata files related to languages
-         * discovered at build time have to be included in the final binary.
+         * discovered at build time have to be included in the final binary. In JVM mode there is no real benefit of
+         * setting this flag to {@code false} if not to make the behavior consistent with native mode.
          */
         @ConfigItem(defaultValue = "true")
         public boolean languages;
@@ -210,7 +206,8 @@ public class CamelConfig {
          * Used to control the resolution of dataformats catalog info.
          * <p>
          * Note that when building native images, this flag determine if the json metadata files related to dataformats
-         * discovered at build time have to be included in the final binary.
+         * discovered at build time have to be included in the final binary. In JVM mode there is no real benefit of
+         * setting this flag to {@code false} if not to make the behavior consistent with native mode.
          */
         @ConfigItem(defaultValue = "true")
         public boolean dataformats;
@@ -219,7 +216,8 @@ public class CamelConfig {
          * Used to control the resolution of model catalog info.
          * <p>
          * Note that when building native images, this flag determine if the json metadata files related to models
-         * has to be included in the final binary.
+         * has to be included in the final binary. In JVM mode there is no real benefit of setting this flag to
+         * {@code false} if not to make the behavior consistent with native mode.
          */
         @ConfigItem(defaultValue = "true")
         public boolean models;
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
index 2f82322..5b56b9c 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRuntimeCatalog.java
@@ -30,7 +30,7 @@ public class CamelRuntimeCatalog extends DefaultRuntimeCamelCatalog {
 
     @Override
     public String modelJSonSchema(String name) {
-        if (!config.enabled || !config.models) {
+        if (!config.models) {
             return null;
         }
 
@@ -39,7 +39,7 @@ public class CamelRuntimeCatalog extends DefaultRuntimeCamelCatalog {
 
     @Override
     public String componentJSonSchema(String name) {
-        if (!config.enabled || !config.components) {
+        if (!config.components) {
             return null;
         }
 
@@ -48,7 +48,7 @@ public class CamelRuntimeCatalog extends DefaultRuntimeCamelCatalog {
 
     @Override
     public String dataFormatJSonSchema(String name) {
-        if (!config.enabled || !config.dataformats) {
+        if (!config.dataformats) {
             return null;
         }
 
@@ -57,7 +57,7 @@ public class CamelRuntimeCatalog extends DefaultRuntimeCamelCatalog {
 
     @Override
     public String languageJSonSchema(String name) {
-        if (!config.enabled || !config.languages) {
+        if (!config.languages) {
             return null;
         }
 
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
index fe94b6d..a62c51d 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/Flags.java
@@ -45,7 +45,10 @@ public final class Flags {
     public static final class RuntimeCatalogEnabled implements BooleanSupplier {
         @Override
         public boolean getAsBoolean() {
-            return asBoolean("quarkus.camel.runtime-catalog.enabled", true);
+            return asBoolean("quarkus.camel.runtime-catalog.components", true)
+                    || asBoolean("quarkus.camel.runtime-catalog.languages", true)
+                    || asBoolean("quarkus.camel.runtime-catalog.dataformats", true)
+                    || asBoolean("quarkus.camel.runtime-catalog.models", true);
         }
     }
 }

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 12/34: Set -Dmaven.wagon.http.retryHandler.requestSentEnabled=true

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 35ad157e15362a24a69466f6e516138c7a9381f0
Author: Peter Palaga <[hidden email]>
AuthorDate: Wed Feb 12 17:46:24 2020 +0100

    Set -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
   
    This is to enable retries even on dependency downloads where the request
    was sent successfully
---
 .mvn/maven.config | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.mvn/maven.config b/.mvn/maven.config
new file mode 100644
index 0000000..3b3d7bc
--- /dev/null
+++ b/.mvn/maven.config
@@ -0,0 +1 @@
+-Dmaven.wagon.http.retryHandler.requestSentEnabled=true

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 13/34: Update <mvnd.builder.rule> via -Pformat

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 6b3457c492772f8753c064418e5a50e535cb4ffe
Author: Peter Palaga <[hidden email]>
AuthorDate: Wed Feb 12 09:14:03 2020 +0100

    Update <mvnd.builder.rule> via -Pformat
---
 pom.xml                          |   1 +
 tooling/scripts/sort-poms.groovy | 122 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 123 insertions(+)

diff --git a/pom.xml b/pom.xml
index 191a8b4..aa66c18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -426,6 +426,7 @@
                                     <properties>
                                         <sortModulesPaths>extensions/pom.xml,integration-tests/pom.xml</sortModulesPaths>
                                         <sortDependencyManagementPaths>poms/bom/pom.xml,poms/bom-deployment/pom.xml</sortDependencyManagementPaths>
+                                        <updateMvndRuleDirs>examples,integration-tests</updateMvndRuleDirs>
                                     </properties>
                                     <source>file:///${project.basedir}/tooling/scripts/sort-poms.groovy</source>
                                 </configuration>
diff --git a/tooling/scripts/sort-poms.groovy b/tooling/scripts/sort-poms.groovy
index 0b63cd1..a4a3919 100644
--- a/tooling/scripts/sort-poms.groovy
+++ b/tooling/scripts/sort-poms.groovy
@@ -26,6 +26,8 @@ import java.nio.file.Files
 import java.util.regex.Matcher
 import java.util.regex.Pattern
 
+import groovy.util.NodeList
+
 @groovy.transform.Field
 final Path baseDir = basedir.toPath()
 
@@ -35,6 +37,9 @@ sortDependencyManagement(sortDepManagementPaths)
 final String[] sortModulesPaths = properties['sortModulesPaths'].split(',')
 sortModules(sortModulesPaths)
 
+final String[] updateMvndRuleDirs = properties['updateMvndRuleDirs'].split(',')
+updateMvndRules(updateMvndRuleDirs)
+
 void sortDependencyManagement(String[] pomPaths) {
     for (pomPath in pomPaths) {
         final Path pomXmlPath = baseDir.resolve(pomPath.trim())
@@ -179,3 +184,120 @@ void sortModules(String[] sortModulesPaths) {
         }
     }
 }
+
+void updateMvndRules(String[] updateMvndRuleDirs) {
+    final Set<String> extensionArtifactIds = [] as TreeSet
+    Files.list(baseDir.resolve('extensions'))
+            .filter { p -> Files.isDirectory(p) && Files.exists(p.resolve('pom.xml')) && Files.exists(p.resolve('runtime')) }
+            .map { p -> p.getFileName().toString() }
+            .filter { dirName -> !dirName.equals('support') }
+            .map { dirName -> 'camel-quarkus-' + dirName }
+            .forEach { aid -> extensionArtifactIds << aid }
+
+    Files.list(baseDir.resolve('extensions/support'))
+            .filter { p -> Files.isDirectory(p) && Files.exists(p.resolve('pom.xml')) && Files.exists(p.resolve('runtime')) }
+            .map { p -> p.getFileName().toString() }
+            .map { dirName -> 'camel-quarkus-support-' + dirName }
+            .forEach { aid -> extensionArtifactIds << aid }
+
+    Files.list(baseDir.resolve('integration-tests/support'))
+            .filter { p -> Files.isDirectory(p) && Files.exists(p.resolve('pom.xml')) && Files.exists(p.resolve('runtime')) }
+            .map { p -> p.getFileName().toString() }
+            .map { dirName -> 'camel-quarkus-integration-test-support-' + dirName + '-ext' }
+            .forEach { aid -> extensionArtifactIds << aid }
+
+    /* Policy may disappear at some point */
+    final boolean policyExtensionExists = extensionArtifactIds.contains('camel-quarkus-support-policy')
+
+    final Pattern dependenciesPattern = Pattern.compile('([^\n<]*)<dependenc')
+    final Pattern propsPattern = Pattern.compile('([^\n<]*)</properties>')
+    final Pattern rulePattern = Pattern.compile('<mvnd.builder.rule>[^<]*</mvnd.builder.rule>')
+
+    for (updateMvndRuleDir in updateMvndRuleDirs) {
+        Files.list(baseDir.resolve(updateMvndRuleDir))
+                .filter { p -> Files.isDirectory(p) && !'support'.equals(p.getFileName().toString()) }
+                .map { p -> p.resolve('pom.xml') }
+                .filter { p -> Files.exists(p) }
+                .forEach { pomXmlPath ->
+
+                        final Path relativePomPath = baseDir.relativize(pomXmlPath)
+
+                        String pomXmlText = pomXmlPath.toFile().getText('UTF-8')
+
+                        Node pomXmlProject = null
+                        try {
+                            pomXmlProject = new XmlParser().parseText(pomXmlText)
+                        } catch (Exception e) {
+                            throw new RuntimeException('Could not parse ' + relativePomPath, e)
+                        }
+                        final List<String> extensionDependencies = pomXmlProject.dependencies.dependency
+                                .findAll { dep -> "org.apache.camel.quarkus".equals(dep.groupId.text()) && extensionArtifactIds.contains(dep.artifactId.text()) }
+                                .collect { dep -> dep.artifactId.text() + '-deployment' }
+                        if (policyExtensionExists) {
+                            extensionDependencies.add('camel-quarkus-support-policy-deployment')
+                        }
+
+                        final String expectedRule = extensionDependencies
+                                .toSorted()
+                                .join(',')
+
+                        final Matcher depsMatcher = dependenciesPattern.matcher(pomXmlText)
+                        if (depsMatcher.find()) {
+                            final String indent = depsMatcher.group(1)
+                            final int insertionPos = depsMatcher.start()
+
+                            final NodeList props = pomXmlProject.properties
+                            if (props.isEmpty()) {
+                                final String insert = indent + '<properties>\n' +
+                                    indent + indent + '<!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->\n' +
+                                    indent + indent + '<!-- The following rule tells mvnd to build the listed deployment modules before this module. -->\n' +
+                                    indent + indent + '<!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->\n' +
+                                    indent + indent + '<!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->\n' +
+                                    indent + indent + '<!-- Please update rule whenever you change the dependencies of this module by running -->\n' +
+                                    indent + indent + '<!--     mvn process-resources -Pformat    from the root directory -->\n' +
+                                    indent + indent + '<mvnd.builder.rule>' + expectedRule + '</mvnd.builder.rule>\n' +
+                                    indent + '</properties>\n\n'
+                                pomXmlText = new StringBuilder(pomXmlText).insert(insertionPos, insert).toString()
+                                Files.write(pomXmlPath, pomXmlText.getBytes('UTF-8'))
+                            } else {
+                                final NodeList mvndRule = props.'mvnd.builder.rule'
+                                if (mvndRule.isEmpty()) {
+                                    final Matcher propsMatcher = propsPattern.matcher(pomXmlText)
+                                    if (propsMatcher.find()) {
+                                        final int insPos = propsMatcher.start()
+                                        final String insert = indent + indent + '<mvnd.builder.rule>' + expectedRule + '</mvnd.builder.rule>\n'
+                                        pomXmlText = new StringBuilder(pomXmlText).insert(insPos, insert).toString()
+                                        Files.write(pomXmlPath, pomXmlText.getBytes('UTF-8'))
+                                    } else {
+                                        throw new IllegalStateException('Could not find ' + propsPattern.pattern() + ' in ' + relativePomPath)
+                                    }
+                                } else {
+                                    final String actualRule = mvndRule.get(0).text()
+                                            .split(',')
+                                            .collect{ it -> it.trim() }
+                                            .toSorted()
+                                            .join(',')
+                                    if (!expectedRule.equals(actualRule)) {
+                                        final Matcher ruleMatcher = rulePattern.matcher(pomXmlText)
+                                        if (ruleMatcher.find()) {
+                                            final StringBuffer buf = new StringBuffer(pomXmlText.length() + 128)
+                                            final String replacement = '<mvnd.builder.rule>' + expectedRule + '</mvnd.builder.rule>'
+                                            ruleMatcher.appendReplacement(buf, Matcher.quoteReplacement(replacement))
+                                            ruleMatcher.appendTail(buf)
+                                            Files.write(pomXmlPath, buf.toString().getBytes('UTF-8'))
+                                        } else {
+                                            throw new IllegalStateException('Could not find ' + rulePattern.pattern() + ' in ' + relativePomPath)
+                                        }
+                                    }
+                                }
+                            }
+
+                        } else {
+                            throw new IllegalStateException('Could not find ' + dependenciesPattern.pattern() + ' in ' + relativePomPath)
+                        }
+
+
+
+                }
+    }
+}

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 14/34: Update mvnd.builder.rules by running mvn process-resources -Pformat

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 875b0c9bfdcaed9becc998fb4355136a295fa1df
Author: Peter Palaga <[hidden email]>
AuthorDate: Thu Feb 13 09:23:31 2020 +0100

    Update mvnd.builder.rules by running mvn process-resources -Pformat
---
 examples/file-split-log-xml/pom.xml            | 10 ++++++++++
 examples/observability/pom.xml                 | 10 ++++++++++
 examples/rest-json/pom.xml                     | 10 ++++++++++
 examples/timer-log-cdi/pom.xml                 | 10 ++++++++++
 examples/timer-log-kotlin/pom.xml              |  7 +++++++
 examples/timer-log-spring/pom.xml              | 10 ++++++++++
 examples/timer-log-xml/pom.xml                 | 10 ++++++++++
 examples/timer-log/pom.xml                     | 10 ++++++++++
 integration-tests/aws/pom.xml                  | 10 ++++++++++
 integration-tests/base64/pom.xml               | 10 ++++++++++
 integration-tests/bean-validator/pom.xml       | 10 ++++++++++
 integration-tests/bean/pom.xml                 | 10 ++++++++++
 integration-tests/bindy/pom.xml                | 10 ++++++++++
 integration-tests/consul/pom.xml               | 10 ++++++++++
 integration-tests/controlbus/pom.xml           | 10 ++++++++++
 integration-tests/core-impl/pom.xml            | 10 ++++++++++
 integration-tests/core-main-collector/pom.xml  | 10 ++++++++++
 integration-tests/core-main-xml/pom.xml        | 10 ++++++++++
 integration-tests/core-main/pom.xml            | 10 ++++++++++
 integration-tests/core/pom.xml                 | 10 ++++++++++
 integration-tests/csv/pom.xml                  | 10 ++++++++++
 integration-tests/dataformat/pom.xml           | 10 ++++++++++
 integration-tests/dozer/pom.xml                | 10 ++++++++++
 integration-tests/exec/pom.xml                 | 10 ++++++++++
 integration-tests/fhir/pom.xml                 | 10 ++++++++++
 integration-tests/file/pom.xml                 | 10 ++++++++++
 integration-tests/ftp/pom.xml                  | 10 ++++++++++
 integration-tests/http/pom.xml                 | 10 ++++++++++
 integration-tests/hystrix/pom.xml              | 10 ++++++++++
 integration-tests/infinispan/pom.xml           | 10 ++++++++++
 integration-tests/jackson/pom.xml              | 10 ++++++++++
 integration-tests/jdbc/pom.xml                 | 10 ++++++++++
 integration-tests/jsonpath/pom.xml             | 10 ++++++++++
 integration-tests/kafka/pom.xml                |  1 +
 integration-tests/mail/pom.xml                 | 10 ++++++++++
 integration-tests/microprofile/pom.xml         | 10 ++++++++++
 integration-tests/mongodb/pom.xml              | 10 ++++++++++
 integration-tests/netty/pom.xml                | 10 ++++++++++
 integration-tests/olingo4/pom.xml              | 10 ++++++++++
 integration-tests/opentracing/pom.xml          | 10 ++++++++++
 integration-tests/paho/pom.xml                 | 10 ++++++++++
 integration-tests/pdf/pom.xml                  | 10 ++++++++++
 integration-tests/platform-http-engine/pom.xml | 10 ++++++++++
 integration-tests/platform-http/pom.xml        | 10 ++++++++++
 integration-tests/reactive-streams/pom.xml     | 10 ++++++++++
 integration-tests/salesforce/pom.xml           | 10 ++++++++++
 integration-tests/scheduler/pom.xml            | 10 ++++++++++
 integration-tests/seda/pom.xml                 | 10 ++++++++++
 integration-tests/servlet/pom.xml              | 10 ++++++++++
 integration-tests/sjms/pom.xml                 | 10 ++++++++++
 integration-tests/slack/pom.xml                | 10 ++++++++++
 integration-tests/snakeyaml/pom.xml            | 10 ++++++++++
 integration-tests/sql/pom.xml                  | 10 ++++++++++
 integration-tests/stream/pom.xml               | 10 ++++++++++
 integration-tests/tagsoup/pom.xml              | 10 ++++++++++
 integration-tests/tarfile/pom.xml              | 10 ++++++++++
 integration-tests/twitter/pom.xml              | 10 ++++++++++
 integration-tests/validator/pom.xml            | 10 ++++++++++
 integration-tests/xslt/pom.xml                 | 10 ++++++++++
 integration-tests/zipfile/pom.xml              | 10 ++++++++++
 60 files changed, 588 insertions(+)

diff --git a/examples/file-split-log-xml/pom.xml b/examples/file-split-log-xml/pom.xml
index e8fb1c0..7230aa3 100644
--- a/examples/file-split-log-xml/pom.xml
+++ b/examples/file-split-log-xml/pom.xml
@@ -35,6 +35,16 @@
 
     
 
+    <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-core-xml-deployment,camel-quarkus-file-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/observability/pom.xml b/examples/observability/pom.xml
index bcdebb3..4184857 100644
--- a/examples/observability/pom.xml
+++ b/examples/observability/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Observability</name>
     <description>Camel Quarkus Example :: Observability</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-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>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/rest-json/pom.xml b/examples/rest-json/pom.xml
index 255e1ca..78f21f4 100644
--- a/examples/rest-json/pom.xml
+++ b/examples/rest-json/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Rest Json</name>
     <description>Camel Quarkus Example :: Rest Json</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-jackson-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/timer-log-cdi/pom.xml b/examples/timer-log-cdi/pom.xml
index a25d2fe..174a547 100644
--- a/examples/timer-log-cdi/pom.xml
+++ b/examples/timer-log-cdi/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Timer Log CDI</name>
     <description>Camel Quarkus Example :: Timer to Log CDI</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-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/timer-log-kotlin/pom.xml b/examples/timer-log-kotlin/pom.xml
index cd8d1ec..eb8dacd 100644
--- a/examples/timer-log-kotlin/pom.xml
+++ b/examples/timer-log-kotlin/pom.xml
@@ -33,6 +33,13 @@
 
     <properties>
         <kotlin.version>1.3.21</kotlin.version>
+        <!-- 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-kotlin-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-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 008c54f..930a358 100644
--- a/examples/timer-log-spring/pom.xml
+++ b/examples/timer-log-spring/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Timer Log Spring</name>
     <description>Camel Quarkus Example :: Timer to Log Spring</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-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/timer-log-xml/pom.xml b/examples/timer-log-xml/pom.xml
index 2f76b36..b9c5e49 100644
--- a/examples/timer-log-xml/pom.xml
+++ b/examples/timer-log-xml/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Timer Log XML</name>
     <description>Camel Quarkus Example :: Timer to Log XML</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-core-xml-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/examples/timer-log/pom.xml b/examples/timer-log/pom.xml
index 74fe585..bc47ba8 100644
--- a/examples/timer-log/pom.xml
+++ b/examples/timer-log/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Examples :: Timer Log</name>
     <description>Camel Quarkus Example :: Timer to Log</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-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/aws/pom.xml b/integration-tests/aws/pom.xml
index 19482fe..349fe48 100644
--- a/integration-tests/aws/pom.xml
+++ b/integration-tests/aws/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: AWS</name>
     <description>The camel integration tests</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-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-sns-deployment,camel-quarkus-aws-sqs-deployment,camel-quarkus-aws-translate-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-d [...]
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/base64/pom.xml b/integration-tests/base64/pom.xml
index f987b02..6b185e0 100644
--- a/integration-tests/base64/pom.xml
+++ b/integration-tests/base64/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Base64</name>
     <description>Integration tests for Camel Quarkus Base64 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-base64-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/bean-validator/pom.xml b/integration-tests/bean-validator/pom.xml
index c525317..7469315 100644
--- a/integration-tests/bean-validator/pom.xml
+++ b/integration-tests/bean-validator/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Bean Validator</name>
     <description>Integration tests for Camel Quarkus Bean Validator 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-bean-validator-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/bean/pom.xml b/integration-tests/bean/pom.xml
index bfe1aa1..f5ecc7b 100644
--- a/integration-tests/bean/pom.xml
+++ b/integration-tests/bean/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Bean</name>
     <description>Integration tests for Camel Bean 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-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/bindy/pom.xml b/integration-tests/bindy/pom.xml
index d9958db..56b8843 100644
--- a/integration-tests/bindy/pom.xml
+++ b/integration-tests/bindy/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Integration Tests :: Bindy</name>
     <description>Integration tests for Camel Quarkus Bindy 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-bindy-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/consul/pom.xml b/integration-tests/consul/pom.xml
index e2e6a05..4532c79 100644
--- a/integration-tests/consul/pom.xml
+++ b/integration-tests/consul/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Consul</name>
     <description>Integration tests for Camel Quarkus Consul 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-consul-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/controlbus/pom.xml b/integration-tests/controlbus/pom.xml
index 26a8df8..0542c0a 100644
--- a/integration-tests/controlbus/pom.xml
+++ b/integration-tests/controlbus/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: ControlBus</name>
     <description>Integration tests for Camel Quarkus ControlBus 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-controlbus-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/core-impl/pom.xml b/integration-tests/core-impl/pom.xml
index 7409d0f..7b7b945 100644
--- a/integration-tests/core-impl/pom.xml
+++ b/integration-tests/core-impl/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Core Impl</name>
     <description>The camel integration tests</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-core-cloud-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/core-main-collector/pom.xml b/integration-tests/core-main-collector/pom.xml
index 72746c0..839df54 100644
--- a/integration-tests/core-main-collector/pom.xml
+++ b/integration-tests/core-main-collector/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Core Main Collector :: Tests</name>
     <description>The camel integration tests</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-direct-deployment,camel-quarkus-integration-test-support-core-main-collector-ext-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/core-main-xml/pom.xml b/integration-tests/core-main-xml/pom.xml
index 477622a..aad2d06 100644
--- a/integration-tests/core-main-xml/pom.xml
+++ b/integration-tests/core-main-xml/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Core Main XML :: Tests</name>
     <description>The camel integration tests</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-core-xml-deployment,camel-quarkus-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/core-main/pom.xml b/integration-tests/core-main/pom.xml
index 0a0419d..1d36962 100644
--- a/integration-tests/core-main/pom.xml
+++ b/integration-tests/core-main/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Core Main :: Tests</name>
     <description>The camel integration tests</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-direct-deployment,camel-quarkus-endpointdsl-deployment,camel-quarkus-integration-test-support-core-main-ext-deployment,camel-quarkus-log-deployment,camel-quarkus-reactive-executor-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/core/pom.xml b/integration-tests/core/pom.xml
index 5644c99..985a12a 100644
--- a/integration-tests/core/pom.xml
+++ b/integration-tests/core/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Core :: Tests</name>
     <description>The camel integration tests</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-integration-test-support-core-ext-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-timer-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/csv/pom.xml b/integration-tests/csv/pom.xml
index ebe3f6e..e1b5055 100644
--- a/integration-tests/csv/pom.xml
+++ b/integration-tests/csv/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: CSV</name>
     <description>Integration tests for Camel Quarkus CSV 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-csv-deployment,camel-quarkus-direct-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/dataformat/pom.xml b/integration-tests/dataformat/pom.xml
index 54160f5..72c9ba0 100644
--- a/integration-tests/dataformat/pom.xml
+++ b/integration-tests/dataformat/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Data Format</name>
     <description>Integration tests for Camel Quarkus Data Format 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-dataformat-deployment,camel-quarkus-direct-deployment,camel-quarkus-snakeyaml-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/dozer/pom.xml b/integration-tests/dozer/pom.xml
index 53752ab..bfcb07e 100644
--- a/integration-tests/dozer/pom.xml
+++ b/integration-tests/dozer/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Dozer</name>
     <description>Integration tests for Camel Quarkus Dozer 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-direct-deployment,camel-quarkus-dozer-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/exec/pom.xml b/integration-tests/exec/pom.xml
index 5332ea6..cf9736e 100644
--- a/integration-tests/exec/pom.xml
+++ b/integration-tests/exec/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Exec</name>
     <description>Integration tests for Camel Quarkus Exec 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-direct-deployment,camel-quarkus-exec-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/fhir/pom.xml b/integration-tests/fhir/pom.xml
index f149b8c..76181aa 100644
--- a/integration-tests/fhir/pom.xml
+++ b/integration-tests/fhir/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: FHIR</name>
     <description>Integration tests for Camel Quarkus FHIR 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-direct-deployment,camel-quarkus-fhir-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencyManagement>
         <dependencies>
             <dependency>
diff --git a/integration-tests/file/pom.xml b/integration-tests/file/pom.xml
index d020885..a746a5d 100644
--- a/integration-tests/file/pom.xml
+++ b/integration-tests/file/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: File</name>
     <description>Integration tests for Camel Quarkus File 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-file-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/ftp/pom.xml b/integration-tests/ftp/pom.xml
index 3bc09f1..2f92ea0 100644
--- a/integration-tests/ftp/pom.xml
+++ b/integration-tests/ftp/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: FTP</name>
     <description>Integration tests for Camel Quarkus FTP 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-ftp-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/http/pom.xml b/integration-tests/http/pom.xml
index 2b6118d..d4b60fc 100644
--- a/integration-tests/http/pom.xml
+++ b/integration-tests/http/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: HTTP</name>
     <description>Integration tests for Camel Quarkus HTTP 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-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>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/hystrix/pom.xml b/integration-tests/hystrix/pom.xml
index 57b69c9..4999cf6 100644
--- a/integration-tests/hystrix/pom.xml
+++ b/integration-tests/hystrix/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Hystrix</name>
     <description>Integration tests for Camel Quarkus Hystrix 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-direct-deployment,camel-quarkus-hystrix-deployment,camel-quarkus-netty-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/infinispan/pom.xml b/integration-tests/infinispan/pom.xml
index 5c4139f..cf191c7 100644
--- a/integration-tests/infinispan/pom.xml
+++ b/integration-tests/infinispan/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Infinispan</name>
     <description>Integration tests for Camel Infinispan component</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-direct-deployment,camel-quarkus-infinispan-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/jackson/pom.xml b/integration-tests/jackson/pom.xml
index cec72a2..9098527 100644
--- a/integration-tests/jackson/pom.xml
+++ b/integration-tests/jackson/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Jackson</name>
     <description>Integration tests for Camel Jackson 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-core-xml-deployment,camel-quarkus-direct-deployment,camel-quarkus-jackson-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-vm-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/jdbc/pom.xml b/integration-tests/jdbc/pom.xml
index 9e5ba03..3040bd6 100644
--- a/integration-tests/jdbc/pom.xml
+++ b/integration-tests/jdbc/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: JDBC</name>
     <description>Integration tests for Camel JDBC 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-direct-deployment,camel-quarkus-jdbc-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/jsonpath/pom.xml b/integration-tests/jsonpath/pom.xml
index 9f13bdc..d0edc4d 100644
--- a/integration-tests/jsonpath/pom.xml
+++ b/integration-tests/jsonpath/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: JSON Path</name>
     <description>Integration tests for Camel Quarkus JSON Path 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-bean-deployment,camel-quarkus-direct-deployment,camel-quarkus-jsonpath-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/kafka/pom.xml b/integration-tests/kafka/pom.xml
index 9347056..ab9f82f 100644
--- a/integration-tests/kafka/pom.xml
+++ b/integration-tests/kafka/pom.xml
@@ -31,6 +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-support-policy-deployment</mvnd.builder.rule>
     </properties>
 
     <dependencies>
diff --git a/integration-tests/mail/pom.xml b/integration-tests/mail/pom.xml
index a53f7c1..326357c 100644
--- a/integration-tests/mail/pom.xml
+++ b/integration-tests/mail/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Mail</name>
     <description>Integration tests for Camel Mail 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-direct-deployment,camel-quarkus-mail-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/microprofile/pom.xml b/integration-tests/microprofile/pom.xml
index 3409c44..086ddf5 100644
--- a/integration-tests/microprofile/pom.xml
+++ b/integration-tests/microprofile/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: MicroProfile</name>
     <description>Integration tests for Camel Quarkus MicroProfile extensions</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-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-microprofile-health-deployment,camel-quarkus-microprofile-metrics-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/mongodb/pom.xml b/integration-tests/mongodb/pom.xml
index 5804bc3..5d0f722 100644
--- a/integration-tests/mongodb/pom.xml
+++ b/integration-tests/mongodb/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: MongoDB</name>
     <description>Integration tests for Camel Quarkus MongoDB 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-mongodb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/netty/pom.xml b/integration-tests/netty/pom.xml
index bbb55f3..29d4200 100644
--- a/integration-tests/netty/pom.xml
+++ b/integration-tests/netty/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Netty</name>
     <description>Integration tests for Camel Quarkus Netty 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-netty-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/olingo4/pom.xml b/integration-tests/olingo4/pom.xml
index f96f3fc..c60e9d5 100644
--- a/integration-tests/olingo4/pom.xml
+++ b/integration-tests/olingo4/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Integration Tests :: Olingo4</name>
     <description>Integration tests for Camel Quarkus Olingo4 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-olingo4-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/opentracing/pom.xml b/integration-tests/opentracing/pom.xml
index 1297c5a..dd6fd12 100644
--- a/integration-tests/opentracing/pom.xml
+++ b/integration-tests/opentracing/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: OpenTracing</name>
     <description>Integration tests for Camel Quarkus OpenTracing 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-opentracing-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/paho/pom.xml b/integration-tests/paho/pom.xml
index 08586d7..0ce9931 100644
--- a/integration-tests/paho/pom.xml
+++ b/integration-tests/paho/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Paho</name>
     <description>Integration tests for Camel Quarkus Paho 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-paho-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/pdf/pom.xml b/integration-tests/pdf/pom.xml
index bd626a1..486ed62 100644
--- a/integration-tests/pdf/pom.xml
+++ b/integration-tests/pdf/pom.xml
@@ -27,6 +27,16 @@
   <artifactId>camel-quarkus-integration-test-pdf</artifactId>
   <name>Camel Quarkus :: Integration Tests :: PDF</name>
   <description>Integration tests for Camel Quarkus PDF 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-pdf-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/platform-http-engine/pom.xml b/integration-tests/platform-http-engine/pom.xml
index 2c8cd8a..dc4d349 100644
--- a/integration-tests/platform-http-engine/pom.xml
+++ b/integration-tests/platform-http-engine/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Platform HTTP Engine</name>
     <description>Integration tests for Camel Quarkus platform-http engine 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-platform-http-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/platform-http/pom.xml b/integration-tests/platform-http/pom.xml
index 4a5d267..e2b304a 100644
--- a/integration-tests/platform-http/pom.xml
+++ b/integration-tests/platform-http/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Platform HTTP</name>
     <description>Integration tests for Camel Quarkus platform-http 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-attachments-deployment,camel-quarkus-log-deployment,camel-quarkus-platform-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/reactive-streams/pom.xml b/integration-tests/reactive-streams/pom.xml
index 3b92548..8130dfc 100644
--- a/integration-tests/reactive-streams/pom.xml
+++ b/integration-tests/reactive-streams/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Reactive Streams</name>
     <description>Integration tests for Camel Quarkus Reactive Streams 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-direct-deployment,camel-quarkus-reactive-streams-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/salesforce/pom.xml b/integration-tests/salesforce/pom.xml
index da2011c..a45e94e 100644
--- a/integration-tests/salesforce/pom.xml
+++ b/integration-tests/salesforce/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Salesforce</name>
     <description>The camel integration tests</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-direct-deployment,camel-quarkus-log-deployment,camel-quarkus-salesforce-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/scheduler/pom.xml b/integration-tests/scheduler/pom.xml
index 9bc6162..5e12a8c 100644
--- a/integration-tests/scheduler/pom.xml
+++ b/integration-tests/scheduler/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Scheduler</name>
     <description>Integration tests for Camel Quarkus Scheduler 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-direct-deployment,camel-quarkus-scheduler-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/seda/pom.xml b/integration-tests/seda/pom.xml
index 2da505a..cdafba9 100644
--- a/integration-tests/seda/pom.xml
+++ b/integration-tests/seda/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: SEDA</name>
     <description>Integration tests for Camel Quarkus SEDA 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-seda-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/servlet/pom.xml b/integration-tests/servlet/pom.xml
index 47d168d..2aa51b9 100644
--- a/integration-tests/servlet/pom.xml
+++ b/integration-tests/servlet/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Servlet</name>
     <description>Integration tests for Camel Servlet component</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-core-cloud-deployment,camel-quarkus-rest-deployment,camel-quarkus-servlet-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/sjms/pom.xml b/integration-tests/sjms/pom.xml
index 3502ae8..9657b08 100644
--- a/integration-tests/sjms/pom.xml
+++ b/integration-tests/sjms/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: SJMS</name>
     <description>Integration tests for Camel Quarkus SJMS 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-log-deployment,camel-quarkus-sjms-deployment,camel-quarkus-sjms2-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/slack/pom.xml b/integration-tests/slack/pom.xml
index 586df17..aa7d84a 100644
--- a/integration-tests/slack/pom.xml
+++ b/integration-tests/slack/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Slack</name>
     <description>Integration tests for Camel Quarkus Slack 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-netty-http-deployment,camel-quarkus-rest-deployment,camel-quarkus-slack-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/snakeyaml/pom.xml b/integration-tests/snakeyaml/pom.xml
index 9c21d6c..76ced9b 100644
--- a/integration-tests/snakeyaml/pom.xml
+++ b/integration-tests/snakeyaml/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: SnakeYAML</name>
     <description>Integration tests for Camel Quarkus SnakeYAML 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-direct-deployment,camel-quarkus-snakeyaml-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/sql/pom.xml b/integration-tests/sql/pom.xml
index 8a072f1..a54012e 100644
--- a/integration-tests/sql/pom.xml
+++ b/integration-tests/sql/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: SQL</name>
     <description>Integration tests for Camel Quarkus SQL 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-sql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/stream/pom.xml b/integration-tests/stream/pom.xml
index 366c439..2cc5b0e 100644
--- a/integration-tests/stream/pom.xml
+++ b/integration-tests/stream/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Integration Tests :: Stream</name>
     <description>Integration tests for Camel Quarkus Stream 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-stream-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/tagsoup/pom.xml b/integration-tests/tagsoup/pom.xml
index 3113d43..b04a995 100644
--- a/integration-tests/tagsoup/pom.xml
+++ b/integration-tests/tagsoup/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: TagSoup</name>
     <description>Integration tests for Camel Quarkus TagSoup 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-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-tagsoup-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/tarfile/pom.xml b/integration-tests/tarfile/pom.xml
index de34f7a..edc727f 100644
--- a/integration-tests/tarfile/pom.xml
+++ b/integration-tests/tarfile/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Tarfile</name>
     <description>Integration tests for Camel Quarkus tarfile 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-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-tarfile-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/twitter/pom.xml b/integration-tests/twitter/pom.xml
index 5ad072f..a572663 100644
--- a/integration-tests/twitter/pom.xml
+++ b/integration-tests/twitter/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Twitter</name>
     <description>The camel twitter integration tests</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-support-policy-deployment,camel-quarkus-twitter-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/validator/pom.xml b/integration-tests/validator/pom.xml
index 385bb2e..801e6ce 100644
--- a/integration-tests/validator/pom.xml
+++ b/integration-tests/validator/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Validator</name>
     <description>Integration tests for Camel Quarkus Validator 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-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-validator-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/xslt/pom.xml b/integration-tests/xslt/pom.xml
index d19b0b1..9305cdc 100644
--- a/integration-tests/xslt/pom.xml
+++ b/integration-tests/xslt/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: XSLT</name>
     <description>Integration tests for Camel Quarkus XSLT 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-direct-deployment,camel-quarkus-jackson-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-xslt-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/zipfile/pom.xml b/integration-tests/zipfile/pom.xml
index b623e69..4aa31b3 100644
--- a/integration-tests/zipfile/pom.xml
+++ b/integration-tests/zipfile/pom.xml
@@ -29,6 +29,16 @@
     <name>Camel Quarkus :: Integration Tests :: Zipfile</name>
     <description>Integration tests for Camel Quarkus zipfile 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-direct-deployment,camel-quarkus-support-policy-deployment,camel-quarkus-zipfile-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 15/34: Fix #688 Create extension mojo not working after Quarkus 1.3.0.Alpha1 upgrade

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 797ac122ce29f6e5f2293c2ba94a4a81c3d7172f
Author: Peter Palaga <[hidden email]>
AuthorDate: Thu Feb 13 15:01:15 2020 +0100

    Fix #688 Create extension mojo not working after Quarkus 1.3.0.Alpha1 upgrade
---
 extensions/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extensions/pom.xml b/extensions/pom.xml
index 373a23d..289a289 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -157,7 +157,7 @@
                     <namePrefix xml:space="preserve">Camel Quarkus :: </namePrefix>
                     <nameSegmentDelimiter xml:space="preserve"> :: </nameSegmentDelimiter>
                     <javaPackageInfix>component</javaPackageInfix>
-                    <templatesUriBase>file:///${project.basedir}/../tooling/create-extension-templates</templatesUriBase>
+                    <templatesUriBase>file://../tooling/create-extension-templates</templatesUriBase>
                     <runtimeBomPath>../poms/bom/pom.xml</runtimeBomPath>
                     <deploymentBomPath>../poms/bom-deployment/pom.xml</deploymentBomPath>
                     <bomEntryVersion>@{camel-quarkus.version}</bomEntryVersion>

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 16/34: Fix #694 quarkus-maven-plugin generate application.properties file for IT tests

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit d2f6b59c800b376f19f2de2862b1938c65f4ff2e
Author: Peter Palaga <[hidden email]>
AuthorDate: Thu Feb 13 15:14:16 2020 +0100

    Fix #694 quarkus-maven-plugin generate application.properties file for IT tests
---
 .../integration-test-application.properties              | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tooling/create-extension-templates/integration-test-application.properties b/tooling/create-extension-templates/integration-test-application.properties
new file mode 100644
index 0000000..fa7a54b
--- /dev/null
+++ b/tooling/create-extension-templates/integration-test-application.properties
@@ -0,0 +1,16 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 17/34: create camel-jira extension #710

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 5b22aa6218fb3d61d14ad92c3efde71b3271aac6
Author: Freeman Fang <[hidden email]>
AuthorDate: Thu Feb 13 14:03:25 2020 -0500

    create camel-jira extension #710
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |   5 +-
 extensions/jira/deployment/pom.xml                 |  79 ++++++++
 .../component/jira/deployment/JiraProcessor.java   |  31 ++++
 extensions/jira/pom.xml                            |  39 ++++
 extensions/jira/runtime/pom.xml                    | 125 +++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  27 +++
 extensions/pom.xml                                 |   1 +
 extensions/readme.adoc                             |   5 +-
 integration-tests/jira/pom.xml                     | 202 +++++++++++++++++++++
 .../quarkus/component/jira/it/JiraResource.java    |  86 +++++++++
 .../component/jira/it/JiraRouteBuilder.java        |  41 +++++
 .../camel/quarkus/component/jira/it/JiraIT.java    |  24 +++
 .../camel/quarkus/component/jira/it/JiraTest.java  |  41 +++++
 integration-tests/pom.xml                          |   1 +
 pom.xml                                            |   2 +
 poms/bom-deployment/pom.xml                        |   5 +
 poms/bom/pom.xml                                   |  22 ++-
 17 files changed, 733 insertions(+), 3 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index b97e9be..b884fda 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
+Number of Camel components: 64 in 55 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -114,6 +114,9 @@ Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
 | link:https://camel.apache.org/components/latest/jdbc-component.html[JDBC] (camel-quarkus-jdbc) +
 `jdbc:dataSourceName` | 0.2.0 | The jdbc component enables you to access databases through JDBC, where SQL queries are sent in the message body.
 
+| link:https://camel.apache.org/components/latest/jira-component.html[Jira] (camel-quarkus-jira) +
+`jira:type` | 1.1.0 | The jira component interacts with the JIRA issue tracker.
+
 | link:https://camel.apache.org/components/latest/kafka-component.html[Kafka] (camel-quarkus-kafka) +
 `kafka:topic` | 1.0.0-M1 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.
 
diff --git a/extensions/jira/deployment/pom.xml b/extensions/jira/deployment/pom.xml
new file mode 100644
index 0000000..2e1dd6c
--- /dev/null
+++ b/extensions/jira/deployment/pom.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-jira-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jira-deployment</artifactId>
+    <name>Camel Quarkus :: Jira :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jira</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging-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/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
new file mode 100644
index 0000000..befac44
--- /dev/null
+++ b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.jira.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class JiraProcessor {
+
+    private static final String FEATURE = "camel-jira";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions/jira/pom.xml b/extensions/jira/pom.xml
new file mode 100644
index 0000000..31bd5ca
--- /dev/null
+++ b/extensions/jira/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-jira-parent</artifactId>
+    <name>Camel Quarkus :: Jira</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/jira/runtime/pom.xml b/extensions/jira/runtime/pom.xml
new file mode 100644
index 0000000..6faa1d9
--- /dev/null
+++ b/extensions/jira/runtime/pom.xml
@@ -0,0 +1,125 @@
+<?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-jira-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jira</artifactId>
+    <name>Camel Quarkus :: Jira :: 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>
+    <repositories>
+        <repository>
+            <id>atlassian</id>
+            <url>https://packages.atlassian.com/maven-external/</url>
+            <name>atlassian exteranl repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-jira</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.ws.rs</groupId>
+                    <artifactId>jsr311-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.google.code.findbugs</groupId>
+                    <artifactId>jsr305</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient-cache</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-commons-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient-cache</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/jira/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/jira/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..7646dad
--- /dev/null
+++ b/extensions/jira/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 Jira"
+description: "Camel Jira support"
+metadata:
+  keywords:
+  - "camel"
+  - "jira"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+  - "integration"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 289a289..d562bf7 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -89,6 +89,7 @@
         <module>netty-http</module>
         <module>olingo4</module>
         <module>opentracing</module>
+        <module>jira</module>
         <module>paho</module>
         <module>pdf</module>
         <module>platform-http</module>
diff --git a/extensions/readme.adoc b/extensions/readme.adoc
index fffd02d..ef64f14 100644
--- a/extensions/readme.adoc
+++ b/extensions/readme.adoc
@@ -5,7 +5,7 @@ Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extension
 == Camel Components
 
 // components: START
-Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
+Number of Camel components: 64 in 55 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
@@ -101,6 +101,9 @@ Number of Camel components: 63 in 54 JAR artifacts (0 deprecated)
 | link:https://camel.apache.org/components/latest/jdbc-component.html[JDBC] (camel-quarkus-jdbc) +
 `jdbc:dataSourceName` | 0.2.0 | The jdbc component enables you to access databases through JDBC, where SQL queries are sent in the message body.
 
+| link:https://camel.apache.org/components/latest/jira-component.html[Jira] (camel-quarkus-jira) +
+`jira:type` | 1.1.0 | The jira component interacts with the JIRA issue tracker.
+
 | link:https://camel.apache.org/components/latest/kafka-component.html[Kafka] (camel-quarkus-kafka) +
 `kafka:topic` | 1.0.0-M1 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.
 
diff --git a/integration-tests/jira/pom.xml b/integration-tests/jira/pom.xml
new file mode 100644
index 0000000..195d96f
--- /dev/null
+++ b/integration-tests/jira/pom.xml
@@ -0,0 +1,202 @@
+<?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>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-jira</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Jira</name>
+    <description>Integration tests for Camel Quarkus Jira extension</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jira</artifactId>
+        </dependency>
+        <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>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <!--profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <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>
+                                <configuration>
+                                    <systemProperties>
+                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                    </systemProperties>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>io.quarkus</groupId>
+                        <artifactId>quarkus-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>native-image</id>
+                                <goals>
+                                    <goal>native-image</goal>
+                                </goals>
+                                <configuration>
+                                    <reportErrorsAtRuntime>false</reportErrorsAtRuntime>
+                                    <cleanupServer>true</cleanupServer>
+                                    <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
+                                    <enableServer>false</enableServer>
+                                    <dumpProxies>false</dumpProxies>
+                                    <graalvmHome>${graalvmHome}</graalvmHome>
+                                    <enableJni>true</enableJni>
+                                    <enableAllSecurityServices>true</enableAllSecurityServices>
+                                    <disableReports>true</disableReports>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles-->
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <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>
+                                <configuration>
+                                    <systemProperties>
+                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                    </systemProperties>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>io.quarkus</groupId>
+                        <artifactId>quarkus-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>native-image</id>
+                                <goals>
+                                    <goal>native-image</goal>
+                                </goals>
+                                <configuration>
+                                    <reportErrorsAtRuntime>false</reportErrorsAtRuntime>
+                                    <cleanupServer>true</cleanupServer>
+                                    <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
+                                    <enableServer>false</enableServer>
+                                    <dumpProxies>false</dumpProxies>
+                                    <graalvmHome>${graalvmHome}</graalvmHome>
+                                    <enableJni>true</enableJni>
+                                    <enableAllSecurityServices>true</enableAllSecurityServices>
+                                    <disableReports>true</disableReports>
+                                    <additionalBuildArgs>
+                                        --initialize-at-run-time=com.google.api.client.auth.oauth.OAuthParameters,--allow-incomplete-classpath
+                                    </additionalBuildArgs>
+                                    <!--additionalBuildArg>
+                                        -H:ReflectionConfigurationFiles=${project.basedir}/reflection-config.json
+                                    </additionalBuildArg-->
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
new file mode 100644
index 0000000..9433680
--- /dev/null
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
@@ -0,0 +1,86 @@
+/*
+ * 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.jira.it;
+
+import java.net.URI;
+
+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 javax.ws.rs.core.Response;
+
+import com.atlassian.jira.rest.client.api.RestClientException;
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.ProducerTemplate;
+import org.jboss.logging.Logger;
+
+@Path("/jira")
+@ApplicationScoped
+public class JiraResource {
+
+    private static final Logger log = Logger.getLogger(JiraResource.class);
+
+    String TEST_JIRA_URL = "https://somerepo.atlassian.net";
+    String PROJECT = "TST";
+    String USERNAME = "someguy";
+    String PASSWORD = "my_password";
+    String JIRA_CREDENTIALS = TEST_JIRA_URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    ConsumerTemplate consumerTemplate;
+
+    @Path("/get")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String get() throws Exception {
+        final String message = consumerTemplate.receiveBodyNoWait("jira:newIssues?jiraUrl=" + JIRA_CREDENTIALS, String.class);
+        log.infof("Received from jira: %s", message);
+        return message;
+    }
+
+    @Path("/post")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response post(String message) throws Exception {
+
+        log.infof("Sending to jira: %s", message);
+        String response = null;
+        int statusCode = 0;
+        try {
+            response = (String) producerTemplate.requestBody("direct:start", message, String.class);
+        } catch (Exception ex) {
+
+            statusCode = ((RestClientException) ex.getCause()).getStatusCode().get();
+        }
+
+        log.infof("Got response from jira: %s", response);
+        return Response
+                .created(new URI("https://camel.apache.org/"))
+                .entity(response)
+                .status(statusCode)
+                .build();
+    }
+}
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRouteBuilder.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRouteBuilder.java
new file mode 100644
index 0000000..e73f71f
--- /dev/null
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRouteBuilder.java
@@ -0,0 +1,41 @@
+/*
+ * 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.jira.it;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jira.JiraConstants;
+
+public class JiraRouteBuilder extends RouteBuilder {
+    String TEST_JIRA_URL = "https://somerepo.atlassian.net";
+    String PROJECT = "TST";
+    String USERNAME = "someguy";
+    String PASSWORD = "my_password";
+    String JIRA_CREDENTIALS = TEST_JIRA_URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+
+    @Override
+    public void configure() {
+
+        from("direct:start")
+                .setHeader(JiraConstants.ISSUE_PROJECT_KEY, constant("camel-jira"))
+                .setHeader(JiraConstants.ISSUE_TYPE_NAME, constant("Task"))
+                .setHeader(JiraConstants.ISSUE_SUMMARY, constant("Demo Bug jira"))
+                .setHeader(JiraConstants.ISSUE_PRIORITY_NAME, constant("Low"))
+                .setHeader(JiraConstants.ISSUE_ASSIGNEE, constant("Freeman"))
+                .to("jira://addIssue?jiraUrl=" + JIRA_CREDENTIALS);
+
+    }
+}
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraIT.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraIT.java
new file mode 100644
index 0000000..93e4fbc
--- /dev/null
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraIT.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.jira.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+class JiraIT extends JiraTest {
+
+}
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
new file mode 100644
index 0000000..5db5c06
--- /dev/null
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
@@ -0,0 +1,41 @@
+/*
+ * 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.jira.it;
+
+import java.util.UUID;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class JiraTest {
+
+    @Test
+    public void test() {
+        final String msg = UUID.randomUUID().toString().replace("-", "");
+        RestAssured.given() //
+                .contentType(ContentType.TEXT).body(msg).post("/jira/post")
+                .then().statusCode(404);//external jira not exist, expect to return 404
+
+        String body = RestAssured.get("/jira/get").asString();
+        Assertions.assertEquals(body, "");
+    }
+
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 57b4e8c..d7ac29e 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -197,6 +197,7 @@
         <module>olingo4</module>
         <module>opentracing</module>
         <module>paho</module>
+        <module>jira</module>
         <module>pdf</module>
         <module>platform-http</module>
         <module>platform-http-engine</module>
diff --git a/pom.xml b/pom.xml
index aa66c18..5951b84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,11 +42,13 @@
 
         <ahc.version>2.10.4</ahc.version>
         <camel.version>3.0.1</camel.version>
+        <jira.guava.version>20.0</jira.guava.version>
         <hapi.version>4.1.0</hapi.version>
         <quarkus.version>1.3.0.Alpha1</quarkus.version>
         <httpmime.version>4.1.3</httpmime.version>
         <jetty.version>9.4.18.v20190429</jetty.version>
         <xstream.version>1.4.11</xstream.version>
+        <httpclient.cache.version>4.5.5</httpclient.cache.version>
         <snakeyaml.version>1.25</snakeyaml.version>
         <xalan.version>2.7.2</xalan.version>
         <xerces.version>2.12.0</xerces.version>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 364be6a..f9b32c5 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -55,6 +55,11 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jira-deployment</artifactId>
+                <version>${project.version}</version>
+            </dependency>
 
             <!-- Dependencies a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
 
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 4c50f6b..f994141 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -143,6 +143,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jira</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>${jira.guava.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-base</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -970,7 +980,12 @@
                 <artifactId>camel-quarkus-zipfile</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jira</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            
             <!--$ Other third party dependencies $-->
             <dependency>
                 <groupId>ca.uhn.hapi.fhir</groupId>
@@ -1058,6 +1073,11 @@
                 <artifactId>xercesImpl</artifactId>
                 <version>${xerces.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient-cache</artifactId>
+                <version>${httpclient.cache.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 18/34: camel-jira extension:more polish up

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 24b5ac42a625ffe92f9c1c8cb6377842ce242716
Author: Freeman Fang <[hidden email]>
AuthorDate: Thu Feb 13 18:09:07 2020 -0500

    camel-jira extension:more polish up
---
 .github/workflows/pr-build.yaml                    |  3 +-
 .../component/jira/deployment/JiraProcessor.java   |  6 ++
 extensions/jira/runtime/pom.xml                    | 13 ----
 extensions/pom.xml                                 |  2 +-
 integration-tests/jira/pom.xml                     | 69 ++++------------------
 .../quarkus/component/jira/it/JiraResource.java    |  2 -
 integration-tests/pom.xml                          |  2 +-
 pom.xml                                            | 14 ++++-
 poms/bom/pom.xml                                   | 42 ++++++-------
 9 files changed, 54 insertions(+), 99 deletions(-)

diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index 4a29823..c9fd9ed 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -379,7 +379,8 @@ jobs:
             -pl :camel-quarkus-integration-test-stream \
             -pl :camel-quarkus-integration-test-tarfile \
             -pl :camel-quarkus-integration-test-validator \
-            -pl :camel-quarkus-integration-test-zipfile
+            -pl :camel-quarkus-integration-test-zipfile \
+            -pl :camel-quarkus-integration-test-jira
   saas:
     runs-on: ubuntu-latest
     needs: build
diff --git a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
index befac44..89be59f 100644
--- a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
+++ b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.jira.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 
 class JiraProcessor {
@@ -24,6 +25,11 @@ class JiraProcessor {
     private static final String FEATURE = "camel-jira";
 
     @BuildStep
+    ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+        return new ExtensionSslNativeSupportBuildItem(FEATURE);
+    }
+
+    @BuildStep
     FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
diff --git a/extensions/jira/runtime/pom.xml b/extensions/jira/runtime/pom.xml
index 6faa1d9..2be8ea1 100644
--- a/extensions/jira/runtime/pom.xml
+++ b/extensions/jira/runtime/pom.xml
@@ -46,19 +46,6 @@
             </dependency>
         </dependencies>
     </dependencyManagement>
-    <repositories>
-        <repository>
-            <id>atlassian</id>
-            <url>https://packages.atlassian.com/maven-external/</url>
-            <name>atlassian exteranl repo</name>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-        </repository>
-    </repositories>
 
     <dependencies>
         <dependency>
diff --git a/extensions/pom.xml b/extensions/pom.xml
index d562bf7..2ece525 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -77,6 +77,7 @@
         <module>infinispan</module>
         <module>jackson</module>
         <module>jdbc</module>
+        <module>jira</module>
         <module>jsonpath</module>
         <module>kafka</module>
         <module>kotlin</module>
@@ -89,7 +90,6 @@
         <module>netty-http</module>
         <module>olingo4</module>
         <module>opentracing</module>
-        <module>jira</module>
         <module>paho</module>
         <module>pdf</module>
         <module>platform-http</module>
diff --git a/integration-tests/jira/pom.xml b/integration-tests/jira/pom.xml
index 195d96f..c0bcaf5 100644
--- a/integration-tests/jira/pom.xml
+++ b/integration-tests/jira/pom.xml
@@ -31,6 +31,16 @@
     <name>Camel Quarkus :: Integration Tests :: Jira</name>
     <description>Integration tests for Camel Quarkus Jira 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-direct-deployment,camel-quarkus-jira-deployment,camel-quarkus-log-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
@@ -84,60 +94,6 @@
         </plugins>
     </build>
 
-    <!--profiles>
-        <profile>
-            <id>native</id>
-            <activation>
-                <property>
-                    <name>native</name>
-                </property>
-            </activation>
-            <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>
-                                <configuration>
-                                    <systemProperties>
-                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
-                                    </systemProperties>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>io.quarkus</groupId>
-                        <artifactId>quarkus-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>native-image</id>
-                                <goals>
-                                    <goal>native-image</goal>
-                                </goals>
-                                <configuration>
-                                    <reportErrorsAtRuntime>false</reportErrorsAtRuntime>
-                                    <cleanupServer>true</cleanupServer>
-                                    <enableHttpsUrlHandler>true</enableHttpsUrlHandler>
-                                    <enableServer>false</enableServer>
-                                    <dumpProxies>false</dumpProxies>
-                                    <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
-                                    <enableAllSecurityServices>true</enableAllSecurityServices>
-                                    <disableReports>true</disableReports>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles-->
     <profiles>
         <profile>
             <id>native</id>
@@ -181,15 +137,10 @@
                                     <enableServer>false</enableServer>
                                     <dumpProxies>false</dumpProxies>
                                     <graalvmHome>${graalvmHome}</graalvmHome>
-                                    <enableJni>true</enableJni>
-                                    <enableAllSecurityServices>true</enableAllSecurityServices>
                                     <disableReports>true</disableReports>
                                     <additionalBuildArgs>
                                         --initialize-at-run-time=com.google.api.client.auth.oauth.OAuthParameters,--allow-incomplete-classpath
                                     </additionalBuildArgs>
-                                    <!--additionalBuildArg>
-                                        -H:ReflectionConfigurationFiles=${project.basedir}/reflection-config.json
-                                    </additionalBuildArg-->
                                 </configuration>
                             </execution>
                         </executions>
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
index 9433680..d0a8fd7 100644
--- a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
@@ -18,7 +18,6 @@ package org.apache.camel.quarkus.component.jira.it;
 
 import java.net.URI;
 
-import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -34,7 +33,6 @@ import org.apache.camel.ProducerTemplate;
 import org.jboss.logging.Logger;
 
 @Path("/jira")
-@ApplicationScoped
 public class JiraResource {
 
     private static final Logger log = Logger.getLogger(JiraResource.class);
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index d7ac29e..0fba9c4 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -188,6 +188,7 @@
         <module>infinispan</module>
         <module>jackson</module>
         <module>jdbc</module>
+        <module>jira</module>
         <module>jsonpath</module>
         <module>kafka</module>
         <module>mail</module>
@@ -197,7 +198,6 @@
         <module>olingo4</module>
         <module>opentracing</module>
         <module>paho</module>
-        <module>jira</module>
         <module>pdf</module>
         <module>platform-http</module>
         <module>platform-http-engine</module>
diff --git a/pom.xml b/pom.xml
index 5951b84..7659111 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
 
         <ahc.version>2.10.4</ahc.version>
         <camel.version>3.0.1</camel.version>
-        <jira.guava.version>20.0</jira.guava.version>
+        <guava.version>26.0-jre</guava.version>
         <hapi.version>4.1.0</hapi.version>
         <quarkus.version>1.3.0.Alpha1</quarkus.version>
         <httpmime.version>4.1.3</httpmime.version>
@@ -175,6 +175,18 @@
                 <enabled>false</enabled>
             </releases>
         </repository>
+        <repository>
+            <!--for com.atlassian.jira-->
+            <id>atlassian</id>
+            <url>https://packages.atlassian.com/maven-external/</url>
+            <name>atlassian exteranl repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index f994141..01ae072 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -143,16 +143,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-jira</artifactId>
-                <version>${camel.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.guava</groupId>
-                <artifactId>guava</artifactId>
-                <version>${jira.guava.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-base</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -315,6 +305,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jira</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jsonpath</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -737,6 +732,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jira</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jsonpath</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -980,12 +980,7 @@
                 <artifactId>camel-quarkus-zipfile</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-jira</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            
+
             <!--$ Other third party dependencies $-->
             <dependency>
                 <groupId>ca.uhn.hapi.fhir</groupId>
@@ -993,6 +988,11 @@
                 <version>${hapi.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>${guava.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.orbitz.consul</groupId>
                 <artifactId>consul-client</artifactId>
                 <version>${consul-client.version}</version>
@@ -1013,6 +1013,11 @@
                 <version>${xstream.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient-cache</artifactId>
+                <version>${httpclient.cache.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.asynchttpclient</groupId>
                 <artifactId>async-http-client</artifactId>
                 <version>${ahc.version}</version>
@@ -1073,11 +1078,6 @@
                 <artifactId>xercesImpl</artifactId>
                 <version>${xerces.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpclient-cache</artifactId>
-                <version>${httpclient.cache.version}</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
 

Reply | Threaded
Open this post in threaded view
|

[camel-quarkus] 19/34: Fix incompatibilities between Quarkus and Camel MongoDB dependencies

jamesnetherton-2
In reply to this post by jamesnetherton-2
This is an automated email from the ASF dual-hosted git repository.

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

commit 0bbb279a050ea13c80b549984ef9145ecb1ae4bc
Author: James Netherton <[hidden email]>
AuthorDate: Thu Jan 23 15:11:07 2020 +0000

    Fix incompatibilities between Quarkus and Camel MongoDB dependencies
   
    fixes #544, #649
---
 .../mongodb/deployment/MongoDbProcessor.java       |  11 +-
 extensions/mongodb/runtime/pom.xml                 |   4 +-
 .../component/mongodb/CamelMongoClient.java        | 124 ---------------------
 .../mongodb/CamelMongoClientRecorder.java          |  29 -----
 .../graal/SubstituteMongoClientOptions.java        |  43 -------
 .../component/mongodb/it/MongoDbResource.java      |  10 --
 .../component/mongodb/it/MongoDbTestResource.java  |   4 +-
 pom.xml                                            |   8 ++
 poms/bom/pom.xml                                   |  25 +++++
 9 files changed, 39 insertions(+), 219 deletions(-)

diff --git a/extensions/mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/deployment/MongoDbProcessor.java b/extensions/mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/deployment/MongoDbProcessor.java
index f14c0c9..8f5a378 100644
--- a/extensions/mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/deployment/MongoDbProcessor.java
+++ b/extensions/mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/deployment/MongoDbProcessor.java
@@ -18,11 +18,8 @@ package org.apache.camel.quarkus.component.mongodb.deployment;
 
 import com.mongodb.MongoClient;
 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.mongodb.deployment.MongoClientBuildItem;
-import org.apache.camel.quarkus.component.mongodb.CamelMongoClientRecorder;
 import org.apache.camel.quarkus.core.deployment.CamelRuntimeBeanBuildItem;
 
 class MongoDbProcessor {
@@ -35,11 +32,7 @@ class MongoDbProcessor {
     }
 
     @BuildStep
-    @Record(ExecutionTime.RUNTIME_INIT)
-    CamelRuntimeBeanBuildItem registerCamelMongoClientProducer(MongoClientBuildItem mongoClientBuildItem,
-            CamelMongoClientRecorder recorder) {
-
-        return new CamelRuntimeBeanBuildItem("camelMongoClient", MongoClient.class.getName(),
-                recorder.createCamelMongoClient(mongoClientBuildItem.getClient()));
+    CamelRuntimeBeanBuildItem registerCamelMongoClientProducer(MongoClientBuildItem mongoClientBuildItem) {
+        return new CamelRuntimeBeanBuildItem("camelMongoClient", MongoClient.class.getName(), mongoClientBuildItem.getClient());
     }
 }
diff --git a/extensions/mongodb/runtime/pom.xml b/extensions/mongodb/runtime/pom.xml
index 8cf892f..2517e80 100644
--- a/extensions/mongodb/runtime/pom.xml
+++ b/extensions/mongodb/runtime/pom.xml
@@ -63,8 +63,8 @@
             <artifactId>mongodb-driver-legacy</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.graalvm.nativeimage</groupId>
-            <artifactId>svm</artifactId>
+            <groupId>org.mongodb</groupId>
+            <artifactId>mongodb-crypt</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClient.java b/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClient.java
deleted file mode 100644
index a2f515f..0000000
--- a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClient.java
+++ /dev/null
@@ -1,124 +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.mongodb;
-
-import java.util.List;
-
-import com.mongodb.ClientSessionOptions;
-import com.mongodb.client.ChangeStreamIterable;
-import com.mongodb.client.ClientSession;
-import com.mongodb.client.ListDatabasesIterable;
-import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoDatabase;
-import com.mongodb.client.MongoIterable;
-import org.bson.Document;
-import org.bson.conversions.Bson;
-
-/**
- * Bridges Mongo client types {@link com.mongodb.MongoClient} and {@link com.mongodb.client.MongoClient} used by the
- * Quarkus Mongo extension and the Camel MongoDB component, so that it can be looked up and used via the
- * connectionBean URI endpoint path parameter
- */
-public final class CamelMongoClient extends com.mongodb.MongoClient {
-
-    private final MongoClient delegate;
-
-    public CamelMongoClient(MongoClient delegate) {
-        this.delegate = delegate;
-    }
-
-    @Override
-    public MongoDatabase getDatabase(String databaseName) {
-        return delegate.getDatabase(databaseName);
-    }
-
-    @Override
-    public ClientSession startSession() {
-        return delegate.startSession();
-    }
-
-    @Override
-    public ClientSession startSession(ClientSessionOptions options) {
-        return delegate.startSession(options);
-    }
-
-    @Override
-    public void close() {
-        delegate.close();
-    }
-
-    @Override
-    public MongoIterable<String> listDatabaseNames() {
-        return delegate.listDatabaseNames();
-    }
-
-    @Override
-    public ListDatabasesIterable<Document> listDatabases(ClientSession clientSession) {
-        return delegate.listDatabases(clientSession);
-    }
-
-    @Override
-    public <T> ListDatabasesIterable<T> listDatabases(ClientSession clientSession, Class<T> clazz) {
-        return delegate.listDatabases(clientSession, clazz);
-    }
-
-    @Override
-    public <T> ListDatabasesIterable<T> listDatabases(Class<T> clazz) {
-        return delegate.listDatabases(clazz);
-    }
-
-    @Override
-    public ChangeStreamIterable<Document> watch() {
-        return delegate.watch();
-    }
-
-    @Override
-    public ChangeStreamIterable<Document> watch(List<? extends Bson> pipeline) {
-        return delegate.watch(pipeline);
-    }
-
-    @Override
-    public ChangeStreamIterable<Document> watch(ClientSession clientSession) {
-        return delegate.watch(clientSession);
-    }
-
-    @Override
-    public ChangeStreamIterable<Document> watch(ClientSession clientSession, List<? extends Bson> pipeline) {
-        return delegate.watch(clientSession, pipeline);
-    }
-
-    @Override
-    public <TResult> ChangeStreamIterable<TResult> watch(Class<TResult> resultClass) {
-        return delegate.watch(resultClass);
-    }
-
-    @Override
-    public <TResult> ChangeStreamIterable<TResult> watch(List<? extends Bson> pipeline, Class<TResult> resultClass) {
-        return delegate.watch(pipeline, resultClass);
-    }
-
-    @Override
-    public <TResult> ChangeStreamIterable<TResult> watch(ClientSession clientSession, Class<TResult> resultClass) {
-        return delegate.watch(clientSession, resultClass);
-    }
-
-    @Override
-    public <TResult> ChangeStreamIterable<TResult> watch(ClientSession clientSession, List<? extends Bson> pipeline,
-            Class<TResult> resultClass) {
-        return delegate.watch(clientSession, pipeline, resultClass);
-    }
-}
diff --git a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClientRecorder.java b/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClientRecorder.java
deleted file mode 100644
index 371f72a..0000000
--- a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/CamelMongoClientRecorder.java
+++ /dev/null
@@ -1,29 +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.mongodb;
-
-import com.mongodb.client.MongoClient;
-import io.quarkus.runtime.RuntimeValue;
-import io.quarkus.runtime.annotations.Recorder;
-
-@Recorder
-public class CamelMongoClientRecorder {
-
-    public RuntimeValue<CamelMongoClient> createCamelMongoClient(RuntimeValue<MongoClient> client) {
-        return new RuntimeValue<>(new CamelMongoClient(client.getValue()));
-    }
-}
diff --git a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/graal/SubstituteMongoClientOptions.java b/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/graal/SubstituteMongoClientOptions.java
deleted file mode 100644
index fbbc855..0000000
--- a/extensions/mongodb/runtime/src/main/java/org/apache/camel/quarkus/component/mongodb/graal/SubstituteMongoClientOptions.java
+++ /dev/null
@@ -1,43 +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.mongodb.graal;
-
-import javax.net.SocketFactory;
-
-import com.mongodb.MongoClientOptions;
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-
-@TargetClass(MongoClientOptions.class)
-final class SubstituteMongoClientOptions {
-
-    @Alias
-    private SocketFactory socketFactory;
-
-    @Alias
-    private static SocketFactory DEFAULT_SOCKET_FACTORY;
-
-    @Substitute
-    public SocketFactory getSocketFactory() {
-        if (this.socketFactory != null) {
-            return this.socketFactory;
-        } else {
-            return DEFAULT_SOCKET_FACTORY;
-        }
-    }
-}
diff --git a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
index dbde877..c859969 100644
--- a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
+++ b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
@@ -21,7 +21,6 @@ import java.net.URISyntaxException;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
-import javax.inject.Named;
 import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonArrayBuilder;
@@ -35,7 +34,6 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.mongodb.MongoClient;
 import com.mongodb.client.MongoCursor;
 import com.mongodb.client.MongoIterable;
 import org.apache.camel.ProducerTemplate;
@@ -84,12 +82,4 @@ public class MongoDbResource {
 
         return arrayBuilder.build();
     }
-
-    @javax.enterprise.inject.Produces
-    @Named("camelMongoClient")
-    public MongoClient camelMongoClient() {
-        return new MongoClient(
-                System.getProperty("camel.mongodb.test-host"),
-                Integer.getInteger("camel.mongodb.test-port"));
-    }
 }
diff --git a/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTestResource.java b/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTestResource.java
index b7a915f..cbbf45d 100644
--- a/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTestResource.java
+++ b/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTestResource.java
@@ -46,8 +46,8 @@ public class MongoDbTestResource implements ContainerResourceLifecycleManager {
             container.start();
 
             return CollectionHelper.mapOf(
-                    "camel.mongodb.test-port", container.getMappedPort(MONGODB_PORT).toString(),
-                    "camel.mongodb.test-host", container.getContainerIpAddress());
+                    "quarkus.mongodb.hosts",
+                    container.getContainerIpAddress() + ":" + container.getMappedPort(MONGODB_PORT).toString());
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git a/pom.xml b/pom.xml
index 7659111..3e9856f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,6 +58,14 @@
         <consul-client.version>1.3.3</consul-client.version>
         <stax2.version>4.2</stax2.version>
 
+        <!-- These mongodb version properties should align with the Mongo client version used in Camel
+            TODO: Remove when Quarkus has upgraded its MongoDB client dependencies
+                - https://github.com/quarkusio/quarkus/issues/6418
+                - https://github.com/quarkusio/quarkus/pull/6347
+        -->
+        <mongodb.version>3.12.1</mongodb.version>
+        <mongodb-crypt.version>1.0.1</mongodb-crypt.version>
+
         <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
         <maven.compiler.target>1.8</maven.compiler.target>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 01ae072..f849a11 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1053,6 +1053,31 @@
                 <version>${kotlin.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongodb-crypt</artifactId>
+                <version>${mongodb-crypt.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongodb-driver-async</artifactId>
+                <version>${mongodb.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongodb-driver-core</artifactId>
+                <version>${mongodb.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongodb-driver-legacy</artifactId>
+                <version>${mongodb.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongodb-driver-sync</artifactId>
+                <version>${mongodb.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-core</artifactId>
                 <version>${spring.version}</version>

12