diff --git a/CHANGELOG.md b/CHANGELOG.md index db5c26dc7419..ca41d7c409be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,49 +2,67 @@ ## [Unreleased](https://github.com/apache/camel-quarkus/tree/HEAD) -[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.7.0...HEAD) - -**Implemented enhancements:** - -- Camel-xslt-quarkus: add extension functions support [\#3503](https://github.com/apache/camel-quarkus/issues/3503) - -**Closed issues:** - -- Intermittent failure of `FileTest.idempotent` [\#3584](https://github.com/apache/camel-quarkus/issues/3584) -- jsonpath: The behavior change in native-mode when an application depend upon jackson-module-jaxb-annotations [\#3582](https://github.com/apache/camel-quarkus/issues/3582) -- Build maintence branch PRs against corresponding camel-quarkus-examples maintenance branch [\#3574](https://github.com/apache/camel-quarkus/issues/3574) -- jsonpath: JSON keys are unquoted when using writeAsString in native mode [\#3571](https://github.com/apache/camel-quarkus/issues/3571) -- Improve camel-quarkus-bean-validator test coverage [\#3567](https://github.com/apache/camel-quarkus/issues/3567) -- Increase `azure-storage-blob` extension test coverage [\#3561](https://github.com/apache/camel-quarkus/issues/3561) -- Gson: Complete doc and test coverage [\#3556](https://github.com/apache/camel-quarkus/issues/3556) -- How do you configure an InterceptStrategy in Quarkus? [\#3552](https://github.com/apache/camel-quarkus/issues/3552) -- Ban jboss-transaction-api\*, javax.transaction:\* and geronimo-jta\* in favor of jakarta.transaction:jakarta.transaction-api [\#3551](https://github.com/apache/camel-quarkus/issues/3551) -- LinkageError when using camel-quarkus-activemq together with quarkus-agroal [\#3548](https://github.com/apache/camel-quarkus/issues/3548) -- Incorrect version of `quarkus-maven-plugin` may be resolved [\#3520](https://github.com/apache/camel-quarkus/issues/3520) -- Prevent various plugins from resolving commons-logging:commons-logging [\#3517](https://github.com/apache/camel-quarkus/issues/3517) -- Expand Cassandra CQL extension test coverage [\#3514](https://github.com/apache/camel-quarkus/issues/3514) -- Ban javax.servlet:servlet-api in favor of jakarta.servlet:jakarta.servlet-api [\#3496](https://github.com/apache/camel-quarkus/issues/3496) -- Camel 3.15 - Some dataformats renamed [\#3460](https://github.com/apache/camel-quarkus/issues/3460) -- deadLetterChannel does not work in BaseRouteBuilder configure method [\#3436](https://github.com/apache/camel-quarkus/issues/3436) -- \[Camel 3.15\] Fhir tests are failing [\#3416](https://github.com/apache/camel-quarkus/issues/3416) -- Add Extension for Camel Azure Servicebus [\#3386](https://github.com/apache/camel-quarkus/issues/3386) -- Better integration with Quarkus OpenAPI & OpenAPI Swagger UI [\#3346](https://github.com/apache/camel-quarkus/issues/3346) -- Test examples on Windows [\#3343](https://github.com/apache/camel-quarkus/issues/3343) -- Run integration tests on Windows [\#3342](https://github.com/apache/camel-quarkus/issues/3342) -- `DebeziumMongodbTest` skipped tests [\#3213](https://github.com/apache/camel-quarkus/issues/3213) -- Improve available port discovery in tests [\#3199](https://github.com/apache/camel-quarkus/issues/3199) -- spark:hive is does not work [\#1956](https://github.com/apache/camel-quarkus/issues/1956) -- spark:dataframe does not work on Java 11 [\#1955](https://github.com/apache/camel-quarkus/issues/1955) -- \[Dependency hell\] Spark native support [\#1701](https://github.com/apache/camel-quarkus/issues/1701) -- A tool to check/sync dependency versions with camel & quarkus [\#1684](https://github.com/apache/camel-quarkus/issues/1684) -- Cannot build project on Windows [\#1429](https://github.com/apache/camel-quarkus/issues/1429) -- rest-dsl - Integrate with quarkus-openapi [\#383](https://github.com/apache/camel-quarkus/issues/383) +[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.7.1...HEAD) **Merged pull requests:** +- Stop managing Snappy in Spark BOM, as it is now managed in quarkus-bom [\#3684](https://github.com/apache/camel-quarkus/pull/3684) ([ppalaga](https://github.com/ppalaga)) +- Fix potential Azure Blob test failures when testing against the real service [\#3683](https://github.com/apache/camel-quarkus/pull/3683) ([jamesnetherton](https://github.com/jamesnetherton)) +- paho: Add test coverage for file persistence \#3680 [\#3681](https://github.com/apache/camel-quarkus/pull/3681) ([aldettinger](https://github.com/aldettinger)) +- Improve MicroProfile Fault Tolerance extension test coverage [\#3679](https://github.com/apache/camel-quarkus/pull/3679) ([jamesnetherton](https://github.com/jamesnetherton)) +- More bans [\#3678](https://github.com/apache/camel-quarkus/pull/3678) ([ppalaga](https://github.com/ppalaga)) +- Update antora.yml to point at 3.16.x branches [\#3676](https://github.com/apache/camel-quarkus/pull/3676) ([jamesnetherton](https://github.com/jamesnetherton)) +- Ban javax.activation-api, javax.annotation-api and JBoss spec artifacts [\#3675](https://github.com/apache/camel-quarkus/pull/3675) ([ppalaga](https://github.com/ppalaga)) +- Ban javax.validation and junit 4 [\#3673](https://github.com/apache/camel-quarkus/pull/3673) ([ppalaga](https://github.com/ppalaga)) +- paho: fix NullPointerException when MqqtException occurs during recon… [\#3672](https://github.com/apache/camel-quarkus/pull/3672) ([aldettinger](https://github.com/aldettinger)) +- Create Camel Google Secret Manager Extension [\#3668](https://github.com/apache/camel-quarkus/pull/3668) ([oscerd](https://github.com/oscerd)) +- Revert "Add Camel 3.16.0 staging repository" [\#3667](https://github.com/apache/camel-quarkus/pull/3667) ([ppalaga](https://github.com/ppalaga)) +- Better control what we manage in our BOM [\#3666](https://github.com/apache/camel-quarkus/pull/3666) ([ppalaga](https://github.com/ppalaga)) +- Add more details about `@QuarkusIntegrationTest` to the testing guide [\#3664](https://github.com/apache/camel-quarkus/pull/3664) ([jamesnetherton](https://github.com/jamesnetherton)) +- Align `com.github.java-json-tools:json-patch` version with Camel [\#3663](https://github.com/apache/camel-quarkus/pull/3663) ([jamesnetherton](https://github.com/jamesnetherton)) +- Stop importing io.quarkus:quarkus-bom into camel-quarkus-bom [\#3662](https://github.com/apache/camel-quarkus/pull/3662) ([ppalaga](https://github.com/ppalaga)) +- Exclude jboss-marshalling-osgi from infinispan-jboss-marshalling [\#3661](https://github.com/apache/camel-quarkus/pull/3661) ([jamesnetherton](https://github.com/jamesnetherton)) +- Fix loading of XML routes with routes-include-pattern wildcard [\#3660](https://github.com/apache/camel-quarkus/pull/3660) ([jamesnetherton](https://github.com/jamesnetherton)) +- Improve Infinispan extension test coverage [\#3659](https://github.com/apache/camel-quarkus/pull/3659) ([jamesnetherton](https://github.com/jamesnetherton)) +- Azure integration tests - upgrade the setup script [\#3654](https://github.com/apache/camel-quarkus/pull/3654) ([zbendhiba](https://github.com/zbendhiba)) +- Upgrade Quarkus to 2.8.0.CR1 + Upgrade Camel to 3.16.0 [\#3653](https://github.com/apache/camel-quarkus/pull/3653) ([jamesnetherton](https://github.com/jamesnetherton)) +- Fix typo in docs & Added tests for NotNull validator checks [\#3652](https://github.com/apache/camel-quarkus/pull/3652) ([mmuzikar](https://github.com/mmuzikar)) +- Avoid compiling regular expressions in loops [\#3649](https://github.com/apache/camel-quarkus/pull/3649) ([ppalaga](https://github.com/ppalaga)) +- Switch from `NativeImageTest` to `QuarkusIntegrationTest` [\#3648](https://github.com/apache/camel-quarkus/pull/3648) ([jamesnetherton](https://github.com/jamesnetherton)) +- file: Ensure FileTest.charset is fixed under Windows \#3530 [\#3647](https://github.com/apache/camel-quarkus/pull/3647) ([aldettinger](https://github.com/aldettinger)) +- Tidy geronimo-jms\_2.0\_spec exclusions [\#3646](https://github.com/apache/camel-quarkus/pull/3646) ([ppalaga](https://github.com/ppalaga)) +- file: Rewrite the charset related test \#3627 [\#3645](https://github.com/apache/camel-quarkus/pull/3645) ([aldettinger](https://github.com/aldettinger)) +- Fix registration of consul client API proxy interface [\#3644](https://github.com/apache/camel-quarkus/pull/3644) ([jamesnetherton](https://github.com/jamesnetherton)) +- Slack : fix native support for Webhook URL + add test coverage [\#3643](https://github.com/apache/camel-quarkus/pull/3643) ([zbendhiba](https://github.com/zbendhiba)) +- Fix Gradle native builds for Spring backed extensions [\#3640](https://github.com/apache/camel-quarkus/pull/3640) ([jamesnetherton](https://github.com/jamesnetherton)) +- Camel quarkus 3532 [\#3639](https://github.com/apache/camel-quarkus/pull/3639) ([aldettinger](https://github.com/aldettinger)) +- Upgrade and sync xmlgraphics-commons [\#3637](https://github.com/apache/camel-quarkus/pull/3637) ([jamesnetherton](https://github.com/jamesnetherton)) +- Upgrade cassandra-quarkus-client to 1.1.2 [\#3636](https://github.com/apache/camel-quarkus/pull/3636) ([jamesnetherton](https://github.com/jamesnetherton)) +- Use com.github.java-json-tools:\* instead of com.github.fge:\* [\#3634](https://github.com/apache/camel-quarkus/pull/3634) ([ppalaga](https://github.com/ppalaga)) +- Fix the antora-playbook.yml link [\#3633](https://github.com/apache/camel-quarkus/pull/3633) ([aldettinger](https://github.com/aldettinger)) +- Upgrade Quarkus to 2.7.5.Final [\#3631](https://github.com/apache/camel-quarkus/pull/3631) ([jamesnetherton](https://github.com/jamesnetherton)) +- Support additional FHIR 2.x versions [\#3630](https://github.com/apache/camel-quarkus/pull/3630) ([jamesnetherton](https://github.com/jamesnetherton)) +- Exclude ipfs from camel-quarkus-test-list \#3618 [\#3629](https://github.com/apache/camel-quarkus/pull/3629) ([aldettinger](https://github.com/aldettinger)) +- Fix \#3432 add a build step to support source location [\#3628](https://github.com/apache/camel-quarkus/pull/3628) ([zhfeng](https://github.com/zhfeng)) +- Disable FHIR versions not required by default [\#3626](https://github.com/apache/camel-quarkus/pull/3626) ([jamesnetherton](https://github.com/jamesnetherton)) +- Fix \#3606 to add reflection configs for Schema and its subClasses [\#3624](https://github.com/apache/camel-quarkus/pull/3624) ([zhfeng](https://github.com/zhfeng)) +- Fix cassandraql itests failing on quarkus-platform \#3621 [\#3623](https://github.com/apache/camel-quarkus/pull/3623) ([aldettinger](https://github.com/aldettinger)) +- Disable flaky GrpcTest.forwardOnError [\#3622](https://github.com/apache/camel-quarkus/pull/3622) ([jamesnetherton](https://github.com/jamesnetherton)) +- 📝Slack test : update Readme with new Oauth Configuration [\#3620](https://github.com/apache/camel-quarkus/pull/3620) ([zbendhiba](https://github.com/zbendhiba)) +- Kafka Oauth test bump Keycloak container version to 16.1.1 & leverage… [\#3619](https://github.com/apache/camel-quarkus/pull/3619) ([zbendhiba](https://github.com/zbendhiba)) +- Remote println from SQS test [\#3616](https://github.com/apache/camel-quarkus/pull/3616) ([mmuzikar](https://github.com/mmuzikar)) +- Increase FHIR extension test coverage [\#3614](https://github.com/apache/camel-quarkus/pull/3614) ([jamesnetherton](https://github.com/jamesnetherton)) +- Upgrade Quarkus to 2.7.4.Final [\#3613](https://github.com/apache/camel-quarkus/pull/3613) ([zbendhiba](https://github.com/zbendhiba)) +- zipfile: complete test coverage \#3610 [\#3611](https://github.com/apache/camel-quarkus/pull/3611) ([aldettinger](https://github.com/aldettinger)) +- Complete the release guide [\#3607](https://github.com/apache/camel-quarkus/pull/3607) ([aldettinger](https://github.com/aldettinger)) +- Upgrade third party Quarkus extensions prior to release [\#3603](https://github.com/apache/camel-quarkus/pull/3603) ([aldettinger](https://github.com/aldettinger)) +- Merge platform-http-engine tests with platform-http [\#3598](https://github.com/apache/camel-quarkus/pull/3598) ([jamesnetherton](https://github.com/jamesnetherton)) +- Add Azure Core HTTP Client Vert.x extension [\#3597](https://github.com/apache/camel-quarkus/pull/3597) ([jamesnetherton](https://github.com/jamesnetherton)) - file: fix a race condition where an exchange is missed due to a call … [\#3596](https://github.com/apache/camel-quarkus/pull/3596) ([aldettinger](https://github.com/aldettinger)) +- Fix \#3553 make beans of InterceptStrategy unremovable [\#3593](https://github.com/apache/camel-quarkus/pull/3593) ([zhfeng](https://github.com/zhfeng)) - Remove redundant workarounds for Kotlin compilation on JDK 17 [\#3591](https://github.com/apache/camel-quarkus/pull/3591) ([jamesnetherton](https://github.com/jamesnetherton)) - Bump Hazelcast client to 3.0.0 [\#3590](https://github.com/apache/camel-quarkus/pull/3590) ([zbendhiba](https://github.com/zbendhiba)) +- Bump Optaplanner to 8.18.0.Final [\#3589](https://github.com/apache/camel-quarkus/pull/3589) ([zbendhiba](https://github.com/zbendhiba)) - Manage mvel via cq:sync-versions to allow additional consistency checks [\#3588](https://github.com/apache/camel-quarkus/pull/3588) ([ppalaga](https://github.com/ppalaga)) - Add Extension for Camel Azure Servicebus [\#3587](https://github.com/apache/camel-quarkus/pull/3587) ([oscerd](https://github.com/oscerd)) - Upgrade Quarkus to 2.7.3.Final [\#3586](https://github.com/apache/camel-quarkus/pull/3586) ([jamesnetherton](https://github.com/jamesnetherton)) @@ -1005,14 +1023,96 @@ - org.apache.camel.quarkus.main.CamelMainApplication should be registered for reflection [\#1454](https://github.com/apache/camel-quarkus/pull/1454) ([lburgazzoli](https://github.com/lburgazzoli)) - Document how to use mock in JVM mode tests \#1449 [\#1452](https://github.com/apache/camel-quarkus/pull/1452) ([JiriOndrusek](https://github.com/JiriOndrusek)) -## [2.7.0](https://github.com/apache/camel-quarkus/tree/2.7.0) (2022-01-28) +## [2.7.1](https://github.com/apache/camel-quarkus/tree/2.7.1) (2022-03-31) -[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.2.1...2.7.0) +[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.8.0-M1...2.7.1) + +**Fixed bugs:** + +- Azure Storage blob - test failure [\#3655](https://github.com/apache/camel-quarkus/issues/3655) +- camel-quarkus-openapi-java marking all properties as type object in native mode [\#3606](https://github.com/apache/camel-quarkus/issues/3606) +- Consul native integration test failure [\#3509](https://github.com/apache/camel-quarkus/issues/3509) + +**Closed issues:** + +- paho: FilePersistence is not tested [\#3680](https://github.com/apache/camel-quarkus/issues/3680) +- Improve MicroProfile Fault Tolerance extension test coverage [\#3677](https://github.com/apache/camel-quarkus/issues/3677) +- paho: NullPointerException when MqqtException occurs during reconnect attempt in native mode [\#3671](https://github.com/apache/camel-quarkus/issues/3671) +- Improve Infinispan extension test coverage [\#3658](https://github.com/apache/camel-quarkus/issues/3658) +- Add more details about `@QuarkusIntegrationTest` in Testing guide [\#3650](https://github.com/apache/camel-quarkus/issues/3650) +- Use com.github.java-json-tools:\* instead of com.github.fge:\* [\#3632](https://github.com/apache/camel-quarkus/issues/3632) +- file: FileTest is flaky [\#3627](https://github.com/apache/camel-quarkus/issues/3627) +- cassandraql: itests failing on quarkus-platform [\#3621](https://github.com/apache/camel-quarkus/issues/3621) +- camel-quarkus-test-list should not include ipfs removed extension [\#3618](https://github.com/apache/camel-quarkus/issues/3618) +- Error building native executable with camel-quarkus-activemq [\#3617](https://github.com/apache/camel-quarkus/issues/3617) +- Support additional FHIR 2.x versions [\#3615](https://github.com/apache/camel-quarkus/issues/3615) +- zipfile: Complete test coverage [\#3610](https://github.com/apache/camel-quarkus/issues/3610) +- \[Camel 3.16\] rest-json example compliation error [\#3608](https://github.com/apache/camel-quarkus/issues/3608) +- Use https instead of http to reference xsds [\#3604](https://github.com/apache/camel-quarkus/issues/3604) +- Increase FHIR extension test coverage [\#3601](https://github.com/apache/camel-quarkus/issues/3601) +- \[Camel 3.16.0\] - camel-kafka uses some reflection for readiness health check [\#3592](https://github.com/apache/camel-quarkus/issues/3592) +- Improve quartz test coverage [\#3579](https://github.com/apache/camel-quarkus/issues/3579) +- Update dependency org.reflections:reflections in dependencyManagement of quarkus-camel-bom [\#3569](https://github.com/apache/camel-quarkus/issues/3569) +- Create Camel Google Secret Manager Extension [\#3566](https://github.com/apache/camel-quarkus/issues/3566) +- AWS Lambda example tests should use mock event server [\#3554](https://github.com/apache/camel-quarkus/issues/3554) +- Improve slack test coverage [\#3541](https://github.com/apache/camel-quarkus/issues/3541) +- Cannot build camel-quarkus-ipfs because repository.jboss.org is down [\#3532](https://github.com/apache/camel-quarkus/issues/3532) +- \[Quarkus 2.8.0\] Leverage Strimzi dev services container in kafka-oauth integration tests [\#3531](https://github.com/apache/camel-quarkus/issues/3531) +- `FileTest.charset` integration test fails on Windows [\#3530](https://github.com/apache/camel-quarkus/issues/3530) +- Ban javax.validation in favor of jakarta.validation [\#3504](https://github.com/apache/camel-quarkus/issues/3504) +- Camel Rest / Quarkus Swagger UI / Url Issue from Quarkus Version 2.6.x [\#3457](https://github.com/apache/camel-quarkus/issues/3457) +- Camel 3.15 - Add build step to capture route source location:line-number [\#3432](https://github.com/apache/camel-quarkus/issues/3432) +- Ban junit 4 [\#3354](https://github.com/apache/camel-quarkus/issues/3354) +- Better control what we manage in our BOM [\#3302](https://github.com/apache/camel-quarkus/issues/3302) +- camel.main.routes-include-pattern with a "\*" wildcard may end up loading a route builder twice [\#3265](https://github.com/apache/camel-quarkus/issues/3265) +- Investigate QuarkusIntegrationTest as a replacement for camel-quarkus-integration-tests-process-executor-support [\#2468](https://github.com/apache/camel-quarkus/issues/2468) + +## [2.8.0-M1](https://github.com/apache/camel-quarkus/tree/2.8.0-M1) (2022-03-08) + +[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.7.0...2.8.0-M1) **Implemented enhancements:** +- Camel-xslt-quarkus: add extension functions support [\#3503](https://github.com/apache/camel-quarkus/issues/3503) - Camel Rest DSL - Expose Rest DSL services to quarkus openapi [\#3251](https://github.com/apache/camel-quarkus/issues/3251) +**Closed issues:** + +- Improve camel-quarkus-bean-validator test coverage [\#3567](https://github.com/apache/camel-quarkus/issues/3567) +- Feature request: make beans for configuration of optional services unremovable by default [\#3553](https://github.com/apache/camel-quarkus/issues/3553) +- How do you configure an InterceptStrategy in Quarkus? [\#3552](https://github.com/apache/camel-quarkus/issues/3552) +- Ban jboss-transaction-api\*, javax.transaction:\* and geronimo-jta\* in favor of jakarta.transaction:jakarta.transaction-api [\#3551](https://github.com/apache/camel-quarkus/issues/3551) +- Incorrect version of `quarkus-maven-plugin` may be resolved [\#3520](https://github.com/apache/camel-quarkus/issues/3520) +- Prevent various plugins from resolving commons-logging:commons-logging [\#3517](https://github.com/apache/camel-quarkus/issues/3517) +- Ban javax.servlet:servlet-api in favor of jakarta.servlet:jakarta.servlet-api [\#3496](https://github.com/apache/camel-quarkus/issues/3496) +- Camel 3.15 - Some dataformats renamed [\#3460](https://github.com/apache/camel-quarkus/issues/3460) +- \[Camel 3.15\] Fhir tests are failing [\#3416](https://github.com/apache/camel-quarkus/issues/3416) +- Better integration with Quarkus OpenAPI & OpenAPI Swagger UI [\#3346](https://github.com/apache/camel-quarkus/issues/3346) +- Run integration tests on Windows [\#3342](https://github.com/apache/camel-quarkus/issues/3342) +- `DebeziumMongodbTest` skipped tests [\#3213](https://github.com/apache/camel-quarkus/issues/3213) +- Consider implementing a vert.x-web based Azure HttpClient [\#2196](https://github.com/apache/camel-quarkus/issues/2196) +- spark:hive is does not work [\#1956](https://github.com/apache/camel-quarkus/issues/1956) +- spark:dataframe does not work on Java 11 [\#1955](https://github.com/apache/camel-quarkus/issues/1955) +- \[Dependency hell\] Spark native support [\#1701](https://github.com/apache/camel-quarkus/issues/1701) +- A tool to check/sync dependency versions with camel & quarkus [\#1684](https://github.com/apache/camel-quarkus/issues/1684) +- jsonpath: The behavior change in native-mode when an application depend upon jackson-module-jaxb-annotations [\#3582](https://github.com/apache/camel-quarkus/issues/3582) +- Build maintence branch PRs against corresponding camel-quarkus-examples maintenance branch [\#3574](https://github.com/apache/camel-quarkus/issues/3574) +- jsonpath: JSON keys are unquoted when using writeAsString in native mode [\#3571](https://github.com/apache/camel-quarkus/issues/3571) +- Increase `azure-storage-blob` extension test coverage [\#3561](https://github.com/apache/camel-quarkus/issues/3561) +- Gson: Complete doc and test coverage [\#3556](https://github.com/apache/camel-quarkus/issues/3556) +- LinkageError when using camel-quarkus-activemq together with quarkus-agroal [\#3548](https://github.com/apache/camel-quarkus/issues/3548) +- Expand Cassandra CQL extension test coverage [\#3514](https://github.com/apache/camel-quarkus/issues/3514) +- deadLetterChannel does not work in BaseRouteBuilder configure method [\#3436](https://github.com/apache/camel-quarkus/issues/3436) +- Add Extension for Camel Azure Servicebus [\#3386](https://github.com/apache/camel-quarkus/issues/3386) +- Test examples on Windows [\#3343](https://github.com/apache/camel-quarkus/issues/3343) +- Improve available port discovery in tests [\#3199](https://github.com/apache/camel-quarkus/issues/3199) +- Cannot build project on Windows [\#1429](https://github.com/apache/camel-quarkus/issues/1429) +- rest-dsl - Integrate with quarkus-openapi [\#383](https://github.com/apache/camel-quarkus/issues/383) + +## [2.7.0](https://github.com/apache/camel-quarkus/tree/2.7.0) (2022-01-28) + +[Full Changelog](https://github.com/apache/camel-quarkus/compare/2.2.1...2.7.0) + **Fixed bugs:** - camel.main.durationMaxSeconds is not honoured [\#3394](https://github.com/apache/camel-quarkus/issues/3394) @@ -1075,6 +1175,8 @@ - Ban log4j-core and log4j-slf4j-impl [\#3377](https://github.com/apache/camel-quarkus/issues/3377) - Remove com.amazonaws:aws-java-sdk-swf-libraries from the BOM [\#3375](https://github.com/apache/camel-quarkus/issues/3375) - XSLT integration-test fails on Windows 10 [\#3374](https://github.com/apache/camel-quarkus/issues/3374) +- Ban javax.enterprise:cdi-api in favor of jakarta.enterprise:jakarta.enterprise.cdi-api [\#3364](https://github.com/apache/camel-quarkus/issues/3364) +- Ban geronimo-jms\_\*\_spec [\#3363](https://github.com/apache/camel-quarkus/issues/3363) - Ban com.sun.activation:javax.activation [\#3361](https://github.com/apache/camel-quarkus/issues/3361) - `vertx-kafka` extension incompatible with `kafka-clients` 3.0.0 [\#3358](https://github.com/apache/camel-quarkus/issues/3358) - aws-lambda: itest failing when run against the real AWS API [\#3356](https://github.com/apache/camel-quarkus/issues/3356) diff --git a/catalog/pom.xml b/catalog/pom.xml index 30b5f794438f..7ca993b61e81 100644 --- a/catalog/pom.xml +++ b/catalog/pom.xml @@ -571,6 +571,19 @@ + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-azure-storage-blob @@ -1533,6 +1546,19 @@ + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-google-sheets @@ -3652,6 +3678,19 @@ + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-support-bouncycastle diff --git a/docs/antora.yml b/docs/antora.yml index 0fad13493257..bc6a17531cae 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -26,11 +26,11 @@ asciidoc: min-maven-version: 3.8.1 # replace ${min-maven-version} target-maven-version: 3.8.4 # replace ${target-maven-version} - camel-version: 3.15.0 # replace ${camel.version} - camel-docs-version: 3.15.x # replace ${camel.docs.components.version} - quarkus-version: 2.7.3.Final # replace ${quarkus.version} - graalvm-version: 21.3.1 # replace ${graalvm.version} - graalvm-docs-version: 21.3 + camel-version: 3.16.0 # replace ${camel.version} + camel-docs-version: 3.16.x # replace ${camel.docs.components.version} + quarkus-version: 2.8.0.Final # replace ${quarkus.version} + graalvm-version: 22.0.0.2 # replace ${graalvm.version} + graalvm-docs-version: 22.0 # attributes used in xrefs to other Antora components - cq-camel-components: 3.15.x@components # replace ${camel.docs.components.xref} + cq-camel-components: 3.16.x@components # replace ${camel.docs.components.xref} quarkus-examples-version: latest diff --git a/docs/modules/ROOT/examples/components/elasticsearch-rest.yml b/docs/modules/ROOT/examples/components/elasticsearch-rest.yml index 9532a391e88a..e00e4ff7ad2f 100644 --- a/docs/modules/ROOT/examples/components/elasticsearch-rest.yml +++ b/docs/modules/ROOT/examples/components/elasticsearch-rest.yml @@ -4,7 +4,7 @@ cqArtifactId: camel-quarkus-elasticsearch-rest cqArtifactIdBase: elasticsearch-rest cqNativeSupported: true cqStatus: Stable -cqDeprecated: false +cqDeprecated: true cqJvmSince: 1.0.0 cqNativeSince: 1.0.0 cqCamelPartName: elasticsearch-rest diff --git a/docs/modules/ROOT/examples/components/google-secret-manager.yml b/docs/modules/ROOT/examples/components/google-secret-manager.yml new file mode 100644 index 000000000000..6ed43c720046 --- /dev/null +++ b/docs/modules/ROOT/examples/components/google-secret-manager.yml @@ -0,0 +1,13 @@ +# Do not edit directly! +# This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page +cqArtifactId: camel-quarkus-google-secret-manager +cqArtifactIdBase: google-secret-manager +cqNativeSupported: false +cqStatus: Preview +cqDeprecated: false +cqJvmSince: 2.8.0 +cqNativeSince: n/a +cqCamelPartName: google-secret-manager +cqCamelPartTitle: Google Secret Manager +cqCamelPartDescription: Manage Google Secret Manager Secrets +cqExtensionPageTitle: Google Secret Manager diff --git a/docs/modules/ROOT/examples/dataformats/ical.yml b/docs/modules/ROOT/examples/dataformats/ical.yml index 7948fe2e2f5b..0c483ec16421 100644 --- a/docs/modules/ROOT/examples/dataformats/ical.yml +++ b/docs/modules/ROOT/examples/dataformats/ical.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.0.0 cqNativeSince: 1.0.0 cqCamelPartName: ical cqCamelPartTitle: iCal -cqCamelPartDescription: Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library. +cqCamelPartDescription: Marshal and unmarshal iCal (.ics) documents to/from model objects. cqExtensionPageTitle: iCal diff --git a/docs/modules/ROOT/examples/dataformats/jacksonXml.yml b/docs/modules/ROOT/examples/dataformats/jacksonXml.yml index b1fe57a659b1..e29c70e9f445 100644 --- a/docs/modules/ROOT/examples/dataformats/jacksonXml.yml +++ b/docs/modules/ROOT/examples/dataformats/jacksonXml.yml @@ -9,5 +9,5 @@ cqJvmSince: 1.0.0 cqNativeSince: 1.0.0 cqCamelPartName: jacksonXml cqCamelPartTitle: Jackson XML -cqCamelPartDescription: Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson. +cqCamelPartDescription: Unmarshal an XML payloads to POJOs and back using XMLMapper extension of Jackson. cqExtensionPageTitle: JacksonXML diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index adba4975983e..ef2bf07afe06 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -136,6 +136,7 @@ *** xref:reference/extensions/google-drive.adoc[Google Drive] *** xref:reference/extensions/google-mail.adoc[Google Mail] *** xref:reference/extensions/google-pubsub.adoc[Google Pubsub] +*** xref:reference/extensions/google-secret-manager.adoc[Google Secret Manager] *** xref:reference/extensions/google-sheets.adoc[Google Sheets] *** xref:reference/extensions/google-storage.adoc[Google Storage] *** xref:reference/extensions/google-functions.adoc[GoogleCloudFunctions] diff --git a/docs/modules/ROOT/pages/contributor-guide/release-guide.adoc b/docs/modules/ROOT/pages/contributor-guide/release-guide.adoc index 430ee28ed049..cc5cb6287cf6 100644 --- a/docs/modules/ROOT/pages/contributor-guide/release-guide.adoc +++ b/docs/modules/ROOT/pages/contributor-guide/release-guide.adoc @@ -10,7 +10,7 @@ xref:manual::release-guide.adoc[Camel Release guide]. == Pre release tasks * When releasing after a recent Quarkus release, check for new releases of third party Quarkus extensions we depend on. - They are listed in the https://github.com/apache/camel-quarkus/blob/main/pom.xml#L46-L54[Primary dependencies] section of the top level `pom.xml`. + They are listed in the https://github.com/apache/camel-quarkus/blob/main/pom.xml#L48-L61[Primary dependencies] section of the top level `pom.xml`. If there are new releases, upgrade the versions accordingly and run `mvn cq:sync-versions -N` from the root directory of the source tree. * Close the GitHub release https://github.com/apache/camel-quarkus/milestones[milestone] and assign any remaining issues that aren't covered by the release to the next milestone @@ -58,6 +58,15 @@ $ cd target/checkout $ mvn deploy -Papache-release -DskipTests -Denforcer.skip -Dquarkus.build.skip -Dformatter.skip -Dimpsort.skip -Dskip.installyarn -Dskip.yarn -rf :camel-quarkus-openapi-java ---- +== Close the Apache staging repository + +* Login to the https://repository.apache.org[Apache staging repository] using your Apache LDAP credentials. +* Click on `Staging Repositories` +* Then select `org.apache.camel-quarkus-xxx` in the list of repositories, where `xxx` represents your `username` and `ip` +* Click `Close` on the toolbar above +* This will close the repository from future deployments and make it available for others to view +* After that, a popup window is created, enter the name and version of the artifact being released in the `Description` field and finally click `Close` + == Next version in Camel Quarkus main branch If there are no substantial commits in the release branch, which need to get merged/cherry-picked to `main`, you can @@ -78,6 +87,7 @@ $ git reset upstream/main $ mvn release:update-versions -DautoVersionSubmodules=true -DdevelopmentVersion=$NEXT_SNAPSHOT -B $ sed -i "s|[^<]*|$NEXT_RELEASE|" tooling/create-extension-templates/runtime-pom.xml $ sed -i "s|[^<]*|$NEXT_RELEASE|" tooling/create-extension-templates/runtime-pom.xml +$ mvn cq:sync-versions -N $ (cd extensions/qute && mvn clean install -Dquickly) # to regen the Qute Camel component metadata $ git add -A $ git commit -m "Next is $NEXT_RELEASE" @@ -241,7 +251,9 @@ Check the full [release announcement](https://camel.apache.org/blog/2021/06/came == Upgrade and tag Examples -When: right after the newest Quarkus Platform becomes available on https://repo1.maven.org/maven2/io/quarkus/platform/quarkus-bom/[Maven Central]. +This section needs to be executed only when a Quarkus Platform release has been published. +It should be the case most of the time. +In this case, right after the newest Quarkus Platform becomes available on https://repo1.maven.org/maven2/io/quarkus/platform/quarkus-bom/[Maven Central]: * Make sure all https://github.com/apache/camel-quarkus-examples/pulls[PRs] against `camel-quarkus-main` branch are merged. * Since Camel Quarkus 2.3.0, the examples should use Quarkus Platform BOMs in the `main` branch. To set it do the following: @@ -308,4 +320,4 @@ In addition to the above, the following is needed: * https://github.com/apache/camel-quarkus/issues/new[Create a ticket] asking a https://projects.apache.org/committee.html?camel[PMC member] to update the https://reporter.apache.org/addrelease.html?camel[Apache Committee Report Helper]. The ticket title could be as follow. Release: The Apache Committee Report Helper should be updated by a PMC member as camel-quarkus-X.Y.Z has been released on YYYY-MM-DD. -* When writing the release announcement blog post, do not forget to add the release note section in https://github.com/apache/camel-website/tree/main/content/releases/q, and to add the branch for documentation in https://github.com/apache/camel-website/blob/main/antora-playbook.yml[antora-playbook.yml]. +* When writing the release announcement blog post, do not forget to add the release note section in https://github.com/apache/camel-website/tree/main/content/releases/q, and to add the branch for documentation in https://github.com/apache/camel-website/blob/main/antora-playbook-snippets/antora-playbook.yml[antora-playbook.yml]. diff --git a/docs/modules/ROOT/pages/migration-guide/2.8.0.adoc b/docs/modules/ROOT/pages/migration-guide/2.8.0.adoc new file mode 100644 index 000000000000..bce307d3af31 --- /dev/null +++ b/docs/modules/ROOT/pages/migration-guide/2.8.0.adoc @@ -0,0 +1,25 @@ += Camel Quarkus 2.8.0 Migration Guide + +The following guide outlines how to adapt your code to changes that were made in Camel Quarkus 2.8.0 & Quarkus 2.8.0.Final. + +== Change to default values of `quarkus.camel.fhir.enable` configuration + +In previous releases, the FHIR extension default was to enable support for all FHIR versions. + +This has now changed. Only the FHIR version that the Camel FHIR component and DataFormat use by default are enabled (R4). + +To enable or disable support for the various FHIR versions, you can add some configuration properties to `application.properties`. For example. + +``` +quarkus.camel.fhir.enable-dstu2=true +quarkus.camel.fhir.enable-r4=false +``` + +For more information, refer to the xref:reference/extensions/fhir.adoc[Camel Quarkus FHIR Extension] documentation. + +== Removal of the weka and ipfs extensions + +The weka and ipfs extensions have been removed from this release because of issues related to the build infrastructure. +Volunteers wishing to maintain those projects are welcome. + +For more information, refer to the matching https://github.com/apache/camel-quarkus/issues/3532[github issue]. diff --git a/docs/modules/ROOT/pages/migration-guide/index.adoc b/docs/modules/ROOT/pages/migration-guide/index.adoc index d72c3d31a996..aae2d13786af 100644 --- a/docs/modules/ROOT/pages/migration-guide/index.adoc +++ b/docs/modules/ROOT/pages/migration-guide/index.adoc @@ -4,6 +4,7 @@ We do frequent releases, a release almost every month, and even though we strive Listed here are guides on how to migrate between major versions and anything of significance to watch for when upgrading from minor versions. +* xref:migration-guide/2.8.0.adoc[Camel Quarkus 2.7.0 to Camel Quarkus 2.8.0 migration guide] * xref:migration-guide/2.7.0.adoc[Camel Quarkus 2.6.0 to Camel Quarkus 2.7.0 migration guide] * xref:migration-guide/2.6.0.adoc[Camel Quarkus 2.5.0 to Camel Quarkus 2.6.0 migration guide] * xref:migration-guide/2.2.0.adoc[Camel Quarkus 2.1.0 to Camel Quarkus 2.2.0 migration guide] diff --git a/docs/modules/ROOT/pages/reference/extensions/bean-validator.adoc b/docs/modules/ROOT/pages/reference/extensions/bean-validator.adoc index 89a9c9898085..b5efce7b3cad 100644 --- a/docs/modules/ROOT/pages/reference/extensions/bean-validator.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/bean-validator.adoc @@ -45,7 +45,7 @@ Check the xref:user-guide/index.adoc[User guide] for more information about writ Implementation of this extension leverages the https://quarkus.io/guides/validation[Quarkus Hibernate Validator extension]. -Therefore it is not possible to configure the `ValidatorFactory` by Camel's properties ('constraintValidatorFactory`, `messageInterpolator`, `traversableResolver`, `validationProviderResolver` and `validatorFactory`). +Therefore it is not possible to configure the `ValidatorFactory` by Camel's properties (`constraintValidatorFactory`, `messageInterpolator`, `traversableResolver`, `validationProviderResolver` and `validatorFactory`). You can configure the `ValidatorFactory` by the creation of beans which will be injected into the default `ValidatorFactory` (created by Quarkus). See the https://quarkus.io/guides/validation#hibernate-validator-extension-and-cdi[Quarkus CDI documentation] for more information. diff --git a/docs/modules/ROOT/pages/reference/extensions/core.adoc b/docs/modules/ROOT/pages/reference/extensions/core.adoc index facf0e715c6f..436f8d4c1c6a 100644 --- a/docs/modules/ROOT/pages/reference/extensions/core.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc @@ -63,7 +63,14 @@ Note that in native mode, some classes may need to be registered for reflection. needs to be link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered for reflection]. ==== Using dynamic type resolution in native mode -When dynamically resolving a type from simple expressions like `${mandatoryBodyAs(TYPE)}`, `${type:package.Enum.CONSTANT}` or `$\{body} is TYPE`, it may be needed to register some classes for reflection manually. +When dynamically resolving a type from simple expressions like: + + * `simple("${mandatoryBodyAs(TYPE)}")` + * `simple("${type:package.Enum.CONSTANT}")` + * `from("...").split(bodyAs(TYPE.class))` + * `simple("$\{body} is TYPE")` + +It may be needed to register some classes for reflection manually. For instance, the simple expression below is dynamically resolving the type `java.nio.ByteBuffer` at runtime: [source,java] diff --git a/docs/modules/ROOT/pages/reference/extensions/elasticsearch-rest.adoc b/docs/modules/ROOT/pages/reference/extensions/elasticsearch-rest.adoc index 6a26f46464a5..412c4dc26f8c 100644 --- a/docs/modules/ROOT/pages/reference/extensions/elasticsearch-rest.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/elasticsearch-rest.adoc @@ -6,14 +6,14 @@ :cq-artifact-id: camel-quarkus-elasticsearch-rest :cq-native-supported: true :cq-status: Stable -:cq-status-deprecation: Stable +:cq-status-deprecation: Stable Deprecated :cq-description: Send requests to ElasticSearch via REST API -:cq-deprecated: false +:cq-deprecated: true :cq-jvm-since: 1.0.0 :cq-native-since: 1.0.0 [.badges] -[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## +[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## [.badge-key]##⚠️##[.badge-unsupported]##Deprecated## Send requests to ElasticSearch via REST API diff --git a/docs/modules/ROOT/pages/reference/extensions/fhir.adoc b/docs/modules/ROOT/pages/reference/extensions/fhir.adoc index a65937f9c456..3dbe816cf1c9 100644 --- a/docs/modules/ROOT/pages/reference/extensions/fhir.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/fhir.adoc @@ -49,7 +49,8 @@ https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide]. == Additional Camel Quarkus configuration -The https://hapifhir.io/download.html[hapi-fhir] library, on which camel-fhir depends on, heavily uses reflection which affects performance in Quarkus (memory footprint, build time, CPU resources etc...). The following options are provided to improve on this: + +By default, only FHIR versions `R4` & `DSTU3` are enabled in native mode, since they are the default values on the FHIR component and DataFormat. [width="100%",cols="80,5,15",options="header"] @@ -59,27 +60,39 @@ The https://hapifhir.io/download.html[hapi-fhir] library, on which camel-fhir de |icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-dstu2]]`link:#quarkus.camel.fhir.enable-dstu2[quarkus.camel.fhir.enable-dstu2]` -Enable FHIR DSTU2 Specs. +Enable FHIR DSTU2 Specs in native mode. | `boolean` -| `true` +| `false` + +|icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-dstu2_hl7org]]`link:#quarkus.camel.fhir.enable-dstu2_hl7org[quarkus.camel.fhir.enable-dstu2_hl7org]` + +Enable FHIR DSTU2_HL7ORG Specs in native mode. +| `boolean` +| `false` + +|icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-dstu2_1]]`link:#quarkus.camel.fhir.enable-dstu2_1[quarkus.camel.fhir.enable-dstu2_1]` + +Enable FHIR DSTU2_1 Specs in native mode. +| `boolean` +| `false` |icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-dstu3]]`link:#quarkus.camel.fhir.enable-dstu3[quarkus.camel.fhir.enable-dstu3]` -Enable FHIR DSTU3 Specs. +Enable FHIR DSTU3 Specs in native mode. | `boolean` -| `true` +| `false` |icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-r4]]`link:#quarkus.camel.fhir.enable-r4[quarkus.camel.fhir.enable-r4]` -Enable FHIR R4 Specs. +Enable FHIR R4 Specs in native mode. | `boolean` | `true` |icon:lock[title=Fixed at build time] [[quarkus.camel.fhir.enable-r5]]`link:#quarkus.camel.fhir.enable-r5[quarkus.camel.fhir.enable-r5]` -Enable FHIR R5 Specs. +Enable FHIR R5 Specs in native mode. | `boolean` -| `true` +| `false` |=== [.configuration-legend] diff --git a/docs/modules/ROOT/pages/reference/extensions/google-secret-manager.adoc b/docs/modules/ROOT/pages/reference/extensions/google-secret-manager.adoc new file mode 100644 index 000000000000..939c6ebb9ba1 --- /dev/null +++ b/docs/modules/ROOT/pages/reference/extensions/google-secret-manager.adoc @@ -0,0 +1,35 @@ +// Do not edit directly! +// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page += Google Secret Manager +:linkattrs: +:cq-artifact-id: camel-quarkus-google-secret-manager +:cq-native-supported: false +:cq-status: Preview +:cq-status-deprecation: Preview +:cq-description: Manage Google Secret Manager Secrets +:cq-deprecated: false +:cq-jvm-since: 2.8.0 +:cq-native-since: n/a + +[.badges] +[.badge-key]##JVM since##[.badge-supported]##2.8.0## [.badge-key]##Native##[.badge-unsupported]##unsupported## + +Manage Google Secret Manager Secrets + +== What's inside + +* xref:{cq-camel-components}::google-secret-manager-component.adoc[Google Secret Manager component], URI syntax: `google-secret-manager:project` + +Please refer to the above link for usage and configuration details. + +== Maven coordinates + +[source,xml] +---- + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + +---- + +Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. diff --git a/docs/modules/ROOT/pages/reference/extensions/ical.adoc b/docs/modules/ROOT/pages/reference/extensions/ical.adoc index cf8b0b3d10b1..2b686a540e29 100644 --- a/docs/modules/ROOT/pages/reference/extensions/ical.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/ical.adoc @@ -7,7 +7,7 @@ :cq-native-supported: true :cq-status: Stable :cq-status-deprecation: Stable -:cq-description: Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library. +:cq-description: Marshal and unmarshal iCal (.ics) documents to/from model objects. :cq-deprecated: false :cq-jvm-since: 1.0.0 :cq-native-since: 1.0.0 @@ -15,7 +15,7 @@ [.badges] [.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## -Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library. +Marshal and unmarshal iCal (.ics) documents to/from model objects. == What's inside diff --git a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc index fec768d1f320..951cf439a8ba 100644 --- a/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/infinispan.adoc @@ -38,3 +38,16 @@ Or add the coordinates to your existing project: ---- Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. + +== Camel Quarkus limitations + +=== InfinispanRemoteAggregationRepository in native mode + +At present the `InfinispanRemoteAggregationRepository` is not supported in native mode. + + +== Additional Camel Quarkus configuration + +You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you +may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties]. + diff --git a/docs/modules/ROOT/pages/reference/extensions/jacksonxml.adoc b/docs/modules/ROOT/pages/reference/extensions/jacksonxml.adoc index 89f5df03f5d4..407a22deec15 100644 --- a/docs/modules/ROOT/pages/reference/extensions/jacksonxml.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/jacksonxml.adoc @@ -7,7 +7,7 @@ :cq-native-supported: true :cq-status: Stable :cq-status-deprecation: Stable -:cq-description: Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson. +:cq-description: Unmarshal an XML payloads to POJOs and back using XMLMapper extension of Jackson. :cq-deprecated: false :cq-jvm-since: 1.0.0 :cq-native-since: 1.0.0 @@ -15,7 +15,7 @@ [.badges] [.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0## -Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson. +Unmarshal an XML payloads to POJOs and back using XMLMapper extension of Jackson. == What's inside diff --git a/docs/modules/ROOT/pages/reference/extensions/quartz.adoc b/docs/modules/ROOT/pages/reference/extensions/quartz.adoc index 99c7cdf1a3b5..196d77f33037 100644 --- a/docs/modules/ROOT/pages/reference/extensions/quartz.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/quartz.adoc @@ -38,3 +38,61 @@ Or add the coordinates to your existing project: ---- Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. + +== Usage + +=== Clustering + +There are two options how to run Quartz in clustered mode: + +==== Quarkus based + +This is the preferred option. Follow the https://quarkus.io/guides/quartz[scheduling periodic tasks quartz guide]. + +- Define database configuration in `application.properties`. +- Use for example `flyway` to create database tables required for `Quartz`. + +===== Quartz based with an Agroal datasource + +Follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] with different DS configuration: + +- Use `quartz.properties` to configure `JobStore`. +- Define datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as `ConnectionProvider` in `quartz.properties`: + +``` +... +org.quartz.jobStore.dataSource = myDS + +# datasource configuration +org.quartz.dataSource.myDS.connectionProvider.class = org.apache.camel.quarkus.component.quartz.CamelQuarkusQuartzConnectionProvider +org.quartz.dataSource.myDSB.dataSourceName = ds_name_if_not_set_default_ds_will_be_used +``` + + +- You can use for example `flyway` to create database tables required for `Quartz`. + +===== Quartz based + +You can follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] without any modification: + +``` +... +org.quartz.jobStore.dataSource = myDS + +# datasource configuration +org.quartz.dataSource.myDS.driver = org.postgresql.Driver + +# datasource configuration +org.quartz.dataSource.myDS.URL=jdbc:postgresql://localhost:5432/default +org.quartz.dataSource.myDS.user = quarkus +org.quartz.dataSource.myDS.password = quarkus +``` + + +== Camel Quarkus limitations + +=== JDBC Job Store + +Quartz's property `org.quartz.jobStore.useProperties` is set to `true` and can not be modified. The value is forced by the Quarkus Quartz extension. +See the Quartz documentation for more information about `org.quartz.jobStore.useProperties`. + diff --git a/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc b/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc index bdde5d343459..26484a9ce6ed 100644 --- a/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc @@ -16,12 +16,6 @@ An YAML stack for parsing YAML route definitions -== What's inside - -* xref:{cq-camel-components}:others:yaml-dsl.adoc[YAML DSL] - -Please refer to the above link for usage and configuration details. - == Maven coordinates https://code.quarkus.io/?extension-search=camel-quarkus-yaml-dsl[Create a new project with this extension on code.quarkus.io, window="_blank"] diff --git a/docs/modules/ROOT/pages/user-guide/defining-camel-routes.adoc b/docs/modules/ROOT/pages/user-guide/defining-camel-routes.adoc index 9ae1eaa9e283..fc5b91222801 100644 --- a/docs/modules/ROOT/pages/user-guide/defining-camel-routes.adoc +++ b/docs/modules/ROOT/pages/user-guide/defining-camel-routes.adoc @@ -96,10 +96,8 @@ The route XML should be in the simplified version like: ---- - - - Hello World! - + + diff --git a/docs/modules/ROOT/pages/user-guide/testing.adoc b/docs/modules/ROOT/pages/user-guide/testing.adoc index 586d35a713ec..24688eb851c6 100644 --- a/docs/modules/ROOT/pages/user-guide/testing.adoc +++ b/docs/modules/ROOT/pages/user-guide/testing.adoc @@ -39,14 +39,14 @@ An example implementation can be found https://github.com/apache/camel-quarkus/b As long as all extensions your application depends on are supported in native mode, you should definitely test that your application really works in native mode. The test logic defined in JVM mode can then be reused in native mode thanks to inheriting from the respective JVM mode class. -`@NativeImageTest` annotation is there to instruct the Quarkus JUnit extension to compile the application under test to native image +`@QuarkusIntegrationTest` annotation is there to instruct the Quarkus JUnit extension to compile the application under test to native image and start it before running the tests. [source,java] ---- -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MyIT extends MyTest { ... } @@ -55,13 +55,13 @@ class MyIT extends MyTest { An implementation of a native test may help to capture more details https://github.com/apache/camel-quarkus/blob/main/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/MessageRecordIT.java[here]. [[jvm-vs-native-tests]] -== `@QuarkusTest` vs. `@NativeImageTest` +== `@QuarkusTest` vs. `@QuarkusIntegrationTest` JVM mode tests annotated with `@QuarkusTest` are executed in the same JVM as the application under test. Thanks to that, `@Inject`-ing beans from the application into the test code is possible. You can also define new beans or even override the beans from the application using `@javax.enterprise.inject.Alternative` and `@javax.annotation.Priority`. -However all these tricks won't work in native mode tests annotated with `@NativeImageTest` +However all these tricks won't work in native mode tests annotated with `@QuarkusIntegrationTest` because those are executed in a JVM hosted in a process separate from the running native application. If you ask why, the answer is actually in the previous sentence: a native executable does not need a JVM to run; @@ -73,6 +73,14 @@ An important consequence of this setup is that all communication between tests a must go over network (HTTP/REST, or any other protocol your application speaks) or through watching filesystem (log files, etc.) or any other kind of interprocess communication. +`QuarkusIntegrationTest` also provides some additional features that are not available through `@QuarkusTest`. + +* In JVM mode it can launch and test the runnable application JAR produced by the Quarkus build. +* As mentioned above, in native mode it can launch and test the native application produced by the Quarkus build. +* If a container image was created during the build, then a container is started so that tests can be executed against it. + +For more information about `QuarkusIntegrationTest` see the https://quarkus.io/guides/getting-started-testing#quarkus-integration-test[Quarkus testing guide]. + == Testing with external services === Testcontainers diff --git a/extensions-core/core-cloud/runtime/pom.xml b/extensions-core/core-cloud/runtime/pom.xml index 7eefcbcbb8ca..b7873d553b2b 100644 --- a/extensions-core/core-cloud/runtime/pom.xml +++ b/extensions-core/core-cloud/runtime/pom.xml @@ -36,18 +36,6 @@ true - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java index 6b8b6a46b281..674b4c8275e6 100644 --- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java +++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Set; import java.util.function.BooleanSupplier; +import java.util.regex.Pattern; import java.util.stream.Collectors; import io.quarkus.arc.deployment.BeanContainerBuildItem; @@ -110,6 +111,20 @@ public void devModeCamelContextCustomizations( } } + /** + * Enable source location if camel.quarkus.source-location-enabled=true + * + * @param recorder the recorder + * @param producer producer of context customizer build item + */ + @Record(ExecutionTime.STATIC_INIT) + @BuildStep(onlyIf = SourceLocationEnabled.class) + public void enableSourceLocation( + CamelContextRecorder recorder, + BuildProducer producer) { + producer.produce(new CamelContextCustomizerBuildItem(recorder.createSourceLocationEnabledCustomizer())); + } + /** * Registers Camel CDI event bridges if quarkus.camel.event-bridge.enabled=true and if * the relevant events have CDI observers configured for them. @@ -134,10 +149,11 @@ public void registerCamelEventBridges( // For management events the event class simple name is collected as users can // observe events on either the Camel event interface or the concrete event class, and // these are located in different packages + final Pattern pattern = Pattern.compile("org.apache.camel(?!.quarkus).*Event$"); Set observedManagementEvents = beanDiscovery.getObservers() .stream() .map(observerInfo -> observerInfo.getObservedType().name().toString()) - .filter(className -> className.matches("org.apache.camel(?!.quarkus).*Event$")) + .filter(className -> pattern.matcher(className).matches()) .map(className -> CamelSupport.loadClass(className, Thread.currentThread().getContextClassLoader())) .map(observedEventClass -> observedEventClass.getSimpleName()) .collect(Collectors.collectingAndThen(Collectors.toUnmodifiableSet(), HashSet::new)); @@ -159,4 +175,11 @@ public boolean getAsBoolean() { return config.eventBridge.enabled; } } + + public static final class SourceLocationEnabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return CamelSupport.getOptionalConfigValue("camel.quarkus.source-location-enabled", Boolean.class, false); + } + } } diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelServiceFilter.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelServiceFilter.java index fac45a30b245..38ab95e95c0f 100644 --- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelServiceFilter.java +++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelServiceFilter.java @@ -46,15 +46,7 @@ static CamelServiceFilter forName(String name) { return serviceInfo -> serviceInfo.name.equals(name); } - static CamelServiceFilter forNameMatching(String regex) { - return serviceInfo -> serviceInfo.name.matches(regex); - } - static CamelServiceFilter forType(String type) { return serviceInfo -> serviceInfo.type.equals(type); } - - static CamelServiceFilter forTypeMathing(String regex) { - return serviceInfo -> serviceInfo.type.matches(regex); - } } diff --git a/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/CamelSourceLocationTest.java b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/CamelSourceLocationTest.java new file mode 100644 index 000000000000..a643be9f10b3 --- /dev/null +++ b/extensions-core/core/deployment/src/test/java/org/apache/camel/quarkus/core/deployment/CamelSourceLocationTest.java @@ -0,0 +1,113 @@ +/* + * 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.deployment; + +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Properties; + +import javax.inject.Inject; + +import io.quarkus.test.QuarkusUnitTest; +import org.apache.camel.CamelContext; +import org.apache.camel.Exchange; +import org.apache.camel.LineNumberAware; +import org.apache.camel.Processor; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.Asset; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class CamelSourceLocationTest { + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class) + .addAsResource(applicationProperties(), "application.properties") + .addClasses(MyProcessor.class)); + + public static Asset applicationProperties() { + Writer writer = new StringWriter(); + + Properties props = new Properties(); + props.setProperty("camel.quarkus.source-location-enabled", "true"); + + try { + props.store(writer, ""); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return new StringAsset(writer.toString()); + } + + @Inject + CamelContext context; + + @Inject + ProducerTemplate producer; + + @Test + public void test() throws Exception { + context.addRoutes( + new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:start") + .process(new MyProcessor()); + } + }); + Object out = producer.requestBody("direct:start", "Hello World"); + Assertions.assertEquals("org.apache.camel.quarkus.core.deployment.CamelSourceLocationTest$1:76", out); + } + + private static class MyProcessor implements Processor, LineNumberAware { + + private int lineNumber; + private String location; + + @Override + public int getLineNumber() { + return lineNumber; + } + + @Override + public void setLineNumber(int lineNumber) { + this.lineNumber = lineNumber; + } + + @Override + public String getLocation() { + return location; + } + + @Override + public void setLocation(String location) { + this.location = location; + } + + @Override + public void process(Exchange exchange) throws Exception { + exchange.getMessage().setBody(location + ":" + lineNumber); + } + } +} diff --git a/extensions-core/core/runtime/pom.xml b/extensions-core/core/runtime/pom.xml index 27553bc813a6..ff258c9ec028 100644 --- a/extensions-core/core/runtime/pom.xml +++ b/extensions-core/core/runtime/pom.xml @@ -34,18 +34,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-core/core/runtime/src/main/doc/configuration.adoc b/extensions-core/core/runtime/src/main/doc/configuration.adoc index 61c59e8462c1..68827731fdba 100644 --- a/extensions-core/core/runtime/src/main/doc/configuration.adoc +++ b/extensions-core/core/runtime/src/main/doc/configuration.adoc @@ -14,7 +14,14 @@ Note that in native mode, some classes may need to be registered for reflection. needs to be link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered for reflection]. ==== Using dynamic type resolution in native mode -When dynamically resolving a type from simple expressions like `${mandatoryBodyAs(TYPE)}`, `${type:package.Enum.CONSTANT}` or `$\{body} is TYPE`, it may be needed to register some classes for reflection manually. +When dynamically resolving a type from simple expressions like: + + * `simple("${mandatoryBodyAs(TYPE)}")` + * `simple("${type:package.Enum.CONSTANT}")` + * `from("...").split(bodyAs(TYPE.class))` + * `simple("$\{body} is TYPE")` + +It may be needed to register some classes for reflection manually. For instance, the simple expression below is dynamically resolving the type `java.nio.ByteBuffer` at runtime: [source,java] diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java index eae03dcd6995..9f99f1c59c18 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java @@ -89,6 +89,10 @@ public RuntimeValue createNoShutdownStrategyCustomizer() return new RuntimeValue((CamelContextCustomizer) context -> context.setShutdownStrategy(new NoShutdownStrategy())); } + public RuntimeValue createSourceLocationEnabledCustomizer() { + return new RuntimeValue((CamelContextCustomizer) context -> context.setSourceLocationEnabled(true)); + } + public void addRoutes(RuntimeValue context, List nonCdiRoutesBuilderClassNames) { List allRoutesBuilders = new ArrayList<>(); diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusPackageScanResourceResolver.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusPackageScanResourceResolver.java new file mode 100644 index 000000000000..7d7dde797227 --- /dev/null +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusPackageScanResourceResolver.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.core; + +import org.apache.camel.impl.engine.DefaultPackageScanResourceResolver; +import org.apache.camel.spi.PackageScanResourceResolver; + +/** + * Custom {@link PackageScanResourceResolver} that adds the specific {@link ClassLoader} instance + * that Camel Quarkus requires for resolving resources. + */ +public class CamelQuarkusPackageScanResourceResolver extends DefaultPackageScanResourceResolver { + @Override + public void initialize() { + addClassLoader(Thread.currentThread().getContextClassLoader()); + } +} diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java index 2a40f042b6ca..1dccaf3fb405 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java @@ -41,6 +41,7 @@ import org.apache.camel.spi.ManagementNameStrategy; import org.apache.camel.spi.ModelJAXBContextFactory; import org.apache.camel.spi.ModelToXMLDumper; +import org.apache.camel.spi.PackageScanResourceResolver; import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spi.Registry; import org.apache.camel.spi.ShutdownStrategy; @@ -161,6 +162,11 @@ protected ModelToXMLDumper createModelToXMLDumper() { return modelDumper; } + @Override + protected PackageScanResourceResolver createPackageScanResourceResolver() { + return new CamelQuarkusPackageScanResourceResolver(); + } + @Override public void doInit() throws Exception { super.doInit(); diff --git a/extensions-core/http-common/runtime/pom.xml b/extensions-core/http-common/runtime/pom.xml index 43f5b471898f..ea42dec1ce7c 100644 --- a/extensions-core/http-common/runtime/pom.xml +++ b/extensions-core/http-common/runtime/pom.xml @@ -29,18 +29,6 @@ camel-quarkus-http-common Camel Quarkus :: HTTP :: Common :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml index ca17e8d4f412..681780f8d53e 100644 --- a/extensions-core/pom.xml +++ b/extensions-core/pom.xml @@ -47,6 +47,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom diff --git a/extensions-core/reactive-executor/runtime/pom.xml b/extensions-core/reactive-executor/runtime/pom.xml index 867ff855dc48..613cf00ea1b4 100644 --- a/extensions-core/reactive-executor/runtime/pom.xml +++ b/extensions-core/reactive-executor/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-core/threadpoolfactory-vertx/runtime/pom.xml b/extensions-core/threadpoolfactory-vertx/runtime/pom.xml index 11474d36a66d..b5eb6925dc12 100644 --- a/extensions-core/threadpoolfactory-vertx/runtime/pom.xml +++ b/extensions-core/threadpoolfactory-vertx/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-core/xml-io-dsl/runtime/pom.xml b/extensions-core/xml-io-dsl/runtime/pom.xml index 1f3b454505aa..226ee1833669 100644 --- a/extensions-core/xml-io-dsl/runtime/pom.xml +++ b/extensions-core/xml-io-dsl/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-core/xml-jaxb/runtime/pom.xml b/extensions-core/xml-jaxb/runtime/pom.xml index 59c3a1122d96..8e8e9a0c24eb 100644 --- a/extensions-core/xml-jaxb/runtime/pom.xml +++ b/extensions-core/xml-jaxb/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel diff --git a/extensions-core/xml-jaxp/runtime/pom.xml b/extensions-core/xml-jaxp/runtime/pom.xml index 5150fe475eaf..7f3b18da00ca 100644 --- a/extensions-core/xml-jaxp/runtime/pom.xml +++ b/extensions-core/xml-jaxp/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel diff --git a/extensions-core/yaml-dsl/runtime/pom.xml b/extensions-core/yaml-dsl/runtime/pom.xml index 749c81a5cb22..8f0ad87805d9 100644 --- a/extensions-core/yaml-dsl/runtime/pom.xml +++ b/extensions-core/yaml-dsl/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/asn1/runtime/pom.xml b/extensions-jvm/asn1/runtime/pom.xml index 1a66189542c2..48acef7e5fa9 100644 --- a/extensions-jvm/asn1/runtime/pom.xml +++ b/extensions-jvm/asn1/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/asterisk/runtime/pom.xml b/extensions-jvm/asterisk/runtime/pom.xml index efe8fa0715d9..779425e40297 100644 --- a/extensions-jvm/asterisk/runtime/pom.xml +++ b/extensions-jvm/asterisk/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/atmos/runtime/pom.xml b/extensions-jvm/atmos/runtime/pom.xml index 79b7d1d37df8..6a68bc7a5697 100644 --- a/extensions-jvm/atmos/runtime/pom.xml +++ b/extensions-jvm/atmos/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/atomix/runtime/pom.xml b/extensions-jvm/atomix/runtime/pom.xml index 99192ada88ea..6c8a0dda7f28 100644 --- a/extensions-jvm/atomix/runtime/pom.xml +++ b/extensions-jvm/atomix/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/aws-secrets-manager/runtime/pom.xml b/extensions-jvm/aws-secrets-manager/runtime/pom.xml index 933cc74497f8..f6fadb345666 100644 --- a/extensions-jvm/aws-secrets-manager/runtime/pom.xml +++ b/extensions-jvm/aws-secrets-manager/runtime/pom.xml @@ -34,18 +34,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/aws-xray/runtime/pom.xml b/extensions-jvm/aws-xray/runtime/pom.xml index 942bef5ee1e4..10afa01da539 100644 --- a/extensions-jvm/aws-xray/runtime/pom.xml +++ b/extensions-jvm/aws-xray/runtime/pom.xml @@ -34,18 +34,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/azure-cosmosdb/deployment/pom.xml b/extensions-jvm/azure-cosmosdb/deployment/pom.xml index 1c7501c7fb24..2af136b60f26 100644 --- a/extensions-jvm/azure-cosmosdb/deployment/pom.xml +++ b/extensions-jvm/azure-cosmosdb/deployment/pom.xml @@ -36,7 +36,7 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core-deployment + camel-quarkus-support-azure-core-http-client-vertx-deployment org.apache.camel.quarkus diff --git a/extensions-jvm/azure-cosmosdb/runtime/pom.xml b/extensions-jvm/azure-cosmosdb/runtime/pom.xml index 37f26bfe3b85..386c95d18919 100644 --- a/extensions-jvm/azure-cosmosdb/runtime/pom.xml +++ b/extensions-jvm/azure-cosmosdb/runtime/pom.xml @@ -34,18 +34,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -53,11 +41,17 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core + camel-quarkus-support-azure-core-http-client-vertx org.apache.camel camel-azure-cosmosdb + + + com.azure + azure-core-http-netty + + diff --git a/extensions-jvm/azure-servicebus/deployment/pom.xml b/extensions-jvm/azure-servicebus/deployment/pom.xml index 14c5cc121c1b..03d9161ff36e 100644 --- a/extensions-jvm/azure-servicebus/deployment/pom.xml +++ b/extensions-jvm/azure-servicebus/deployment/pom.xml @@ -34,6 +34,10 @@ org.apache.camel.quarkus camel-quarkus-core-deployment + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-deployment + org.apache.camel.quarkus camel-quarkus-azure-servicebus diff --git a/extensions-jvm/azure-servicebus/runtime/pom.xml b/extensions-jvm/azure-servicebus/runtime/pom.xml index ec94ad91c943..4ddde00cbe2b 100644 --- a/extensions-jvm/azure-servicebus/runtime/pom.xml +++ b/extensions-jvm/azure-servicebus/runtime/pom.xml @@ -34,26 +34,24 @@ 2.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus camel-quarkus-core + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + org.apache.camel camel-azure-servicebus + + + com.azure + azure-core-http-netty + + diff --git a/extensions-jvm/azure-storage-datalake/deployment/pom.xml b/extensions-jvm/azure-storage-datalake/deployment/pom.xml index 875892651577..4628cc24f700 100644 --- a/extensions-jvm/azure-storage-datalake/deployment/pom.xml +++ b/extensions-jvm/azure-storage-datalake/deployment/pom.xml @@ -36,7 +36,7 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core-deployment + camel-quarkus-support-azure-core-http-client-vertx-deployment org.apache.camel.quarkus diff --git a/extensions-jvm/azure-storage-datalake/runtime/pom.xml b/extensions-jvm/azure-storage-datalake/runtime/pom.xml index ae64da2618d4..13c7426e04bf 100644 --- a/extensions-jvm/azure-storage-datalake/runtime/pom.xml +++ b/extensions-jvm/azure-storage-datalake/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -53,11 +41,17 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core + camel-quarkus-support-azure-core-http-client-vertx org.apache.camel camel-azure-storage-datalake + + + com.azure + azure-core-http-netty + + diff --git a/extensions-jvm/barcode/runtime/pom.xml b/extensions-jvm/barcode/runtime/pom.xml index 1c034087bfe3..3955af2d0032 100644 --- a/extensions-jvm/barcode/runtime/pom.xml +++ b/extensions-jvm/barcode/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/beanio/runtime/pom.xml b/extensions-jvm/beanio/runtime/pom.xml index 18ea1962eb25..958063bc0c75 100644 --- a/extensions-jvm/beanio/runtime/pom.xml +++ b/extensions-jvm/beanio/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/beanstalk/runtime/pom.xml b/extensions-jvm/beanstalk/runtime/pom.xml index f34718ae7e24..8788d2d34b0e 100644 --- a/extensions-jvm/beanstalk/runtime/pom.xml +++ b/extensions-jvm/beanstalk/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/bonita/runtime/pom.xml b/extensions-jvm/bonita/runtime/pom.xml index 271cd743857f..c88b5fce5433 100644 --- a/extensions-jvm/bonita/runtime/pom.xml +++ b/extensions-jvm/bonita/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,16 +42,6 @@ org.apache.camel camel-bonita - - - jakarta.xml.bind - jakarta.xml.bind-api - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - - org.jboss.spec.javax.xml.bind diff --git a/extensions-jvm/chatscript/runtime/pom.xml b/extensions-jvm/chatscript/runtime/pom.xml index ead47e969ec4..63b5af5720a7 100644 --- a/extensions-jvm/chatscript/runtime/pom.xml +++ b/extensions-jvm/chatscript/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/chunk/runtime/pom.xml b/extensions-jvm/chunk/runtime/pom.xml index cd6ed4df3374..05d8eb837f3e 100644 --- a/extensions-jvm/chunk/runtime/pom.xml +++ b/extensions-jvm/chunk/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/cm-sms/runtime/pom.xml b/extensions-jvm/cm-sms/runtime/pom.xml index 223ac94171b0..a7c4dedcfc74 100644 --- a/extensions-jvm/cm-sms/runtime/pom.xml +++ b/extensions-jvm/cm-sms/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/cmis/runtime/pom.xml b/extensions-jvm/cmis/runtime/pom.xml index 036040284041..43bce61bf59e 100644 --- a/extensions-jvm/cmis/runtime/pom.xml +++ b/extensions-jvm/cmis/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/coap/runtime/pom.xml b/extensions-jvm/coap/runtime/pom.xml index 6e8027ff7b2b..0320b1f80291 100644 --- a/extensions-jvm/coap/runtime/pom.xml +++ b/extensions-jvm/coap/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/cometd/runtime/pom.xml b/extensions-jvm/cometd/runtime/pom.xml index 411522cca6c4..5134499dec9c 100644 --- a/extensions-jvm/cometd/runtime/pom.xml +++ b/extensions-jvm/cometd/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,12 +42,6 @@ org.apache.camel camel-cometd - - - javax.servlet - javax.servlet-api - - jakarta.servlet diff --git a/extensions-jvm/corda/runtime/pom.xml b/extensions-jvm/corda/runtime/pom.xml index 4cf4c37d4a30..3d2087210840 100644 --- a/extensions-jvm/corda/runtime/pom.xml +++ b/extensions-jvm/corda/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -67,10 +55,6 @@ org.apache.logging.log4j log4j-core - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - diff --git a/extensions-jvm/couchbase/runtime/pom.xml b/extensions-jvm/couchbase/runtime/pom.xml index d4446f1213e6..90d4636ed873 100644 --- a/extensions-jvm/couchbase/runtime/pom.xml +++ b/extensions-jvm/couchbase/runtime/pom.xml @@ -33,18 +33,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/djl/runtime/pom.xml b/extensions-jvm/djl/runtime/pom.xml index 79d1489de06e..456ae629d484 100644 --- a/extensions-jvm/djl/runtime/pom.xml +++ b/extensions-jvm/djl/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/dns/runtime/pom.xml b/extensions-jvm/dns/runtime/pom.xml index e98fbe8c2a2e..1a4098f140e9 100644 --- a/extensions-jvm/dns/runtime/pom.xml +++ b/extensions-jvm/dns/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/drill/runtime/pom.xml b/extensions-jvm/drill/runtime/pom.xml index e7af4f61baff..35e83bb222a4 100644 --- a/extensions-jvm/drill/runtime/pom.xml +++ b/extensions-jvm/drill/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ehcache/runtime/pom.xml b/extensions-jvm/ehcache/runtime/pom.xml index 1dadd9666f26..e66b84da3333 100644 --- a/extensions-jvm/ehcache/runtime/pom.xml +++ b/extensions-jvm/ehcache/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/elsql/runtime/pom.xml b/extensions-jvm/elsql/runtime/pom.xml index 91916325f171..f3c45d44d915 100644 --- a/extensions-jvm/elsql/runtime/pom.xml +++ b/extensions-jvm/elsql/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/etcd/runtime/pom.xml b/extensions-jvm/etcd/runtime/pom.xml index 1d9f7e823ab1..d2216cbba901 100644 --- a/extensions-jvm/etcd/runtime/pom.xml +++ b/extensions-jvm/etcd/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/etcd3/runtime/pom.xml b/extensions-jvm/etcd3/runtime/pom.xml index 8b5625f0d25e..d7659a973b65 100644 --- a/extensions-jvm/etcd3/runtime/pom.xml +++ b/extensions-jvm/etcd3/runtime/pom.xml @@ -34,18 +34,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/facebook/runtime/pom.xml b/extensions-jvm/facebook/runtime/pom.xml index 89ee559f0013..429e11aca2a5 100644 --- a/extensions-jvm/facebook/runtime/pom.xml +++ b/extensions-jvm/facebook/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/fastjson/runtime/pom.xml b/extensions-jvm/fastjson/runtime/pom.xml index f1acdbf9090a..a7b4dc9fb9e6 100644 --- a/extensions-jvm/fastjson/runtime/pom.xml +++ b/extensions-jvm/fastjson/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/flink/runtime/pom.xml b/extensions-jvm/flink/runtime/pom.xml index 39936e146c8b..35818c5727e0 100644 --- a/extensions-jvm/flink/runtime/pom.xml +++ b/extensions-jvm/flink/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ganglia/runtime/pom.xml b/extensions-jvm/ganglia/runtime/pom.xml index 4df5f338747c..d0a5f993b1b7 100644 --- a/extensions-jvm/ganglia/runtime/pom.xml +++ b/extensions-jvm/ganglia/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/google-functions/runtime/pom.xml b/extensions-jvm/google-functions/runtime/pom.xml index a85f4146d8f8..91c1aa991774 100644 --- a/extensions-jvm/google-functions/runtime/pom.xml +++ b/extensions-jvm/google-functions/runtime/pom.xml @@ -34,18 +34,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/weka/deployment/pom.xml b/extensions-jvm/google-secret-manager/deployment/pom.xml similarity index 79% rename from extensions-jvm/weka/deployment/pom.xml rename to extensions-jvm/google-secret-manager/deployment/pom.xml index dafd3ee836e3..ce03696e8d4f 100644 --- a/extensions-jvm/weka/deployment/pom.xml +++ b/extensions-jvm/google-secret-manager/deployment/pom.xml @@ -17,17 +17,19 @@ limitations under the License. --> - + 4.0.0 org.apache.camel.quarkus - camel-quarkus-weka-parent + camel-quarkus-google-secret-manager-parent 2.8.0-SNAPSHOT ../pom.xml - camel-quarkus-weka-deployment - Camel Quarkus :: Weka :: Deployment + camel-quarkus-google-secret-manager-deployment + Camel Quarkus :: Google Secret Manager :: Deployment @@ -36,7 +38,7 @@ org.apache.camel.quarkus - camel-quarkus-weka + camel-quarkus-google-secret-manager diff --git a/extensions-jvm/weka/deployment/src/main/java/org/apache/camel/quarkus/component/weka/deployment/WekaProcessor.java b/extensions-jvm/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java similarity index 85% rename from extensions-jvm/weka/deployment/src/main/java/org/apache/camel/quarkus/component/weka/deployment/WekaProcessor.java rename to extensions-jvm/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java index b9e2c447ecb1..7a1a2ac8f8c6 100644 --- a/extensions-jvm/weka/deployment/src/main/java/org/apache/camel/quarkus/component/weka/deployment/WekaProcessor.java +++ b/extensions-jvm/google-secret-manager/deployment/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/deployment/GoogleSecretManagerProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.weka.deployment; +package org.apache.camel.quarkus.component.google.secret.manager.deployment; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.annotations.ExecutionTime; @@ -24,10 +24,10 @@ import org.apache.camel.quarkus.core.JvmOnlyRecorder; import org.jboss.logging.Logger; -class WekaProcessor { +class GoogleSecretManagerProcessor { - private static final Logger LOG = Logger.getLogger(WekaProcessor.class); - private static final String FEATURE = "camel-weka"; + private static final Logger LOG = Logger.getLogger(GoogleSecretManagerProcessor.class); + private static final String FEATURE = "camel-google-secret-manager"; @BuildStep FeatureBuildItem feature() { diff --git a/extensions-jvm/weka/pom.xml b/extensions-jvm/google-secret-manager/pom.xml similarity index 78% rename from extensions-jvm/weka/pom.xml rename to extensions-jvm/google-secret-manager/pom.xml index 7bde395745ad..2b2a590edd14 100644 --- a/extensions-jvm/weka/pom.xml +++ b/extensions-jvm/google-secret-manager/pom.xml @@ -17,7 +17,9 @@ limitations under the License. --> - + 4.0.0 org.apache.camel.quarkus @@ -26,8 +28,8 @@ ../pom.xml - camel-quarkus-weka-parent - Camel Quarkus :: Weka + camel-quarkus-google-secret-manager-parent + Camel Quarkus :: Google Secret Manager pom diff --git a/extensions-jvm/weka/runtime/pom.xml b/extensions-jvm/google-secret-manager/runtime/pom.xml similarity index 69% rename from extensions-jvm/weka/runtime/pom.xml rename to extensions-jvm/google-secret-manager/runtime/pom.xml index 57a37701937e..9af72e10e506 100644 --- a/extensions-jvm/weka/runtime/pom.xml +++ b/extensions-jvm/google-secret-manager/runtime/pom.xml @@ -17,49 +17,25 @@ limitations under the License. --> - + 4.0.0 org.apache.camel.quarkus - camel-quarkus-weka-parent + camel-quarkus-google-secret-manager-parent 2.8.0-SNAPSHOT ../pom.xml - camel-quarkus-weka - Camel Quarkus :: Weka :: Runtime - Perform machine learning tasks using Weka. + camel-quarkus-google-secret-manager + Camel Quarkus :: Google Secret Manager :: Runtime + Manage Google Secret Manager Secrets - 1.1.0 + 2.8.0 - - - jboss.thirdparty - JBoss Thirdparty Repository - https://repository.jboss.org/nexus/service/local/repositories/thirdparty-releases/content/ - - false - - - true - - - - - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -67,7 +43,7 @@ org.apache.camel - camel-weka + camel-google-secret-manager @@ -93,6 +69,7 @@ + full diff --git a/extensions-jvm/weka/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/google-secret-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml similarity index 89% rename from extensions-jvm/weka/runtime/src/main/resources/META-INF/quarkus-extension.yaml rename to extensions-jvm/google-secret-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml index 6b2854ed890a..b031789112ba 100644 --- a/extensions-jvm/weka/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions-jvm/google-secret-manager/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -21,11 +21,11 @@ # mvn -N cq:update-quarkus-metadata # --- -name: "Camel Weka" -description: "Perform machine learning tasks using Weka" +name: "Camel Google Secret Manager" +description: "Manage Google Secret Manager Secrets" metadata: unlisted: true - guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/weka.html" + guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/google-secret-manager.html" categories: - "integration" status: diff --git a/extensions-jvm/groovy-dsl/runtime/pom.xml b/extensions-jvm/groovy-dsl/runtime/pom.xml index 6a1280494615..73fe04cc32fe 100644 --- a/extensions-jvm/groovy-dsl/runtime/pom.xml +++ b/extensions-jvm/groovy-dsl/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/groovy/runtime/pom.xml b/extensions-jvm/groovy/runtime/pom.xml index 48679efb03d8..1fe8d07b715d 100644 --- a/extensions-jvm/groovy/runtime/pom.xml +++ b/extensions-jvm/groovy/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/guava-eventbus/runtime/pom.xml b/extensions-jvm/guava-eventbus/runtime/pom.xml index ac4ce5ddbfb1..1028563183a8 100644 --- a/extensions-jvm/guava-eventbus/runtime/pom.xml +++ b/extensions-jvm/guava-eventbus/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/hbase/runtime/pom.xml b/extensions-jvm/hbase/runtime/pom.xml index 8850dd5c5869..3c3371813f25 100644 --- a/extensions-jvm/hbase/runtime/pom.xml +++ b/extensions-jvm/hbase/runtime/pom.xml @@ -34,18 +34,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/hdfs/runtime/pom.xml b/extensions-jvm/hdfs/runtime/pom.xml index bc821e435529..efcb2a555f44 100644 --- a/extensions-jvm/hdfs/runtime/pom.xml +++ b/extensions-jvm/hdfs/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -58,16 +46,6 @@ org.apache.camel camel-hdfs - - - io.netty - netty-all - - - javax.servlet - javax.servlet-api - - jakarta.servlet diff --git a/extensions-jvm/huaweicloud-smn/runtime/pom.xml b/extensions-jvm/huaweicloud-smn/runtime/pom.xml index 936bf3b19e30..c5f0d9d33603 100644 --- a/extensions-jvm/huaweicloud-smn/runtime/pom.xml +++ b/extensions-jvm/huaweicloud-smn/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/iec60870/runtime/pom.xml b/extensions-jvm/iec60870/runtime/pom.xml index 4ce43b6ed234..43a67d4bb6d4 100644 --- a/extensions-jvm/iec60870/runtime/pom.xml +++ b/extensions-jvm/iec60870/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ignite/runtime/pom.xml b/extensions-jvm/ignite/runtime/pom.xml index e77e346024e0..bd81427db2a3 100644 --- a/extensions-jvm/ignite/runtime/pom.xml +++ b/extensions-jvm/ignite/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/iota/runtime/pom.xml b/extensions-jvm/iota/runtime/pom.xml index 673d07ac1b80..d4792fccd960 100644 --- a/extensions-jvm/iota/runtime/pom.xml +++ b/extensions-jvm/iota/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/irc/runtime/pom.xml b/extensions-jvm/irc/runtime/pom.xml index 072cf78b90ff..ed65de6a5587 100644 --- a/extensions-jvm/irc/runtime/pom.xml +++ b/extensions-jvm/irc/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jasypt/runtime/pom.xml b/extensions-jvm/jasypt/runtime/pom.xml index f371f95f0d41..0a38f19091b9 100644 --- a/extensions-jvm/jasypt/runtime/pom.xml +++ b/extensions-jvm/jasypt/runtime/pom.xml @@ -34,18 +34,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/java-joor-dsl/runtime/pom.xml b/extensions-jvm/java-joor-dsl/runtime/pom.xml index 9f82194599e2..2988ed01a05a 100644 --- a/extensions-jvm/java-joor-dsl/runtime/pom.xml +++ b/extensions-jvm/java-joor-dsl/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jbpm/runtime/pom.xml b/extensions-jvm/jbpm/runtime/pom.xml index c1b53a680d37..161b7a4f5d73 100644 --- a/extensions-jvm/jbpm/runtime/pom.xml +++ b/extensions-jvm/jbpm/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jcache/runtime/pom.xml b/extensions-jvm/jcache/runtime/pom.xml index e1619cb03993..64fff0259c37 100644 --- a/extensions-jvm/jcache/runtime/pom.xml +++ b/extensions-jvm/jcache/runtime/pom.xml @@ -34,18 +34,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jclouds/runtime/pom.xml b/extensions-jvm/jclouds/runtime/pom.xml index 3f0771998319..94be0e23448e 100644 --- a/extensions-jvm/jclouds/runtime/pom.xml +++ b/extensions-jvm/jclouds/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jcr/runtime/pom.xml b/extensions-jvm/jcr/runtime/pom.xml index 40ef82c47c11..37ca3da893c3 100644 --- a/extensions-jvm/jcr/runtime/pom.xml +++ b/extensions-jvm/jcr/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jgroups-raft/runtime/pom.xml b/extensions-jvm/jgroups-raft/runtime/pom.xml index ffb6b560dcc6..332ffaab74cb 100644 --- a/extensions-jvm/jgroups-raft/runtime/pom.xml +++ b/extensions-jvm/jgroups-raft/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jgroups/runtime/pom.xml b/extensions-jvm/jgroups/runtime/pom.xml index 09422628a074..78bc356f227d 100644 --- a/extensions-jvm/jgroups/runtime/pom.xml +++ b/extensions-jvm/jgroups/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jooq/runtime/pom.xml b/extensions-jvm/jooq/runtime/pom.xml index bfce6643e718..8e3c9c817aac 100644 --- a/extensions-jvm/jooq/runtime/pom.xml +++ b/extensions-jvm/jooq/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/joor/runtime/pom.xml b/extensions-jvm/joor/runtime/pom.xml index bcb0e3bd53f8..4837d54c2ddc 100644 --- a/extensions-jvm/joor/runtime/pom.xml +++ b/extensions-jvm/joor/runtime/pom.xml @@ -34,18 +34,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/json-patch/runtime/pom.xml b/extensions-jvm/json-patch/runtime/pom.xml index be13618a0b06..72fe7d6ef808 100644 --- a/extensions-jvm/json-patch/runtime/pom.xml +++ b/extensions-jvm/json-patch/runtime/pom.xml @@ -34,18 +34,6 @@ 2.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jsonapi/runtime/pom.xml b/extensions-jvm/jsonapi/runtime/pom.xml index afc4e32979d0..e74430a8673c 100644 --- a/extensions-jvm/jsonapi/runtime/pom.xml +++ b/extensions-jvm/jsonapi/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/jt400/runtime/pom.xml b/extensions-jvm/jt400/runtime/pom.xml index 8f6a746ca086..a370fae8e557 100644 --- a/extensions-jvm/jt400/runtime/pom.xml +++ b/extensions-jvm/jt400/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/kotlin-dsl/runtime/pom.xml b/extensions-jvm/kotlin-dsl/runtime/pom.xml index 11942b885f67..5bf29879a4dd 100644 --- a/extensions-jvm/kotlin-dsl/runtime/pom.xml +++ b/extensions-jvm/kotlin-dsl/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-jvm/ldap/runtime/pom.xml b/extensions-jvm/ldap/runtime/pom.xml index a7110e6fddfb..72ec4fec06ac 100644 --- a/extensions-jvm/ldap/runtime/pom.xml +++ b/extensions-jvm/ldap/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ldif/runtime/pom.xml b/extensions-jvm/ldif/runtime/pom.xml index 73b0968e1dcc..982a96d79b8c 100644 --- a/extensions-jvm/ldif/runtime/pom.xml +++ b/extensions-jvm/ldif/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/lucene/runtime/pom.xml b/extensions-jvm/lucene/runtime/pom.xml index 791c5200ef36..f7cde907aac8 100644 --- a/extensions-jvm/lucene/runtime/pom.xml +++ b/extensions-jvm/lucene/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/management/runtime/pom.xml b/extensions-jvm/management/runtime/pom.xml index 996425f8d492..53fddd16e573 100644 --- a/extensions-jvm/management/runtime/pom.xml +++ b/extensions-jvm/management/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/milo/runtime/pom.xml b/extensions-jvm/milo/runtime/pom.xml index 26008bd6166c..95e9e6d62b8a 100644 --- a/extensions-jvm/milo/runtime/pom.xml +++ b/extensions-jvm/milo/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/mvel/runtime/pom.xml b/extensions-jvm/mvel/runtime/pom.xml index ee4c0e099191..3cd42be9c06a 100644 --- a/extensions-jvm/mvel/runtime/pom.xml +++ b/extensions-jvm/mvel/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ognl/runtime/pom.xml b/extensions-jvm/ognl/runtime/pom.xml index c5c8d437c04a..9600537233d4 100644 --- a/extensions-jvm/ognl/runtime/pom.xml +++ b/extensions-jvm/ognl/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml index ba3a938466bd..d7178fe5be64 100644 --- a/extensions-jvm/pom.xml +++ b/extensions-jvm/pom.xml @@ -68,6 +68,7 @@ flink ganglia google-functions + google-secret-manager groovy groovy-dsl guava-eventbus @@ -129,6 +130,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom diff --git a/extensions-jvm/printer/runtime/pom.xml b/extensions-jvm/printer/runtime/pom.xml index a678b3a992fc..6fd429ac991b 100644 --- a/extensions-jvm/printer/runtime/pom.xml +++ b/extensions-jvm/printer/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/pulsar/runtime/pom.xml b/extensions-jvm/pulsar/runtime/pom.xml index 3ca9006cc13a..ee04da6c5193 100644 --- a/extensions-jvm/pulsar/runtime/pom.xml +++ b/extensions-jvm/pulsar/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,12 +42,6 @@ org.apache.camel camel-pulsar - - - com.sun.activation - javax.activation - - com.sun.activation diff --git a/extensions-jvm/quickfix/runtime/pom.xml b/extensions-jvm/quickfix/runtime/pom.xml index 79d51a5b38ed..731a86829351 100644 --- a/extensions-jvm/quickfix/runtime/pom.xml +++ b/extensions-jvm/quickfix/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/redis/runtime/pom.xml b/extensions-jvm/redis/runtime/pom.xml index 80504093883f..39e4ac48e49d 100644 --- a/extensions-jvm/redis/runtime/pom.xml +++ b/extensions-jvm/redis/runtime/pom.xml @@ -34,18 +34,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/ribbon/runtime/pom.xml b/extensions-jvm/ribbon/runtime/pom.xml index 8cc6b7f38ac3..59817ecd331a 100644 --- a/extensions-jvm/ribbon/runtime/pom.xml +++ b/extensions-jvm/ribbon/runtime/pom.xml @@ -34,18 +34,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/robotframework/runtime/pom.xml b/extensions-jvm/robotframework/runtime/pom.xml index 018e95293c7d..c8b882cfc82d 100644 --- a/extensions-jvm/robotframework/runtime/pom.xml +++ b/extensions-jvm/robotframework/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/schematron/runtime/pom.xml b/extensions-jvm/schematron/runtime/pom.xml index 3afd4b83bdef..50acf116c088 100644 --- a/extensions-jvm/schematron/runtime/pom.xml +++ b/extensions-jvm/schematron/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/sip/runtime/pom.xml b/extensions-jvm/sip/runtime/pom.xml index 676050eec7e6..63a220e67da4 100644 --- a/extensions-jvm/sip/runtime/pom.xml +++ b/extensions-jvm/sip/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/smpp/runtime/pom.xml b/extensions-jvm/smpp/runtime/pom.xml index 87f015402c09..a2630815aa19 100644 --- a/extensions-jvm/smpp/runtime/pom.xml +++ b/extensions-jvm/smpp/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/snmp/runtime/pom.xml b/extensions-jvm/snmp/runtime/pom.xml index dd23c357b943..c3e0aeec1ff4 100644 --- a/extensions-jvm/snmp/runtime/pom.xml +++ b/extensions-jvm/snmp/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/soroush/runtime/pom.xml b/extensions-jvm/soroush/runtime/pom.xml index bde35adf2002..897484aff9bf 100644 --- a/extensions-jvm/soroush/runtime/pom.xml +++ b/extensions-jvm/soroush/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/spark/bom/pom.xml b/extensions-jvm/spark/bom/pom.xml index ed3caf3b992a..6c26d2a2b100 100644 --- a/extensions-jvm/spark/bom/pom.xml +++ b/extensions-jvm/spark/bom/pom.xml @@ -55,6 +55,30 @@ com.google.inject guice + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + javax.activation + javax.activation-api + + + javax.annotation + javax.annotation-api + + + javax.inject + javax.inject + javax.ws.rs javax.ws.rs-api @@ -63,6 +87,10 @@ javax.ws.rs jsr311-api + + javax.xml.bind + jaxb-api + org.apache.ivy ivy @@ -184,11 +212,6 @@ scala-compiler ${scala-2.12.version} - - org.xerial.snappy - snappy-java - ${snappy.version} - org.jboss.logging jul-to-slf4j-stub diff --git a/extensions-jvm/spark/runtime/pom.xml b/extensions-jvm/spark/runtime/pom.xml index 930f046eb840..c29ad97ed8c3 100644 --- a/extensions-jvm/spark/runtime/pom.xml +++ b/extensions-jvm/spark/runtime/pom.xml @@ -37,13 +37,6 @@ - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - org.apache.camel.quarkus camel-quarkus-spark-bom diff --git a/extensions-jvm/splunk-hec/runtime/pom.xml b/extensions-jvm/splunk-hec/runtime/pom.xml index 93f3a47c9a8b..65d45d9df116 100644 --- a/extensions-jvm/splunk-hec/runtime/pom.xml +++ b/extensions-jvm/splunk-hec/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/stitch/runtime/pom.xml b/extensions-jvm/stitch/runtime/pom.xml index c3490b68dd10..32d0864835ee 100644 --- a/extensions-jvm/stitch/runtime/pom.xml +++ b/extensions-jvm/stitch/runtime/pom.xml @@ -34,18 +34,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/stomp/runtime/pom.xml b/extensions-jvm/stomp/runtime/pom.xml index 098802dcd10b..48bb9b74eee0 100644 --- a/extensions-jvm/stomp/runtime/pom.xml +++ b/extensions-jvm/stomp/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/stub/runtime/pom.xml b/extensions-jvm/stub/runtime/pom.xml index e5863afeffd6..8cddc7c968fe 100644 --- a/extensions-jvm/stub/runtime/pom.xml +++ b/extensions-jvm/stub/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/thrift/runtime/pom.xml b/extensions-jvm/thrift/runtime/pom.xml index 7fbd5ea8e828..598e715e7bc0 100644 --- a/extensions-jvm/thrift/runtime/pom.xml +++ b/extensions-jvm/thrift/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/web3j/runtime/pom.xml b/extensions-jvm/web3j/runtime/pom.xml index c4e82b24b84c..cc718bb3f2d5 100644 --- a/extensions-jvm/web3j/runtime/pom.xml +++ b/extensions-jvm/web3j/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/wordpress/runtime/pom.xml b/extensions-jvm/wordpress/runtime/pom.xml index 53d2368cc3a4..c4517b806c4c 100644 --- a/extensions-jvm/wordpress/runtime/pom.xml +++ b/extensions-jvm/wordpress/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,16 +42,6 @@ org.apache.camel camel-wordpress - - - jakarta.xml.bind - jakarta.xml.bind-api - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - - org.jboss.spec.javax.xml.bind diff --git a/extensions-jvm/workday/runtime/pom.xml b/extensions-jvm/workday/runtime/pom.xml index 36af210e91f0..6139866a4c96 100644 --- a/extensions-jvm/workday/runtime/pom.xml +++ b/extensions-jvm/workday/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/xj/runtime/pom.xml b/extensions-jvm/xj/runtime/pom.xml index 516128ee134c..f538c65436fc 100644 --- a/extensions-jvm/xj/runtime/pom.xml +++ b/extensions-jvm/xj/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/xmpp/runtime/pom.xml b/extensions-jvm/xmpp/runtime/pom.xml index ccc0e4f9178e..fa9c80338325 100644 --- a/extensions-jvm/xmpp/runtime/pom.xml +++ b/extensions-jvm/xmpp/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/xslt-saxon/runtime/pom.xml b/extensions-jvm/xslt-saxon/runtime/pom.xml index b3ebd9aec6db..7265f5821196 100644 --- a/extensions-jvm/xslt-saxon/runtime/pom.xml +++ b/extensions-jvm/xslt-saxon/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/yammer/runtime/pom.xml b/extensions-jvm/yammer/runtime/pom.xml index 4313a36e6c85..c06e811a33a7 100644 --- a/extensions-jvm/yammer/runtime/pom.xml +++ b/extensions-jvm/yammer/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/zookeeper-master/runtime/pom.xml b/extensions-jvm/zookeeper-master/runtime/pom.xml index dd9b49c8b0ff..33f8303fb6fa 100644 --- a/extensions-jvm/zookeeper-master/runtime/pom.xml +++ b/extensions-jvm/zookeeper-master/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-jvm/zookeeper/runtime/pom.xml b/extensions-jvm/zookeeper/runtime/pom.xml index ddebf292a5a4..3aba1cc89d53 100644 --- a/extensions-jvm/zookeeper/runtime/pom.xml +++ b/extensions-jvm/zookeeper/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/ahc/runtime/pom.xml b/extensions-support/ahc/runtime/pom.xml index d36a33949d51..fe39aeed0ddb 100644 --- a/extensions-support/ahc/runtime/pom.xml +++ b/extensions-support/ahc/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/aws/runtime/pom.xml b/extensions-support/aws/runtime/pom.xml index 846379367766..7fa329e3e011 100644 --- a/extensions-support/aws/runtime/pom.xml +++ b/extensions-support/aws/runtime/pom.xml @@ -33,18 +33,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/aws2/runtime/pom.xml b/extensions-support/aws2/runtime/pom.xml index 25f351df1764..0bee9cbc23b4 100644 --- a/extensions-support/aws2/runtime/pom.xml +++ b/extensions-support/aws2/runtime/pom.xml @@ -33,18 +33,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -57,12 +45,6 @@ software.amazon.awssdk apache-client - - - commons-logging - commons-logging - - diff --git a/extensions-support/azure-core-http-client-vertx/deployment/pom.xml b/extensions-support/azure-core-http-client-vertx/deployment/pom.xml new file mode 100644 index 000000000000..b76be2718c3e --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/pom.xml @@ -0,0 +1,135 @@ + + + + 4.0.0 + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-parent + 2.8.0-SNAPSHOT + ../pom.xml + + + camel-quarkus-support-azure-core-http-client-vertx-deployment + Camel Quarkus :: Support :: Azure Core HTTP Client Vert.x :: Deployment + + + + + org.apache.camel.quarkus + camel-quarkus-bom-test + ${project.version} + pom + import + + + + + + + io.quarkus + quarkus-core-deployment + + + io.quarkus + quarkus-vertx-deployment + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-deployment + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + + + + + io.quarkus + quarkus-junit5-internal + test + + + org.testcontainers + testcontainers + test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test + + + org.apache.camel.quarkus + camel-quarkus-integration-wiremock-support + test + + + org.hamcrest + hamcrest-core + + + + + + + + com.azure + azure-core + test-jar + test + + + com.azure + azure-core-test + test + + + com.azure + azure-core-test + test-jar + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + io.quarkus + quarkus-extension-processor + ${quarkus.version} + + + + + + + + diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/AzureCoreHttpClientVertxProcessor.java b/extensions-support/azure-core-http-client-vertx/deployment/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/AzureCoreHttpClientVertxProcessor.java new file mode 100644 index 000000000000..db0972b8d7f8 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/AzureCoreHttpClientVertxProcessor.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.support.azure.core.http.vertx; + +import io.netty.handler.ssl.OpenSsl; +import io.quarkus.deployment.annotations.BuildProducer; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem; + +public class AzureCoreHttpClientVertxProcessor { + + @BuildStep + void runtimeInitializedClasses(BuildProducer runtimeInitializedClasses) { + runtimeInitializedClasses.produce(new RuntimeInitializedClassBuildItem(OpenSsl.class.getName())); + runtimeInitializedClasses.produce(new RuntimeInitializedClassBuildItem("io.netty.internal.tcnative.SSL")); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/DeadlockTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/DeadlockTests.java new file mode 100644 index 000000000000..18237b49bf74 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/DeadlockTests.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.security.SecureRandom; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpMethod; +import com.azure.core.http.HttpRequest; +import com.azure.core.util.FluxUtil; +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.core.WireMockConfiguration; +import io.quarkus.test.QuarkusUnitTest; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +public class DeadlockTests { + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + private static final String GET_ENDPOINT = "/get"; + + private WireMockServer server; + private byte[] expectedGetBytes; + + @BeforeEach + public void configureWireMockServer() { + expectedGetBytes = new byte[10 * 1024 * 1024]; + new SecureRandom().nextBytes(expectedGetBytes); + + server = new WireMockServer(WireMockConfiguration.options() + .dynamicPort() + .disableRequestJournal() + .gzipDisabled(true)); + + server.stubFor(WireMock.get(GET_ENDPOINT).willReturn(WireMock.aResponse().withBody(expectedGetBytes))); + + server.start(); + } + + @AfterEach + public void shutdownWireMockServer() { + if (server != null) { + server.shutdown(); + } + } + + @Test + public void attemptToDeadlock() { + HttpClient httpClient = new VertxHttpClientProvider().createInstance(); + + String endpoint = server.baseUrl() + GET_ENDPOINT; + + for (int i = 0; i < 100; i++) { + StepVerifier.create(httpClient.send(new HttpRequest(HttpMethod.GET, endpoint)) + .flatMap(response -> FluxUtil.collectBytesInByteBufferStream(response.getBody()) + .zipWith(Mono.just(response.getStatusCode())))) + .assertNext(responseTuple -> { + Assertions.assertEquals(200, responseTuple.getT2()); + Assertions.assertArrayEquals(expectedGetBytes, responseTuple.getT1()); + }) + .verifyComplete(); + } + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilderTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilderTests.java new file mode 100644 index 000000000000..03f609979d86 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilderTests.java @@ -0,0 +1,181 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.net.InetSocketAddress; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CountDownLatch; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpMethod; +import com.azure.core.http.HttpRequest; +import com.azure.core.http.ProxyOptions; +import com.azure.core.util.Configuration; +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.core.WireMockConfiguration; +import io.vertx.core.Vertx; +import io.vertx.ext.web.client.WebClientOptions; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import reactor.test.StepVerifier; + +import static org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientTestResource.PROXY_PASSWORD; +import static org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientTestResource.PROXY_USER; +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Tests {@link VertxHttpClientBuilder}. + */ +public class VertxHttpClientBuilderTests { + private static final String COOKIE_VALIDATOR_PATH = "/cookieValidator"; + private static final String DEFAULT_PATH = "/default"; + private static final String DISPATCHER_PATH = "/dispatcher"; + + private static final WireMockServer server = new WireMockServer( + WireMockConfiguration.options().dynamicPort().disableRequestJournal()); + private static final Vertx vertx = Vertx.vertx(); + + private static String defaultUrl; + + @BeforeAll + public static void setupWireMock() { + // Mocked endpoint to test building a client with a prebuilt client. + server.stubFor(WireMock.get(COOKIE_VALIDATOR_PATH).withCookie("test", WireMock.matching("success")) + .willReturn(WireMock.aResponse().withStatus(200))); + + // Mocked endpoint to test building a client with a timeout. + server.stubFor(WireMock.get(DEFAULT_PATH).willReturn(WireMock.aResponse().withStatus(200))); + + // Mocked endpoint to test building a client with a dispatcher and uses a delayed response. + server.stubFor(WireMock.get(DISPATCHER_PATH).willReturn(WireMock.aResponse().withStatus(200) + .withFixedDelay(5000))); + + server.start(); + + defaultUrl = "http://localhost:" + server.port() + DEFAULT_PATH; + } + + @AfterAll + public static void afterAll() throws InterruptedException { + if (server.isRunning()) { + server.shutdown(); + } + CountDownLatch latch = new CountDownLatch(1); + vertx.close(x -> latch.countDown()); + latch.await(); + } + + @Test + public void buildWithConfigurationNone() { + HttpClient client = new VertxHttpClientBuilder(vertx) + .configuration(Configuration.NONE) + .build(); + try { + StepVerifier.create(client.send(new HttpRequest(HttpMethod.GET, defaultUrl))) + .assertNext(response -> assertEquals(200, response.getStatusCode())) + .verifyComplete(); + } finally { + ((VertxHttpClient) client).close(); + } + } + + @Test + public void buildWithDefaultConnectionOptions() { + WebClientOptions options = new WebClientOptions(); + + HttpClient client = new VertxHttpClientBuilder(vertx) + .webClientOptions(options) + .build(); + + try { + StepVerifier.create(client.send(new HttpRequest(HttpMethod.GET, defaultUrl))) + .assertNext(response -> assertEquals(200, response.getStatusCode())) + .verifyComplete(); + + assertEquals(options.getConnectTimeout(), 10000); + assertEquals(options.getIdleTimeout(), 60); + assertEquals(options.getReadIdleTimeout(), 60); + assertEquals(options.getWriteIdleTimeout(), 60); + } finally { + ((VertxHttpClient) client).close(); + } + } + + @Test + public void buildWithConnectionOptions() { + WebClientOptions options = new WebClientOptions(); + + HttpClient client = new VertxHttpClientBuilder(vertx) + .webClientOptions(options) + .connectTimeout(Duration.ofSeconds(10)) + .idleTimeout(Duration.ofSeconds(20)) + .readIdleTimeout(Duration.ofSeconds(30)) + .writeIdleTimeout(Duration.ofSeconds(40)) + .build(); + + try { + StepVerifier.create(client.send(new HttpRequest(HttpMethod.GET, defaultUrl))) + .assertNext(response -> assertEquals(200, response.getStatusCode())) + .verifyComplete(); + + assertEquals(options.getConnectTimeout(), 10000); + assertEquals(options.getIdleTimeout(), 20); + assertEquals(options.getReadIdleTimeout(), 30); + assertEquals(options.getWriteIdleTimeout(), 40); + } finally { + ((VertxHttpClient) client).close(); + } + } + + @ParameterizedTest + @EnumSource(ProxyOptions.Type.class) + public void allProxyOptions(ProxyOptions.Type type) { + WebClientOptions options = new WebClientOptions(); + InetSocketAddress address = new InetSocketAddress("localhost", 8888); + ProxyOptions proxyOptions = new ProxyOptions(type, address); + proxyOptions.setCredentials(PROXY_USER, PROXY_PASSWORD); + proxyOptions.setNonProxyHosts("foo.*|*bar.com|microsoft.com"); + + HttpClient client = new VertxHttpClientBuilder(vertx) + .webClientOptions(options) + .proxy(proxyOptions) + .build(); + + try { + io.vertx.core.net.ProxyOptions vertxProxyOptions = options.getProxyOptions(); + assertEquals(vertxProxyOptions.getHost(), address.getHostName()); + assertEquals(vertxProxyOptions.getPort(), address.getPort()); + assertEquals(vertxProxyOptions.getType().name(), type.name()); + assertEquals(vertxProxyOptions.getUsername(), PROXY_USER); + assertEquals(vertxProxyOptions.getPassword(), PROXY_PASSWORD); + + List proxyHosts = new ArrayList<>(); + proxyHosts.add("foo*"); + proxyHosts.add(".*bar.com"); + proxyHosts.add("microsoft.com"); + assertEquals(proxyHosts, options.getNonProxyHosts()); + } finally { + ((VertxHttpClient) client).close(); + } + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientHttpClientTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientHttpClientTests.java new file mode 100644 index 000000000000..67dae66cd2fd --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientHttpClientTests.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.util.concurrent.CountDownLatch; + +import com.azure.core.http.HttpClient; +import com.azure.core.test.HttpClientTestsWireMockServer; +import com.azure.core.test.http.HttpClientTests; +import com.github.tomakehurst.wiremock.WireMockServer; +import io.vertx.core.Vertx; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; + +public class VertxHttpClientHttpClientTests extends HttpClientTests { + private static final WireMockServer server = HttpClientTestsWireMockServer.getHttpClientTestsServer(); + private static final Vertx vertx = Vertx.vertx(); + + @BeforeAll + public static void getWireMockServer() { + server.start(); + } + + @AfterAll + public static void afterAll() throws InterruptedException { + server.shutdown(); + CountDownLatch latch = new CountDownLatch(1); + vertx.close(x -> latch.countDown()); + latch.await(); + } + + @Override + protected int getWireMockPort() { + return server.port(); + } + + @Override + protected HttpClient createHttpClient() { + return new VertxHttpClientBuilder(vertx).build(); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProviderTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProviderTests.java new file mode 100644 index 000000000000..402d15443f26 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProviderTests.java @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.net.InetSocketAddress; +import java.time.Duration; + +import com.azure.core.http.ProxyOptions; +import com.azure.core.util.Configuration; +import com.azure.core.util.HttpClientOptions; +import io.quarkus.test.QuarkusUnitTest; +import io.vertx.ext.web.client.WebClientOptions; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +/** + * Tests {@link VertxHttpClientProvider}. + */ + +public class VertxHttpClientProviderTests { + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)); + + @Test + public void nullOptionsReturnsBaseClient() { + VertxHttpClient httpClient = (VertxHttpClient) new VertxHttpClientProvider() + .createInstance(null); + + ProxyOptions environmentProxy = ProxyOptions.fromConfiguration(Configuration.getGlobalConfiguration()); + WebClientOptions options = httpClient.getWebClientOptions(); + io.vertx.core.net.ProxyOptions proxyOptions = options.getProxyOptions(); + if (environmentProxy == null) { + assertNull(proxyOptions); + } else { + assertNotNull(proxyOptions); + assertEquals(environmentProxy.getAddress().getHostName(), proxyOptions.getHost()); + } + } + + @Test + public void defaultOptionsReturnsBaseClient() { + VertxHttpClient httpClient = (VertxHttpClient) new VertxHttpClientProvider() + .createInstance(new HttpClientOptions()); + + ProxyOptions environmentProxy = ProxyOptions.fromConfiguration(Configuration.getGlobalConfiguration()); + WebClientOptions options = httpClient.getWebClientOptions(); + io.vertx.core.net.ProxyOptions proxyOptions = options.getProxyOptions(); + if (environmentProxy == null) { + assertNull(proxyOptions); + } else { + assertNotNull(proxyOptions); + assertEquals(environmentProxy.getAddress().getHostName(), proxyOptions.getHost()); + } + } + + @Test + public void optionsWithAProxy() { + ProxyOptions proxyOptions = new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("localhost", 8888)); + proxyOptions.setNonProxyHosts("foo.*|bar.*|cheese.com|wine.org"); + + HttpClientOptions clientOptions = new HttpClientOptions().setProxyOptions(proxyOptions); + + VertxHttpClient httpClient = (VertxHttpClient) new VertxHttpClientProvider() + .createInstance(clientOptions); + + WebClientOptions options = httpClient.getWebClientOptions(); + io.vertx.core.net.ProxyOptions vertxProxyOptions = options.getProxyOptions(); + assertNotNull(vertxProxyOptions); + assertEquals(proxyOptions.getAddress().getHostName(), vertxProxyOptions.getHost()); + assertEquals(proxyOptions.getAddress().getPort(), vertxProxyOptions.getPort()); + assertEquals(proxyOptions.getType().name(), vertxProxyOptions.getType().name()); + } + + @Test + public void optionsWithTimeouts() { + long expectedTimeout = 15000; + Duration timeout = Duration.ofMillis(expectedTimeout); + HttpClientOptions clientOptions = new HttpClientOptions() + .setWriteTimeout(timeout) + .setResponseTimeout(timeout) + .setReadTimeout(timeout); + + VertxHttpClient httpClient = (VertxHttpClient) new VertxHttpClientProvider() + .createInstance(clientOptions); + + WebClientOptions options = httpClient.getWebClientOptions(); + + assertEquals(timeout.getSeconds(), options.getWriteIdleTimeout()); + assertEquals(timeout.getSeconds(), options.getReadIdleTimeout()); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientResponseTransformer.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientResponseTransformer.java new file mode 100644 index 000000000000..fe7aa1c93ecb --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientResponseTransformer.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import com.github.tomakehurst.wiremock.common.FileSource; +import com.github.tomakehurst.wiremock.extension.Parameters; +import com.github.tomakehurst.wiremock.extension.ResponseTransformer; +import com.github.tomakehurst.wiremock.http.Request; +import com.github.tomakehurst.wiremock.http.Response; + +import static org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientTests.RETURN_HEADERS_AS_IS_PATH; + +/** + * Mock response transformer used to test {@link VertxHttpClient}. + */ +public class VertxHttpClientResponseTransformer extends ResponseTransformer { + public static final String NAME = "vertx-http-client-response-transformer"; + + @Override + public Response transform(Request request, Response response, FileSource fileSource, Parameters parameters) { + String url = request.getUrl(); + + if (RETURN_HEADERS_AS_IS_PATH.equalsIgnoreCase(url)) { + return Response.response() + .status(200) + .headers(request.getHeaders()) + .build(); + } + + return response; + } + + @Override + public String getName() { + return NAME; + } + + @Override + public boolean applyGlobally() { + return false; + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyTests.java new file mode 100644 index 000000000000..153d84086494 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyTests.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import javax.inject.Inject; + +import com.azure.core.http.HttpClient; +import com.azure.core.test.RestProxyTestsWireMockServer; +import com.azure.core.test.implementation.RestProxyTests; +import com.github.tomakehurst.wiremock.WireMockServer; +import io.quarkus.test.QuarkusUnitTest; +import io.vertx.core.Vertx; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; + +public class VertxHttpClientRestProxyTests extends RestProxyTests { + private final static WireMockServer server = RestProxyTestsWireMockServer.getRestProxyTestsServer(); + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class) + .addAsResource("upload.txt", "upload.txt")); + + @Inject + Vertx vertx; + + @BeforeAll + public static void getWireMockServer() { + server.start(); + } + + @AfterAll + public static void shutdownWireMockServer() { + server.shutdown(); + } + + @Override + protected int getWireMockPort() { + return server.port(); + } + + @Override + protected HttpClient createHttpClient() { + return new VertxHttpClientBuilder(vertx).build(); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyWithHttpProxyTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyWithHttpProxyTests.java new file mode 100644 index 000000000000..748ede8af8ab --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientRestProxyWithHttpProxyTests.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.support.azure.core.http.vertx; + +import java.net.InetSocketAddress; + +import javax.inject.Inject; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.ProxyOptions; +import com.azure.core.test.RestProxyTestsWireMockServer; +import com.azure.core.test.implementation.RestProxyTests; +import com.github.tomakehurst.wiremock.WireMockServer; +import io.quarkus.test.QuarkusUnitTest; +import io.quarkus.test.common.QuarkusTestResource; +import io.vertx.core.Vertx; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; + +import static org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientTestResource.PROXY_PASSWORD; +import static org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientTestResource.PROXY_USER; + +@QuarkusTestResource(VertxHttpClientTestResource.class) +public class VertxHttpClientRestProxyWithHttpProxyTests extends RestProxyTests { + private static WireMockServer server; + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class) + .addAsResource("upload.txt", "upload.txt")); + + @Inject + Vertx vertx; + + @BeforeAll + public static void getWireMockServer() { + server = RestProxyTestsWireMockServer.getRestProxyTestsServer(); + server.start(); + } + + @AfterAll + public static void shutdownWireMockServer() { + if (server != null) { + server.shutdown(); + } + } + + @Override + protected int getWireMockPort() { + return server.port(); + } + + @Override + protected HttpClient createHttpClient() { + Config config = ConfigProvider.getConfig(); + String proxyHost = config.getValue("tiny.proxy.host", String.class); + int proxyPort = config.getValue("tiny.proxy.port", int.class); + + InetSocketAddress address = new InetSocketAddress(proxyHost, proxyPort); + ProxyOptions proxyOptions = new ProxyOptions(ProxyOptions.Type.HTTP, address); + proxyOptions.setCredentials(PROXY_USER, PROXY_PASSWORD); + + return new VertxHttpClientBuilder(vertx) + .proxy(proxyOptions) + .build(); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTestResource.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTestResource.java new file mode 100644 index 000000000000..2a54ab77836a --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTestResource.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.util.HashMap; +import java.util.Map; + +import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; +import org.apache.commons.lang3.SystemUtils; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.utility.DockerImageName; + +public class VertxHttpClientTestResource implements QuarkusTestResourceLifecycleManager { + + public static final String PROXY_USER = "admin"; + public static final String PROXY_PASSWORD = "p4ssw0rd"; + + private static final DockerImageName TINY_PROXY_IMAGE_NAME = DockerImageName.parse("monokal/tinyproxy"); + private static final Integer TINY_PROXY_PORT = 8888; + private GenericContainer container; + + @Override + public Map start() { + String host; + int port; + + container = new GenericContainer(TINY_PROXY_IMAGE_NAME) + .withEnv("BASIC_AUTH_USER", PROXY_USER) + .withEnv("BASIC_AUTH_PASSWORD", PROXY_PASSWORD) + .withCommand("ANY") + .waitingFor(Wait.forListeningPort()); + + if (SystemUtils.IS_OS_LINUX) { + container.withNetworkMode("host"); + port = TINY_PROXY_PORT; + host = "localhost"; + } else { + container.withNetworkMode("bridge") + .withExposedPorts(TINY_PROXY_PORT); + port = container.getMappedPort(TINY_PROXY_PORT); + host = "host.docker.internal"; + } + + container.start(); + + Map options = new HashMap<>(); + options.put("tiny.proxy.host", host); + options.put("tiny.proxy.port", String.valueOf(port)); + return options; + } + + @Override + public void stop() { + if (container != null) { + container.stop(); + } + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTests.java b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTests.java new file mode 100644 index 000000000000..ba7204089c91 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientTests.java @@ -0,0 +1,317 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.io.OutputStream; +import java.net.MalformedURLException; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.URL; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.time.Duration; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.CountDownLatch; + +import javax.inject.Inject; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpHeader; +import com.azure.core.http.HttpHeaders; +import com.azure.core.http.HttpMethod; +import com.azure.core.http.HttpRequest; +import com.azure.core.http.HttpResponse; +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.core.WireMockConfiguration; +import io.quarkus.test.QuarkusUnitTest; +import io.vertx.core.Vertx; +import io.vertx.core.VertxException; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; +import reactor.test.StepVerifier; +import reactor.test.StepVerifierOptions; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class VertxHttpClientTests { + static final String RETURN_HEADERS_AS_IS_PATH = "/returnHeadersAsIs"; + + private static final String SHORT_BODY = "hi there"; + private static final String LONG_BODY = createLongBody(); + + private static WireMockServer server; + + @Inject + Vertx vertx; + + @RegisterExtension + static final QuarkusUnitTest CONFIG = new QuarkusUnitTest() + .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class) + .addClass(VertxHttpClientResponseTransformer.class)); + + @BeforeAll + public static void beforeClass() { + server = new WireMockServer(WireMockConfiguration.options() + .extensions(new VertxHttpClientResponseTransformer()) + .dynamicPort() + .disableRequestJournal() + .gzipDisabled(true)); + + server.stubFor(WireMock.get("/short").willReturn(WireMock.aResponse().withBody(SHORT_BODY))); + server.stubFor(WireMock.get("/long").willReturn(WireMock.aResponse().withBody(LONG_BODY))); + server.stubFor(WireMock.get("/error").willReturn(WireMock.aResponse().withBody("error").withStatus(500))); + server.stubFor(WireMock.post("/shortPost").willReturn(WireMock.aResponse().withBody(SHORT_BODY))); + server.stubFor(WireMock.get(RETURN_HEADERS_AS_IS_PATH).willReturn(WireMock.aResponse() + .withTransformers(VertxHttpClientResponseTransformer.NAME))); + + server.start(); + } + + @AfterAll + public static void afterClass() { + if (server != null) { + server.shutdown(); + } + } + + @Test + public void testFlowableResponseShortBodyAsByteArrayAsync() { + checkBodyReceived(SHORT_BODY, "/short"); + } + + @Test + public void testFlowableResponseLongBodyAsByteArrayAsync() { + checkBodyReceived(LONG_BODY, "/long"); + } + + @Test + public void testFlowableWhenServerReturnsBodyAndNoErrorsWhenHttp500Returned() { + HttpResponse response = getResponse("/error"); + assertEquals(500, response.getStatusCode()); + StepVerifier.create(response.getBodyAsString()) + .expectNext("error") + .expectComplete() + .verify(Duration.ofSeconds(20)); + } + + @Test + public void testFlowableBackpressure() { + HttpResponse response = getResponse("/long"); + + StepVerifierOptions stepVerifierOptions = StepVerifierOptions.create(); + stepVerifierOptions.initialRequest(0); + + StepVerifier.create(response.getBody(), stepVerifierOptions) + .expectNextCount(0) + .thenRequest(1) + .expectNextCount(1) + .thenRequest(3) + .expectNextCount(3) + .thenRequest(Long.MAX_VALUE) + .thenConsumeWhile(ByteBuffer::hasRemaining) + .verifyComplete(); + } + + @Test + public void testRequestBodyIsErrorShouldPropagateToResponse() { + HttpClient client = new VertxHttpClientProvider().createInstance(); + HttpRequest request = new HttpRequest(HttpMethod.POST, url(server, "/shortPost")) + .setHeader("Content-Length", "123") + .setBody(Flux.error(new RuntimeException("boo"))); + + StepVerifier.create(client.send(request)) + .expectErrorMessage("boo") + .verify(); + } + + @Test + public void testRequestBodyEndsInErrorShouldPropagateToResponse() { + HttpClient client = new VertxHttpClientProvider().createInstance(); + String contentChunk = "abcdefgh"; + int repetitions = 1000; + HttpRequest request = new HttpRequest(HttpMethod.POST, url(server, "/shortPost")) + .setHeader("Content-Length", String.valueOf(contentChunk.length() * (repetitions + 1))) + .setBody(Flux.just(contentChunk) + .repeat(repetitions) + .map(s -> ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8))) + .concatWith(Flux.error(new RuntimeException("boo")))); + StepVerifier.create(client.send(request)) + .expectErrorMessage("boo") + .verify(Duration.ofSeconds(10)); + } + + @Test + public void testServerShutsDownSocketShouldPushErrorToContentFlowable() { + Assertions.assertTimeout(Duration.ofMillis(5000), () -> { + CountDownLatch latch = new CountDownLatch(1); + try (ServerSocket ss = new ServerSocket(0)) { + Mono.fromCallable(() -> { + latch.countDown(); + Socket socket = ss.accept(); + // give the client time to get request across + Thread.sleep(500); + // respond but don't send the complete response + byte[] bytes = new byte[1024]; + int n = socket.getInputStream().read(bytes); + System.out.println(new String(bytes, 0, n, StandardCharsets.UTF_8)); + String response = "HTTP/1.1 200 OK\r\n" // + + "Content-Type: text/plain\r\n" // + + "Content-Length: 10\r\n" // + + "\r\n" // + + "zi"; + OutputStream out = socket.getOutputStream(); + out.write(response.getBytes()); + out.flush(); + // kill the socket with HTTP response body incomplete + socket.close(); + return 1; + }).subscribeOn(Schedulers.boundedElastic()).subscribe(); + // + latch.await(); + HttpClient client = new VertxHttpClientBuilder(vertx).build(); + HttpRequest request = new HttpRequest(HttpMethod.GET, + new URL("http://localhost:" + ss.getLocalPort() + "/ioException")); + + StepVerifier.create(client.send(request)) + .verifyError(VertxException.class); + } + }); + } + + @Test + public void testConcurrentRequests() throws NoSuchAlgorithmException { + int numRequests = 100; // 100 = 1GB of data read + HttpClient client = new VertxHttpClientProvider().createInstance(); + byte[] expectedDigest = digest(LONG_BODY); + long expectedByteCount = (long) numRequests * LONG_BODY.getBytes(StandardCharsets.UTF_8).length; + + Mono numBytesMono = Flux.range(1, numRequests) + .parallel(10) + .runOn(Schedulers.boundedElastic()) + .flatMap(n -> Mono.fromCallable(() -> getResponse(client, "/long")).flatMapMany(response -> { + MessageDigest md = md5Digest(); + return response.getBody() + .doOnNext(buffer -> md.update(buffer.duplicate())) + .doOnComplete(() -> assertArrayEquals(expectedDigest, md.digest(), "wrong digest!")); + })) + .sequential() + .map(buffer -> (long) buffer.remaining()) + .reduce(Long::sum); + + StepVerifier.create(numBytesMono) + .expectNext(expectedByteCount) + .expectComplete() + .verify(Duration.ofSeconds(60)); + } + + @Test + public void validateHeadersReturnAsIs() { + HttpClient client = new VertxHttpClientProvider().createInstance(); + + final String singleValueHeaderName = "singleValue"; + final String singleValueHeaderValue = "value"; + + final String multiValueHeaderName = "Multi-value"; + final List multiValueHeaderValue = Arrays.asList("value1", "value2"); + + HttpHeaders headers = new HttpHeaders() + .set(singleValueHeaderName, singleValueHeaderValue) + .set(multiValueHeaderName, multiValueHeaderValue); + + StepVerifier.create(client.send(new HttpRequest(HttpMethod.GET, url(server, RETURN_HEADERS_AS_IS_PATH), + headers, Flux.empty()))) + .assertNext(response -> { + Assertions.assertEquals(200, response.getStatusCode()); + + HttpHeaders responseHeaders = response.getHeaders(); + HttpHeader singleValueHeader = responseHeaders.get(singleValueHeaderName); + assertEquals(singleValueHeaderName, singleValueHeader.getName()); + assertEquals(singleValueHeaderValue, singleValueHeader.getValue()); + + HttpHeader multiValueHeader = responseHeaders.get("Multi-value"); + assertEquals(multiValueHeaderName, multiValueHeader.getName()); + }) + .expectComplete() + .verify(Duration.ofSeconds(10)); + } + + private static MessageDigest md5Digest() { + try { + return MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + private static byte[] digest(String s) throws NoSuchAlgorithmException { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(s.getBytes(StandardCharsets.UTF_8)); + return md.digest(); + } + + private HttpResponse getResponse(String path) { + HttpClient client = new VertxHttpClientBuilder(vertx).build(); + return getResponse(client, path); + } + + private static HttpResponse getResponse(HttpClient client, String path) { + HttpRequest request = new HttpRequest(HttpMethod.GET, url(server, path)); + return client.send(request).block(); + } + + static URL url(WireMockServer server, String path) { + try { + return new URL("http://localhost:" + server.port() + path); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + } + + private static String createLongBody() { + StringBuilder builder = new StringBuilder("abcdefghijk".length() * 1000000); + for (int i = 0; i < 1000000; i++) { + builder.append("abcdefghijk"); + } + + return builder.toString(); + } + + private void checkBodyReceived(String expectedBody, String path) { + HttpClient client = new VertxHttpClientBuilder(vertx).build(); + StepVerifier.create(doRequest(client, path).getBodyAsByteArray()) + .assertNext(bytes -> assertEquals(expectedBody, new String(bytes, StandardCharsets.UTF_8))) + .verifyComplete(); + } + + private HttpResponse doRequest(HttpClient client, String path) { + HttpRequest request = new HttpRequest(HttpMethod.GET, url(server, path)); + return client.send(request).block(); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/deployment/src/test/resources/upload.txt b/extensions-support/azure-core-http-client-vertx/deployment/src/test/resources/upload.txt new file mode 100644 index 000000000000..ff3bb63948b4 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/deployment/src/test/resources/upload.txt @@ -0,0 +1 @@ +The quick brown fox jumps over the lazy dog \ No newline at end of file diff --git a/extensions/ipfs/pom.xml b/extensions-support/azure-core-http-client-vertx/pom.xml similarity index 86% rename from extensions/ipfs/pom.xml rename to extensions-support/azure-core-http-client-vertx/pom.xml index 043a1babb4c6..82f4083253b2 100644 --- a/extensions/ipfs/pom.xml +++ b/extensions-support/azure-core-http-client-vertx/pom.xml @@ -21,13 +21,13 @@ 4.0.0 org.apache.camel.quarkus - camel-quarkus-extensions + camel-quarkus-extensions-support 2.8.0-SNAPSHOT ../pom.xml - camel-quarkus-ipfs-parent - Camel Quarkus :: IPFS + camel-quarkus-support-azure-core-http-client-vertx-parent + Camel Quarkus :: Support :: Azure Core HTTP Client Vert.x pom diff --git a/extensions/ipfs/deployment/pom.xml b/extensions-support/azure-core-http-client-vertx/runtime/pom.xml similarity index 64% rename from extensions/ipfs/deployment/pom.xml rename to extensions-support/azure-core-http-client-vertx/runtime/pom.xml index b22d9abae291..0f7e2a0e0181 100644 --- a/extensions/ipfs/deployment/pom.xml +++ b/extensions-support/azure-core-http-client-vertx/runtime/pom.xml @@ -21,27 +21,48 @@ 4.0.0 org.apache.camel.quarkus - camel-quarkus-ipfs-parent + camel-quarkus-support-azure-core-http-client-vertx-parent 2.8.0-SNAPSHOT ../pom.xml - camel-quarkus-ipfs-deployment - Camel Quarkus :: IPFS :: Deployment + camel-quarkus-support-azure-core-http-client-vertx + Camel Quarkus :: Support :: Azure Core HTTP Client Vert.x :: Runtime + + + 2.8.0 + 2.8.0 + - org.apache.camel.quarkus - camel-quarkus-core-deployment + io.quarkus + quarkus-core + + + io.quarkus + quarkus-vertx + + + io.vertx + vertx-web-client + + + com.azure + azure-core org.apache.camel.quarkus - camel-quarkus-ipfs + camel-quarkus-support-azure-core + + io.quarkus + quarkus-bootstrap-maven-plugin + org.apache.maven.plugins maven-compiler-plugin @@ -57,5 +78,4 @@ - diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/BufferedVertxHttpResponse.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/BufferedVertxHttpResponse.java new file mode 100644 index 000000000000..344251fba70b --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/BufferedVertxHttpResponse.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.support.azure.core.http.vertx; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.ByteBuffer; + +import com.azure.core.http.HttpRequest; +import com.azure.core.http.HttpResponse; +import io.vertx.core.buffer.Buffer; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +public final class BufferedVertxHttpResponse extends VertxHttpAsyncResponse { + + private final Buffer body; + + BufferedVertxHttpResponse(HttpRequest request, io.vertx.ext.web.client.HttpResponse response, Buffer body) { + super(request, response); + this.body = body; + } + + @Override + public Flux getBody() { + return Flux.defer(() -> { + if (this.body == null || this.body.length() == 0) { + return Flux.empty(); + } + return Flux.just(this.body.getByteBuf().nioBuffer()); + }); + } + + @Override + public Mono getBodyAsByteArray() { + return Mono.defer(() -> { + if (this.body == null || this.body.length() == 0) { + return Mono.empty(); + } + return Mono.just(this.body.getBytes()); + }); + } + + @Override + public Mono getBodyAsInputStream() { + return Mono.defer(() -> { + if (this.body == null || this.body.length() == 0) { + return Mono.empty(); + } + return Mono.just(new ByteArrayInputStream(this.body.getBytes())); + }); + } + + @Override + public HttpResponse buffer() { + return this; + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpAsyncResponse.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpAsyncResponse.java new file mode 100644 index 000000000000..740c44257ee3 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpAsyncResponse.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.nio.ByteBuffer; + +import com.azure.core.http.HttpRequest; +import io.vertx.core.buffer.Buffer; +import io.vertx.ext.web.client.HttpResponse; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +public class VertxHttpAsyncResponse extends VertxHttpResponse { + + VertxHttpAsyncResponse(HttpRequest request, HttpResponse response) { + super(request, response); + } + + @Override + public Flux getBody() { + Buffer responseBody = getVertxHttpResponse().bodyAsBuffer(); + if (responseBody == null || responseBody.length() == 0) { + return Flux.empty(); + } + return Flux.just(responseBody.getByteBuf().nioBuffer()); + } + + @Override + public Mono getBodyAsByteArray() { + return Mono.fromCallable(() -> { + Buffer responseBody = getVertxHttpResponse().bodyAsBuffer(); + if (responseBody == null || responseBody.length() == 0) { + return null; + } + return responseBody.getBytes(); + }); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClient.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClient.java new file mode 100644 index 000000000000..5500a7d4c6cb --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClient.java @@ -0,0 +1,133 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.io.Closeable; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.ByteBuffer; +import java.util.Objects; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpMethod; +import com.azure.core.http.HttpRequest; +import com.azure.core.http.HttpResponse; +import com.azure.core.util.Context; +import io.vertx.core.buffer.Buffer; +import io.vertx.ext.web.client.WebClient; +import io.vertx.ext.web.client.WebClientOptions; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +/** + * {@link HttpClient} implementation for the Vert.x {@link WebClient}. + */ +public class VertxHttpClient implements HttpClient, Closeable { + + private final WebClient client; + private final WebClientOptions options; + + public VertxHttpClient(WebClient client, WebClientOptions options) { + Objects.requireNonNull(client, "client cannot be null"); + Objects.requireNonNull(client, "options cannot be null"); + this.client = client; + this.options = options; + } + + @Override + public Mono send(HttpRequest request) { + return send(request, Context.NONE); + } + + @Override + public Mono send(HttpRequest request, Context context) { + boolean eagerlyReadResponse = (boolean) context.getData("azure-eagerly-read-response").orElse(false); + return Mono.create(sink -> sink.onRequest(value -> { + toVertxHttpRequest(request).subscribe(vertxHttpRequest -> { + vertxHttpRequest.send(new VertxHttpResponseHandler(request, sink, eagerlyReadResponse)); + }, sink::error); + })); + } + + public void close() { + this.client.close(); + } + + // Exposed for testing + public WebClientOptions getWebClientOptions() { + return options; + } + + private Mono toVertxHttpRequest(HttpRequest request) { + return Mono.from(convertBodyToBuffer(request)) + .map(buffer -> { + HttpMethod httpMethod = request.getHttpMethod(); + io.vertx.core.http.HttpMethod requestMethod = io.vertx.core.http.HttpMethod.valueOf(httpMethod.name()); + + URL url = request.getUrl(); + if (url.getPath().isEmpty()) { + try { + // Azure API documentation states: + // + // The URI must always include the forward slash (/) to separate the host name + // from the path and query portions of the URI. + // + url = new URL(url.getProtocol(), url.getHost(), url.getPort(), "/" + url.getFile()); + } catch (MalformedURLException e) { + throw new IllegalStateException(e); + } + } + + io.vertx.ext.web.client.HttpRequest delegate = client + .requestAbs(requestMethod, url.toString()); + + if (request.getHeaders() != null) { + request.getHeaders() + .stream() + .forEach(httpHeader -> delegate.putHeader(httpHeader.getName(), + httpHeader.getValuesList())); + } + + return new VertxHttpRequest(delegate, buffer); + }); + } + + private Mono convertBodyToBuffer(HttpRequest request) { + return Mono.using(() -> Buffer.buffer(), + buffer -> getBody(request).reduce(buffer, (b, byteBuffer) -> { + for (int i = 0; i < byteBuffer.limit(); i++) { + b.appendByte(byteBuffer.get(i)); + } + return b; + }), buffer -> buffer.getClass()); + } + + private Flux getBody(HttpRequest request) { + long contentLength = 0; + String contentLengthHeader = request.getHeaders().getValue("content-length"); + if (contentLengthHeader != null) { + contentLength = Long.parseLong(contentLengthHeader); + } + + Flux body = request.getBody(); + if (body == null || contentLength <= 0) { + body = Flux.just(Buffer.buffer().getByteBuf().nioBuffer()); + } + + return body; + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilder.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilder.java new file mode 100644 index 000000000000..0cb5a145cb38 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientBuilder.java @@ -0,0 +1,250 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.net.InetSocketAddress; +import java.time.Duration; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.ProxyOptions; +import com.azure.core.util.Configuration; +import com.azure.core.util.logging.ClientLogger; +import io.vertx.core.Vertx; +import io.vertx.core.net.ProxyType; +import io.vertx.ext.web.client.WebClient; +import io.vertx.ext.web.client.WebClientOptions; + +import static com.azure.core.util.Configuration.PROPERTY_AZURE_REQUEST_CONNECT_TIMEOUT; +import static com.azure.core.util.Configuration.PROPERTY_AZURE_REQUEST_READ_TIMEOUT; +import static com.azure.core.util.Configuration.PROPERTY_AZURE_REQUEST_WRITE_TIMEOUT; +import static com.azure.core.util.CoreUtils.getDefaultTimeoutFromEnvironment; + +/** + * Builds a {@link VertxHttpClient}. + */ +public class VertxHttpClientBuilder { + + private static final long DEFAULT_CONNECT_TIMEOUT; + private static final long DEFAULT_WRITE_TIMEOUT; + private static final long DEFAULT_READ_TIMEOUT; + + static { + ClientLogger logger = new ClientLogger(VertxHttpClientBuilder.class); + Configuration configuration = Configuration.getGlobalConfiguration(); + DEFAULT_CONNECT_TIMEOUT = getDefaultTimeoutFromEnvironment(configuration, + PROPERTY_AZURE_REQUEST_CONNECT_TIMEOUT, Duration.ofSeconds(10), logger).toMillis(); + DEFAULT_WRITE_TIMEOUT = getDefaultTimeoutFromEnvironment(configuration, PROPERTY_AZURE_REQUEST_WRITE_TIMEOUT, + Duration.ofSeconds(60), logger).toSeconds(); + DEFAULT_READ_TIMEOUT = getDefaultTimeoutFromEnvironment(configuration, PROPERTY_AZURE_REQUEST_READ_TIMEOUT, + Duration.ofSeconds(60), logger).toSeconds(); + } + + private Duration readIdleTimeout; + private Duration writeIdleTimeout; + private Duration connectTimeout; + private Duration idleTimeout = Duration.ofSeconds(60); + private ProxyOptions proxyOptions; + private Configuration configuration; + private WebClientOptions webClientOptions; + private final Vertx vertx; + + /** + * Creates VertxAsyncHttpClientBuilder. + * + * @param vertx The {@link Vertx} instance to pass to the {@link WebClient}. + */ + public VertxHttpClientBuilder(Vertx vertx) { + Objects.requireNonNull(vertx, "vertx cannot be null"); + this.vertx = vertx; + } + + /** + * Sets the read idle timeout. + * + * The default read idle timeout is 60 seconds. + * + * @param readIdleTimeout the read idle timeout + * @return the updated VertxAsyncHttpClientBuilder object + */ + public VertxHttpClientBuilder readIdleTimeout(Duration readIdleTimeout) { + this.readIdleTimeout = readIdleTimeout; + return this; + } + + /** + * Sets the write idle timeout. + * + * The default read idle timeout is 60 seconds. + * + * @param writeIdleTimeout the write idle timeout + * @return the updated VertxAsyncHttpClientBuilder object + */ + public VertxHttpClientBuilder writeIdleTimeout(Duration writeIdleTimeout) { + this.writeIdleTimeout = writeIdleTimeout; + return this; + } + + /** + * Sets the connect timeout. + * + * The default connect timeout is 10 seconds. + * + * @param connectTimeout the connection timeout + * @return the updated VertxAsyncHttpClientBuilder object + */ + public VertxHttpClientBuilder connectTimeout(Duration connectTimeout) { + this.connectTimeout = connectTimeout; + return this; + } + + /** + * Sets the connection idle timeout. + * + * The default connect timeout is 60 seconds. + * + * @param idleTimeout the connection idle timeout + * @return the updated VertxAsyncHttpClientBuilder object + */ + public VertxHttpClientBuilder idleTimeout(Duration idleTimeout) { + this.idleTimeout = idleTimeout; + return this; + } + + /** + * Sets proxy configuration. + * + * @param proxyOptions The proxy configuration to use. + * @return The updated VertxAsyncHttpClientBuilder object. + */ + public VertxHttpClientBuilder proxy(ProxyOptions proxyOptions) { + this.proxyOptions = proxyOptions; + return this; + } + + /** + * Sets the configuration store that is used during construction of the HTTP client. + *

+ * The default configuration store is a clone of the {@link Configuration#getGlobalConfiguration() global + * configuration store}, use {@link Configuration#NONE} to bypass using configuration settings during construction. + * + * @param configuration The configuration store. + * @return The updated VertxAsyncHttpClientBuilder object. + */ + public VertxHttpClientBuilder configuration(Configuration configuration) { + this.configuration = configuration; + return this; + } + + /** + * Sets custom {@link WebClientOptions} for the constructed {@link WebClient}. + * + * @param webClientOptions The options of the web client. + * @return The updated VertxAsyncHttpClientBuilder object + */ + public VertxHttpClientBuilder webClientOptions(WebClientOptions webClientOptions) { + this.webClientOptions = webClientOptions; + return this; + } + + /** + * Creates a new Vert.x {@link com.azure.core.http.HttpClient} instance on every call, using the + * configuration set in the builder at the time of the build method call. + * + * @return A new Vert.x backed {@link com.azure.core.http.HttpClient} instance. + */ + public HttpClient build() { + if (this.webClientOptions == null) { + this.webClientOptions = new WebClientOptions(); + } + + if (this.connectTimeout != null) { + this.webClientOptions.setConnectTimeout((int) this.connectTimeout.toMillis()); + } else { + this.webClientOptions.setConnectTimeout((int) DEFAULT_CONNECT_TIMEOUT); + } + + if (this.readIdleTimeout != null) { + this.webClientOptions.setReadIdleTimeout((int) this.readIdleTimeout.toSeconds()); + } else { + this.webClientOptions.setReadIdleTimeout((int) DEFAULT_READ_TIMEOUT); + } + + if (this.writeIdleTimeout != null) { + this.webClientOptions.setWriteIdleTimeout((int) this.writeIdleTimeout.toSeconds()); + } else { + this.webClientOptions.setWriteIdleTimeout((int) DEFAULT_WRITE_TIMEOUT); + } + + this.webClientOptions.setIdleTimeout((int) this.idleTimeout.toSeconds()); + + Configuration buildConfiguration = (configuration == null) + ? Configuration.getGlobalConfiguration() + : configuration; + + ProxyOptions buildProxyOptions = (this.proxyOptions == null && buildConfiguration != Configuration.NONE) + ? ProxyOptions.fromConfiguration(buildConfiguration, true) + : this.proxyOptions; + + if (buildProxyOptions != null) { + io.vertx.core.net.ProxyOptions vertxProxyOptions = new io.vertx.core.net.ProxyOptions(); + InetSocketAddress proxyAddress = buildProxyOptions.getAddress(); + + if (proxyAddress != null) { + vertxProxyOptions.setHost(proxyAddress.getHostName()); + vertxProxyOptions.setPort(proxyAddress.getPort()); + } + + String proxyUsername = buildProxyOptions.getUsername(); + String proxyPassword = buildProxyOptions.getPassword(); + if (proxyUsername != null && proxyPassword != null) { + vertxProxyOptions.setUsername(proxyUsername); + vertxProxyOptions.setPassword(proxyPassword); + } + + ProxyOptions.Type type = buildProxyOptions.getType(); + if (type != null) { + try { + ProxyType proxyType = ProxyType.valueOf(type.name()); + vertxProxyOptions.setType(proxyType); + } catch (IllegalArgumentException e) { + throw new IllegalStateException("Unknown Vert.x proxy type: " + type.name(), e); + } + } + + String nonProxyHostsString = proxyOptions.getNonProxyHosts(); + if (nonProxyHostsString != null) { + // Undo Azure ProxyOptions string sanitization since Vert.x has its own logic + List nonProxyHosts = Arrays.asList(nonProxyHostsString.split("\\|")) + .stream() + .map(host -> host.replaceAll("\\\\E", "") + .replaceAll("\\\\Q", "") + .replaceAll("\\.\\.", "")) + .collect(Collectors.toList()); + webClientOptions.setNonProxyHosts(nonProxyHosts); + } + + webClientOptions.setProxyOptions(vertxProxyOptions); + } + + WebClient client = WebClient.create(this.vertx, this.webClientOptions); + return new VertxHttpClient(client, this.webClientOptions); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProvider.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProvider.java new file mode 100644 index 000000000000..73120d341be9 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpClientProvider.java @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.util.Set; + +import javax.enterprise.inject.spi.Bean; +import javax.enterprise.inject.spi.BeanManager; +import javax.enterprise.inject.spi.CDI; + +import com.azure.core.http.HttpClient; +import com.azure.core.http.HttpClientProvider; +import com.azure.core.util.HttpClientOptions; +import io.vertx.core.Vertx; +import io.vertx.ext.web.client.WebClient; + +/** + * {@link HttpClientProvider} backed by the Vert.x {@link WebClient} + */ +public class VertxHttpClientProvider implements HttpClientProvider { + + @Override + public HttpClient createInstance() { + return createInstance(null); + } + + @Override + public HttpClient createInstance(HttpClientOptions clientOptions) { + VertxHttpClientBuilder builder = new VertxHttpClientBuilder(getVertx()); + if (clientOptions != null) { + builder = builder.proxy(clientOptions.getProxyOptions()) + .configuration(clientOptions.getConfiguration()) + .connectTimeout(clientOptions.getConnectTimeout()) + .idleTimeout(clientOptions.getConnectionIdleTimeout()) + .writeIdleTimeout(clientOptions.getWriteTimeout()) + .readIdleTimeout(clientOptions.getReadTimeout()); + } + return builder.build(); + } + + /** + * Obtains a reference to the Quarkus managed {@link Vertx} instance + * + * @return The Quarkus managed {@link Vertx} instance + */ + private static final Vertx getVertx() { + BeanManager beanManager = CDI.current().getBeanManager(); + Set> beans = beanManager.getBeans(Vertx.class); + if (beans.isEmpty()) { + throw new IllegalStateException("Failed to discover Vert.x bean from the CDI bean manager"); + } + + if (beans.size() > 1) { + throw new IllegalStateException( + "Expected 1 Vert.x bean in the CDI bean manager but " + beans.size() + " were found"); + } + + Bean bean = beanManager.resolve(beans); + Object reference = beanManager.getReference(bean, Vertx.class, beanManager.createCreationalContext(bean)); + return Vertx.class.cast(reference); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpRequest.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpRequest.java new file mode 100644 index 000000000000..e6f9e6084805 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpRequest.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import io.vertx.core.buffer.Buffer; +import io.vertx.ext.web.client.HttpRequest; + +/** + * Holds a Vert.x {@link HttpRequest} together with a body payload. + */ +class VertxHttpRequest { + private final Buffer body; + private final HttpRequest delegate; + + public VertxHttpRequest(HttpRequest delegate, Buffer body) { + this.delegate = delegate; + this.body = body; + } + + public void send(VertxHttpResponseHandler handler) { + delegate.sendBuffer(body, handler); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponse.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponse.java new file mode 100644 index 000000000000..7d7196493de8 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponse.java @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import java.nio.charset.Charset; + +import com.azure.core.http.HttpHeaders; +import com.azure.core.http.HttpRequest; +import com.azure.core.http.HttpResponse; +import com.azure.core.util.CoreUtils; +import io.vertx.core.MultiMap; +import reactor.core.publisher.Mono; + +abstract class VertxHttpResponse extends HttpResponse { + + private final io.vertx.ext.web.client.HttpResponse response; + private final HttpHeaders headers; + + VertxHttpResponse(HttpRequest request, io.vertx.ext.web.client.HttpResponse response) { + super(request); + this.response = response; + this.headers = fromVertxHttpHeaders(response.headers()); + } + + private HttpHeaders fromVertxHttpHeaders(MultiMap headers) { + HttpHeaders azureHeaders = new HttpHeaders(); + headers.names().forEach(name -> azureHeaders.set(name, headers.getAll(name))); + return azureHeaders; + } + + protected io.vertx.ext.web.client.HttpResponse getVertxHttpResponse() { + return this.response; + } + + @Override + public int getStatusCode() { + return response.statusCode(); + } + + @Override + public String getHeaderValue(String name) { + return this.headers.getValue(name); + } + + @Override + public HttpHeaders getHeaders() { + return this.headers; + } + + @Override + public final Mono getBodyAsString() { + return getBodyAsByteArray().map(bytes -> CoreUtils.bomAwareToString(bytes, getHeaderValue("Content-Type"))); + } + + @Override + public final Mono getBodyAsString(Charset charset) { + return Mono.fromCallable(() -> this.response.bodyAsString(charset.toString())); + } +} diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponseHandler.java b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponseHandler.java new file mode 100644 index 000000000000..9e33e0b38685 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/java/org/apache/camel/quarkus/support/azure/core/http/vertx/VertxHttpResponseHandler.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.azure.core.http.vertx; + +import com.azure.core.http.HttpRequest; +import io.vertx.core.AsyncResult; +import io.vertx.core.Handler; +import io.vertx.core.buffer.Buffer; +import io.vertx.ext.web.client.HttpResponse; +import reactor.core.publisher.MonoSink; + +/** + * {@link Handler} for Azure HTTP responses. + */ +class VertxHttpResponseHandler implements Handler>> { + + private final HttpRequest request; + private final MonoSink sink; + private final boolean eagerlyReadResponse; + + VertxHttpResponseHandler(HttpRequest request, MonoSink sink, + boolean eagerlyReadResponse) { + this.request = request; + this.sink = sink; + this.eagerlyReadResponse = eagerlyReadResponse; + } + + @Override + public void handle(AsyncResult> event) { + if (event.succeeded()) { + VertxHttpResponse response; + if (eagerlyReadResponse) { + io.vertx.ext.web.client.HttpResponse originalResponse = event.result(); + response = new BufferedVertxHttpResponse(request, originalResponse, originalResponse.body()); + } else { + response = new VertxHttpAsyncResponse(request, event.result()); + } + sink.success(response); + } else { + if (event.cause() != null) { + sink.error(event.cause()); + } + } + } +} diff --git a/extensions/ipfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml similarity index 68% rename from extensions/ipfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml rename to extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml index 786e8c8b634c..5f875c0b5a1a 100644 --- a/extensions/ipfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -15,17 +15,13 @@ # limitations under the License. # -# This is a generated file. Do not edit directly! -# To re-generate, run the following command from the top level directory: -# -# mvn -N cq:update-quarkus-metadata -# --- -name: "Camel IPFS" -description: "Access the Interplanetary File System (IPFS)" +name: "Camel Quarkus Support Azure Core HTTP Client Vert.x" +description: "Camel Quarkus Support Azure Core HTTP Client Vert.x" metadata: - guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/ipfs.html" + unlisted: true + keywords: + - "camel" + guide: "https://quarkus.io/guides/camel" categories: - - "integration" - status: - - "stable" + - "integration" \ No newline at end of file diff --git a/extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/services/com.azure.core.http.HttpClientProvider b/extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/services/com.azure.core.http.HttpClientProvider new file mode 100644 index 000000000000..8487b59c8fa5 --- /dev/null +++ b/extensions-support/azure-core-http-client-vertx/runtime/src/main/resources/META-INF/services/com.azure.core.http.HttpClientProvider @@ -0,0 +1 @@ +org.apache.camel.quarkus.support.azure.core.http.vertx.VertxHttpClientProvider \ No newline at end of file diff --git a/extensions-support/azure-core/deployment/pom.xml b/extensions-support/azure-core/deployment/pom.xml index 91a5018c6040..b762e0a96122 100644 --- a/extensions-support/azure-core/deployment/pom.xml +++ b/extensions-support/azure-core/deployment/pom.xml @@ -35,12 +35,12 @@ quarkus-core-deployment - org.apache.camel.quarkus - camel-quarkus-support-jackson-dataformat-xml-deployment + io.quarkus + quarkus-netty-deployment org.apache.camel.quarkus - camel-quarkus-support-reactor-netty-deployment + camel-quarkus-support-jackson-dataformat-xml-deployment org.apache.camel.quarkus diff --git a/extensions-support/azure-core/runtime/pom.xml b/extensions-support/azure-core/runtime/pom.xml index 701cd25c7955..f75df1e00797 100644 --- a/extensions-support/azure-core/runtime/pom.xml +++ b/extensions-support/azure-core/runtime/pom.xml @@ -34,34 +34,28 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus quarkus-core - org.apache.camel.quarkus - camel-quarkus-support-jackson-dataformat-xml + io.quarkus + quarkus-netty org.apache.camel.quarkus - camel-quarkus-support-reactor-netty + camel-quarkus-support-jackson-dataformat-xml com.azure azure-core + + + com.azure + azure-core-http-netty + + diff --git a/extensions-support/bouncycastle/runtime/pom.xml b/extensions-support/bouncycastle/runtime/pom.xml index e38413972e33..42da6a35f7bd 100644 --- a/extensions-support/bouncycastle/runtime/pom.xml +++ b/extensions-support/bouncycastle/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/commons-logging/runtime/pom.xml b/extensions-support/commons-logging/runtime/pom.xml index d081226b0c4a..22847ed5807d 100644 --- a/extensions-support/commons-logging/runtime/pom.xml +++ b/extensions-support/commons-logging/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-commons-logging Camel Quarkus :: Support :: Commons Logging :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/consul-client/deployment/src/main/java/org/apache/camel/quarkus/support/consul/client/deployment/ConsulClientSupportProcessor.java b/extensions-support/consul-client/deployment/src/main/java/org/apache/camel/quarkus/support/consul/client/deployment/ConsulClientSupportProcessor.java index 256e6fe8c648..96bab3af90d8 100644 --- a/extensions-support/consul-client/deployment/src/main/java/org/apache/camel/quarkus/support/consul/client/deployment/ConsulClientSupportProcessor.java +++ b/extensions-support/consul-client/deployment/src/main/java/org/apache/camel/quarkus/support/consul/client/deployment/ConsulClientSupportProcessor.java @@ -16,6 +16,7 @@ */ package org.apache.camel.quarkus.support.consul.client.deployment; +import java.util.regex.Pattern; import java.util.stream.Stream; import io.quarkus.deployment.annotations.BuildProducer; @@ -40,6 +41,8 @@ class ConsulClientSupportProcessor { private static final DotName DOT_NAME_IMMUTABLE_MAP = DotName.createSimple( "com.google.common.collect.ImmutableMap"); + private static final Pattern CLIENT_API_PATTERN = Pattern.compile("com\\.orbitz\\.consul\\..*Client\\$Api"); + @BuildStep AdditionalApplicationArchiveMarkerBuildItem applicationArchiveMarkers() { return new AdditionalApplicationArchiveMarkerBuildItem("com/orbitz/consul"); @@ -68,11 +71,12 @@ void reflectiveClasses(CombinedIndexBuildItem index, BuildProducer proxies) { - index.getIndex().getAllKnownSubclasses(DotName.createSimple("com.orbitz.consul.BaseClient")) + index.getIndex() + .getKnownClasses() .stream() .map(ClassInfo::name) .map(DotName::toString) - .map(name -> name + "$Api") + .filter(className -> CLIENT_API_PATTERN.matcher(className).matches()) .map(NativeImageProxyDefinitionBuildItem::new) .forEach(proxies::produce); } diff --git a/extensions-support/consul-client/runtime/pom.xml b/extensions-support/consul-client/runtime/pom.xml index afc3877748af..444b1a823c78 100644 --- a/extensions-support/consul-client/runtime/pom.xml +++ b/extensions-support/consul-client/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-consul-client Camel Quarkus :: Support :: Consul Client :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus @@ -48,24 +36,6 @@ com.orbitz.consul consul-client - - - com.google.code.findbugs - jsr305 - - - com.google.errorprone - error_prone_annotations - - - com.google.j2objc - j2objc-annotations - - - org.codehaus.mojo - animal-sniffer-annotations - - org.apache.camel.quarkus diff --git a/extensions-support/debezium/runtime/pom.xml b/extensions-support/debezium/runtime/pom.xml index 494e2d806777..5b236aaf99d3 100644 --- a/extensions-support/debezium/runtime/pom.xml +++ b/extensions-support/debezium/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus @@ -62,16 +50,6 @@ org.apache.camel camel-debezium-common - - - org.javassist - javassist - - - io.debezium - * - - io.debezium @@ -81,6 +59,10 @@ io.debezium debezium-embedded + + javax.ws.rs + javax.ws.rs-api + org.apache.kafka kafka-log4j-appender diff --git a/extensions-support/google-http-client/runtime/pom.xml b/extensions-support/google-http-client/runtime/pom.xml index c540cac5b2f8..2e9fce279165 100644 --- a/extensions-support/google-http-client/runtime/pom.xml +++ b/extensions-support/google-http-client/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/httpclient/runtime/pom.xml b/extensions-support/httpclient/runtime/pom.xml index 31d83c594b4f..9efb77f093c3 100644 --- a/extensions-support/httpclient/runtime/pom.xml +++ b/extensions-support/httpclient/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-httpclient Camel Quarkus :: Support :: Apache HTTP Client :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/jackson-dataformat-xml/runtime/pom.xml b/extensions-support/jackson-dataformat-xml/runtime/pom.xml index 2db656cfd5f5..18a7acc00852 100644 --- a/extensions-support/jackson-dataformat-xml/runtime/pom.xml +++ b/extensions-support/jackson-dataformat-xml/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-jackson-dataformat-xml Camel Quarkus :: Support :: Jackson Dataformat XML :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/jetty/runtime/pom.xml b/extensions-support/jetty/runtime/pom.xml index ea1de9fff2b7..8e5fe63ddf1c 100644 --- a/extensions-support/jetty/runtime/pom.xml +++ b/extensions-support/jetty/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-jetty Camel Quarkus :: Support :: Jetty :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/mail/runtime/pom.xml b/extensions-support/mail/runtime/pom.xml index 22a43a75a03e..d11332448924 100644 --- a/extensions-support/mail/runtime/pom.xml +++ b/extensions-support/mail/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/mongodb/runtime/pom.xml b/extensions-support/mongodb/runtime/pom.xml index e87175fac6e2..0b3d8653286a 100644 --- a/extensions-support/mongodb/runtime/pom.xml +++ b/extensions-support/mongodb/runtime/pom.xml @@ -36,18 +36,6 @@ true - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml index 4a8cad3f5bcc..2232c9e1165c 100644 --- a/extensions-support/pom.xml +++ b/extensions-support/pom.xml @@ -38,6 +38,7 @@ aws aws2 azure-core + azure-core-http-client-vertx bouncycastle commons-logging consul-client @@ -59,6 +60,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom @@ -68,4 +76,5 @@ + diff --git a/extensions-support/reactor-netty/runtime/pom.xml b/extensions-support/reactor-netty/runtime/pom.xml index 26b35002ba15..12ca7080c155 100644 --- a/extensions-support/reactor-netty/runtime/pom.xml +++ b/extensions-support/reactor-netty/runtime/pom.xml @@ -34,18 +34,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/retrofit/runtime/pom.xml b/extensions-support/retrofit/runtime/pom.xml index 509a5d7803fc..1017d33ed02b 100644 --- a/extensions-support/retrofit/runtime/pom.xml +++ b/extensions-support/retrofit/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-retrofit Camel Quarkus :: Support :: Retrofit :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/spring/beans/pom.xml b/extensions-support/spring/beans/pom.xml index 0c56e8e8aa34..d5115fc02164 100644 --- a/extensions-support/spring/beans/pom.xml +++ b/extensions-support/spring/beans/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-spring-beans Camel Quarkus :: Support :: Spring :: Beans - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/spring/context/pom.xml b/extensions-support/spring/context/pom.xml index 946645e72ee2..f573f4499175 100644 --- a/extensions-support/spring/context/pom.xml +++ b/extensions-support/spring/context/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-spring-context Camel Quarkus :: Support :: Spring :: Context - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/spring/core/pom.xml b/extensions-support/spring/core/pom.xml index 2da0bd64e700..3653bebc9354 100644 --- a/extensions-support/spring/core/pom.xml +++ b/extensions-support/spring/core/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-spring-core Camel Quarkus :: Support :: Spring :: Core - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.springframework diff --git a/extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringKotlinProcessor.java b/extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringKotlinProcessor.java index ebf81d71dbfe..d6f6eeb7e15b 100644 --- a/extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringKotlinProcessor.java +++ b/extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringKotlinProcessor.java @@ -16,54 +16,57 @@ */ package org.apache.camel.quarkus.support.spring.deployment; +import io.quarkus.bootstrap.model.ApplicationModel; import io.quarkus.deployment.GeneratedClassGizmoAdaptor; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.GeneratedClassBuildItem; +import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem; import io.quarkus.deployment.pkg.steps.NativeBuild; import io.quarkus.gizmo.ClassCreator; public class SpringKotlinProcessor { @BuildStep(onlyIf = NativeBuild.class) - void generateKotlinReflectClasses(BuildProducer generatedClass) { + void generateKotlinReflectClasses( + BuildProducer generatedClass, + CurateOutcomeBuildItem curateOutcome) { + // TODO: Investigate removing this. See https://github.com/apache/camel-quarkus/issues/534 // The native image build fails with a NoClassDefFoundError without this. Possibly similar to https://github.com/oracle/graal/issues/656. - try { - Class.forName("kotlin.reflect.KParameter"); - } catch (ClassNotFoundException e) { - ClassCreator.builder() - .className("kotlin.reflect.KParameter") - .classOutput(new GeneratedClassGizmoAdaptor(generatedClass, false)) - .setFinal(true) - .superClass(Object.class) - .build() - .close(); + // If Kotlin is on the application classpath we don't need to do anything. + // This check is preferable to trying to discover Kotlin via Class.forname etc, + // which is not reliable for Gradle builds as kotlin-stdlib is part of the Gradle distribution. + // Thus such classes will be discoverable at build time but not at runtime, which leads to native build issues. + ApplicationModel model = curateOutcome.getApplicationModel(); + if (isKotlinStdlibAvailable(model)) { + return; } - try { - Class.forName("kotlin.reflect.KCallable"); - } catch (ClassNotFoundException e) { - ClassCreator.builder() - .className("kotlin.reflect.KCallable") - .classOutput(new GeneratedClassGizmoAdaptor(generatedClass, false)) - .setFinal(false) - .superClass(Object.class) - .build() - .close(); - } + createClass(generatedClass, "kotlin.reflect.KParameter", Object.class.getName(), true); + createClass(generatedClass, "kotlin.reflect.KCallable", Object.class.getName(), false); + createClass(generatedClass, "kotlin.reflect.KFunction", "kotlin.reflect.KCallable", false); + } - try { - Class.forName("kotlin.reflect.KFunction"); - } catch (ClassNotFoundException e) { - ClassCreator.builder() - .className("kotlin.reflect.KFunction") - .classOutput(new GeneratedClassGizmoAdaptor(generatedClass, false)) - .setFinal(false) - .superClass("kotlin.reflect.KCallable") - .build() - .close(); - } + private boolean isKotlinStdlibAvailable(ApplicationModel applicationModel) { + return applicationModel + .getDependencies() + .stream() + .anyMatch(dependency -> dependency.getArtifactId().startsWith("kotlin-stdlib")); + } + + private void createClass( + BuildProducer generatedClass, + String clasName, + String superClassName, + boolean isFinal) { + ClassCreator.builder() + .className(clasName) + .classOutput(new GeneratedClassGizmoAdaptor(generatedClass, false)) + .setFinal(isFinal) + .superClass(superClassName) + .build() + .close(); } } diff --git a/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java b/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java index 2ae0fd92dcd1..c14a16d814c9 100644 --- a/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java +++ b/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java @@ -23,6 +23,7 @@ import java.nio.file.Paths; import java.util.jar.Attributes; import java.util.jar.Manifest; +import java.util.regex.Pattern; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; @@ -66,8 +67,9 @@ public void verifySourcesJarManifest() throws Exception { throw new IllegalStateException("The sources JAR location does not exist: " + file.getAbsolutePath()); } + final Pattern pattern = Pattern.compile("^camel-quarkus-support-spring-" + module + "-.*-sources.jar"); File[] files = file - .listFiles(f -> f.getName().matches("^camel-quarkus-support-spring-" + module + "-.*-sources.jar")); + .listFiles(f -> pattern.matcher(f.getName()).matches()); if (files.length == 1) { URL url = new URL("jar:file:" + files[0].getAbsolutePath() + "!/"); diff --git a/extensions-support/spring/runtime/pom.xml b/extensions-support/spring/runtime/pom.xml index b3f47f9bb47a..4119453f8875 100644 --- a/extensions-support/spring/runtime/pom.xml +++ b/extensions-support/spring/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-spring Camel Quarkus :: Support :: Spring :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/stax/runtime/pom.xml b/extensions-support/stax/runtime/pom.xml index 257349aefa6d..5e0f9fa9edaa 100644 --- a/extensions-support/stax/runtime/pom.xml +++ b/extensions-support/stax/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-stax Camel Quarkus :: Support :: StAX :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/webhook/runtime/pom.xml b/extensions-support/webhook/runtime/pom.xml index a8f59aa55f30..82ea25c74751 100644 --- a/extensions-support/webhook/runtime/pom.xml +++ b/extensions-support/webhook/runtime/pom.xml @@ -29,18 +29,6 @@ camel-quarkus-support-webhook Camel Quarkus :: Support :: Webhook :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions-support/xalan/runtime/pom.xml b/extensions-support/xalan/runtime/pom.xml index 99ae51d61a4d..bcc89582869b 100644 --- a/extensions-support/xalan/runtime/pom.xml +++ b/extensions-support/xalan/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-xalan Camel Quarkus :: Support :: Xalan :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions-support/xstream/runtime/pom.xml b/extensions-support/xstream/runtime/pom.xml index 28ff8fb13148..36e34334af57 100644 --- a/extensions-support/xstream/runtime/pom.xml +++ b/extensions-support/xstream/runtime/pom.xml @@ -28,18 +28,6 @@ camel-quarkus-support-xstream Camel Quarkus :: Support :: XStream :: Runtime - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/activemq/deployment/pom.xml b/extensions/activemq/deployment/pom.xml index b4e33a914004..4effc601ab8a 100644 --- a/extensions/activemq/deployment/pom.xml +++ b/extensions/activemq/deployment/pom.xml @@ -37,13 +37,6 @@ org.apache.camel.quarkus camel-quarkus-jms-deployment - - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - org.apache.camel.quarkus diff --git a/extensions/activemq/runtime/pom.xml b/extensions/activemq/runtime/pom.xml index 37146917976d..ac68348f9310 100644 --- a/extensions/activemq/runtime/pom.xml +++ b/extensions/activemq/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,29 +42,10 @@ org.apache.camel.quarkus camel-quarkus-jms - - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - org.apache.camel camel-activemq - - - - - org.apache.activemq - activemq-broker - - - org.apache.geronimo.specs - geronimo-jms_1.1_spec - - jakarta.jms diff --git a/extensions/ahc-ws/runtime/pom.xml b/extensions/ahc-ws/runtime/pom.xml index e338e2faafd4..18d8f1e5fa8c 100644 --- a/extensions/ahc-ws/runtime/pom.xml +++ b/extensions/ahc-ws/runtime/pom.xml @@ -35,18 +35,6 @@ true - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ahc/runtime/pom.xml b/extensions/ahc/runtime/pom.xml index f4b2de1cb597..77ef53624f7a 100644 --- a/extensions/ahc/runtime/pom.xml +++ b/extensions/ahc/runtime/pom.xml @@ -35,18 +35,6 @@ true - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/amqp/deployment/pom.xml b/extensions/amqp/deployment/pom.xml index f1c34a193721..645bfa5ff9d6 100644 --- a/extensions/amqp/deployment/pom.xml +++ b/extensions/amqp/deployment/pom.xml @@ -34,7 +34,7 @@ org.amqphub.quarkus quarkus-qpid-jms-deployment - + org.apache.geronimo.specs geronimo-jms_2.0_spec diff --git a/extensions/amqp/runtime/pom.xml b/extensions/amqp/runtime/pom.xml index 2978811403c5..4829229bf5f3 100644 --- a/extensions/amqp/runtime/pom.xml +++ b/extensions/amqp/runtime/pom.xml @@ -34,24 +34,12 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.amqphub.quarkus quarkus-qpid-jms - + org.apache.geronimo.specs geronimo-jms_2.0_spec diff --git a/extensions/arangodb/runtime/pom.xml b/extensions/arangodb/runtime/pom.xml index 516b6b459e05..061ad178b923 100644 --- a/extensions/arangodb/runtime/pom.xml +++ b/extensions/arangodb/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/as2/runtime/pom.xml b/extensions/as2/runtime/pom.xml index c7beb8337670..edf5a6262bd7 100644 --- a/extensions/as2/runtime/pom.xml +++ b/extensions/as2/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,16 +43,6 @@ org.apache.camel camel-as2 - - - org.apache.logging.log4j - log4j-slf4j-impl - - - org.bouncycastle - bcprov-debug-jdk15on - - org.jboss.logging diff --git a/extensions/atlasmap/runtime/pom.xml b/extensions/atlasmap/runtime/pom.xml index bb2906ac6acb..4b24447bd058 100644 --- a/extensions/atlasmap/runtime/pom.xml +++ b/extensions/atlasmap/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/atom/runtime/pom.xml b/extensions/atom/runtime/pom.xml index 8c164cd73931..58b87a33e3e4 100644 --- a/extensions/atom/runtime/pom.xml +++ b/extensions/atom/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -61,8 +49,8 @@ camel-atom - jakarta.activation - jakarta.activation-api + com.sun.activation + jakarta.activation org.graalvm.nativeimage diff --git a/extensions/attachments/runtime/pom.xml b/extensions/attachments/runtime/pom.xml index 0d57e480305c..f1c84a529968 100644 --- a/extensions/attachments/runtime/pom.xml +++ b/extensions/attachments/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,12 +42,6 @@ org.apache.camel camel-attachments - - - com.sun.activation - javax.activation - - com.sun.activation diff --git a/extensions/avro-rpc/runtime/pom.xml b/extensions/avro-rpc/runtime/pom.xml index 15df61ae3d78..92346eea19f9 100644 --- a/extensions/avro-rpc/runtime/pom.xml +++ b/extensions/avro-rpc/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,26 +43,10 @@ org.apache.camel camel-avro-rpc - - - * - org.apache.avro - - - camel-avro-rpc-jetty - org.apache.camel - - org.apache.camel camel-avro-rpc-spi - - - javax.servlet - javax.servlet-api - - jakarta.servlet diff --git a/extensions/avro/runtime/pom.xml b/extensions/avro/runtime/pom.xml index c3cb0fcd4a04..81e8f77b5ee5 100644 --- a/extensions/avro/runtime/pom.xml +++ b/extensions/avro/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/aws2-athena/runtime/pom.xml b/extensions/aws2-athena/runtime/pom.xml index 47fc68bcdb22..d13b4dffc95b 100644 --- a/extensions/aws2-athena/runtime/pom.xml +++ b/extensions/aws2-athena/runtime/pom.xml @@ -36,18 +36,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-cw/runtime/pom.xml b/extensions/aws2-cw/runtime/pom.xml index ef6c7a396632..6cbf848c0f2a 100644 --- a/extensions/aws2-cw/runtime/pom.xml +++ b/extensions/aws2-cw/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-ddb/runtime/pom.xml b/extensions/aws2-ddb/runtime/pom.xml index 94bcaeb0776c..2bb8ab9508fb 100644 --- a/extensions/aws2-ddb/runtime/pom.xml +++ b/extensions/aws2-ddb/runtime/pom.xml @@ -38,18 +38,6 @@ software.amazon.awssdk.services.dynamodb.DynamoDbClient - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-ec2/runtime/pom.xml b/extensions/aws2-ec2/runtime/pom.xml index f15794be8582..3be1c6a56d62 100644 --- a/extensions/aws2-ec2/runtime/pom.xml +++ b/extensions/aws2-ec2/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-ecs/runtime/pom.xml b/extensions/aws2-ecs/runtime/pom.xml index 1e7198a3ce18..dfc0efb6bded 100644 --- a/extensions/aws2-ecs/runtime/pom.xml +++ b/extensions/aws2-ecs/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-eks/runtime/pom.xml b/extensions/aws2-eks/runtime/pom.xml index 0106a238d22b..21d4bf240d72 100644 --- a/extensions/aws2-eks/runtime/pom.xml +++ b/extensions/aws2-eks/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-eventbridge/runtime/pom.xml b/extensions/aws2-eventbridge/runtime/pom.xml index 650972d3a1f4..aad8bd4b30b9 100644 --- a/extensions/aws2-eventbridge/runtime/pom.xml +++ b/extensions/aws2-eventbridge/runtime/pom.xml @@ -36,18 +36,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-iam/runtime/pom.xml b/extensions/aws2-iam/runtime/pom.xml index d472e09cd718..6fef902a0b01 100644 --- a/extensions/aws2-iam/runtime/pom.xml +++ b/extensions/aws2-iam/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-kinesis/runtime/pom.xml b/extensions/aws2-kinesis/runtime/pom.xml index e9c996322117..b74bcf3a28c2 100644 --- a/extensions/aws2-kinesis/runtime/pom.xml +++ b/extensions/aws2-kinesis/runtime/pom.xml @@ -36,18 +36,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-kms/runtime/pom.xml b/extensions/aws2-kms/runtime/pom.xml index e42fc5a4c690..a605d610bd78 100644 --- a/extensions/aws2-kms/runtime/pom.xml +++ b/extensions/aws2-kms/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-lambda/runtime/pom.xml b/extensions/aws2-lambda/runtime/pom.xml index 5d0ef1aabb71..d7bbd416081c 100644 --- a/extensions/aws2-lambda/runtime/pom.xml +++ b/extensions/aws2-lambda/runtime/pom.xml @@ -36,18 +36,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-lambda/runtime/src/main/org/apache/lambda/it/Aws2LambdaIT.java b/extensions/aws2-lambda/runtime/src/main/org/apache/lambda/it/Aws2LambdaIT.java index a347dd7d8ed5..43cffe71ff59 100644 --- a/extensions/aws2-lambda/runtime/src/main/org/apache/lambda/it/Aws2LambdaIT.java +++ b/extensions/aws2-lambda/runtime/src/main/org/apache/lambda/it/Aws2LambdaIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.lambda.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2LambdaIT extends Aws2LambdaTest { } diff --git a/extensions/aws2-mq/runtime/pom.xml b/extensions/aws2-mq/runtime/pom.xml index 260a5ad138e7..a50ccabcfe05 100644 --- a/extensions/aws2-mq/runtime/pom.xml +++ b/extensions/aws2-mq/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-msk/runtime/pom.xml b/extensions/aws2-msk/runtime/pom.xml index b869f8538a80..05b9e94b294f 100644 --- a/extensions/aws2-msk/runtime/pom.xml +++ b/extensions/aws2-msk/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-s3/runtime/pom.xml b/extensions/aws2-s3/runtime/pom.xml index 5b752f549eea..2265fb315f50 100644 --- a/extensions/aws2-s3/runtime/pom.xml +++ b/extensions/aws2-s3/runtime/pom.xml @@ -37,18 +37,6 @@ software.amazon.awssdk.services.s3.S3Client - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-ses/runtime/pom.xml b/extensions/aws2-ses/runtime/pom.xml index a80ba556904f..ea1e243ef898 100644 --- a/extensions/aws2-ses/runtime/pom.xml +++ b/extensions/aws2-ses/runtime/pom.xml @@ -37,18 +37,6 @@ software.amazon.awssdk.services.ses.SesClient - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-sns/runtime/pom.xml b/extensions/aws2-sns/runtime/pom.xml index ffde35383fd0..5d8bf4dd77e6 100644 --- a/extensions/aws2-sns/runtime/pom.xml +++ b/extensions/aws2-sns/runtime/pom.xml @@ -37,18 +37,6 @@ software.amazon.awssdk.services.sns.SnsClient - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-sqs/runtime/pom.xml b/extensions/aws2-sqs/runtime/pom.xml index bbc52c992f6e..53231adfc3f7 100644 --- a/extensions/aws2-sqs/runtime/pom.xml +++ b/extensions/aws2-sqs/runtime/pom.xml @@ -37,18 +37,6 @@ software.amazon.awssdk.services.sqs.SqsClient - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-sts/runtime/pom.xml b/extensions/aws2-sts/runtime/pom.xml index fe38a821ab6f..3946ce3c067f 100644 --- a/extensions/aws2-sts/runtime/pom.xml +++ b/extensions/aws2-sts/runtime/pom.xml @@ -36,18 +36,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/aws2-translate/runtime/pom.xml b/extensions/aws2-translate/runtime/pom.xml index ee5c897f5c96..fc500b0da8e9 100644 --- a/extensions/aws2-translate/runtime/pom.xml +++ b/extensions/aws2-translate/runtime/pom.xml @@ -35,18 +35,6 @@ Amazon - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/azure-eventhubs/runtime/pom.xml b/extensions/azure-eventhubs/runtime/pom.xml index 3c79b20a138f..0c386b64f34d 100644 --- a/extensions/azure-eventhubs/runtime/pom.xml +++ b/extensions/azure-eventhubs/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -59,6 +47,12 @@ org.apache.camel camel-azure-eventhubs + + + com.azure + azure-core-http-netty + + diff --git a/extensions/azure-storage-blob/deployment/pom.xml b/extensions/azure-storage-blob/deployment/pom.xml index 49ff729b43ec..e34150100373 100644 --- a/extensions/azure-storage-blob/deployment/pom.xml +++ b/extensions/azure-storage-blob/deployment/pom.xml @@ -36,7 +36,7 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core-deployment + camel-quarkus-support-azure-core-http-client-vertx-deployment org.apache.camel.quarkus diff --git a/extensions/azure-storage-blob/runtime/pom.xml b/extensions/azure-storage-blob/runtime/pom.xml index d432e320fa45..c5a620beeb81 100644 --- a/extensions/azure-storage-blob/runtime/pom.xml +++ b/extensions/azure-storage-blob/runtime/pom.xml @@ -35,18 +35,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,11 +42,17 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core + camel-quarkus-support-azure-core-http-client-vertx org.apache.camel camel-azure-storage-blob + + + com.azure + azure-core-http-netty + + diff --git a/extensions/azure-storage-queue/deployment/pom.xml b/extensions/azure-storage-queue/deployment/pom.xml index 6819a3e6e870..e6b3473f03b4 100644 --- a/extensions/azure-storage-queue/deployment/pom.xml +++ b/extensions/azure-storage-queue/deployment/pom.xml @@ -36,7 +36,7 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core-deployment + camel-quarkus-support-azure-core-http-client-vertx-deployment org.apache.camel.quarkus diff --git a/extensions/azure-storage-queue/runtime/pom.xml b/extensions/azure-storage-queue/runtime/pom.xml index ecb18ffd7006..4477f708e2e1 100644 --- a/extensions/azure-storage-queue/runtime/pom.xml +++ b/extensions/azure-storage-queue/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,11 +42,17 @@ org.apache.camel.quarkus - camel-quarkus-support-azure-core + camel-quarkus-support-azure-core-http-client-vertx org.apache.camel camel-azure-storage-queue + + + com.azure + azure-core-http-netty + + diff --git a/extensions/base64/runtime/pom.xml b/extensions/base64/runtime/pom.xml index b7b401a1e86d..7016df32ea6f 100644 --- a/extensions/base64/runtime/pom.xml +++ b/extensions/base64/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/bean-validator/runtime/pom.xml b/extensions/bean-validator/runtime/pom.xml index f6410e3ddfb9..abbb40c52774 100644 --- a/extensions/bean-validator/runtime/pom.xml +++ b/extensions/bean-validator/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/bean-validator/runtime/src/main/doc/usage.adoc b/extensions/bean-validator/runtime/src/main/doc/usage.adoc index 1c85a6f8a17f..0c927a5ba8d1 100644 --- a/extensions/bean-validator/runtime/src/main/doc/usage.adoc +++ b/extensions/bean-validator/runtime/src/main/doc/usage.adoc @@ -2,7 +2,7 @@ Implementation of this extension leverages the https://quarkus.io/guides/validation[Quarkus Hibernate Validator extension]. -Therefore it is not possible to configure the `ValidatorFactory` by Camel's properties ('constraintValidatorFactory`, `messageInterpolator`, `traversableResolver`, `validationProviderResolver` and `validatorFactory`). +Therefore it is not possible to configure the `ValidatorFactory` by Camel's properties (`constraintValidatorFactory`, `messageInterpolator`, `traversableResolver`, `validationProviderResolver` and `validatorFactory`). You can configure the `ValidatorFactory` by the creation of beans which will be injected into the default `ValidatorFactory` (created by Quarkus). See the https://quarkus.io/guides/validation#hibernate-validator-extension-and-cdi[Quarkus CDI documentation] for more information. diff --git a/extensions/bean/runtime/pom.xml b/extensions/bean/runtime/pom.xml index 9de99e9b138e..52afbd0700b8 100644 --- a/extensions/bean/runtime/pom.xml +++ b/extensions/bean/runtime/pom.xml @@ -35,18 +35,6 @@ 0.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/bindy/runtime/pom.xml b/extensions/bindy/runtime/pom.xml index 9087690ec300..5c3122d5fac6 100644 --- a/extensions/bindy/runtime/pom.xml +++ b/extensions/bindy/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/box/runtime/pom.xml b/extensions/box/runtime/pom.xml index 6e4a17a57b8b..e65d5b51d676 100644 --- a/extensions/box/runtime/pom.xml +++ b/extensions/box/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/braintree/runtime/pom.xml b/extensions/braintree/runtime/pom.xml index 27af431d3242..6a285866a74d 100644 --- a/extensions/braintree/runtime/pom.xml +++ b/extensions/braintree/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/browse/runtime/pom.xml b/extensions/browse/runtime/pom.xml index 84d3e4de1aa6..55785e022174 100644 --- a/extensions/browse/runtime/pom.xml +++ b/extensions/browse/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/caffeine/runtime/pom.xml b/extensions/caffeine/runtime/pom.xml index 001a50817340..6caf489a5cab 100644 --- a/extensions/caffeine/runtime/pom.xml +++ b/extensions/caffeine/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/cassandraql/deployment/pom.xml b/extensions/cassandraql/deployment/pom.xml index 3ee2731608e9..499fd943553e 100644 --- a/extensions/cassandraql/deployment/pom.xml +++ b/extensions/cassandraql/deployment/pom.xml @@ -45,12 +45,6 @@ com.datastax.oss.quarkus cassandra-quarkus-client-deployment - - - io.quarkus - quarkus-vertx-core-deployment - - io.quarkus diff --git a/extensions/cassandraql/runtime/pom.xml b/extensions/cassandraql/runtime/pom.xml index 66f34c5466d8..c570d8bbb564 100644 --- a/extensions/cassandraql/runtime/pom.xml +++ b/extensions/cassandraql/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus @@ -63,12 +51,6 @@ com.datastax.oss.quarkus cassandra-quarkus-client - - - io.quarkus - quarkus-vertx-core - - com.datastax.oss diff --git a/extensions/cbor/runtime/pom.xml b/extensions/cbor/runtime/pom.xml index 344c97e9ca79..14ddf9a2ec8e 100644 --- a/extensions/cbor/runtime/pom.xml +++ b/extensions/cbor/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/consul/runtime/pom.xml b/extensions/consul/runtime/pom.xml index ddc0cb016045..c7a2645c06cc 100644 --- a/extensions/consul/runtime/pom.xml +++ b/extensions/consul/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/controlbus/runtime/pom.xml b/extensions/controlbus/runtime/pom.xml index b0e145049caa..7a2311b6b945 100644 --- a/extensions/controlbus/runtime/pom.xml +++ b/extensions/controlbus/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/couchdb/runtime/pom.xml b/extensions/couchdb/runtime/pom.xml index 4f4e7597c3da..b98c3eacbc29 100644 --- a/extensions/couchdb/runtime/pom.xml +++ b/extensions/couchdb/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/cron/runtime/pom.xml b/extensions/cron/runtime/pom.xml index 431ac2d09258..95ace9b9c7e1 100644 --- a/extensions/cron/runtime/pom.xml +++ b/extensions/cron/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/crypto/runtime/pom.xml b/extensions/crypto/runtime/pom.xml index da9b2c899ed5..6cb6164d51be 100644 --- a/extensions/crypto/runtime/pom.xml +++ b/extensions/crypto/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/csimple/runtime/pom.xml b/extensions/csimple/runtime/pom.xml index 4fb31debc17f..346857497052 100644 --- a/extensions/csimple/runtime/pom.xml +++ b/extensions/csimple/runtime/pom.xml @@ -36,18 +36,6 @@ preview - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/csv/runtime/pom.xml b/extensions/csv/runtime/pom.xml index e8d9258f481a..be6f4b07f780 100644 --- a/extensions/csv/runtime/pom.xml +++ b/extensions/csv/runtime/pom.xml @@ -34,18 +34,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/dataformat/runtime/pom.xml b/extensions/dataformat/runtime/pom.xml index 5ae0e85dc89c..9f8c91ee9ecc 100644 --- a/extensions/dataformat/runtime/pom.xml +++ b/extensions/dataformat/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/debezium-mongodb/runtime/pom.xml b/extensions/debezium-mongodb/runtime/pom.xml index ab59bc32921d..5161622c32ae 100644 --- a/extensions/debezium-mongodb/runtime/pom.xml +++ b/extensions/debezium-mongodb/runtime/pom.xml @@ -34,18 +34,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -62,12 +50,6 @@ org.apache.camel camel-debezium-mongodb - - - org.apache.maven - maven-artifact - - diff --git a/extensions/debezium-mysql/runtime/pom.xml b/extensions/debezium-mysql/runtime/pom.xml index 6cd2a3c93a16..f096ff725039 100644 --- a/extensions/debezium-mysql/runtime/pom.xml +++ b/extensions/debezium-mysql/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -59,12 +47,6 @@ org.apache.camel camel-debezium-mysql - - - org.apache.maven - maven-artifact - - io.quarkus diff --git a/extensions/debezium-postgres/runtime/pom.xml b/extensions/debezium-postgres/runtime/pom.xml index f52ee543716f..380091dcac3b 100644 --- a/extensions/debezium-postgres/runtime/pom.xml +++ b/extensions/debezium-postgres/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -58,12 +46,6 @@ org.apache.camel camel-debezium-postgres - - - org.apache.maven - maven-artifact - - io.quarkus diff --git a/extensions/debezium-sqlserver/runtime/pom.xml b/extensions/debezium-sqlserver/runtime/pom.xml index 68223719510d..99bf5c6d19ba 100644 --- a/extensions/debezium-sqlserver/runtime/pom.xml +++ b/extensions/debezium-sqlserver/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,12 +43,6 @@ org.apache.camel camel-debezium-sqlserver - - - org.apache.maven - maven-artifact - - org.apache.camel.quarkus diff --git a/extensions/digitalocean/runtime/pom.xml b/extensions/digitalocean/runtime/pom.xml index 07e03caa2ca5..ab592d9b7f9f 100644 --- a/extensions/digitalocean/runtime/pom.xml +++ b/extensions/digitalocean/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/direct/runtime/pom.xml b/extensions/direct/runtime/pom.xml index d5a6c47ec88b..3c20a7af7a0c 100644 --- a/extensions/direct/runtime/pom.xml +++ b/extensions/direct/runtime/pom.xml @@ -34,18 +34,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/disruptor/runtime/pom.xml b/extensions/disruptor/runtime/pom.xml index 04dbad642a12..a5b60c60d700 100644 --- a/extensions/disruptor/runtime/pom.xml +++ b/extensions/disruptor/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/dozer/runtime/pom.xml b/extensions/dozer/runtime/pom.xml index a7f4e3ec03e4..9d5385f83f31 100644 --- a/extensions/dozer/runtime/pom.xml +++ b/extensions/dozer/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -54,28 +42,18 @@ org.apache.camel camel-dozer - - - javax.el - javax.el-api - - - javax.xml.bind - jaxb-api - - - org.glassfish - javax.el - - + + + org.jboss.logging + commons-logging-jboss-logging io.quarkus quarkus-jaxb - jakarta.activation - jakarta.activation-api + com.sun.activation + jakarta.activation org.glassfish diff --git a/extensions/dropbox/runtime/pom.xml b/extensions/dropbox/runtime/pom.xml index e3b2aa30cb1a..ca8696a899b1 100644 --- a/extensions/dropbox/runtime/pom.xml +++ b/extensions/dropbox/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/elasticsearch-rest/runtime/pom.xml b/extensions/elasticsearch-rest/runtime/pom.xml index af13d44aeb96..05fb41e3a198 100644 --- a/extensions/elasticsearch-rest/runtime/pom.xml +++ b/extensions/elasticsearch-rest/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/elasticsearch-rest/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/elasticsearch-rest/runtime/src/main/resources/META-INF/quarkus-extension.yaml index a27a504a9e27..f0b2b273a71f 100644 --- a/extensions/elasticsearch-rest/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions/elasticsearch-rest/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -29,3 +29,4 @@ metadata: - "integration" status: - "stable" + - "deprecated" \ No newline at end of file diff --git a/extensions/exec/runtime/pom.xml b/extensions/exec/runtime/pom.xml index 111ba21ae1fd..a848f54a53a7 100644 --- a/extensions/exec/runtime/pom.xml +++ b/extensions/exec/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java index 64568e8fa763..1640b2461bee 100644 --- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/FhirProcessor.java @@ -17,18 +17,38 @@ package org.apache.camel.quarkus.component.fhir.deployment; import ca.uhn.fhir.rest.client.apache.ApacheRestfulClientFactory; +import ca.uhn.fhir.rest.client.api.IClientInterceptor; +import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException; +import ca.uhn.fhir.rest.server.interceptor.CaptureResourceSourceFromHeaderInterceptor; +import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor; +import ca.uhn.fhir.rest.server.interceptor.ResponseValidatingInterceptor; +import ca.uhn.fhir.rest.server.interceptor.auth.AuthorizationInterceptor; +import ca.uhn.fhir.rest.server.interceptor.auth.SearchNarrowingInterceptor; +import ca.uhn.fhir.rest.server.interceptor.consent.ConsentInterceptor; import ca.uhn.fhir.util.jar.DependencyLogImpl; import ca.uhn.fhir.validation.schematron.SchematronBaseValidator; 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.ExtensionSslNativeSupportBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.jboss.jandex.DotName; +import org.jboss.jandex.IndexView; final class FhirProcessor { private static final String FEATURE = "camel-fhir"; + private static final String[] INTERCEPTOR_CLASSES = { + ConsentInterceptor.class.getName(), + SearchNarrowingInterceptor.class.getName(), + AuthorizationInterceptor.class.getName(), + ResponseValidatingInterceptor.class.getName(), + ResponseHighlighterInterceptor.class.getName(), + CaptureResourceSourceFromHeaderInterceptor.class.getName(), + IClientInterceptor.class.getName(), + }; @BuildStep FeatureBuildItem feature() { @@ -56,7 +76,23 @@ AdditionalApplicationArchiveMarkerBuildItem hapiArchiveMarker() { } @BuildStep() - void processFhir(BuildProducer reflectiveClass) { + void registerForReflection( + CombinedIndexBuildItem combinedIndex, + BuildProducer reflectiveClass) { + + IndexView index = combinedIndex.getIndex(); + index.getAllKnownSubclasses(DotName.createSimple(BaseServerResponseException.class.getName())) + .stream() + .map(classInfo -> new ReflectiveClassBuildItem(false, false, classInfo.name().toString())) + .forEach(reflectiveClass::produce); + + String[] clientInterceptors = index.getAllKnownImplementors(DotName.createSimple(IClientInterceptor.class.getName())) + .stream() + .map(classInfo -> classInfo.name().toString()) + .toArray(String[]::new); + + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, clientInterceptors)); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, INTERCEPTOR_CLASSES)); reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, true, SchematronBaseValidator.class)); reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, true, DependencyLogImpl.class)); reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, ApacheRestfulClientFactory.class)); diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2/FhirDstu2Processor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2/FhirDstu2Processor.java index c0d20f785f89..f332477b1ff3 100644 --- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2/FhirDstu2Processor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2/FhirDstu2Processor.java @@ -23,12 +23,12 @@ import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.model.dstu2.resource.BaseResource; -import ca.uhn.fhir.model.dstu2.valueset.*; import io.quarkus.arc.deployment.SyntheticBeanBuildItem; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.annotations.ExecutionTime; import io.quarkus.deployment.annotations.Record; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; @@ -42,201 +42,46 @@ public class FhirDstu2Processor { private static final String FHIR_VERSION_PROPERTIES = "ca/uhn/fhir/model/dstu2/fhirversion.properties"; @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) - Dstu2PropertiesBuildItem properties(BuildProducer resource) { - resource.produce(new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES)); + Dstu2PropertiesBuildItem fhirProperties() { return new Dstu2PropertiesBuildItem(FHIR_VERSION_PROPERTIES); } + @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) @Record(ExecutionTime.STATIC_INIT) - SyntheticBeanBuildItem recordContext(FhirContextRecorder fhirContextRecorder, + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, Dstu2PropertiesBuildItem propertiesBuildItem) { return SyntheticBeanBuildItem.configure(FhirContext.class) .scope(Singleton.class) .named("DSTU2") - .runtimeValue(fhirContextRecorder.createDstu2FhirContext( + .runtimeValue(recorder.createDstu2FhirContext( getResourceDefinitions(propertiesBuildItem.getProperties()))) .done(); } @BuildStep(onlyIf = FhirFlags.Dstu2Enabled.class) - void enableReflection(BuildProducer reflectiveClass, Dstu2PropertiesBuildItem buildItem) { + void registerForReflection( + BuildProducer reflectiveClass, + Dstu2PropertiesBuildItem propertiesBuildItem, + CombinedIndexBuildItem combinedIndex) { Set classes = new HashSet<>(); classes.add(BaseResource.class.getCanonicalName()); - classes.addAll(getModelClasses(buildItem.getProperties())); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); - reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, getDstu2Enums())); - } - private String[] getDstu2Enums() { - return new String[] { - AccountStatusEnum.class.getCanonicalName(), - ActionListEnum.class.getCanonicalName(), - AddressTypeEnum.class.getCanonicalName(), - AddressUseEnum.class.getCanonicalName(), - AdjudicationCodesEnum.class.getCanonicalName(), - AdjudicationErrorCodesEnum.class.getCanonicalName(), - AdjustmentReasonCodesEnum.class.getCanonicalName(), - AdministrativeGenderEnum.class.getCanonicalName(), - AdmitSourceEnum.class.getCanonicalName(), - AggregationModeEnum.class.getCanonicalName(), - AllergyIntoleranceCategoryEnum.class.getCanonicalName(), - AllergyIntoleranceCertaintyEnum.class.getCanonicalName(), - AllergyIntoleranceCriticalityEnum.class.getCanonicalName(), - AllergyIntoleranceSeverityEnum.class.getCanonicalName(), - AllergyIntoleranceStatusEnum.class.getCanonicalName(), - AllergyIntoleranceTypeEnum.class.getCanonicalName(), - AnswerFormatEnum.class.getCanonicalName(), - AppointmentStatusEnum.class.getCanonicalName(), - AssertionDirectionTypeEnum.class.getCanonicalName(), - AssertionOperatorTypeEnum.class.getCanonicalName(), - AssertionResponseTypesEnum.class.getCanonicalName(), - AuditEventActionEnum.class.getCanonicalName(), - AuditEventObjectLifecycleEnum.class.getCanonicalName(), - AuditEventObjectRoleEnum.class.getCanonicalName(), - AuditEventObjectTypeEnum.class.getCanonicalName(), - AuditEventOutcomeEnum.class.getCanonicalName(), - AuditEventParticipantNetworkTypeEnum.class.getCanonicalName(), - AuditEventSourceTypeEnum.class.getCanonicalName(), - BindingStrengthEnum.class.getCanonicalName(), - BundleTypeEnum.class.getCanonicalName(), - CarePlanActivityStatusEnum.class.getCanonicalName(), - CarePlanRelationshipEnum.class.getCanonicalName(), - CarePlanStatusEnum.class.getCanonicalName(), - ClaimTypeEnum.class.getCanonicalName(), - ClinicalImpressionStatusEnum.class.getCanonicalName(), - CommunicationRequestStatusEnum.class.getCanonicalName(), - CommunicationStatusEnum.class.getCanonicalName(), - CompositionAttestationModeEnum.class.getCanonicalName(), - CompositionStatusEnum.class.getCanonicalName(), - ConceptMapEquivalenceEnum.class.getCanonicalName(), - ConditionalDeleteStatusEnum.class.getCanonicalName(), - ConditionCategoryCodesEnum.class.getCanonicalName(), - ConditionClinicalStatusCodesEnum.class.getCanonicalName(), - ConditionVerificationStatusEnum.class.getCanonicalName(), - ConformanceEventModeEnum.class.getCanonicalName(), - ConformanceResourceStatusEnum.class.getCanonicalName(), - ConformanceStatementKindEnum.class.getCanonicalName(), - ConstraintSeverityEnum.class.getCanonicalName(), - ContactPointSystemEnum.class.getCanonicalName(), - ContactPointUseEnum.class.getCanonicalName(), - ContentTypeEnum.class.getCanonicalName(), - DataElementStringencyEnum.class.getCanonicalName(), - DaysOfWeekEnum.class.getCanonicalName(), - DetectedIssueSeverityEnum.class.getCanonicalName(), - DeviceMetricCalibrationStateEnum.class.getCanonicalName(), - DeviceMetricCalibrationTypeEnum.class.getCanonicalName(), - DeviceMetricCategoryEnum.class.getCanonicalName(), - DeviceMetricColorEnum.class.getCanonicalName(), - DeviceMetricOperationalStatusEnum.class.getCanonicalName(), - DeviceStatusEnum.class.getCanonicalName(), - DeviceUseRequestPriorityEnum.class.getCanonicalName(), - DeviceUseRequestStatusEnum.class.getCanonicalName(), - DiagnosticOrderPriorityEnum.class.getCanonicalName(), - DiagnosticOrderStatusEnum.class.getCanonicalName(), - DiagnosticReportStatusEnum.class.getCanonicalName(), - DigitalMediaTypeEnum.class.getCanonicalName(), - DocumentModeEnum.class.getCanonicalName(), - DocumentReferenceStatusEnum.class.getCanonicalName(), - DocumentRelationshipTypeEnum.class.getCanonicalName(), - EncounterClassEnum.class.getCanonicalName(), - EncounterLocationStatusEnum.class.getCanonicalName(), - EncounterStateEnum.class.getCanonicalName(), - EpisodeOfCareStatusEnum.class.getCanonicalName(), - EventTimingEnum.class.getCanonicalName(), - ExtensionContextEnum.class.getCanonicalName(), - FamilyHistoryStatusEnum.class.getCanonicalName(), - FilterOperatorEnum.class.getCanonicalName(), - FlagStatusEnum.class.getCanonicalName(), - GoalPriorityEnum.class.getCanonicalName(), - GoalStatusEnum.class.getCanonicalName(), - GroupTypeEnum.class.getCanonicalName(), - GuideDependencyTypeEnum.class.getCanonicalName(), - GuidePageKindEnum.class.getCanonicalName(), - GuideResourcePurposeEnum.class.getCanonicalName(), - HTTPVerbEnum.class.getCanonicalName(), - IdentifierTypeCodesEnum.class.getCanonicalName(), - IdentifierUseEnum.class.getCanonicalName(), - IdentityAssuranceLevelEnum.class.getCanonicalName(), - InstanceAvailabilityEnum.class.getCanonicalName(), - IssueSeverityEnum.class.getCanonicalName(), - IssueTypeEnum.class.getCanonicalName(), - KOStitleEnum.class.getCanonicalName(), - LinkTypeEnum.class.getCanonicalName(), - ListModeEnum.class.getCanonicalName(), - ListOrderCodesEnum.class.getCanonicalName(), - ListStatusEnum.class.getCanonicalName(), - LocationModeEnum.class.getCanonicalName(), - LocationStatusEnum.class.getCanonicalName(), - LocationTypeEnum.class.getCanonicalName(), - MaritalStatusCodesEnum.class.getCanonicalName(), - MeasmntPrincipleEnum.class.getCanonicalName(), - MedicationAdministrationStatusEnum.class.getCanonicalName(), - MedicationDispenseStatusEnum.class.getCanonicalName(), - MedicationOrderStatusEnum.class.getCanonicalName(), - MedicationStatementStatusEnum.class.getCanonicalName(), - MessageEventEnum.class.getCanonicalName(), - MessageSignificanceCategoryEnum.class.getCanonicalName(), - MessageTransportEnum.class.getCanonicalName(), - NameUseEnum.class.getCanonicalName(), - NamingSystemIdentifierTypeEnum.class.getCanonicalName(), - NamingSystemTypeEnum.class.getCanonicalName(), - NarrativeStatusEnum.class.getCanonicalName(), - NoteTypeEnum.class.getCanonicalName(), - NutritionOrderStatusEnum.class.getCanonicalName(), - ObservationRelationshipTypeEnum.class.getCanonicalName(), - ObservationStatusEnum.class.getCanonicalName(), - OperationKindEnum.class.getCanonicalName(), - OperationParameterUseEnum.class.getCanonicalName(), - OrderStatusEnum.class.getCanonicalName(), - ParticipantRequiredEnum.class.getCanonicalName(), - ParticipantStatusEnum.class.getCanonicalName(), - ParticipantTypeEnum.class.getCanonicalName(), - ParticipationStatusEnum.class.getCanonicalName(), - PayeeTypeCodesEnum.class.getCanonicalName(), - ProcedureRequestPriorityEnum.class.getCanonicalName(), - ProcedureRequestStatusEnum.class.getCanonicalName(), - ProcedureStatusEnum.class.getCanonicalName(), - PropertyRepresentationEnum.class.getCanonicalName(), - ProvenanceEntityRoleEnum.class.getCanonicalName(), - QuantityComparatorEnum.class.getCanonicalName(), - QuestionnaireResponseStatusEnum.class.getCanonicalName(), - QuestionnaireStatusEnum.class.getCanonicalName(), - ReferralMethodEnum.class.getCanonicalName(), - ReferralStatusEnum.class.getCanonicalName(), - RemittanceOutcomeEnum.class.getCanonicalName(), - ResourceTypeEnum.class.getCanonicalName(), - ResourceVersionPolicyEnum.class.getCanonicalName(), - ResponseTypeEnum.class.getCanonicalName(), - RestfulConformanceModeEnum.class.getCanonicalName(), - RestfulSecurityServiceEnum.class.getCanonicalName(), - RulesetCodesEnum.class.getCanonicalName(), - SearchEntryModeEnum.class.getCanonicalName(), - SearchModifierCodeEnum.class.getCanonicalName(), - SearchParamTypeEnum.class.getCanonicalName(), - ServiceProvisionConditionsEnum.class.getCanonicalName(), - SignatureTypeCodesEnum.class.getCanonicalName(), - SlicingRulesEnum.class.getCanonicalName(), - SlotStatusEnum.class.getCanonicalName(), - SpecimenStatusEnum.class.getCanonicalName(), - StructureDefinitionKindEnum.class.getCanonicalName(), - SubscriptionChannelTypeEnum.class.getCanonicalName(), - SubscriptionStatusEnum.class.getCanonicalName(), - SubstanceCategoryCodesEnum.class.getCanonicalName(), - SupplyDeliveryStatusEnum.class.getCanonicalName(), - SupplyRequestStatusEnum.class.getCanonicalName(), - SystemRestfulInteractionEnum.class.getCanonicalName(), - TimingAbbreviationEnum.class.getCanonicalName(), - TransactionModeEnum.class.getCanonicalName(), - TypeRestfulInteractionEnum.class.getCanonicalName(), - UnitsOfTimeEnum.class.getCanonicalName(), - UnknownContentCodeEnum.class.getCanonicalName(), - UseEnum.class.getCanonicalName(), - VisionBaseEnum.class.getCanonicalName(), - VisionEyesEnum.class.getCanonicalName(), - XPathUsageTypeEnum.class.getCanonicalName() - }; - } + String[] dstu2Enums = combinedIndex.getIndex() + .getKnownClasses() + .stream() + .map(classInfo -> classInfo.toString()) + .filter(className -> className.startsWith("ca.uhn.fhir.model.dstu2.valueset")) + .toArray(String[]::new); + reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, dstu2Enums)); + } } diff --git a/extensions/ipfs/deployment/src/main/java/org/apache/camel/quarkus/component/ipfs/deployment/IpfsProcessor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/Dstu2Hl7OrgPropertiesBuildItem.java similarity index 70% rename from extensions/ipfs/deployment/src/main/java/org/apache/camel/quarkus/component/ipfs/deployment/IpfsProcessor.java rename to extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/Dstu2Hl7OrgPropertiesBuildItem.java index 12206351184c..8871d9ac137f 100644 --- a/extensions/ipfs/deployment/src/main/java/org/apache/camel/quarkus/component/ipfs/deployment/IpfsProcessor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/Dstu2Hl7OrgPropertiesBuildItem.java @@ -14,17 +14,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.ipfs.deployment; +package org.apache.camel.quarkus.component.fhir.deployment.dstu2Hl7Org; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; +import org.apache.camel.quarkus.component.fhir.deployment.AbstractPropertiesBuildItem; -class IpfsProcessor { +public final class Dstu2Hl7OrgPropertiesBuildItem extends AbstractPropertiesBuildItem { - private static final String FEATURE = "camel-ipfs"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); + public Dstu2Hl7OrgPropertiesBuildItem(String path) { + super(path); } + } diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/FhirDstu2Hl7OrgProcessor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/FhirDstu2Hl7OrgProcessor.java new file mode 100644 index 000000000000..d572bc118890 --- /dev/null +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2Hl7Org/FhirDstu2Hl7OrgProcessor.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.fhir.deployment.dstu2Hl7Org; + +import java.util.HashSet; +import java.util.Set; + +import javax.inject.Singleton; + +import ca.uhn.fhir.context.FhirContext; +import io.quarkus.arc.deployment.SyntheticBeanBuildItem; +import io.quarkus.deployment.annotations.BuildProducer; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.annotations.ExecutionTime; +import io.quarkus.deployment.annotations.Record; +import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; +import org.apache.camel.quarkus.component.fhir.FhirFlags; +import org.hl7.fhir.dstu2.model.Base; +import org.hl7.fhir.dstu2.model.BaseResource; +import org.hl7.fhir.dstu2.model.DomainResource; +import org.hl7.fhir.dstu2.model.Enumerations; +import org.hl7.fhir.dstu2.model.Meta; +import org.hl7.fhir.dstu2.model.Resource; + +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getInnerClasses; +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getModelClasses; +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getResourceDefinitions; + +public class FhirDstu2Hl7OrgProcessor { + + private static final String FHIR_VERSION_PROPERTIES = "org/hl7/fhir/instance/model/fhirversion.properties"; + + @BuildStep(onlyIf = FhirFlags.Dstu2Hl7OrgEnabled.class) + Dstu2Hl7OrgPropertiesBuildItem fhirProperties() { + return new Dstu2Hl7OrgPropertiesBuildItem(FHIR_VERSION_PROPERTIES); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2Hl7OrgEnabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2Hl7OrgEnabled.class) + @Record(ExecutionTime.STATIC_INIT) + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, + Dstu2Hl7OrgPropertiesBuildItem propertiesBuildItem) { + return SyntheticBeanBuildItem.configure(FhirContext.class) + .scope(Singleton.class) + .named("DSTU2_HL7ORG") + .runtimeValue(recorder.createDstu2Hl7OrgFhirContext( + getResourceDefinitions(propertiesBuildItem.getProperties()))) + .done(); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2Hl7OrgEnabled.class) + void registerForReflection( + BuildProducer reflectiveClass, + Dstu2Hl7OrgPropertiesBuildItem propertiesBuildItem) { + Set classes = new HashSet<>(); + classes.add(DomainResource.class.getName()); + classes.add(Resource.class.getName()); + classes.add(BaseResource.class.getName()); + classes.add(Base.class.getName()); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); + classes.addAll(getInnerClasses(Enumerations.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); + } +} diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/Dstu2_1PropertiesBuildItem.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/Dstu2_1PropertiesBuildItem.java new file mode 100644 index 000000000000..3dc2907a9c25 --- /dev/null +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/Dstu2_1PropertiesBuildItem.java @@ -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. + */ +package org.apache.camel.quarkus.component.fhir.deployment.dstu2_1; + +import org.apache.camel.quarkus.component.fhir.deployment.AbstractPropertiesBuildItem; + +public final class Dstu2_1PropertiesBuildItem extends AbstractPropertiesBuildItem { + + public Dstu2_1PropertiesBuildItem(String path) { + super(path); + } + +} diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/FhirDstu2_1Processor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/FhirDstu2_1Processor.java new file mode 100644 index 000000000000..6fdb0405e570 --- /dev/null +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu2_1/FhirDstu2_1Processor.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.fhir.deployment.dstu2_1; + +import java.util.HashSet; +import java.util.Set; + +import javax.inject.Singleton; + +import ca.uhn.fhir.context.FhirContext; +import io.quarkus.arc.deployment.SyntheticBeanBuildItem; +import io.quarkus.deployment.annotations.BuildProducer; +import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.annotations.ExecutionTime; +import io.quarkus.deployment.annotations.Record; +import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; +import org.apache.camel.quarkus.component.fhir.FhirFlags; +import org.hl7.fhir.dstu2016may.model.Base; +import org.hl7.fhir.dstu2016may.model.BaseResource; +import org.hl7.fhir.dstu2016may.model.DomainResource; +import org.hl7.fhir.dstu2016may.model.Enumerations; +import org.hl7.fhir.dstu2016may.model.Meta; +import org.hl7.fhir.dstu2016may.model.Resource; + +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getInnerClasses; +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getModelClasses; +import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getResourceDefinitions; + +public class FhirDstu2_1Processor { + + private static final String FHIR_VERSION_PROPERTIES = "org/hl7/fhir/dstu2016may/model/fhirversion.properties"; + + @BuildStep(onlyIf = FhirFlags.Dstu2_1Enabled.class) + Dstu2_1PropertiesBuildItem fhirProperties() { + return new Dstu2_1PropertiesBuildItem(FHIR_VERSION_PROPERTIES); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2_1Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2_1Enabled.class) + @Record(ExecutionTime.STATIC_INIT) + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, + Dstu2_1PropertiesBuildItem propertiesBuildItem) { + return SyntheticBeanBuildItem.configure(FhirContext.class) + .scope(Singleton.class) + .named("DSTU2_1") + .runtimeValue(recorder.createDstu2_1FhirContext( + getResourceDefinitions(propertiesBuildItem.getProperties()))) + .done(); + } + + @BuildStep(onlyIf = FhirFlags.Dstu2_1Enabled.class) + void registerForReflection( + BuildProducer reflectiveClass, + Dstu2_1PropertiesBuildItem propertiesBuildItem) { + Set classes = new HashSet<>(); + classes.add(DomainResource.class.getName()); + classes.add(Resource.class.getName()); + classes.add(BaseResource.class.getName()); + classes.add(Base.class.getName()); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); + classes.addAll(getInnerClasses(Enumerations.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); + } +} diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu3/FhirDstu3Processor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu3/FhirDstu3Processor.java index 7e3148e49810..939a31c37b86 100644 --- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu3/FhirDstu3Processor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/dstu3/FhirDstu3Processor.java @@ -32,6 +32,7 @@ import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; import org.apache.camel.quarkus.component.fhir.FhirFlags; import org.hl7.fhir.dstu3.model.Base; +import org.hl7.fhir.dstu3.model.BaseResource; import org.hl7.fhir.dstu3.model.DomainResource; import org.hl7.fhir.dstu3.model.Enumerations; import org.hl7.fhir.dstu3.model.Meta; @@ -46,35 +47,41 @@ public class FhirDstu3Processor { private static final String FHIR_VERSION_PROPERTIES = "org/hl7/fhir/dstu3/model/fhirversion.properties"; @BuildStep(onlyIf = FhirFlags.Dstu3Enabled.class) - Dstu3PropertiesBuildItem properties(BuildProducer resource) { - resource.produce(new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES)); + Dstu3PropertiesBuildItem fhirProperties() { return new Dstu3PropertiesBuildItem(FHIR_VERSION_PROPERTIES); } + @BuildStep(onlyIf = FhirFlags.Dstu3Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + @BuildStep(onlyIf = FhirFlags.Dstu3Enabled.class) @Record(ExecutionTime.STATIC_INIT) - SyntheticBeanBuildItem recordContext(FhirContextRecorder fhirContextRecorder, + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, Dstu3PropertiesBuildItem propertiesBuildItem) { return SyntheticBeanBuildItem.configure(FhirContext.class) .scope(Singleton.class) .named("DSTU3") - .runtimeValue(fhirContextRecorder.createDstu3FhirContext( + .runtimeValue(recorder.createDstu3FhirContext( getResourceDefinitions(propertiesBuildItem.getProperties()))) .done(); } @BuildStep(onlyIf = FhirFlags.Dstu3Enabled.class) - void enableReflection(BuildProducer reflectiveClass, + void registerForReflection( + BuildProducer reflectiveClass, Dstu3PropertiesBuildItem propertiesBuildItem) { Set classes = new HashSet<>(); - classes.add(DomainResource.class.getCanonicalName()); - classes.add(Resource.class.getCanonicalName()); - classes.add(org.hl7.fhir.dstu3.model.BaseResource.class.getCanonicalName()); - classes.add(Base.class.getCanonicalName()); + classes.add(DomainResource.class.getName()); + classes.add(Resource.class.getName()); + classes.add(BaseResource.class.getName()); + classes.add(Base.class.getName()); classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); - classes.addAll(getInnerClasses(Enumerations.class.getCanonicalName())); - reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getCanonicalName())); - reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, MetadataResource.class.getCanonicalName())); + classes.addAll(getInnerClasses(Enumerations.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getName())); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, MetadataResource.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); } } diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r4/FhirR4Processor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r4/FhirR4Processor.java index 1a63550fe11c..89f4227c5b23 100644 --- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r4/FhirR4Processor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r4/FhirR4Processor.java @@ -31,6 +31,13 @@ import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; import org.apache.camel.quarkus.component.fhir.FhirFlags; +import org.hl7.fhir.r4.model.Base; +import org.hl7.fhir.r4.model.BaseResource; +import org.hl7.fhir.r4.model.DomainResource; +import org.hl7.fhir.r4.model.Enumerations; +import org.hl7.fhir.r4.model.Meta; +import org.hl7.fhir.r4.model.MetadataResource; +import org.hl7.fhir.r4.model.Resource; import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getInnerClasses; import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getModelClasses; @@ -40,36 +47,43 @@ public class FhirR4Processor { private static final String FHIR_VERSION_PROPERTIES = "org/hl7/fhir/r4/model/fhirversion.properties"; @BuildStep(onlyIf = FhirFlags.R4Enabled.class) - R4PropertiesBuildItem properties(BuildProducer resource) { - resource.produce(new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES)); + R4PropertiesBuildItem fhirProperties() { return new R4PropertiesBuildItem(FHIR_VERSION_PROPERTIES); } + @BuildStep(onlyIf = FhirFlags.R4Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + @BuildStep(onlyIf = FhirFlags.R4Enabled.class) @Record(ExecutionTime.STATIC_INIT) - SyntheticBeanBuildItem recordContext(FhirContextRecorder fhirContextRecorder, + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, R4PropertiesBuildItem propertiesBuildItem) { return SyntheticBeanBuildItem.configure(FhirContext.class) .scope(Singleton.class) .named("R4") - .runtimeValue(fhirContextRecorder.createR4FhirContext( + .runtimeValue(recorder.createR4FhirContext( getResourceDefinitions(propertiesBuildItem.getProperties()))) .done(); } @BuildStep(onlyIf = FhirFlags.R4Enabled.class) - void enableReflection(BuildProducer reflectiveClass, R4PropertiesBuildItem buildItem) { + void registerForReflection( + BuildProducer reflectiveClass, + R4PropertiesBuildItem propertiesBuildItem) { Set classes = new HashSet<>(); - classes.add(org.hl7.fhir.r4.model.DomainResource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r4.model.Resource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r4.model.BaseResource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r4.model.Base.class.getCanonicalName()); - classes.addAll(getModelClasses(buildItem.getProperties())); - classes.addAll(getInnerClasses(org.hl7.fhir.r4.model.Enumerations.class.getCanonicalName())); + classes.add(DomainResource.class.getName()); + classes.add(Resource.class.getName()); + classes.add(BaseResource.class.getName()); + classes.add(Base.class.getName()); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); + classes.addAll(getInnerClasses(Enumerations.class.getName())); reflectiveClass - .produce(new ReflectiveClassBuildItem(true, true, true, org.hl7.fhir.r4.model.Meta.class.getCanonicalName())); + .produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, - org.hl7.fhir.r4.model.MetadataResource.class.getCanonicalName())); + MetadataResource.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); } } diff --git a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r5/FhirR5Processor.java b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r5/FhirR5Processor.java index e39e09c0c25b..c4dacc66d9e5 100644 --- a/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r5/FhirR5Processor.java +++ b/extensions/fhir/deployment/src/main/java/org/apache/camel/quarkus/component/fhir/deployment/r5/FhirR5Processor.java @@ -31,6 +31,13 @@ import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import org.apache.camel.quarkus.component.fhir.FhirContextRecorder; import org.apache.camel.quarkus.component.fhir.FhirFlags; +import org.hl7.fhir.r5.model.Base; +import org.hl7.fhir.r5.model.BaseResource; +import org.hl7.fhir.r5.model.DomainResource; +import org.hl7.fhir.r5.model.Enumerations; +import org.hl7.fhir.r5.model.Meta; +import org.hl7.fhir.r5.model.MetadataResource; +import org.hl7.fhir.r5.model.Resource; import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getInnerClasses; import static org.apache.camel.quarkus.component.fhir.deployment.FhirUtil.getModelClasses; @@ -40,35 +47,43 @@ public class FhirR5Processor { private static final String FHIR_VERSION_PROPERTIES = "org/hl7/fhir/r5/model/fhirversion.properties"; @BuildStep(onlyIf = FhirFlags.R5Enabled.class) - R5PropertiesBuildItem properties(BuildProducer resource) { - resource.produce(new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES)); + R5PropertiesBuildItem fhirProperties() { return new R5PropertiesBuildItem(FHIR_VERSION_PROPERTIES); } + @BuildStep(onlyIf = FhirFlags.R5Enabled.class) + NativeImageResourceBuildItem nativeImageResources() { + return new NativeImageResourceBuildItem(FHIR_VERSION_PROPERTIES); + } + @BuildStep(onlyIf = FhirFlags.R5Enabled.class) @Record(ExecutionTime.STATIC_INIT) - SyntheticBeanBuildItem recordContext(FhirContextRecorder fhirContextRecorder, R5PropertiesBuildItem propertiesBuildItem) { + SyntheticBeanBuildItem recordFhirContext( + FhirContextRecorder recorder, + R5PropertiesBuildItem propertiesBuildItem) { return SyntheticBeanBuildItem.configure(FhirContext.class) .scope(Singleton.class) .named("R5") - .runtimeValue(fhirContextRecorder.createR5FhirContext( + .runtimeValue(recorder.createR5FhirContext( getResourceDefinitions(propertiesBuildItem.getProperties()))) .done(); } @BuildStep(onlyIf = FhirFlags.R5Enabled.class) - void enableReflection(BuildProducer reflectiveClass, R5PropertiesBuildItem buildItem) { + void registerForReflection( + BuildProducer reflectiveClass, + R5PropertiesBuildItem propertiesBuildItem) { Set classes = new HashSet<>(); - classes.add(org.hl7.fhir.r5.model.DomainResource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r5.model.Resource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r5.model.BaseResource.class.getCanonicalName()); - classes.add(org.hl7.fhir.r5.model.Base.class.getCanonicalName()); - classes.addAll(getModelClasses(buildItem.getProperties())); - classes.addAll(getInnerClasses(org.hl7.fhir.r5.model.Enumerations.class.getCanonicalName())); + classes.add(DomainResource.class.getName()); + classes.add(Resource.class.getName()); + classes.add(BaseResource.class.getName()); + classes.add(Base.class.getName()); + classes.addAll(getModelClasses(propertiesBuildItem.getProperties())); + classes.addAll(getInnerClasses(Enumerations.class.getName())); reflectiveClass - .produce(new ReflectiveClassBuildItem(true, true, true, org.hl7.fhir.r5.model.Meta.class.getCanonicalName())); + .produce(new ReflectiveClassBuildItem(true, true, true, Meta.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, true, - org.hl7.fhir.r5.model.MetadataResource.class.getCanonicalName())); + MetadataResource.class.getName())); reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, classes.toArray(new String[0]))); } } diff --git a/extensions/fhir/runtime/pom.xml b/extensions/fhir/runtime/pom.xml index fff3e14e8e60..e468b68f9b96 100644 --- a/extensions/fhir/runtime/pom.xml +++ b/extensions/fhir/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -94,6 +82,14 @@ + + ca.uhn.hapi.fhir + hapi-fhir-structures-hl7org-dstu2 + + + ca.uhn.hapi.fhir + hapi-fhir-structures-dstu2.1 + diff --git a/extensions/fhir/runtime/src/main/doc/configuration.adoc b/extensions/fhir/runtime/src/main/doc/configuration.adoc index c915eb584dc0..820a98a5aa24 100644 --- a/extensions/fhir/runtime/src/main/doc/configuration.adoc +++ b/extensions/fhir/runtime/src/main/doc/configuration.adoc @@ -1 +1,2 @@ -The https://hapifhir.io/download.html[hapi-fhir] library, on which camel-fhir depends on, heavily uses reflection which affects performance in Quarkus (memory footprint, build time, CPU resources etc...). The following options are provided to improve on this: \ No newline at end of file + +By default, only FHIR versions `R4` & `DSTU3` are enabled in native mode, since they are the default values on the FHIR component and DataFormat. diff --git a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirConfig.java b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirConfig.java index 33f151f7a7e5..da852823d244 100644 --- a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirConfig.java +++ b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirConfig.java @@ -24,26 +24,38 @@ public final class FhirConfig { /** - * Enable FHIR DSTU2 Specs. + * Enable FHIR DSTU2 Specs in native mode. */ - @ConfigItem(name = "enable-dstu2", defaultValue = "true") + @ConfigItem(name = "enable-dstu2", defaultValue = "false") public boolean enableDstu2; /** - * Enable FHIR DSTU3 Specs. + * Enable FHIR DSTU2_HL7ORG Specs in native mode. */ - @ConfigItem(name = "enable-dstu3", defaultValue = "true") + @ConfigItem(name = "enable-dstu2_hl7org", defaultValue = "false") + public boolean enableDstu2Hl7Org; + + /** + * Enable FHIR DSTU2_1 Specs in native mode. + */ + @ConfigItem(name = "enable-dstu2_1", defaultValue = "false") + public boolean enableDstu2_1; + + /** + * Enable FHIR DSTU3 Specs in native mode. + */ + @ConfigItem(name = "enable-dstu3", defaultValue = "false") public boolean enableDstu3; /** - * Enable FHIR R4 Specs. + * Enable FHIR R4 Specs in native mode. */ @ConfigItem(name = "enable-r4", defaultValue = "true") public boolean enableR4; /** - * Enable FHIR R5 Specs. + * Enable FHIR R5 Specs in native mode. */ - @ConfigItem(name = "enable-r5", defaultValue = "true") + @ConfigItem(name = "enable-r5", defaultValue = "false") public boolean enableR5; } diff --git a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirContextRecorder.java b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirContextRecorder.java index 8f51cb016a69..d7fae8fcc505 100644 --- a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirContextRecorder.java +++ b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirContextRecorder.java @@ -31,6 +31,18 @@ public RuntimeValue createDstu2FhirContext(Collection resou return new RuntimeValue<>(fhirContext); } + public RuntimeValue createDstu2Hl7OrgFhirContext(Collection resourceDefinitions) { + FhirContext fhirContext = FhirContext.forDstu2Hl7Org(); + initContext(resourceDefinitions, fhirContext); + return new RuntimeValue<>(fhirContext); + } + + public RuntimeValue createDstu2_1FhirContext(Collection resourceDefinitions) { + FhirContext fhirContext = FhirContext.forDstu2_1(); + initContext(resourceDefinitions, fhirContext); + return new RuntimeValue<>(fhirContext); + } + public RuntimeValue createDstu3FhirContext(Collection resourceDefinitions) { FhirContext fhirContext = FhirContext.forDstu3(); initContext(resourceDefinitions, fhirContext); diff --git a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirFlags.java b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirFlags.java index 3c504bf6d99e..6437e8ee049f 100644 --- a/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirFlags.java +++ b/extensions/fhir/runtime/src/main/java/org/apache/camel/quarkus/component/fhir/FhirFlags.java @@ -28,7 +28,23 @@ public static final class Dstu2Enabled implements BooleanSupplier { @Override public boolean getAsBoolean() { return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.fhir.enable-dstu2", Boolean.class) - .orElse(Boolean.TRUE); + .orElse(Boolean.FALSE); + } + } + + public static final class Dstu2Hl7OrgEnabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.fhir.enable-dstu2_hl7org", Boolean.class) + .orElse(Boolean.FALSE); + } + } + + public static final class Dstu2_1Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.fhir.enable-dstu2_1", Boolean.class) + .orElse(Boolean.FALSE); } } @@ -36,7 +52,7 @@ public static final class Dstu3Enabled implements BooleanSupplier { @Override public boolean getAsBoolean() { return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.fhir.enable-dstu3", Boolean.class) - .orElse(Boolean.TRUE); + .orElse(Boolean.FALSE); } } @@ -52,7 +68,7 @@ public static final class R5Enabled implements BooleanSupplier { @Override public boolean getAsBoolean() { return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.fhir.enable-r5", Boolean.class) - .orElse(Boolean.TRUE); + .orElse(Boolean.FALSE); } } } diff --git a/extensions/file-watch/runtime/pom.xml b/extensions/file-watch/runtime/pom.xml index a7a140284954..260295ff9f56 100644 --- a/extensions/file-watch/runtime/pom.xml +++ b/extensions/file-watch/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/file/runtime/pom.xml b/extensions/file/runtime/pom.xml index 5aeb2fb061bc..12c1688878c2 100644 --- a/extensions/file/runtime/pom.xml +++ b/extensions/file/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/flatpack/runtime/pom.xml b/extensions/flatpack/runtime/pom.xml index f6a16973d75a..c57410b50727 100644 --- a/extensions/flatpack/runtime/pom.xml +++ b/extensions/flatpack/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/fop/runtime/pom.xml b/extensions/fop/runtime/pom.xml index 54353c68298c..bdcf106a9c30 100644 --- a/extensions/fop/runtime/pom.xml +++ b/extensions/fop/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/freemarker/runtime/pom.xml b/extensions/freemarker/runtime/pom.xml index 0ece9b2966ff..7a46ed8a184b 100644 --- a/extensions/freemarker/runtime/pom.xml +++ b/extensions/freemarker/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ftp/runtime/pom.xml b/extensions/ftp/runtime/pom.xml index bc3cb47bc349..8053caa84f3e 100644 --- a/extensions/ftp/runtime/pom.xml +++ b/extensions/ftp/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel diff --git a/extensions/geocoder/runtime/pom.xml b/extensions/geocoder/runtime/pom.xml index 9111fa31aa92..c178f3018874 100644 --- a/extensions/geocoder/runtime/pom.xml +++ b/extensions/geocoder/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,16 +43,6 @@ org.apache.camel camel-geocoder - - - org.apache.httpcomponents - httpclient - - - com.jayway.jsonpath - json-path - - org.apache.camel.quarkus diff --git a/extensions/git/runtime/pom.xml b/extensions/git/runtime/pom.xml index e35f82dc63ed..ae73f3a65762 100644 --- a/extensions/git/runtime/pom.xml +++ b/extensions/git/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/github/runtime/pom.xml b/extensions/github/runtime/pom.xml index d04626f6838a..94c8d98a75c0 100644 --- a/extensions/github/runtime/pom.xml +++ b/extensions/github/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/google-bigquery/runtime/pom.xml b/extensions/google-bigquery/runtime/pom.xml index 624e2996b6f4..473849f7d4a4 100644 --- a/extensions/google-bigquery/runtime/pom.xml +++ b/extensions/google-bigquery/runtime/pom.xml @@ -35,18 +35,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - com.google.cloud diff --git a/extensions/google-calendar/runtime/pom.xml b/extensions/google-calendar/runtime/pom.xml index ffabbb85d04e..3a186be094da 100644 --- a/extensions/google-calendar/runtime/pom.xml +++ b/extensions/google-calendar/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/google-drive/runtime/pom.xml b/extensions/google-drive/runtime/pom.xml index 9043c9fa0da8..4436fafeb6e5 100644 --- a/extensions/google-drive/runtime/pom.xml +++ b/extensions/google-drive/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/google-mail/runtime/pom.xml b/extensions/google-mail/runtime/pom.xml index a5ab4ad68dcb..5c860754f400 100644 --- a/extensions/google-mail/runtime/pom.xml +++ b/extensions/google-mail/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/google-pubsub/runtime/pom.xml b/extensions/google-pubsub/runtime/pom.xml index 091ee0582e5b..df6c3ee3acb5 100644 --- a/extensions/google-pubsub/runtime/pom.xml +++ b/extensions/google-pubsub/runtime/pom.xml @@ -36,13 +36,6 @@ - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - io.quarkus diff --git a/extensions/google-sheets/runtime/pom.xml b/extensions/google-sheets/runtime/pom.xml index 931ac0ab6201..ba034f687c78 100644 --- a/extensions/google-sheets/runtime/pom.xml +++ b/extensions/google-sheets/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/google-storage/runtime/pom.xml b/extensions/google-storage/runtime/pom.xml index f676b36c65b9..b64c997bc37f 100644 --- a/extensions/google-storage/runtime/pom.xml +++ b/extensions/google-storage/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - com.google.cloud diff --git a/extensions/graphql/runtime/pom.xml b/extensions/graphql/runtime/pom.xml index 394a2bd20181..f84b065cf261 100644 --- a/extensions/graphql/runtime/pom.xml +++ b/extensions/graphql/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/grok/runtime/pom.xml b/extensions/grok/runtime/pom.xml index 66feaa5ee8c5..9fa35dd4ac2c 100644 --- a/extensions/grok/runtime/pom.xml +++ b/extensions/grok/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/grpc/runtime/pom.xml b/extensions/grpc/runtime/pom.xml index 5e0b14dfc823..3f13cd007d07 100644 --- a/extensions/grpc/runtime/pom.xml +++ b/extensions/grpc/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/gson/runtime/pom.xml b/extensions/gson/runtime/pom.xml index 1b598b7644e1..1739514b2df9 100644 --- a/extensions/gson/runtime/pom.xml +++ b/extensions/gson/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/hazelcast/runtime/pom.xml b/extensions/hazelcast/runtime/pom.xml index 8cf94e4fbce7..a23e2863f533 100644 --- a/extensions/hazelcast/runtime/pom.xml +++ b/extensions/hazelcast/runtime/pom.xml @@ -35,18 +35,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/headersmap/runtime/pom.xml b/extensions/headersmap/runtime/pom.xml index 5791a0af89c3..b0043b8504b4 100644 --- a/extensions/headersmap/runtime/pom.xml +++ b/extensions/headersmap/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/hl7/runtime/pom.xml b/extensions/hl7/runtime/pom.xml index 8d0e47daf841..e8b1b2d7e37a 100644 --- a/extensions/hl7/runtime/pom.xml +++ b/extensions/hl7/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/http/runtime/pom.xml b/extensions/http/runtime/pom.xml index 1bd29849020b..ced29977b708 100644 --- a/extensions/http/runtime/pom.xml +++ b/extensions/http/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/hystrix/runtime/pom.xml b/extensions/hystrix/runtime/pom.xml index 743e14c69a5a..15942d147b5d 100644 --- a/extensions/hystrix/runtime/pom.xml +++ b/extensions/hystrix/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ical/runtime/pom.xml b/extensions/ical/runtime/pom.xml index 2647fa936864..1a982c2b6afb 100644 --- a/extensions/ical/runtime/pom.xml +++ b/extensions/ical/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ical/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/ical/runtime/src/main/resources/META-INF/quarkus-extension.yaml index ba17ff6c7b5a..62e12b71b206 100644 --- a/extensions/ical/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions/ical/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -22,7 +22,7 @@ # --- name: "Camel iCal" -description: "Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library" +description: "Marshal and unmarshal iCal (.ics) documents to/from model objects" metadata: guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/ical.html" categories: diff --git a/extensions/infinispan/runtime/pom.xml b/extensions/infinispan/runtime/pom.xml index 675a077c7467..e84bd6dd3e41 100644 --- a/extensions/infinispan/runtime/pom.xml +++ b/extensions/infinispan/runtime/pom.xml @@ -33,18 +33,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/infinispan/runtime/src/main/doc/configuration.adoc b/extensions/infinispan/runtime/src/main/doc/configuration.adoc new file mode 100644 index 000000000000..000b2d0bb417 --- /dev/null +++ b/extensions/infinispan/runtime/src/main/doc/configuration.adoc @@ -0,0 +1,2 @@ +You can either configure the Infinispan client via the relevant Camel Infinispan component & endpoint options, or you +may use the https://quarkus.io/guides/infinispan-client#configuration-reference[Quarkus Infinispan extension configuration properties]. diff --git a/extensions/infinispan/runtime/src/main/doc/limitations.adoc b/extensions/infinispan/runtime/src/main/doc/limitations.adoc new file mode 100644 index 000000000000..007d7b3fa5d3 --- /dev/null +++ b/extensions/infinispan/runtime/src/main/doc/limitations.adoc @@ -0,0 +1,3 @@ +=== InfinispanRemoteAggregationRepository in native mode + +At present the `InfinispanRemoteAggregationRepository` is not supported in native mode. diff --git a/extensions/influxdb/runtime/pom.xml b/extensions/influxdb/runtime/pom.xml index e840beb6cb1a..52a7352d9de3 100644 --- a/extensions/influxdb/runtime/pom.xml +++ b/extensions/influxdb/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ipfs/runtime/pom.xml b/extensions/ipfs/runtime/pom.xml deleted file mode 100644 index 370bd14192d1..000000000000 --- a/extensions/ipfs/runtime/pom.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - 4.0.0 - - org.apache.camel.quarkus - camel-quarkus-ipfs-parent - 2.8.0-SNAPSHOT - ../pom.xml - - - camel-quarkus-ipfs - Camel Quarkus :: IPFS :: Runtime - Access the Interplanetary File System (IPFS). - - - 1.1.0 - 1.7.0 - - - - - - jboss.thirdparty - https://repository.jboss.org/nexus/service/local/repositories/thirdparty-releases/content/ - JBoss Thirdparty Repository - - false - - - true - - - - - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - - - - org.apache.camel.quarkus - camel-quarkus-core - - - org.apache.camel - camel-ipfs - - - - - - - io.quarkus - quarkus-bootstrap-maven-plugin - - - org.apache.maven.plugins - maven-compiler-plugin - - - - io.quarkus - quarkus-extension-processor - ${quarkus.version} - - - - - - - - - - full - - - !quickly - - - - - - org.apache.camel.quarkus - camel-quarkus-maven-plugin - - - update-extension-doc-page - - update-extension-doc-page - - process-classes - - - - - - - - diff --git a/extensions/jackson-avro/runtime/pom.xml b/extensions/jackson-avro/runtime/pom.xml index 2c06c10ce882..7fcba450cd5b 100644 --- a/extensions/jackson-avro/runtime/pom.xml +++ b/extensions/jackson-avro/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jackson-protobuf/runtime/pom.xml b/extensions/jackson-protobuf/runtime/pom.xml index 9dab11a3318d..392c79be9204 100644 --- a/extensions/jackson-protobuf/runtime/pom.xml +++ b/extensions/jackson-protobuf/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jackson/runtime/pom.xml b/extensions/jackson/runtime/pom.xml index 253ed6737743..36e43aaeef50 100644 --- a/extensions/jackson/runtime/pom.xml +++ b/extensions/jackson/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -63,6 +51,10 @@ com.fasterxml.jackson.module jackson-module-jaxb-annotations + + jakarta.activation + jakarta.activation-api + jakarta.xml.bind jakarta.xml.bind-api @@ -86,6 +78,16 @@ org.jboss.spec.javax.xml.bind jboss-jaxb-api_2.3_spec + + + jakarta.activation + jakarta.activation-api + + + + + com.sun.activation + jakarta.activation diff --git a/extensions/jacksonxml/runtime/pom.xml b/extensions/jacksonxml/runtime/pom.xml index 431c96bbd21d..9e16702b6797 100644 --- a/extensions/jacksonxml/runtime/pom.xml +++ b/extensions/jacksonxml/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jacksonxml/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/jacksonxml/runtime/src/main/resources/META-INF/quarkus-extension.yaml index 597f13c86742..d2a409479665 100644 --- a/extensions/jacksonxml/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions/jacksonxml/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -22,7 +22,7 @@ # --- name: "Camel JacksonXML" -description: "Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson" +description: "Unmarshal an XML payloads to POJOs and back using XMLMapper extension of Jackson" metadata: guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jacksonxml.html" categories: diff --git a/extensions/jaxb/runtime/pom.xml b/extensions/jaxb/runtime/pom.xml index dfb03b8b1737..0f647d198391 100644 --- a/extensions/jaxb/runtime/pom.xml +++ b/extensions/jaxb/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jdbc/runtime/pom.xml b/extensions/jdbc/runtime/pom.xml index d0eb206d1b22..60de82cf1608 100644 --- a/extensions/jdbc/runtime/pom.xml +++ b/extensions/jdbc/runtime/pom.xml @@ -33,18 +33,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jfr/runtime/pom.xml b/extensions/jfr/runtime/pom.xml index 0742a6c87001..109fd9d587ae 100644 --- a/extensions/jfr/runtime/pom.xml +++ b/extensions/jfr/runtime/pom.xml @@ -35,18 +35,6 @@ 2.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jing/runtime/pom.xml b/extensions/jing/runtime/pom.xml index 8f548395e63e..1456574ebbc5 100644 --- a/extensions/jing/runtime/pom.xml +++ b/extensions/jing/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jira/runtime/pom.xml b/extensions/jira/runtime/pom.xml index 2ecf54fa5340..4d4b052ae015 100644 --- a/extensions/jira/runtime/pom.xml +++ b/extensions/jira/runtime/pom.xml @@ -50,18 +50,6 @@ - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jms/runtime/pom.xml b/extensions/jms/runtime/pom.xml index 52c979f9f770..d7e49d03ac9f 100644 --- a/extensions/jms/runtime/pom.xml +++ b/extensions/jms/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -58,12 +46,6 @@ org.apache.camel camel-jms - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - jakarta.jms diff --git a/extensions/johnzon/runtime/pom.xml b/extensions/johnzon/runtime/pom.xml index b0ec2e223133..d2529be0759c 100644 --- a/extensions/johnzon/runtime/pom.xml +++ b/extensions/johnzon/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jolt/runtime/pom.xml b/extensions/jolt/runtime/pom.xml index 2f01c885a1c2..9fdbc5314db4 100644 --- a/extensions/jolt/runtime/pom.xml +++ b/extensions/jolt/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jpa/runtime/pom.xml b/extensions/jpa/runtime/pom.xml index b24ff637f8d0..3ac7274166d8 100644 --- a/extensions/jpa/runtime/pom.xml +++ b/extensions/jpa/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/js-dsl/runtime/pom.xml b/extensions/js-dsl/runtime/pom.xml index 30ca72f24729..10fc435f9c35 100644 --- a/extensions/js-dsl/runtime/pom.xml +++ b/extensions/js-dsl/runtime/pom.xml @@ -37,18 +37,6 @@ experimental - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jsch/runtime/pom.xml b/extensions/jsch/runtime/pom.xml index 60f0a77b2368..f0029347940c 100644 --- a/extensions/jsch/runtime/pom.xml +++ b/extensions/jsch/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jslt/runtime/pom.xml b/extensions/jslt/runtime/pom.xml index 4e118cbe93e1..0002addfe9f5 100644 --- a/extensions/jslt/runtime/pom.xml +++ b/extensions/jslt/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/json-validator/runtime/pom.xml b/extensions/json-validator/runtime/pom.xml index 682c8ad07056..3b83630c3506 100644 --- a/extensions/json-validator/runtime/pom.xml +++ b/extensions/json-validator/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jsonata/runtime/pom.xml b/extensions/jsonata/runtime/pom.xml index 9250dda83bc6..b1928940b620 100644 --- a/extensions/jsonata/runtime/pom.xml +++ b/extensions/jsonata/runtime/pom.xml @@ -35,18 +35,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jsonb/runtime/pom.xml b/extensions/jsonb/runtime/pom.xml index d1bae674e641..296d6ebf0eed 100644 --- a/extensions/jsonb/runtime/pom.xml +++ b/extensions/jsonb/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jsonpath/runtime/pom.xml b/extensions/jsonpath/runtime/pom.xml index ed98a0e22ba3..842eb5aa43a2 100644 --- a/extensions/jsonpath/runtime/pom.xml +++ b/extensions/jsonpath/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/jta/runtime/pom.xml b/extensions/jta/runtime/pom.xml index 20da059c4ded..eae63bae56ba 100644 --- a/extensions/jta/runtime/pom.xml +++ b/extensions/jta/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,12 +43,6 @@ org.apache.camel camel-jta - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - - io.quarkus diff --git a/extensions/kafka/deployment/src/main/java/org/apache/camel/quarkus/component/kafka/deployment/KafkaProcessor.java b/extensions/kafka/deployment/src/main/java/org/apache/camel/quarkus/component/kafka/deployment/KafkaProcessor.java index 90e294578e84..270a7a18fac6 100644 --- a/extensions/kafka/deployment/src/main/java/org/apache/camel/quarkus/component/kafka/deployment/KafkaProcessor.java +++ b/extensions/kafka/deployment/src/main/java/org/apache/camel/quarkus/component/kafka/deployment/KafkaProcessor.java @@ -16,7 +16,9 @@ */ package org.apache.camel.quarkus.component.kafka.deployment; +import java.util.Collection; import java.util.Optional; +import java.util.stream.Stream; import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.deployment.Capabilities; @@ -24,19 +26,28 @@ import io.quarkus.deployment.IsNormal; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.DevServicesLauncherConfigResultBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig; import io.quarkus.kafka.client.deployment.KafkaBuildTimeConfig; import org.apache.camel.quarkus.component.kafka.KafkaClientFactoryProducer; import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; +import org.jboss.jandex.ClassInfo; +import org.jboss.jandex.DotName; +import org.jboss.jandex.IndexView; class KafkaProcessor { private static final String FEATURE = "camel-kafka"; private static final String CAMEL_KAFKA_BROKERS = "camel.component.kafka.brokers"; private static final String KAFKA_BOOTSTRAP_SERVERS = "kafka.bootstrap.servers"; + private static final DotName[] KAFKA_CLIENTS_TYPES = { + DotName.createSimple("org.apache.kafka.clients.producer.Producer"), + DotName.createSimple("org.apache.kafka.clients.consumer.Consumer") + }; @BuildStep FeatureBuildItem feature() { @@ -68,4 +79,19 @@ public void configureKafkaComponentForDevServices( } } } + + @BuildStep + public void reflectiveClasses(CombinedIndexBuildItem combinedIndex, + BuildProducer reflectiveClass) { + IndexView index = combinedIndex.getIndex(); + + Stream.of(KAFKA_CLIENTS_TYPES) + .map(index::getAllKnownImplementors) + .flatMap(Collection::stream) + .map(ClassInfo::toString) + .forEach(name -> reflectiveClass.produce(new ReflectiveClassBuildItem(false, true, name))); + + reflectiveClass + .produce(new ReflectiveClassBuildItem(false, true, "org.apache.kafka.clients.producer.internals.Sender")); + } } diff --git a/extensions/kafka/runtime/pom.xml b/extensions/kafka/runtime/pom.xml index 5968fa5744dc..23a037eabe6e 100644 --- a/extensions/kafka/runtime/pom.xml +++ b/extensions/kafka/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/kamelet/runtime/pom.xml b/extensions/kamelet/runtime/pom.xml index 76a95fe477cc..7aad5847c144 100644 --- a/extensions/kamelet/runtime/pom.xml +++ b/extensions/kamelet/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/kotlin/runtime/pom.xml b/extensions/kotlin/runtime/pom.xml index c43f96a4c2aa..88500654dbdd 100644 --- a/extensions/kotlin/runtime/pom.xml +++ b/extensions/kotlin/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel diff --git a/extensions/kubernetes/runtime/pom.xml b/extensions/kubernetes/runtime/pom.xml index 61189649244a..479cd2efefe3 100644 --- a/extensions/kubernetes/runtime/pom.xml +++ b/extensions/kubernetes/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/kudu/client/pom.xml b/extensions/kudu/client/pom.xml index 908532abc77e..1aff981382f5 100644 --- a/extensions/kudu/client/pom.xml +++ b/extensions/kudu/client/pom.xml @@ -32,18 +32,6 @@ org.apache.kudu:kudu-client with netty package relocations reverted and netty classes stripped away so that camel-quarkus-kudu can use quarkus-netty as a replacement - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.kudu diff --git a/extensions/kudu/runtime/pom.xml b/extensions/kudu/runtime/pom.xml index 9b59583eabee..6c89f64da514 100644 --- a/extensions/kudu/runtime/pom.xml +++ b/extensions/kudu/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/language/runtime/pom.xml b/extensions/language/runtime/pom.xml index e0fe7b60cc92..5e937a2cf366 100644 --- a/extensions/language/runtime/pom.xml +++ b/extensions/language/runtime/pom.xml @@ -35,18 +35,6 @@ 2.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/leveldb/runtime/pom.xml b/extensions/leveldb/runtime/pom.xml index 3f93ce95ab23..7134b67782ec 100644 --- a/extensions/leveldb/runtime/pom.xml +++ b/extensions/leveldb/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/log/runtime/pom.xml b/extensions/log/runtime/pom.xml index b96bb14d082e..20725354a655 100644 --- a/extensions/log/runtime/pom.xml +++ b/extensions/log/runtime/pom.xml @@ -34,18 +34,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/lra/runtime/pom.xml b/extensions/lra/runtime/pom.xml index b38a9272f86b..14ae5d6bb6e0 100644 --- a/extensions/lra/runtime/pom.xml +++ b/extensions/lra/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/lumberjack/runtime/pom.xml b/extensions/lumberjack/runtime/pom.xml index dd64e7f4232c..e700d3d1065e 100644 --- a/extensions/lumberjack/runtime/pom.xml +++ b/extensions/lumberjack/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/lzf/runtime/pom.xml b/extensions/lzf/runtime/pom.xml index 578bd5abbb34..6a73a708e1f9 100644 --- a/extensions/lzf/runtime/pom.xml +++ b/extensions/lzf/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mail/runtime/pom.xml b/extensions/mail/runtime/pom.xml index da2a15722b11..b1b6dbb2ed9e 100644 --- a/extensions/mail/runtime/pom.xml +++ b/extensions/mail/runtime/pom.xml @@ -34,18 +34,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/master/runtime/pom.xml b/extensions/master/runtime/pom.xml index c92b469f662d..4fffe99ba4e3 100644 --- a/extensions/master/runtime/pom.xml +++ b/extensions/master/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/micrometer/runtime/pom.xml b/extensions/micrometer/runtime/pom.xml index e2d8575a784b..ab18e565909f 100644 --- a/extensions/micrometer/runtime/pom.xml +++ b/extensions/micrometer/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/microprofile-fault-tolerance/runtime/pom.xml b/extensions/microprofile-fault-tolerance/runtime/pom.xml index 3401f07ece58..0ebaf6175a35 100644 --- a/extensions/microprofile-fault-tolerance/runtime/pom.xml +++ b/extensions/microprofile-fault-tolerance/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/microprofile-health/deployment/src/main/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthProcessor.java b/extensions/microprofile-health/deployment/src/main/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthProcessor.java index 6ea3406b0caa..e5a3b9e4e8bc 100644 --- a/extensions/microprofile-health/deployment/src/main/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthProcessor.java +++ b/extensions/microprofile-health/deployment/src/main/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthProcessor.java @@ -32,7 +32,6 @@ import org.apache.camel.health.HealthCheckRegistry; import org.apache.camel.health.HealthCheckRepository; import org.apache.camel.impl.health.ConsumersHealthCheckRepository; -import org.apache.camel.impl.health.ContextHealthCheck; import org.apache.camel.impl.health.HealthCheckRegistryRepository; import org.apache.camel.impl.health.RoutesHealthCheckRepository; import org.apache.camel.quarkus.component.microprofile.health.runtime.CamelMicroProfileHealthConfig; @@ -118,10 +117,6 @@ List camelHealthDiscovery(CombinedIndexBuildItem combinedInd return false; } - if (className.equals(ContextHealthCheck.class.getName())) { - return config.getOptionalValue("camel.health.contextEnabled", boolean.class).orElse(true); - } - if (className.equals(RoutesHealthCheckRepository.class.getName())) { return config.getOptionalValue("camel.health.routesEnabled", boolean.class).orElse(true); } diff --git a/extensions/microprofile-health/deployment/src/test/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthCamelChecksDisabledTest.java b/extensions/microprofile-health/deployment/src/test/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthCamelChecksDisabledTest.java index 16e194a56f7e..3e8b6dfb92ef 100644 --- a/extensions/microprofile-health/deployment/src/test/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthCamelChecksDisabledTest.java +++ b/extensions/microprofile-health/deployment/src/test/java/org/apache/camel/quarkus/component/microprofile/health/deployment/MicroProfileHealthCamelChecksDisabledTest.java @@ -37,6 +37,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -54,7 +55,6 @@ public static final Asset applicationProperties() { Writer writer = new StringWriter(); Properties props = new Properties(); - props.put("camel.health.contextEnabled", "false"); props.put("camel.health.routesEnabled", "false"); props.put("camel.health.consumersEnabled", "false"); props.put("camel.health.registryEnabled", "false"); @@ -69,9 +69,9 @@ public static final Asset applicationProperties() { } @Test - public void contextHealthCheckNull() { + public void contextHealthCheckNotNull() { ContextHealthCheck contextHealthCheck = context.getRegistry().lookupByNameAndType("context", ContextHealthCheck.class); - assertNull(contextHealthCheck); + assertNotNull(contextHealthCheck); } @Test diff --git a/extensions/microprofile-health/runtime/pom.xml b/extensions/microprofile-health/runtime/pom.xml index 50af4aee752a..6dd9b87235f9 100644 --- a/extensions/microprofile-health/runtime/pom.xml +++ b/extensions/microprofile-health/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/microprofile-metrics/runtime/pom.xml b/extensions/microprofile-metrics/runtime/pom.xml index ce1c2256926a..4f76dc9b0e2a 100644 --- a/extensions/microprofile-metrics/runtime/pom.xml +++ b/extensions/microprofile-metrics/runtime/pom.xml @@ -34,18 +34,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/minio/runtime/pom.xml b/extensions/minio/runtime/pom.xml index 4b6c5f4beb6d..85aaa340b505 100644 --- a/extensions/minio/runtime/pom.xml +++ b/extensions/minio/runtime/pom.xml @@ -35,18 +35,6 @@ 1.6.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mllp/runtime/pom.xml b/extensions/mllp/runtime/pom.xml index 7962d8f53b11..204317745288 100644 --- a/extensions/mllp/runtime/pom.xml +++ b/extensions/mllp/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mock/runtime/pom.xml b/extensions/mock/runtime/pom.xml index 016dfad03f38..ecd9a460ad87 100644 --- a/extensions/mock/runtime/pom.xml +++ b/extensions/mock/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mongodb-gridfs/runtime/pom.xml b/extensions/mongodb-gridfs/runtime/pom.xml index ab0f5b52830e..a6bc03823ebf 100644 --- a/extensions/mongodb-gridfs/runtime/pom.xml +++ b/extensions/mongodb-gridfs/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mongodb/runtime/pom.xml b/extensions/mongodb/runtime/pom.xml index fa94848ab3ee..f6f287f23d4c 100644 --- a/extensions/mongodb/runtime/pom.xml +++ b/extensions/mongodb/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/msv/runtime/pom.xml b/extensions/msv/runtime/pom.xml index 73d615e9a3a2..fc4d982498c4 100644 --- a/extensions/msv/runtime/pom.xml +++ b/extensions/msv/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mustache/runtime/pom.xml b/extensions/mustache/runtime/pom.xml index a64096457bcb..cf6ad048072d 100644 --- a/extensions/mustache/runtime/pom.xml +++ b/extensions/mustache/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/mybatis/runtime/pom.xml b/extensions/mybatis/runtime/pom.xml index 7b63200129ab..d89c2d6e83b5 100644 --- a/extensions/mybatis/runtime/pom.xml +++ b/extensions/mybatis/runtime/pom.xml @@ -35,18 +35,6 @@ 2.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/nagios/runtime/pom.xml b/extensions/nagios/runtime/pom.xml index 82096583b3ab..de61b3bad2ee 100644 --- a/extensions/nagios/runtime/pom.xml +++ b/extensions/nagios/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/nats/runtime/pom.xml b/extensions/nats/runtime/pom.xml index 15e94d956524..786c68f8bd52 100644 --- a/extensions/nats/runtime/pom.xml +++ b/extensions/nats/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/netty-http/runtime/pom.xml b/extensions/netty-http/runtime/pom.xml index 7e48217e8e24..a5ffcd222e76 100644 --- a/extensions/netty-http/runtime/pom.xml +++ b/extensions/netty-http/runtime/pom.xml @@ -33,18 +33,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/netty/runtime/pom.xml b/extensions/netty/runtime/pom.xml index 3bb1af3183a2..1215df16ce4c 100644 --- a/extensions/netty/runtime/pom.xml +++ b/extensions/netty/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/nitrite/runtime/pom.xml b/extensions/nitrite/runtime/pom.xml index a326f98fe582..f05e7726f89c 100644 --- a/extensions/nitrite/runtime/pom.xml +++ b/extensions/nitrite/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/nsq/runtime/pom.xml b/extensions/nsq/runtime/pom.xml index dba2ef72209f..572fa55ecf4c 100644 --- a/extensions/nsq/runtime/pom.xml +++ b/extensions/nsq/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -59,20 +47,6 @@ org.apache.camel camel-nsq - - - io.netty - netty-all - - - org.apache.logging.log4j - log4j-api - - - org.apache.logging.log4j - log4j-core - - io.quarkus diff --git a/extensions/oaipmh/runtime/pom.xml b/extensions/oaipmh/runtime/pom.xml index cfd99a53e347..f0b4224a52ea 100644 --- a/extensions/oaipmh/runtime/pom.xml +++ b/extensions/oaipmh/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/olingo4/runtime/pom.xml b/extensions/olingo4/runtime/pom.xml index eb8282e6cde5..e593c85bcdfa 100644 --- a/extensions/olingo4/runtime/pom.xml +++ b/extensions/olingo4/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/openapi-java/deployment/pom.xml b/extensions/openapi-java/deployment/pom.xml index 3ab740b63795..053ed8f1b096 100644 --- a/extensions/openapi-java/deployment/pom.xml +++ b/extensions/openapi-java/deployment/pom.xml @@ -47,6 +47,11 @@ quarkus-resteasy test + + org.apache.camel.quarkus + camel-quarkus-direct + test + org.apache.camel.quarkus camel-quarkus-rest diff --git a/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java b/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java index 137ec91b3775..07f65a348248 100644 --- a/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java +++ b/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java @@ -36,13 +36,17 @@ import io.quarkus.deployment.Capability; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; +import io.quarkus.deployment.builditem.IndexDependencyBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.smallrye.openapi.deployment.spi.AddToOpenAPIDefinitionBuildItem; import io.smallrye.openapi.api.models.OpenAPIImpl; import io.smallrye.openapi.api.util.MergeUtil; import io.smallrye.openapi.runtime.io.definition.DefinitionReader; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.media.Schema; import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; @@ -62,6 +66,9 @@ import org.eclipse.microprofile.config.ConfigProvider; import org.eclipse.microprofile.openapi.OASFilter; import org.eclipse.microprofile.openapi.models.OpenAPI; +import org.jboss.jandex.ClassInfo; +import org.jboss.jandex.DotName; +import org.jboss.jandex.IndexView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,12 +78,27 @@ class OpenApiJavaProcessor { private static final String FEATURE = "camel-openapi-java"; private static final Logger LOGGER = LoggerFactory.getLogger(OpenApiJavaProcessor.class); + private static final DotName SCHEMA = DotName.createSimple(Schema.class.getName()); @BuildStep FeatureBuildItem feature() { return new FeatureBuildItem(FEATURE); } + @BuildStep + void addDependencies(BuildProducer indexDependency) { + indexDependency.produce(new IndexDependencyBuildItem("io.swagger.core.v3", "swagger-models")); + } + + @BuildStep + void reflectiveClasses(BuildProducer reflectiveClasses, CombinedIndexBuildItem combinedIndex) { + reflectiveClasses.produce(new ReflectiveClassBuildItem(true, true, SCHEMA.toString())); + + IndexView index = combinedIndex.getIndex(); + index.getAllKnownSubclasses(SCHEMA).stream().map(ClassInfo::toString).forEach( + name -> reflectiveClasses.produce(new ReflectiveClassBuildItem(false, false, name))); + } + @BuildStep(onlyIf = ExposeOpenApiEnabled.class) void exposeOpenAPI(List routesBuilderClasses, BuildProducer openAPI, diff --git a/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RESTOpenAPITest.java b/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RESTOpenAPITest.java index 7e75be432efa..0ee6b74fc849 100644 --- a/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RESTOpenAPITest.java +++ b/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RESTOpenAPITest.java @@ -17,7 +17,6 @@ package org.apache.camel.quarkus.component.openapi.java.deployment; -import java.io.File; import java.util.Arrays; import io.quarkus.bootstrap.model.AppArtifact; @@ -41,7 +40,8 @@ public class RESTOpenAPITest { .withConfigurationResource("application.properties") .setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class) .addClasses(RestRoutes.class, QuarkusResource.class) - .addAsResource(new File("src/test/resources/routes/my-route.xml"), "routes/my-route.xml")); + .addAsResource("routes/rests.xml", "routes/rests.xml") + .addAsResource("routes/routes.xml", "routes/routes.xml")); @BeforeAll static void setUp() { diff --git a/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RestRoutes.java b/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RestRoutes.java index a2b1e91442ab..358df70065cd 100644 --- a/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RestRoutes.java +++ b/extensions/openapi-java/deployment/src/test/java/org/apache/camel/quarkus/component/openapi/java/deployment/RestRoutes.java @@ -29,8 +29,9 @@ public void configure() throws Exception { .description("get test") .id("get") .produces("text/plain") - .route() - .setBody(constant("GET: /rest")) - .endRest(); + .to("direct:output"); + + from("direct:output") + .setBody().constant("GET: /rest"); } } diff --git a/extensions/openapi-java/deployment/src/test/resources/application.properties b/extensions/openapi-java/deployment/src/test/resources/application.properties index 685ea3f330c8..62f60158eef3 100644 --- a/extensions/openapi-java/deployment/src/test/resources/application.properties +++ b/extensions/openapi-java/deployment/src/test/resources/application.properties @@ -23,4 +23,4 @@ quarkus.camel.openapi.expose.enabled=true # Camel - REST # camel.rest.context-path=/camel -camel.main.routes-include-pattern=routes/my-route.xml +camel.main.routes-include-pattern=routes/*.xml diff --git a/extensions/openapi-java/deployment/src/test/resources/routes/my-route.xml b/extensions/openapi-java/deployment/src/test/resources/routes/rests.xml similarity index 86% rename from extensions/openapi-java/deployment/src/test/resources/routes/my-route.xml rename to extensions/openapi-java/deployment/src/test/resources/routes/rests.xml index f809a046805e..8c2e3c120ce3 100644 --- a/extensions/openapi-java/deployment/src/test/resources/routes/my-route.xml +++ b/extensions/openapi-java/deployment/src/test/resources/routes/rests.xml @@ -16,10 +16,10 @@ limitations under the License. --> - + - Camel XML Rest + diff --git a/extensions/openapi-java/deployment/src/test/resources/routes/routes.xml b/extensions/openapi-java/deployment/src/test/resources/routes/routes.xml new file mode 100644 index 000000000000..53cf19424317 --- /dev/null +++ b/extensions/openapi-java/deployment/src/test/resources/routes/routes.xml @@ -0,0 +1,27 @@ + + + + + + + Camel XML Rest + + + diff --git a/extensions/openapi-java/runtime/pom.xml b/extensions/openapi-java/runtime/pom.xml index 82ba07285fee..6a615b5a0f2e 100644 --- a/extensions/openapi-java/runtime/pom.xml +++ b/extensions/openapi-java/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/openstack/runtime/pom.xml b/extensions/openstack/runtime/pom.xml index 01cab6b973fa..002c8921b3aa 100644 --- a/extensions/openstack/runtime/pom.xml +++ b/extensions/openstack/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -56,6 +44,10 @@ org.apache.camel camel-openstack + + com.github.java-json-tools + json-patch + io.quarkus quarkus-jackson diff --git a/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryProcessor.java b/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryProcessor.java index 362299212bc6..10408415410a 100644 --- a/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryProcessor.java +++ b/extensions/opentelemetry/deployment/src/main/java/org/apache/camel/quarkus/component/opentelemetry/deployment/OpenTelemetryProcessor.java @@ -19,7 +19,7 @@ import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.FeatureBuildItem; -import io.quarkus.opentelemetry.deployment.tracing.TracerProcessor.TracerEnabled; +import io.quarkus.opentelemetry.deployment.tracing.TracerEnabled; import org.apache.camel.quarkus.component.opentelemetry.OpenTelemetryTracerProducer; class OpenTelemetryProcessor { diff --git a/extensions/opentelemetry/runtime/pom.xml b/extensions/opentelemetry/runtime/pom.xml index 5a7a34533a55..341e325a0638 100644 --- a/extensions/opentelemetry/runtime/pom.xml +++ b/extensions/opentelemetry/runtime/pom.xml @@ -35,18 +35,6 @@ 2.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/opentracing/runtime/pom.xml b/extensions/opentracing/runtime/pom.xml index 4736bfd5bd95..f1bef5ab6cfd 100644 --- a/extensions/opentracing/runtime/pom.xml +++ b/extensions/opentracing/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/optaplanner/runtime/pom.xml b/extensions/optaplanner/runtime/pom.xml index beb78ab81db9..c3ff9e97ab07 100644 --- a/extensions/optaplanner/runtime/pom.xml +++ b/extensions/optaplanner/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/paho-mqtt5/runtime/pom.xml b/extensions/paho-mqtt5/runtime/pom.xml index bb8466a3f74b..df0234ff2513 100644 --- a/extensions/paho-mqtt5/runtime/pom.xml +++ b/extensions/paho-mqtt5/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java b/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java index d10916836b42..5858d6608fc2 100644 --- a/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java +++ b/extensions/paho/deployment/src/main/java/org/apache/camel/quarkus/component/paho/deployment/PahoProcessor.java @@ -16,11 +16,17 @@ */ package org.apache.camel.quarkus.component.paho.deployment; +import java.nio.channels.FileChannel; +import java.nio.channels.FileLock; +import java.util.ResourceBundle; + +import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem; +import org.eclipse.paho.client.mqttv3.internal.ResourceBundleCatalog; import org.eclipse.paho.client.mqttv3.logging.JSR47Logger; import org.eclipse.paho.client.mqttv3.spi.NetworkModuleFactory; @@ -33,8 +39,13 @@ FeatureBuildItem feature() { } @BuildStep - ReflectiveClassBuildItem registerReflectiveClasses() { - return new ReflectiveClassBuildItem(false, false, JSR47Logger.class); + void registerReflectiveClasses(BuildProducer p) { + p.produce(new ReflectiveClassBuildItem(false, false, JSR47Logger.class)); + p.produce(new ReflectiveClassBuildItem(false, false, ResourceBundleCatalog.class)); + p.produce(new ReflectiveClassBuildItem(false, false, ResourceBundle.class)); + p.produce(new ReflectiveClassBuildItem(false, false, FileLock.class)); + p.produce(new ReflectiveClassBuildItem(true, false, FileChannel.class)); + p.produce(new ReflectiveClassBuildItem(true, false, "sun.nio.ch.FileLockImpl")); } @BuildStep @@ -48,7 +59,8 @@ ServiceProviderBuildItem registerServiceProviders() { } @BuildStep - NativeImageResourceBundleBuildItem registerResourceBundle() { - return new NativeImageResourceBundleBuildItem("org.eclipse.paho.client.mqttv3.internal.nls.logcat"); + void registerResourceBundle(BuildProducer p) { + p.produce(new NativeImageResourceBundleBuildItem("org.eclipse.paho.client.mqttv3.internal.nls.logcat")); + p.produce(new NativeImageResourceBundleBuildItem("org.eclipse.paho.client.mqttv3.internal.nls.messages")); } } diff --git a/extensions/paho/runtime/pom.xml b/extensions/paho/runtime/pom.xml index 626586bc341b..d581e23e0002 100644 --- a/extensions/paho/runtime/pom.xml +++ b/extensions/paho/runtime/pom.xml @@ -34,18 +34,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/pdf/runtime/pom.xml b/extensions/pdf/runtime/pom.xml index a8779490e0b0..8e80265b3282 100644 --- a/extensions/pdf/runtime/pom.xml +++ b/extensions/pdf/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/pg-replication-slot/runtime/pom.xml b/extensions/pg-replication-slot/runtime/pom.xml index a9d4db3200c3..c2b015dad085 100644 --- a/extensions/pg-replication-slot/runtime/pom.xml +++ b/extensions/pg-replication-slot/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel diff --git a/extensions/pgevent/runtime/pom.xml b/extensions/pgevent/runtime/pom.xml index 16ee1df8b3e4..25bacac36075 100644 --- a/extensions/pgevent/runtime/pom.xml +++ b/extensions/pgevent/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/platform-http/runtime/pom.xml b/extensions/platform-http/runtime/pom.xml index facd4fe8dcd6..48b8398d3c1a 100644 --- a/extensions/platform-http/runtime/pom.xml +++ b/extensions/platform-http/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/pom.xml b/extensions/pom.xml index bc8b3e416013..9ba0fabb6465 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -251,6 +251,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom diff --git a/extensions/protobuf/runtime/pom.xml b/extensions/protobuf/runtime/pom.xml index 25137a03bc4d..6ca43d12726c 100644 --- a/extensions/protobuf/runtime/pom.xml +++ b/extensions/protobuf/runtime/pom.xml @@ -34,18 +34,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/pubnub/runtime/pom.xml b/extensions/pubnub/runtime/pom.xml index 4dea4b09db52..7ed5db9d5da3 100644 --- a/extensions/pubnub/runtime/pom.xml +++ b/extensions/pubnub/runtime/pom.xml @@ -34,18 +34,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/quartz/deployment/pom.xml b/extensions/quartz/deployment/pom.xml index 6c9eb0d79908..2420c6933625 100644 --- a/extensions/quartz/deployment/pom.xml +++ b/extensions/quartz/deployment/pom.xml @@ -33,6 +33,12 @@ io.quarkus quarkus-quartz-deployment + + + mchange-commons-java + com.mchange + + org.apache.camel.quarkus @@ -42,6 +48,10 @@ org.apache.camel.quarkus camel-quarkus-quartz + + io.quarkus + quarkus-agroal-deployment + diff --git a/extensions/quartz/deployment/src/main/java/org/apache/camel/quarkus/component/quartz/deployment/QuartzProcessor.java b/extensions/quartz/deployment/src/main/java/org/apache/camel/quarkus/component/quartz/deployment/QuartzProcessor.java index 01743221452f..86d92629b0be 100644 --- a/extensions/quartz/deployment/src/main/java/org/apache/camel/quarkus/component/quartz/deployment/QuartzProcessor.java +++ b/extensions/quartz/deployment/src/main/java/org/apache/camel/quarkus/component/quartz/deployment/QuartzProcessor.java @@ -16,10 +16,19 @@ */ package org.apache.camel.quarkus.component.quartz.deployment; +import io.quarkus.bootstrap.model.ApplicationModel; +import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; +import io.quarkus.deployment.builditem.IndexDependencyBuildItem; import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem; +import io.quarkus.deployment.builditem.nativeimage.NativeImageSystemPropertyBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem; +import org.jboss.jandex.DotName; +import org.jboss.jandex.IndexView; +import org.quartz.impl.jdbcjobstore.StdJDBCDelegate; class QuartzProcessor { @@ -27,8 +36,17 @@ class QuartzProcessor { private static final String[] QUARTZ_JOB_CLASSES = new String[] { "org.apache.camel.component.quartz.CamelJob", "org.apache.camel.component.quartz.StatefulCamelJob", - "org.apache.camel.pollconsumer.quartz.QuartzScheduledPollConsumerJob" + "org.apache.camel.pollconsumer.quartz.QuartzScheduledPollConsumerJob", + "org.quartz.utils.C3p0PoolingConnectionProvider" }; + private static final String[] QUARTZ_JOB_CLASSES_WITH_METHODS = new String[] { + "org.quartz.impl.jdbcjobstore.JobStoreTX", + "org.quartz.impl.jdbcjobstore.JobStoreSupport", + "org.quartz.impl.triggers.SimpleTriggerImpl", + "org.quartz.impl.triggers.AbstractTrigger", + "org.apache.camel.quarkus.component.quartz.CamelQuarkusQuartzConnectionProvider" + }; + private static final DotName SQL_JDBC_DELEGATE = DotName.createSimple(StdJDBCDelegate.class.getName()); @BuildStep FeatureBuildItem feature() { @@ -44,4 +62,42 @@ NativeImageResourceBuildItem nativeImageResources() { ReflectiveClassBuildItem registerForReflection() { return new ReflectiveClassBuildItem(false, false, QUARTZ_JOB_CLASSES); } + + @BuildStep + ReflectiveClassBuildItem registerForReflectionWithMethods() { + return new ReflectiveClassBuildItem(true, false, QUARTZ_JOB_CLASSES_WITH_METHODS); + } + + @BuildStep + void registerForReflection(BuildProducer reflectiveClasses, + CombinedIndexBuildItem combinedIndex, CurateOutcomeBuildItem curateOutcome) { + IndexView index = combinedIndex.getIndex(); + + ApplicationModel applicationModel = curateOutcome.getApplicationModel(); + boolean oracleBlobIsPresent = applicationModel.getDependencies().stream() + .anyMatch(d -> d.getGroupId().equals("com.oracle.database.jdbc")); + + final String[] delegatesImpl = index + .getAllKnownSubclasses(SQL_JDBC_DELEGATE) + .stream() + .map(c -> c.name().toString()) + .filter(n -> oracleBlobIsPresent || !n.contains("oracle")) + .toArray(String[]::new); + + reflectiveClasses.produce(new ReflectiveClassBuildItem(false, true, delegatesImpl)); + + } + + @BuildStep + void indexSaxonHe(BuildProducer deps) { + deps.produce(new IndexDependencyBuildItem("org.quartz-scheduler", "quartz")); + } + + @BuildStep + NativeImageSystemPropertyBuildItem disableJMX() { + + return new NativeImageSystemPropertyBuildItem("com.mchange.v2.c3p0.management.ManagementCoordinator", + "com.mchange.v2.c3p0.management.NullManagementCoordinator"); + } + } diff --git a/extensions/quartz/runtime/pom.xml b/extensions/quartz/runtime/pom.xml index 08ed812c5104..1dffe8d7c012 100644 --- a/extensions/quartz/runtime/pom.xml +++ b/extensions/quartz/runtime/pom.xml @@ -34,22 +34,16 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus quarkus-quartz + + + mchange-commons-java + com.mchange + + org.apache.camel.quarkus @@ -59,6 +53,14 @@ org.apache.camel camel-quartz + + com.mchange + c3p0 + + + io.quarkus + quarkus-agroal + diff --git a/extensions/quartz/runtime/src/main/doc/limitations.adoc b/extensions/quartz/runtime/src/main/doc/limitations.adoc new file mode 100644 index 000000000000..dbff30bac0aa --- /dev/null +++ b/extensions/quartz/runtime/src/main/doc/limitations.adoc @@ -0,0 +1,4 @@ +=== JDBC Job Store + +Quartz's property `org.quartz.jobStore.useProperties` is set to `true` and can not be modified. The value is forced by the Quarkus Quartz extension. +See the Quartz documentation for more information about `org.quartz.jobStore.useProperties`. \ No newline at end of file diff --git a/extensions/quartz/runtime/src/main/doc/usage.adoc b/extensions/quartz/runtime/src/main/doc/usage.adoc new file mode 100644 index 000000000000..0d34bbf5d303 --- /dev/null +++ b/extensions/quartz/runtime/src/main/doc/usage.adoc @@ -0,0 +1,46 @@ +=== Clustering + +There are two options how to run Quartz in clustered mode: + +==== Quarkus based + +This is the preferred option. Follow the https://quarkus.io/guides/quartz[scheduling periodic tasks quartz guide]. + +- Define database configuration in `application.properties`. +- Use for example `flyway` to create database tables required for `Quartz`. + +===== Quartz based with an Agroal datasource + +Follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] with different DS configuration: + +- Use `quartz.properties` to configure `JobStore`. +- Define datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as `ConnectionProvider` in `quartz.properties`: + +``` +... +org.quartz.jobStore.dataSource = myDS + +# datasource configuration +org.quartz.dataSource.myDS.connectionProvider.class = org.apache.camel.quarkus.component.quartz.CamelQuarkusQuartzConnectionProvider +org.quartz.dataSource.myDSB.dataSourceName = ds_name_if_not_set_default_ds_will_be_used +``` + + +- You can use for example `flyway` to create database tables required for `Quartz`. + +===== Quartz based + +You can follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] without any modification: + +``` +... +org.quartz.jobStore.dataSource = myDS + +# datasource configuration +org.quartz.dataSource.myDS.driver = org.postgresql.Driver + +# datasource configuration +org.quartz.dataSource.myDS.URL=jdbc:postgresql://localhost:5432/default +org.quartz.dataSource.myDS.user = quarkus +org.quartz.dataSource.myDS.password = quarkus +``` \ No newline at end of file diff --git a/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/CamelQuarkusQuartzConnectionProvider.java b/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/CamelQuarkusQuartzConnectionProvider.java new file mode 100644 index 000000000000..cea123ea1ec7 --- /dev/null +++ b/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/CamelQuarkusQuartzConnectionProvider.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.component.quartz; + +import java.sql.Connection; +import java.sql.SQLException; + +import io.agroal.api.AgroalDataSource; +import io.quarkus.agroal.DataSource.DataSourceLiteral; +import io.quarkus.arc.Arc; +import io.quarkus.arc.ArcContainer; +import io.quarkus.arc.InstanceHandle; +import org.quartz.utils.ConnectionProvider; + +public class CamelQuarkusQuartzConnectionProvider implements ConnectionProvider { + private AgroalDataSource dataSource; + private String dataSourceName; + + @Override + public Connection getConnection() throws SQLException { + return dataSource.getConnection(); + } + + @Override + public void shutdown() { + // Do nothing as the connection will be closed inside the Agroal extension + } + + @Override + public void initialize() { + final ArcContainer container = Arc.container(); + final InstanceHandle instanceHandle; + final boolean useDefaultDataSource = dataSourceName == null || "".equals(dataSourceName.trim()); + if (useDefaultDataSource) { + instanceHandle = container.instance(AgroalDataSource.class); + } else { + instanceHandle = container.instance(AgroalDataSource.class, new DataSourceLiteral(dataSourceName)); + } + if (instanceHandle.isAvailable()) { + this.dataSource = instanceHandle.get(); + } else { + String message = String.format( + "JDBC Store configured but '%s' datasource is missing. You can configure your datasource by following the guide available at: https://quarkus.io/guides/datasource", + useDefaultDataSource ? "default" : dataSourceName); + throw new IllegalStateException(message); + } + } + + public void setDataSourceName(String dataSourceName) { + this.dataSourceName = dataSourceName; + } +} diff --git a/extensions/qute/component/pom.xml b/extensions/qute/component/pom.xml index 6df7043d7157..8a93a469d89e 100644 --- a/extensions/qute/component/pom.xml +++ b/extensions/qute/component/pom.xml @@ -31,13 +31,6 @@ - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - org.apache.camel camel-mock diff --git a/extensions/qute/runtime/pom.xml b/extensions/qute/runtime/pom.xml index f80de1235575..a2edf994480f 100644 --- a/extensions/qute/runtime/pom.xml +++ b/extensions/qute/runtime/pom.xml @@ -36,18 +36,6 @@ component - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/rabbitmq/runtime/pom.xml b/extensions/rabbitmq/runtime/pom.xml index 26b831867b1c..a96c41df2f63 100644 --- a/extensions/rabbitmq/runtime/pom.xml +++ b/extensions/rabbitmq/runtime/pom.xml @@ -34,18 +34,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/reactive-streams/runtime/pom.xml b/extensions/reactive-streams/runtime/pom.xml index ba571fbb9a96..ac79607e33ce 100644 --- a/extensions/reactive-streams/runtime/pom.xml +++ b/extensions/reactive-streams/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ref/runtime/pom.xml b/extensions/ref/runtime/pom.xml index 7be40c30f222..53654aa59a04 100644 --- a/extensions/ref/runtime/pom.xml +++ b/extensions/ref/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/rest-openapi/runtime/pom.xml b/extensions/rest-openapi/runtime/pom.xml index 3f60ff646e41..f728419b8766 100644 --- a/extensions/rest-openapi/runtime/pom.xml +++ b/extensions/rest-openapi/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/rest/runtime/pom.xml b/extensions/rest/runtime/pom.xml index 9a8d27ce53a8..95c09adce44a 100644 --- a/extensions/rest/runtime/pom.xml +++ b/extensions/rest/runtime/pom.xml @@ -35,18 +35,6 @@ 0.0.1 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/rss/runtime/pom.xml b/extensions/rss/runtime/pom.xml index 2129ce4ff1b3..c0fd6c893ed6 100644 --- a/extensions/rss/runtime/pom.xml +++ b/extensions/rss/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/saga/runtime/pom.xml b/extensions/saga/runtime/pom.xml index e5398269244a..82ffc03ee4b3 100644 --- a/extensions/saga/runtime/pom.xml +++ b/extensions/saga/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/salesforce/runtime/pom.xml b/extensions/salesforce/runtime/pom.xml index b79773f0645a..c8c845dba330 100644 --- a/extensions/salesforce/runtime/pom.xml +++ b/extensions/salesforce/runtime/pom.xml @@ -33,18 +33,6 @@ 0.0.2 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/sap-netweaver/runtime/pom.xml b/extensions/sap-netweaver/runtime/pom.xml index f5af4a63b65b..e72ec1a95c20 100644 --- a/extensions/sap-netweaver/runtime/pom.xml +++ b/extensions/sap-netweaver/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/saxon/runtime/pom.xml b/extensions/saxon/runtime/pom.xml index c37b3a18576d..e9d99c7477b0 100644 --- a/extensions/saxon/runtime/pom.xml +++ b/extensions/saxon/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/scheduler/runtime/pom.xml b/extensions/scheduler/runtime/pom.xml index 98e22fd64cd8..407a9eedf657 100644 --- a/extensions/scheduler/runtime/pom.xml +++ b/extensions/scheduler/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/seda/runtime/pom.xml b/extensions/seda/runtime/pom.xml index 771b553c714d..bde61a5c9b58 100644 --- a/extensions/seda/runtime/pom.xml +++ b/extensions/seda/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/servicenow/runtime/pom.xml b/extensions/servicenow/runtime/pom.xml index 0e0920453604..6825122cb97b 100644 --- a/extensions/servicenow/runtime/pom.xml +++ b/extensions/servicenow/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.graalvm.nativeimage @@ -59,16 +47,6 @@ org.apache.camel camel-servicenow - - - jakarta.xml.bind - jakarta.xml.bind-api - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - - org.jboss.spec.javax.xml.bind diff --git a/extensions/servlet/runtime/pom.xml b/extensions/servlet/runtime/pom.xml index 937c64fd8a91..b7a354f8bf00 100644 --- a/extensions/servlet/runtime/pom.xml +++ b/extensions/servlet/runtime/pom.xml @@ -33,18 +33,6 @@ 0.0.2 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/shiro/runtime/pom.xml b/extensions/shiro/runtime/pom.xml index b901d7743e32..3c5628a73cfa 100644 --- a/extensions/shiro/runtime/pom.xml +++ b/extensions/shiro/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -63,12 +51,6 @@ commons-beanutils commons-beanutils - - - commons-logging - commons-logging - - org.graalvm.nativeimage diff --git a/extensions/sjms/runtime/pom.xml b/extensions/sjms/runtime/pom.xml index 56a693ca2ef4..adf9f3433945 100644 --- a/extensions/sjms/runtime/pom.xml +++ b/extensions/sjms/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/sjms2/runtime/pom.xml b/extensions/sjms2/runtime/pom.xml index db5b8b939b31..515e6da12c04 100644 --- a/extensions/sjms2/runtime/pom.xml +++ b/extensions/sjms2/runtime/pom.xml @@ -33,18 +33,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus 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 b8af065feb7b..e4c54a2405cd 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 @@ -23,6 +23,7 @@ import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.IndexDependencyBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.apache.camel.component.slack.helper.SlackMessage; import org.jboss.jandex.IndexView; class SlackProcessor { @@ -56,4 +57,9 @@ ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIn .toArray(String[]::new); return new ReflectiveClassBuildItem(false, true, slackApiClasses); } + + @BuildStep + ReflectiveClassBuildItem registerForReflection() { + return new ReflectiveClassBuildItem(false, true, SlackMessage.class); + } } diff --git a/extensions/slack/runtime/pom.xml b/extensions/slack/runtime/pom.xml index a81a94fa8cd1..9535db526613 100644 --- a/extensions/slack/runtime/pom.xml +++ b/extensions/slack/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/smallrye-reactive-messaging/runtime/pom.xml b/extensions/smallrye-reactive-messaging/runtime/pom.xml index 49e04182c187..009859c54883 100644 --- a/extensions/smallrye-reactive-messaging/runtime/pom.xml +++ b/extensions/smallrye-reactive-messaging/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/snakeyaml/runtime/pom.xml b/extensions/snakeyaml/runtime/pom.xml index 304782509f5e..4994318bda94 100644 --- a/extensions/snakeyaml/runtime/pom.xml +++ b/extensions/snakeyaml/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/soap/runtime/pom.xml b/extensions/soap/runtime/pom.xml index a417d72bea6c..1d1dbcc7a223 100644 --- a/extensions/soap/runtime/pom.xml +++ b/extensions/soap/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/solr/runtime/pom.xml b/extensions/solr/runtime/pom.xml index e7e9893f8176..6db291a3179b 100644 --- a/extensions/solr/runtime/pom.xml +++ b/extensions/solr/runtime/pom.xml @@ -35,18 +35,6 @@ 1.5.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/splunk/runtime/pom.xml b/extensions/splunk/runtime/pom.xml index 1eb52ca8579c..5b7c8576be1a 100644 --- a/extensions/splunk/runtime/pom.xml +++ b/extensions/splunk/runtime/pom.xml @@ -35,18 +35,6 @@ 1.8.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/spring-rabbitmq/runtime/pom.xml b/extensions/spring-rabbitmq/runtime/pom.xml index f0bc37f03d4b..3d576d0a799f 100644 --- a/extensions/spring-rabbitmq/runtime/pom.xml +++ b/extensions/spring-rabbitmq/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/sql/runtime/pom.xml b/extensions/sql/runtime/pom.xml index 7b65c70b8085..d6cfc0343ac8 100644 --- a/extensions/sql/runtime/pom.xml +++ b/extensions/sql/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/ssh/runtime/pom.xml b/extensions/ssh/runtime/pom.xml index 9dc06c0af779..b94a9e247211 100644 --- a/extensions/ssh/runtime/pom.xml +++ b/extensions/ssh/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/stax/runtime/pom.xml b/extensions/stax/runtime/pom.xml index 570b0e48ad92..204af2417147 100644 --- a/extensions/stax/runtime/pom.xml +++ b/extensions/stax/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/stream/runtime/pom.xml b/extensions/stream/runtime/pom.xml index 61f5d7ea9033..e2307af0a126 100644 --- a/extensions/stream/runtime/pom.xml +++ b/extensions/stream/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/stringtemplate/runtime/pom.xml b/extensions/stringtemplate/runtime/pom.xml index 4ef28a0b1d3f..f04f618d3cd0 100644 --- a/extensions/stringtemplate/runtime/pom.xml +++ b/extensions/stringtemplate/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/syslog/runtime/pom.xml b/extensions/syslog/runtime/pom.xml index 3f74995eedab..d9dfbc22b55f 100644 --- a/extensions/syslog/runtime/pom.xml +++ b/extensions/syslog/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/tagsoup/runtime/pom.xml b/extensions/tagsoup/runtime/pom.xml index bbcf28dcac26..0fd03a55fcde 100644 --- a/extensions/tagsoup/runtime/pom.xml +++ b/extensions/tagsoup/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/tarfile/runtime/pom.xml b/extensions/tarfile/runtime/pom.xml index 7d85d3263e54..f708c566f056 100644 --- a/extensions/tarfile/runtime/pom.xml +++ b/extensions/tarfile/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/telegram/runtime/pom.xml b/extensions/telegram/runtime/pom.xml index 62c2440f7bfb..eb2e85440661 100644 --- a/extensions/telegram/runtime/pom.xml +++ b/extensions/telegram/runtime/pom.xml @@ -34,18 +34,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/tika/runtime/pom.xml b/extensions/tika/runtime/pom.xml index 34709459f3e2..857484b43606 100644 --- a/extensions/tika/runtime/pom.xml +++ b/extensions/tika/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus @@ -55,16 +43,6 @@ org.apache.camel camel-tika - - - org.apache.tika - tika-core - - - org.apache.tika - tika-parsers - - org.apache.camel.quarkus @@ -74,6 +52,11 @@ io.quarkiverse.tika quarkus-tika + + org.graalvm.nativeimage + svm + provided + diff --git a/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/TikaRecorder.java b/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/TikaRecorder.java index 6d6760baca23..c5ea87f39881 100644 --- a/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/TikaRecorder.java +++ b/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/TikaRecorder.java @@ -18,9 +18,14 @@ import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; import java.util.Collections; import java.util.Set; +import javax.xml.transform.TransformerConfigurationException; + import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; @@ -36,12 +41,14 @@ import org.apache.camel.component.tika.TikaComponent; import org.apache.camel.component.tika.TikaConfiguration; import org.apache.camel.component.tika.TikaEndpoint; +import org.apache.camel.component.tika.TikaParseOutputFormat; import org.apache.camel.component.tika.TikaProducer; import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; import org.apache.tika.mime.MediaType; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.Parser; +import org.apache.tika.parser.html.BoilerpipeContentHandler; @Recorder public class TikaRecorder { @@ -78,7 +85,7 @@ public QuarkusTikaEndpoint(String endpointUri, Component component, TikaConfigur @Override public Producer createProducer() throws Exception { TikaParser tikaParser = tikaParserProducer.tikaParser(); - return new TikaProducer(this, new Parser() { + return new QuarkusTikaProducer(this, new Parser() { @Override public Set getSupportedTypes(ParseContext parseContext) { return Collections.emptySet(); @@ -99,4 +106,28 @@ public void parse(InputStream inputStream, ContentHandler contentHandler, Metada } } + // TODO: Remove this when Camel Tika & Quarkus Tika versions are aligned + // https://github.com/apache/camel-quarkus/issues/3599 + static class QuarkusTikaProducer extends TikaProducer { + + public QuarkusTikaProducer(TikaEndpoint endpoint) { + super(endpoint); + } + + public QuarkusTikaProducer(TikaEndpoint endpoint, Parser parser) { + super(endpoint, parser); + } + + @Override + protected ContentHandler getContentHandler(TikaConfiguration configuration, OutputStream outputStream) + throws TransformerConfigurationException, UnsupportedEncodingException { + TikaParseOutputFormat outputFormat = configuration.getTikaParseOutputFormat(); + if (outputFormat.equals(TikaParseOutputFormat.textMain)) { + return new BoilerpipeContentHandler( + new OutputStreamWriter(outputStream, configuration.getTikaParseOutputEncoding())); + } + return super.getContentHandler(configuration, outputStream); + } + } + } diff --git a/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/graalvm/TikaProducerSubstitutions.java b/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/graalvm/TikaProducerSubstitutions.java new file mode 100644 index 000000000000..343edae5f7f1 --- /dev/null +++ b/extensions/tika/runtime/src/main/java/org/apache/camel/quarkus/component/tika/graalvm/TikaProducerSubstitutions.java @@ -0,0 +1,77 @@ +/* + * 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.tika.graalvm; + +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; + +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.sax.TransformerHandler; + +import org.xml.sax.ContentHandler; + +import com.oracle.svm.core.annotate.Alias; +import com.oracle.svm.core.annotate.Substitute; +import com.oracle.svm.core.annotate.TargetClass; +import org.apache.camel.component.tika.TikaConfiguration; +import org.apache.camel.component.tika.TikaParseOutputFormat; +import org.apache.camel.component.tika.TikaProducer; +import org.apache.tika.sax.BodyContentHandler; +import org.apache.tika.sax.ExpandedTitleContentHandler; + +// TODO: Remove this when Camel Tika & Quarkus Tika versions are aligned +// https://github.com/apache/camel-quarkus/issues/3599 +@TargetClass(TikaProducer.class) +public final class TikaProducerSubstitutions { + + @Alias + private String encoding; + + // Removes problematic textMain switch case since it's covered in the custom TikaProducer in TikaRecorder + @Substitute + private ContentHandler getContentHandler(TikaConfiguration configuration, OutputStream outputStream) + throws TransformerConfigurationException, UnsupportedEncodingException { + + ContentHandler result = null; + + TikaParseOutputFormat outputFormat = configuration.getTikaParseOutputFormat(); + switch (outputFormat) { + case xml: + result = getTransformerHandler(outputStream, "xml", true); + break; + case text: + result = new BodyContentHandler(new OutputStreamWriter(outputStream, this.encoding)); + break; + case html: + result = new ExpandedTitleContentHandler(getTransformerHandler(outputStream, "html", true)); + break; + default: + throw new IllegalArgumentException( + String.format("Unknown format %s", configuration.getTikaParseOutputFormat())); + } + return result; + } + + @Alias + private TransformerHandler getTransformerHandler( + OutputStream output, String method, + boolean prettyPrint) + throws TransformerConfigurationException, UnsupportedEncodingException { + return null; + } +} diff --git a/extensions/timer/runtime/pom.xml b/extensions/timer/runtime/pom.xml index 4b14254ebd9f..0c1bd1e4c8a3 100644 --- a/extensions/timer/runtime/pom.xml +++ b/extensions/timer/runtime/pom.xml @@ -34,18 +34,6 @@ 0.0.2 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/twilio/runtime/pom.xml b/extensions/twilio/runtime/pom.xml index afb8469ade5b..2739c77ec00a 100644 --- a/extensions/twilio/runtime/pom.xml +++ b/extensions/twilio/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/twitter/runtime/pom.xml b/extensions/twitter/runtime/pom.xml index 22708b9c54af..5a64496f86f9 100644 --- a/extensions/twitter/runtime/pom.xml +++ b/extensions/twitter/runtime/pom.xml @@ -35,18 +35,6 @@ 0.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/univocity-parsers/runtime/pom.xml b/extensions/univocity-parsers/runtime/pom.xml index f04db6f2972c..51fd844846d9 100644 --- a/extensions/univocity-parsers/runtime/pom.xml +++ b/extensions/univocity-parsers/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/validator/runtime/pom.xml b/extensions/validator/runtime/pom.xml index bf294990af2c..680b23dc1cfe 100644 --- a/extensions/validator/runtime/pom.xml +++ b/extensions/validator/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/velocity/runtime/pom.xml b/extensions/velocity/runtime/pom.xml index d61852d4426d..5e320638d951 100644 --- a/extensions/velocity/runtime/pom.xml +++ b/extensions/velocity/runtime/pom.xml @@ -35,18 +35,6 @@ 1.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/vertx-http/runtime/pom.xml b/extensions/vertx-http/runtime/pom.xml index 7aeafbee3804..32b13f27021c 100644 --- a/extensions/vertx-http/runtime/pom.xml +++ b/extensions/vertx-http/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/vertx-websocket/runtime/pom.xml b/extensions/vertx-websocket/runtime/pom.xml index 0e2cf4efb3fe..fbe018af53f1 100644 --- a/extensions/vertx-websocket/runtime/pom.xml +++ b/extensions/vertx-websocket/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/vertx/runtime/pom.xml b/extensions/vertx/runtime/pom.xml index 5ad55fb5c604..0b7b783c6524 100644 --- a/extensions/vertx/runtime/pom.xml +++ b/extensions/vertx/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/vm/runtime/pom.xml b/extensions/vm/runtime/pom.xml index 4a9220849fb4..039ed13b8740 100644 --- a/extensions/vm/runtime/pom.xml +++ b/extensions/vm/runtime/pom.xml @@ -34,18 +34,6 @@ 0.3.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/weather/runtime/pom.xml b/extensions/weather/runtime/pom.xml index 6ebe35a4a9d5..69ec239deed4 100644 --- a/extensions/weather/runtime/pom.xml +++ b/extensions/weather/runtime/pom.xml @@ -35,18 +35,6 @@ 1.1.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java b/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java index 467f3b26d1d6..7a941d122ccf 100644 --- a/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java +++ b/extensions/xchange/deployment/src/main/java/org/apache/camel/quarkus/component/xchange/deployment/XchangeProcessor.java @@ -17,6 +17,7 @@ package org.apache.camel.quarkus.component.xchange.deployment; import java.lang.reflect.Modifier; +import java.util.regex.Pattern; import java.util.stream.Stream; import io.quarkus.bootstrap.model.ApplicationModel; @@ -91,10 +92,11 @@ void registerForReflection(BuildProducer reflectiveCla reflectiveClass.produce(new ReflectiveClassBuildItem(false, false, xchangeClasses)); // DTO classes need to be serialized / deserialized + final Pattern pattern = Pattern.compile("^org\\.knowm\\.xchange.*dto.*"); String[] dtoClasses = index.getKnownClasses() .stream() .map(classInfo -> classInfo.name().toString()) - .filter(className -> className.matches("^org\\.knowm\\.xchange.*dto.*")) + .filter(className -> pattern.matcher(className).matches()) .toArray(String[]::new); reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, dtoClasses)); diff --git a/extensions/xchange/runtime/pom.xml b/extensions/xchange/runtime/pom.xml index ea68ba716e55..d3bd4815488c 100644 --- a/extensions/xchange/runtime/pom.xml +++ b/extensions/xchange/runtime/pom.xml @@ -35,18 +35,6 @@ 2.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/xmlsecurity/runtime/pom.xml b/extensions/xmlsecurity/runtime/pom.xml index e1817271ae59..be55aeaf5ed3 100644 --- a/extensions/xmlsecurity/runtime/pom.xml +++ b/extensions/xmlsecurity/runtime/pom.xml @@ -35,18 +35,6 @@ 1.7.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/xpath/runtime/pom.xml b/extensions/xpath/runtime/pom.xml index ac3c169dd128..7fddc2415c02 100644 --- a/extensions/xpath/runtime/pom.xml +++ b/extensions/xpath/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/xslt/runtime/pom.xml b/extensions/xslt/runtime/pom.xml index 88a7f00a5214..45a5ebe5bcef 100644 --- a/extensions/xslt/runtime/pom.xml +++ b/extensions/xslt/runtime/pom.xml @@ -34,18 +34,6 @@ 0.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/xstream/runtime/pom.xml b/extensions/xstream/runtime/pom.xml index 08ae0c6ec05f..e8b77564e92e 100644 --- a/extensions/xstream/runtime/pom.xml +++ b/extensions/xstream/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/zendesk/runtime/pom.xml b/extensions/zendesk/runtime/pom.xml index 963bba456f03..a0f5b616e0ac 100644 --- a/extensions/zendesk/runtime/pom.xml +++ b/extensions/zendesk/runtime/pom.xml @@ -35,18 +35,6 @@ 1.4.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - io.quarkus diff --git a/extensions/zip-deflater/runtime/pom.xml b/extensions/zip-deflater/runtime/pom.xml index 7ea0abaa1782..b2076fbd2d38 100644 --- a/extensions/zip-deflater/runtime/pom.xml +++ b/extensions/zip-deflater/runtime/pom.xml @@ -35,18 +35,6 @@ 1.0.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/extensions/zipfile/runtime/pom.xml b/extensions/zipfile/runtime/pom.xml index 06a08b5980cb..ce0110685309 100644 --- a/extensions/zipfile/runtime/pom.xml +++ b/extensions/zipfile/runtime/pom.xml @@ -34,18 +34,6 @@ 0.2.0 - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientIT.java b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientIT.java index 7a0f9735d152..aed731dd0e3b 100644 --- a/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientIT.java +++ b/integration-test-groups/aws2-quarkus-client/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbQuarkusClientIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.ddb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2DdbQuarkusClientIT extends Aws2DdbQuarkusClientTest { } diff --git a/integration-test-groups/aws2/aws2-cw/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwIT.java b/integration-test-groups/aws2/aws2-cw/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwIT.java index 245e5c0faa0c..2e730198f6b1 100644 --- a/integration-test-groups/aws2/aws2-cw/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwIT.java +++ b/integration-test-groups/aws2/aws2-cw/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.cw.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2CwIT extends Aws2CwTest { } diff --git a/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbIT.java b/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbIT.java index 6370abc18b89..e6d50a99dfc5 100644 --- a/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbIT.java +++ b/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.ddb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2DdbIT extends Aws2DdbTest { } diff --git a/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbStreamIT.java b/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbStreamIT.java index a740a0025fc6..6cfdb85e2e84 100644 --- a/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbStreamIT.java +++ b/integration-test-groups/aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbStreamIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.ddb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2DdbStreamIT extends Aws2DdbStreamTest { } diff --git a/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisIT.java b/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisIT.java index c208a60cf6b3..cc9da3abab23 100644 --- a/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisIT.java +++ b/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.kinesis.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2KinesisIT extends Aws2KinesisTest { } diff --git a/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisTest.java b/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisTest.java index cfc8a4358b03..e35ca1c7c997 100644 --- a/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisTest.java +++ b/integration-test-groups/aws2/aws2-kinesis/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisTest.java @@ -32,6 +32,7 @@ import org.eclipse.microprofile.config.ConfigProvider; import org.hamcrest.Matchers; import org.jboss.logging.Logger; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.testcontainers.containers.localstack.LocalStackContainer.Service; import software.amazon.awssdk.core.ResponseInputStream; @@ -51,6 +52,7 @@ class Aws2KinesisTest { @Aws2Client(Service.S3) S3Client client; + @Disabled("https://github.com/apache/camel-quarkus/issues/3638") @Test public void kinesis() { final String msg = "kinesis-" + java.util.UUID.randomUUID().toString().replace("-", ""); diff --git a/integration-test-groups/aws2/aws2-lambda/src/test/java/org/apache/camel/quarkus/component/aws2/lambda/it/Aws2LambdaIT.java b/integration-test-groups/aws2/aws2-lambda/src/test/java/org/apache/camel/quarkus/component/aws2/lambda/it/Aws2LambdaIT.java index a347dd7d8ed5..43cffe71ff59 100644 --- a/integration-test-groups/aws2/aws2-lambda/src/test/java/org/apache/camel/quarkus/component/aws2/lambda/it/Aws2LambdaIT.java +++ b/integration-test-groups/aws2/aws2-lambda/src/test/java/org/apache/camel/quarkus/component/aws2/lambda/it/Aws2LambdaIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.lambda.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2LambdaIT extends Aws2LambdaTest { } diff --git a/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3IT.java b/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3IT.java index 7e926e57cb3d..9b44267e7462 100644 --- a/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3IT.java +++ b/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3IT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.s3.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2S3IT extends Aws2S3Test { } diff --git a/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Test.java b/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Test.java index 011ba17a0449..faa494fd17c7 100644 --- a/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Test.java +++ b/integration-test-groups/aws2/aws2-s3/src/test/java/org/apache/camel/quarkus/component/aws2/s3/it/Aws2S3Test.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.TestInfo; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; @QuarkusTest @QuarkusTestResource(Aws2TestResource.class) diff --git a/integration-test-groups/aws2/aws2-ses/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesIT.java b/integration-test-groups/aws2/aws2-ses/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesIT.java index 7bac6fb95660..5f2258830c77 100644 --- a/integration-test-groups/aws2/aws2-ses/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesIT.java +++ b/integration-test-groups/aws2/aws2-ses/src/test/java/org/apache/camel/quarkus/component/aws2/ses/it/Aws2SesIT.java @@ -16,14 +16,14 @@ */ package org.apache.camel.quarkus.component.aws2.ses.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; /* Disabled on Localstack because Localstack does not send e-mails which we do assume in our tests * See https://github.com/localstack/localstack/issues/339#issuecomment-341727758 */ @EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY", matches = "[a-zA-Z0-9]+") @EnabledIfEnvironmentVariable(named = "MAILSLURP_API_KEY", matches = "[a-zA-Z0-9]+") -@NativeImageTest +@QuarkusIntegrationTest class Aws2SesIT extends Aws2SesTest { } diff --git a/integration-test-groups/aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SqsSnsIT.java b/integration-test-groups/aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SqsSnsIT.java index 2ebbc5684be0..2d3956861da8 100644 --- a/integration-test-groups/aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SqsSnsIT.java +++ b/integration-test-groups/aws2/aws2-sqs-sns/src/test/java/org/apache/camel/quarkus/component/aws2/sns/it/Aws2SqsSnsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.sns.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2SqsSnsIT extends Aws2SqsSnsTest { } diff --git a/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java b/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java index cf992424851a..0958fa74bef9 100644 --- a/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java +++ b/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.aws2.sqs.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Aws2SqsIT extends Aws2SqsTest { } diff --git a/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java b/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java index 87d924e31110..32f1fd85c9ac 100644 --- a/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java +++ b/integration-test-groups/aws2/aws2-sqs/src/test/java/org/apache/camel/quarkus/component/aws2/sqs/it/Aws2SqsTest.java @@ -167,7 +167,6 @@ void sqsAutoCreateDelayedQueue() { Instant start = Instant.now(); final String msgSent = sendSingleMessageToQueue(qName); awaitMessageWithExpectedContentFromQueue(msgSent, qName); - System.out.println(Duration.between(start, Instant.now()).getSeconds()); Assertions.assertTrue(Duration.between(start, Instant.now()).getSeconds() >= delay); } catch (AssertionError e) { e.printStackTrace(); diff --git a/integration-test-groups/azure/azure-eventhubs/src/test/java/org/apache/camel/quarkus/component/azure/eventhubs/it/AzureEventhubsIT.java b/integration-test-groups/azure/azure-eventhubs/src/test/java/org/apache/camel/quarkus/component/azure/eventhubs/it/AzureEventhubsIT.java index d0f0c0fc4cd3..8489a5b69e15 100644 --- a/integration-test-groups/azure/azure-eventhubs/src/test/java/org/apache/camel/quarkus/component/azure/eventhubs/it/AzureEventhubsIT.java +++ b/integration-test-groups/azure/azure-eventhubs/src/test/java/org/apache/camel/quarkus/component/azure/eventhubs/it/AzureEventhubsIT.java @@ -16,14 +16,14 @@ */ package org.apache.camel.quarkus.component.azure.eventhubs.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "AZURE_STORAGE_ACCOUNT_NAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_STORAGE_ACCOUNT_KEY", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_BLOB_CONTAINER_NAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "AZURE_EVENT_HUBS_CONNECTION_STRING", matches = ".+") -@NativeImageTest +@QuarkusIntegrationTest class AzureEventhubsIT extends AzureEventhubsTest { } diff --git a/integration-test-groups/azure/azure-resources.sh b/integration-test-groups/azure/azure-resources.sh index 8bdcbaa4981f..1e65e5b7604f 100755 --- a/integration-test-groups/azure/azure-resources.sh +++ b/integration-test-groups/azure/azure-resources.sh @@ -40,7 +40,7 @@ function createResources() { az group create --name ${RESOURCE_GROUP} --location ${ZONE} az storage account create --name ${AZURE_STORAGE_ACCOUNT_NAME} --resource-group ${RESOURCE_GROUP} --location ${ZONE} --sku Standard_LRS --kind StorageV2 - az storage account blob-service-properties update --enable-change-feed true --delete-retention-days 1 -n ${AZURE_STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} + az storage account blob-service-properties update --enable-change-feed true --enable-delete-retention true --delete-retention-days 1 -n ${AZURE_STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} SUBSCRIPTION_ID="$(az account list --query '[0].id' -o tsv)" USER_ID="$(az ad signed-in-user show --query objectId -o tsv)" diff --git a/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java b/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java index 790cbb1dd689..5bd0f54f2b87 100644 --- a/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java +++ b/integration-test-groups/azure/azure-storage-blob/src/main/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobResource.java @@ -348,8 +348,10 @@ public JsonObject listBlobContainers() throws Exception { List containers = producerTemplate.requestBody("direct:listBlobContainers", null, List.class); containers.stream() - .map(container -> Json.createObjectBuilder() - .add("name", container.getName()) + .map(BlobContainerItem::getName) + .filter(containerName -> containerName.startsWith("camel-quarkus")) + .map(containerName -> Json.createObjectBuilder() + .add("name", containerName) .build()) .forEach(arrayBuilder::add); diff --git a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobIT.java b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobIT.java index 8e28b46ea913..ca28f9e04e38 100644 --- a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobIT.java +++ b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobIT.java @@ -17,10 +17,10 @@ package org.apache.camel.quarkus.component.azure.storage.blob.it; import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.apache.camel.quarkus.test.support.azure.AzureStorageTestResource; -@NativeImageTest +@QuarkusIntegrationTest @QuarkusTestResource(AzureStorageTestResource.class) class AzureStorageBlobIT extends AzureStorageBlobTest { diff --git a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java index 6594824ee513..1eb12e809e0f 100644 --- a/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java +++ b/integration-test-groups/azure/azure-storage-blob/src/test/java/org/apache/camel/quarkus/component/azure/storage/blob/it/AzureStorageBlobTest.java @@ -27,13 +27,7 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; -import com.azure.core.http.policy.HttpLogDetailLevel; -import com.azure.core.http.policy.HttpLogOptions; -import com.azure.storage.blob.BlobContainerClient; -import com.azure.storage.blob.BlobServiceClient; -import com.azure.storage.blob.BlobServiceClientBuilder; import com.azure.storage.blob.models.BlockListType; -import com.azure.storage.common.StorageSharedKeyCredential; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; @@ -49,6 +43,7 @@ import org.junit.jupiter.api.Test; import org.testcontainers.shaded.org.awaitility.Awaitility; +import static org.hamcrest.Matchers.anyOf; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.StringEndsWith.endsWith; @@ -65,31 +60,26 @@ class AzureStorageBlobTest { @BeforeAll static void beforeAll() { - getClient().create(); + final Config config = ConfigProvider.getConfig(); + String containerName = config.getValue("azure.blob.container.name", String.class); + int port = config.getValue("quarkus.http.test-port", int.class); + RestAssured.port = port; + RestAssured.given() + .queryParam("containerName", containerName) + .post("/azure-storage-blob/blob/container") + .then() + .statusCode(201); } @AfterAll static void afterAll() { - getClient().delete(); - } - - private static BlobContainerClient getClient() { final Config config = ConfigProvider.getConfig(); - final String azureStorageAccountName = config.getValue("azure.storage.account-name", - String.class); - final String azureStorageAccountKey = config - .getValue("azure.storage.account-key", String.class); - - StorageSharedKeyCredential credentials = new StorageSharedKeyCredential(azureStorageAccountName, - azureStorageAccountKey); - BlobServiceClient client = new BlobServiceClientBuilder() - .endpoint(config.getValue("azure.blob.service.url", String.class)) - .credential(credentials) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS).setPrettyPrintBody(true)) - .buildClient(); - String containerName = config.getValue("azure.blob.container.name", String.class); - return client.getBlobContainerClient(containerName); + RestAssured.given() + .queryParam("containerName", containerName) + .delete("/azure-storage-blob/blob/container") + .then() + .statusCode(204); } @Test @@ -132,7 +122,7 @@ public void crud() { // Delete RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @@ -177,7 +167,7 @@ public void download() throws IOException { // Delete RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @@ -235,7 +225,7 @@ public void blockBlobStageCommit() { // Delete RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @@ -269,7 +259,7 @@ public void appendBlob() { // Delete RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @@ -363,13 +353,13 @@ public void pageBlob() { // Delete RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @Test public void blobContainer() { - String alternativeContainerName = "cq-test-" + UUID.randomUUID(); + String alternativeContainerName = "camel-quarkus-" + UUID.randomUUID(); try { // Create @@ -392,13 +382,13 @@ public void blobContainer() { .queryParam("containerName", alternativeContainerName) .delete("/azure-storage-blob/blob/container") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @Test public void copyBlob() { - String alternativeContainerName = "cq-test-" + UUID.randomUUID(); + String alternativeContainerName = "camel-quarkus-" + UUID.randomUUID(); try { // Create container to copy to @@ -454,7 +444,7 @@ public void copyBlob() { RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } @@ -523,7 +513,7 @@ public void changeFeed() { } finally { RestAssured.delete("/azure-storage-blob/blob/delete") .then() - .statusCode(204); + .statusCode(anyOf(is(204), is(404))); } } } diff --git a/integration-test-groups/azure/azure-storage-queue/src/test/java/org/apache/camel/quarkus/component/azure/storage/queue/it/AzureStorageQueueIT.java b/integration-test-groups/azure/azure-storage-queue/src/test/java/org/apache/camel/quarkus/component/azure/storage/queue/it/AzureStorageQueueIT.java index 53f9bded3057..9bcb85e7440a 100644 --- a/integration-test-groups/azure/azure-storage-queue/src/test/java/org/apache/camel/quarkus/component/azure/storage/queue/it/AzureStorageQueueIT.java +++ b/integration-test-groups/azure/azure-storage-queue/src/test/java/org/apache/camel/quarkus/component/azure/storage/queue/it/AzureStorageQueueIT.java @@ -17,10 +17,10 @@ package org.apache.camel.quarkus.component.azure.storage.queue.it; import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.apache.camel.quarkus.test.support.azure.AzureStorageTestResource; -@NativeImageTest +@QuarkusIntegrationTest @QuarkusTestResource(AzureStorageTestResource.class) class AzureStorageQueueIT extends AzureStorageQueueTest { diff --git a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanITCase.java b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanITCase.java index b863e899383e..6818daa67c14 100644 --- a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanITCase.java +++ b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanITCase.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.bean; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class BeanITCase extends BeanTest { } diff --git a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanMethodIT.java b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanMethodIT.java index 13e8262af55f..034a83abdc54 100644 --- a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanMethodIT.java +++ b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/BeanMethodIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.bean; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class BeanMethodIT extends BeanMethodTest { } diff --git a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ClassIT.java b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ClassIT.java index 421ddd5bb706..4158d30683c9 100644 --- a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ClassIT.java +++ b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ClassIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.bean; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ClassIT extends ClassTest { } diff --git a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ConsumeAnnotationIT.java b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ConsumeAnnotationIT.java index 6c6377fba15d..3c21be949332 100644 --- a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ConsumeAnnotationIT.java +++ b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/ConsumeAnnotationIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.bean; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ConsumeAnnotationIT extends ConsumeAnnotationTest { } diff --git a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/EipIT.java b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/EipIT.java index 85cbc757a038..ea6d97fb0960 100644 --- a/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/EipIT.java +++ b/integration-test-groups/foundation/bean/src/test/java/org/apache/camel/quarkus/component/bean/EipIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.bean; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class EipIT extends EipTest { } diff --git a/integration-test-groups/foundation/browse/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseIT.java b/integration-test-groups/foundation/browse/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseIT.java index 90a0facecb63..db8c11aa009c 100644 --- a/integration-test-groups/foundation/browse/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseIT.java +++ b/integration-test-groups/foundation/browse/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.browse.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class BrowseIT extends BrowseTest { } diff --git a/integration-test-groups/foundation/component-name-resolver/src/test/java/org/apache/camel/quarkus/core/component/name/resolver/ComponentNameResolverIT.java b/integration-test-groups/foundation/component-name-resolver/src/test/java/org/apache/camel/quarkus/core/component/name/resolver/ComponentNameResolverIT.java index 5bd3f3d2b4bc..857f00dd9fc0 100644 --- a/integration-test-groups/foundation/component-name-resolver/src/test/java/org/apache/camel/quarkus/core/component/name/resolver/ComponentNameResolverIT.java +++ b/integration-test-groups/foundation/component-name-resolver/src/test/java/org/apache/camel/quarkus/core/component/name/resolver/ComponentNameResolverIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core.component.name.resolver; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ComponentNameResolverIT extends ComponentNameResolverTest { } diff --git a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusIT.java b/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusIT.java index 24700f5029c3..29191f791681 100644 --- a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusIT.java +++ b/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.controlbus.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ControlbusIT extends ControlbusTest { } diff --git a/integration-test-groups/foundation/core-annotations/src/test/java/org/apache/camel/quarkus/core/it/annotations/CoreAnnotationsIT.java b/integration-test-groups/foundation/core-annotations/src/test/java/org/apache/camel/quarkus/core/it/annotations/CoreAnnotationsIT.java index 572522ce9bff..d5a1ac5257b6 100644 --- a/integration-test-groups/foundation/core-annotations/src/test/java/org/apache/camel/quarkus/core/it/annotations/CoreAnnotationsIT.java +++ b/integration-test-groups/foundation/core-annotations/src/test/java/org/apache/camel/quarkus/core/it/annotations/CoreAnnotationsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.it.annotations; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreAnnotationsIT extends CoreAnnotationsTest { } diff --git a/integration-test-groups/foundation/core-fault-tolerance/src/main/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceProducers.java b/integration-test-groups/foundation/core-fault-tolerance/src/main/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceProducers.java index 5b70d4eea8f1..aa9394108c77 100644 --- a/integration-test-groups/foundation/core-fault-tolerance/src/main/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceProducers.java +++ b/integration-test-groups/foundation/core-fault-tolerance/src/main/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceProducers.java @@ -26,7 +26,7 @@ import io.smallrye.faulttolerance.core.InvocationContext; import io.smallrye.faulttolerance.core.circuit.breaker.CircuitBreaker; import io.smallrye.faulttolerance.core.stopwatch.SystemStopwatch; -import io.smallrye.faulttolerance.core.util.SetOfThrowables; +import io.smallrye.faulttolerance.core.util.ExceptionDecision; public class CoreFaultToleranceProducers { @@ -39,7 +39,7 @@ public Integer apply(InvocationContext ctx) { return null; } }; - return new CircuitBreaker(delegate, "description", SetOfThrowables.EMPTY, SetOfThrowables.EMPTY, 10, 40, 0.1, + return new CircuitBreaker(delegate, "description", ExceptionDecision.ALWAYS_FAILURE, 10, 40, 0.1, 2, new SystemStopwatch()) { @Override public String toString() { diff --git a/integration-test-groups/foundation/core-fault-tolerance/src/main/resources/application.properties b/integration-test-groups/foundation/core-fault-tolerance/src/main/resources/application.properties index 82f317f76e95..48c4c9b31509 100644 --- a/integration-test-groups/foundation/core-fault-tolerance/src/main/resources/application.properties +++ b/integration-test-groups/foundation/core-fault-tolerance/src/main/resources/application.properties @@ -17,7 +17,7 @@ # # Camel -camel.faulttolerance.circuitBreakerRef = customCircuitBreaker +camel.faulttolerance.circuitBreaker = customCircuitBreaker camel.faulttolerance.delay = 15 camel.faulttolerance.successThreshold = 4 camel.faulttolerance.requestVolumeThreshold = 60 diff --git a/integration-test-groups/foundation/core-fault-tolerance/src/test/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceIT.java b/integration-test-groups/foundation/core-fault-tolerance/src/test/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceIT.java index dfc212df91e7..76f553a17b7f 100644 --- a/integration-test-groups/foundation/core-fault-tolerance/src/test/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceIT.java +++ b/integration-test-groups/foundation/core-fault-tolerance/src/test/java/org/apache/camel/quarkus/core/faulttolerance/it/CoreFaultToleranceIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core.faulttolerance.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreFaultToleranceIT extends CoreFaultToleranceTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ConstantLanguageIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ConstantLanguageIT.java index b167fd3b6887..f98d60eb21be 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ConstantLanguageIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ConstantLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ConstantLanguageIT extends ConstantLanguageTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/CustomDataFormatIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/CustomDataFormatIT.java index 402d9bd2c15b..ee565bbf35d8 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/CustomDataFormatIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/CustomDataFormatIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CustomDataFormatIT extends CustomDataFormatTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ExchangePropertyLanguageIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ExchangePropertyLanguageIT.java index 778cb3ced580..72ffd6655efb 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ExchangePropertyLanguageIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/ExchangePropertyLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ExchangePropertyLanguageIT extends ExchangePropertyLanguageTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/HeaderLanguageIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/HeaderLanguageIT.java index f200faa17f58..c202817581aa 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/HeaderLanguageIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/HeaderLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HeaderLanguageIT extends HeaderLanguageTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/RefLanguageIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/RefLanguageIT.java index 1c960986d9b6..97403d561f35 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/RefLanguageIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/RefLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class RefLanguageIT extends RefLanguageTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleIT.java index 2a97c36db1e8..310e1be22faa 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class SimpleIT extends SimpleTest { } diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/TokenizeLanguageIT.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/TokenizeLanguageIT.java index 1659fd8949f2..e31f7e8d944c 100644 --- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/TokenizeLanguageIT.java +++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/TokenizeLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.core.languages.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class TokenizeLanguageIT extends TokenizeLanguageTest { } diff --git a/integration-test-groups/foundation/core-thread-pools/src/test/java/org/apache/camel/quarkus/core/CoreThreadPoolsIT.java b/integration-test-groups/foundation/core-thread-pools/src/test/java/org/apache/camel/quarkus/core/CoreThreadPoolsIT.java index 213d0ddbbb5c..a259b96d14d6 100644 --- a/integration-test-groups/foundation/core-thread-pools/src/test/java/org/apache/camel/quarkus/core/CoreThreadPoolsIT.java +++ b/integration-test-groups/foundation/core-thread-pools/src/test/java/org/apache/camel/quarkus/core/CoreThreadPoolsIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreThreadPoolsIT extends CoreThreadPoolsTest { } diff --git a/integration-test-groups/foundation/core/src/test/java/org/apache/camel/quarkus/core/CoreIT.java b/integration-test-groups/foundation/core/src/test/java/org/apache/camel/quarkus/core/CoreIT.java index fbcc377fe904..87ea2dc56e6a 100644 --- a/integration-test-groups/foundation/core/src/test/java/org/apache/camel/quarkus/core/CoreIT.java +++ b/integration-test-groups/foundation/core/src/test/java/org/apache/camel/quarkus/core/CoreIT.java @@ -16,7 +16,7 @@ */ package org.apache.camel.quarkus.core; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import io.restassured.RestAssured; import org.junit.jupiter.api.Test; @@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -@NativeImageTest +@QuarkusIntegrationTest public class CoreIT extends CoreTest { @Test diff --git a/integration-test-groups/foundation/customized-log-component/src/test/java/org/apache/camel/quarkus/component/log/it/CustomizedLogComponentIT.java b/integration-test-groups/foundation/customized-log-component/src/test/java/org/apache/camel/quarkus/component/log/it/CustomizedLogComponentIT.java index d2f3ae217670..de3f26532161 100644 --- a/integration-test-groups/foundation/customized-log-component/src/test/java/org/apache/camel/quarkus/component/log/it/CustomizedLogComponentIT.java +++ b/integration-test-groups/foundation/customized-log-component/src/test/java/org/apache/camel/quarkus/component/log/it/CustomizedLogComponentIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.log.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CustomizedLogComponentIT extends CustomizedLogComponentTest { } diff --git a/integration-test-groups/foundation/direct/src/test/java/org/apache/camel/quarkus/component/direct/it/DirectIT.java b/integration-test-groups/foundation/direct/src/test/java/org/apache/camel/quarkus/component/direct/it/DirectIT.java index 38c39edcd77e..37df1d65be3e 100644 --- a/integration-test-groups/foundation/direct/src/test/java/org/apache/camel/quarkus/component/direct/it/DirectIT.java +++ b/integration-test-groups/foundation/direct/src/test/java/org/apache/camel/quarkus/component/direct/it/DirectIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.direct.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class DirectIT extends DirectTest { } diff --git a/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipIT.java b/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipIT.java index 9a8956ea74aa..c9e0ef3932cb 100644 --- a/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipIT.java +++ b/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.eip.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class EipIT extends EipTest { } diff --git a/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java index 11c66fec7115..8da2ca24d07f 100644 --- a/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java +++ b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.language.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class LanguageIT extends LanguageTest { } diff --git a/integration-test-groups/foundation/log/src/test/java/org/apache/camel/quarkus/component/log/it/LogIT.java b/integration-test-groups/foundation/log/src/test/java/org/apache/camel/quarkus/component/log/it/LogIT.java index 9e84d5b84b3d..c2f985cfaaff 100644 --- a/integration-test-groups/foundation/log/src/test/java/org/apache/camel/quarkus/component/log/it/LogIT.java +++ b/integration-test-groups/foundation/log/src/test/java/org/apache/camel/quarkus/component/log/it/LogIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.log.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class LogIT extends LogTest { } diff --git a/integration-test-groups/foundation/mock/src/test/java/org/apache/camel/quarkus/component/mock/it/MockIT.java b/integration-test-groups/foundation/mock/src/test/java/org/apache/camel/quarkus/component/mock/it/MockIT.java index 6b76d0d58bd9..ad67cdfe2369 100644 --- a/integration-test-groups/foundation/mock/src/test/java/org/apache/camel/quarkus/component/mock/it/MockIT.java +++ b/integration-test-groups/foundation/mock/src/test/java/org/apache/camel/quarkus/component/mock/it/MockIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.mock.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MockIT extends MockTest { } diff --git a/integration-test-groups/foundation/ref/src/test/java/org/apache/camel/quarkus/component/ref/it/RefIT.java b/integration-test-groups/foundation/ref/src/test/java/org/apache/camel/quarkus/component/ref/it/RefIT.java index 1ca0fa8702e2..d4a02d1260f9 100644 --- a/integration-test-groups/foundation/ref/src/test/java/org/apache/camel/quarkus/component/ref/it/RefIT.java +++ b/integration-test-groups/foundation/ref/src/test/java/org/apache/camel/quarkus/component/ref/it/RefIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.ref.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class RefIT extends RefTest { } diff --git a/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java index 60f325309448..a28d8bb95e0e 100644 --- a/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java +++ b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core.it.routeconfigurations; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class RouteConfigurationsIT extends RouteConfigurationsTest { } diff --git a/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerIT.java b/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerIT.java index db02afd9e3bd..3304d1b7e352 100644 --- a/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerIT.java +++ b/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.scheduler.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SchedulerIT extends SchedulerTest { } diff --git a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaIT.java b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaIT.java index 564adfab3b22..cc283a9891e7 100644 --- a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaIT.java +++ b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.seda.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SedaIT extends SedaTest { } diff --git a/integration-test-groups/foundation/stream/src/main/java/org/apache/camel/quarkus/component/stream/it/StreamResource.java b/integration-test-groups/foundation/stream/src/main/java/org/apache/camel/quarkus/component/stream/it/StreamResource.java index 24f6ea05e3c3..462bccc4bbdc 100644 --- a/integration-test-groups/foundation/stream/src/main/java/org/apache/camel/quarkus/component/stream/it/StreamResource.java +++ b/integration-test-groups/foundation/stream/src/main/java/org/apache/camel/quarkus/component/stream/it/StreamResource.java @@ -42,7 +42,7 @@ public class StreamResource { public String greetingStream(String message) throws Exception { try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) { producerTemplate.sendBodyAndHeader("stream:header", message.getBytes(), "stream", stream); - return "Hello " + stream.toString(); + return "Hello " + stream; } } } diff --git a/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamIT.java b/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamIT.java index fc594fba9e61..4b48c5af9429 100644 --- a/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamIT.java +++ b/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.stream.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class StreamIT extends StreamTest { } diff --git a/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamTest.java b/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamTest.java index 374c3c7fc347..b8b1ab925af7 100644 --- a/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamTest.java +++ b/integration-test-groups/foundation/stream/src/test/java/org/apache/camel/quarkus/component/stream/it/StreamTest.java @@ -33,6 +33,6 @@ public void testStreamComponent() { .body("Camel Quarkus Stream") .post("/stream/post") .then().statusCode(200) - .body(is("Hello Camel Quarkus Stream")); + .body(is("Hello Camel Quarkus Stream" + System.lineSeparator())); } } diff --git a/integration-test-groups/foundation/timer/src/test/java/org/apache/camel/quarkus/component/timer/it/TimerIT.java b/integration-test-groups/foundation/timer/src/test/java/org/apache/camel/quarkus/component/timer/it/TimerIT.java index 0ca109d03d74..e2dbc2747f72 100644 --- a/integration-test-groups/foundation/timer/src/test/java/org/apache/camel/quarkus/component/timer/it/TimerIT.java +++ b/integration-test-groups/foundation/timer/src/test/java/org/apache/camel/quarkus/component/timer/it/TimerIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.timer.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class TimerIT extends TimerTest { } diff --git a/integration-test-groups/foundation/type-converter/src/test/java/org/apache/camel/quarkus/core/converter/it/ConverterIT.java b/integration-test-groups/foundation/type-converter/src/test/java/org/apache/camel/quarkus/core/converter/it/ConverterIT.java index c215654100cc..0fa306e5e878 100644 --- a/integration-test-groups/foundation/type-converter/src/test/java/org/apache/camel/quarkus/core/converter/it/ConverterIT.java +++ b/integration-test-groups/foundation/type-converter/src/test/java/org/apache/camel/quarkus/core/converter/it/ConverterIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core.converter.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class ConverterIT extends ConverterTest { } diff --git a/integration-test-groups/mongodb/mongodb-gridfs/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsIT.java b/integration-test-groups/mongodb/mongodb-gridfs/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsIT.java index 745b50d68d11..03e1e6649eda 100644 --- a/integration-test-groups/mongodb/mongodb-gridfs/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsIT.java +++ b/integration-test-groups/mongodb/mongodb-gridfs/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.mongodb.gridfs.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MongodbGridfsIT extends MongodbGridfsTest { } diff --git a/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbIT.java b/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbIT.java index 2a6e14682182..60fc464e1c45 100644 --- a/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbIT.java +++ b/integration-test-groups/mongodb/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.mongodb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MongoDbIT extends MongoDbTest { } diff --git a/integration-tests-jvm/couchbase/pom.xml b/integration-tests-jvm/couchbase/pom.xml index 58f384bfd47d..e4c0bcecfb85 100644 --- a/integration-tests-jvm/couchbase/pom.xml +++ b/integration-tests-jvm/couchbase/pom.xml @@ -55,6 +55,17 @@ org.testcontainers couchbase test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test org.awaitility diff --git a/integration-tests-jvm/weka/pom.xml b/integration-tests-jvm/google-secret-manager/pom.xml similarity index 67% rename from integration-tests-jvm/weka/pom.xml rename to integration-tests-jvm/google-secret-manager/pom.xml index 1da745fba199..39c587294db6 100644 --- a/integration-tests-jvm/weka/pom.xml +++ b/integration-tests-jvm/google-secret-manager/pom.xml @@ -17,7 +17,9 @@ limitations under the License. --> - + 4.0.0 org.apache.camel.quarkus @@ -26,14 +28,33 @@ ../../poms/build-parent-it/pom.xml - camel-quarkus-integration-test-weka - Camel Quarkus :: Integration Tests :: Weka - Integration tests for Camel Quarkus Weka extension + camel-quarkus-integration-test-google-secret-manager + Camel Quarkus :: Integration Tests :: Google Secret Manager + Integration tests for Camel Quarkus Google Secret Manager extension + + + + + ${quarkus.platform.group-id} + ${quarkus.platform.artifact-id} + ${quarkus.platform.version} + pom + import + + + org.apache.camel.quarkus + camel-quarkus-bom-test + ${camel-quarkus.version} + pom + import + + + org.apache.camel.quarkus - camel-quarkus-weka + camel-quarkus-google-secret-manager io.quarkus @@ -65,7 +86,7 @@ org.apache.camel.quarkus - camel-quarkus-weka-deployment + camel-quarkus-google-secret-manager-deployment ${project.version} pom test @@ -79,5 +100,4 @@ - diff --git a/integration-tests-jvm/weka/src/main/java/org/apache/camel/quarkus/component/weka/it/WekaResource.java b/integration-tests-jvm/google-secret-manager/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerResource.java similarity index 66% rename from integration-tests-jvm/weka/src/main/java/org/apache/camel/quarkus/component/weka/it/WekaResource.java rename to integration-tests-jvm/google-secret-manager/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerResource.java index da6b22c6dee4..8f6b410edd2f 100644 --- a/integration-tests-jvm/weka/src/main/java/org/apache/camel/quarkus/component/weka/it/WekaResource.java +++ b/integration-tests-jvm/google-secret-manager/src/main/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerResource.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.weka.it; +package org.apache.camel.quarkus.component.google.secret.manager.it; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; @@ -27,25 +27,25 @@ import org.apache.camel.CamelContext; import org.jboss.logging.Logger; -@Path("/weka") +@Path("/google-secret-manager") @ApplicationScoped -public class WekaResource { +public class GoogleSecretManagerResource { - private static final Logger LOG = Logger.getLogger(WekaResource.class); + private static final Logger LOG = Logger.getLogger(GoogleSecretManagerResource.class); - private static final String COMPONENT_WEKA = "weka"; + private static final String COMPONENT_GOOGLE_SECRET_MANAGER = "google-secret-manager"; @Inject CamelContext context; - @Path("/load/component/weka") + @Path("/load/component/google-secret-manager") @GET @Produces(MediaType.TEXT_PLAIN) - public Response loadComponentWeka() throws Exception { + public Response loadComponentGoogleSecretManager() throws Exception { /* This is an autogenerated test */ - if (context.getComponent(COMPONENT_WEKA) != null) { + if (context.getComponent(COMPONENT_GOOGLE_SECRET_MANAGER) != null) { return Response.ok().build(); } - LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_WEKA); - return Response.status(500, COMPONENT_WEKA + " could not be loaded from the Camel context").build(); + LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_GOOGLE_SECRET_MANAGER); + return Response.status(500, COMPONENT_GOOGLE_SECRET_MANAGER + " could not be loaded from the Camel context").build(); } } diff --git a/integration-tests-jvm/weka/src/test/java/org/apache/camel/quarkus/component/weka/it/WekaTest.java b/integration-tests-jvm/google-secret-manager/src/test/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerTest.java similarity index 81% rename from integration-tests-jvm/weka/src/test/java/org/apache/camel/quarkus/component/weka/it/WekaTest.java rename to integration-tests-jvm/google-secret-manager/src/test/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerTest.java index 894290b3723c..d5f03a202865 100644 --- a/integration-tests-jvm/weka/src/test/java/org/apache/camel/quarkus/component/weka/it/WekaTest.java +++ b/integration-tests-jvm/google-secret-manager/src/test/java/org/apache/camel/quarkus/component/google/secret/manager/it/GoogleSecretManagerTest.java @@ -14,19 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.weka.it; +package org.apache.camel.quarkus.component.google.secret.manager.it; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import org.junit.jupiter.api.Test; @QuarkusTest -class WekaTest { +class GoogleSecretManagerTest { @Test - public void loadComponentWeka() { + public void loadComponentGoogleSecretManager() { /* A simple autogenerated test */ - RestAssured.get("/weka/load/component/weka") + RestAssured.get("/google-secret-manager/load/component/google-secret-manager") .then() .statusCode(200); } diff --git a/integration-tests-jvm/hbase/pom.xml b/integration-tests-jvm/hbase/pom.xml index 377741f970f2..0d2117b60ceb 100644 --- a/integration-tests-jvm/hbase/pom.xml +++ b/integration-tests-jvm/hbase/pom.xml @@ -82,10 +82,16 @@ org.testcontainers testcontainers test + + + junit + junit + + - junit - junit + io.quarkus + quarkus-junit4-mock test diff --git a/integration-tests-jvm/pom.xml b/integration-tests-jvm/pom.xml index bb0c5b843fcc..91afee7ba8b0 100644 --- a/integration-tests-jvm/pom.xml +++ b/integration-tests-jvm/pom.xml @@ -66,6 +66,7 @@ flink ganglia google-functions + google-secret-manager groovy groovy-dsl guava-eventbus diff --git a/integration-tests-jvm/redis/pom.xml b/integration-tests-jvm/redis/pom.xml index 2eb7329fe80e..5356236c4ea7 100644 --- a/integration-tests-jvm/redis/pom.xml +++ b/integration-tests-jvm/redis/pom.xml @@ -72,6 +72,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests-support/activemq/pom.xml b/integration-tests-support/activemq/pom.xml index f12b2fd0b798..744d7dbe7c92 100644 --- a/integration-tests-support/activemq/pom.xml +++ b/integration-tests-support/activemq/pom.xml @@ -37,6 +37,16 @@ org.testcontainers testcontainers + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock diff --git a/integration-tests-support/aws2/pom.xml b/integration-tests-support/aws2/pom.xml index 1d32ff1d088f..c854c6244ebd 100644 --- a/integration-tests-support/aws2/pom.xml +++ b/integration-tests-support/aws2/pom.xml @@ -41,6 +41,16 @@ org.testcontainers localstack + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock software.amazon.awssdk diff --git a/integration-tests-support/azure/pom.xml b/integration-tests-support/azure/pom.xml index 72631ca80f40..e1dceaab508c 100644 --- a/integration-tests-support/azure/pom.xml +++ b/integration-tests-support/azure/pom.xml @@ -42,11 +42,19 @@ org.testcontainers testcontainers + + junit + junit + org.jetbrains annotations + + io.quarkus + quarkus-junit4-mock + diff --git a/integration-tests-support/custom-log-component/runtime/pom.xml b/integration-tests-support/custom-log-component/runtime/pom.xml index b4db985b9a5a..10ed10d5fbd8 100644 --- a/integration-tests-support/custom-log-component/runtime/pom.xml +++ b/integration-tests-support/custom-log-component/runtime/pom.xml @@ -30,18 +30,6 @@ Camel Quarkus :: Integration Tests :: Support :: Custom Log Component :: Runtime A test extension - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/integration-tests-support/custom-main-listener/runtime/pom.xml b/integration-tests-support/custom-main-listener/runtime/pom.xml index a4b31b1dea50..7d55f8980ca6 100644 --- a/integration-tests-support/custom-main-listener/runtime/pom.xml +++ b/integration-tests-support/custom-main-listener/runtime/pom.xml @@ -30,18 +30,6 @@ Camel Quarkus :: Integration Tests :: Support :: Custom Main Listener :: Runtime A test extension - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/integration-tests-support/custom-routes-collector/runtime/pom.xml b/integration-tests-support/custom-routes-collector/runtime/pom.xml index a066d6c628e9..537c98130c23 100644 --- a/integration-tests-support/custom-routes-collector/runtime/pom.xml +++ b/integration-tests-support/custom-routes-collector/runtime/pom.xml @@ -30,18 +30,6 @@ Camel Quarkus :: Integration Tests :: Support :: Custom Routes Collector :: Runtime A test extension - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/integration-tests-support/custom-type-converter/runtime/pom.xml b/integration-tests-support/custom-type-converter/runtime/pom.xml index 11af4f2ab79a..982ddb1c0f2c 100644 --- a/integration-tests-support/custom-type-converter/runtime/pom.xml +++ b/integration-tests-support/custom-type-converter/runtime/pom.xml @@ -30,18 +30,6 @@ Camel Quarkus :: Integration Tests :: Support :: Custom Type Converter :: Runtime A test extension - - - - org.apache.camel.quarkus - camel-quarkus-bom - ${project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/integration-tests-support/kafka/pom.xml b/integration-tests-support/kafka/pom.xml index 3888950fa12d..7c57fb71c704 100644 --- a/integration-tests-support/kafka/pom.xml +++ b/integration-tests-support/kafka/pom.xml @@ -41,6 +41,16 @@ org.testcontainers kafka + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock diff --git a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/InjectKafka.java b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/InjectKafka.java new file mode 100644 index 000000000000..02dca6a63d97 --- /dev/null +++ b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/InjectKafka.java @@ -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. + */ +package org.apache.camel.quarkus.test.support.kafka; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD }) +@Retention(RetentionPolicy.RUNTIME) +public @interface InjectKafka { +} diff --git a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java index dce93d4b7bbb..9c81c69fd297 100644 --- a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java +++ b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java @@ -63,4 +63,11 @@ public void stop() { } } } + + @Override + public void inject(TestInjector testInjector) { + testInjector.injectIntoFields(container, + new TestInjector.AnnotatedAndMatchesType(InjectKafka.class, KafkaContainer.class)); + } + } diff --git a/integration-tests-support/mongodb/pom.xml b/integration-tests-support/mongodb/pom.xml index c7e8a137c804..46145d5877be 100644 --- a/integration-tests-support/mongodb/pom.xml +++ b/integration-tests-support/mongodb/pom.xml @@ -41,6 +41,16 @@ org.testcontainers testcontainers + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock diff --git a/integration-tests-support/pom.xml b/integration-tests-support/pom.xml index 7aba841d6e3d..98eda3811ca6 100644 --- a/integration-tests-support/pom.xml +++ b/integration-tests-support/pom.xml @@ -55,6 +55,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom diff --git a/integration-tests/activemq/pom.xml b/integration-tests/activemq/pom.xml index f091cb491e3f..619a7652aa6b 100644 --- a/integration-tests/activemq/pom.xml +++ b/integration-tests/activemq/pom.xml @@ -58,6 +58,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/activemq/src/test/java/org/apache/camel/quarkus/component/activemq/it/ActiveMQIT.java b/integration-tests/activemq/src/test/java/org/apache/camel/quarkus/component/activemq/it/ActiveMQIT.java index 653a8813c8a5..8d01eb016012 100644 --- a/integration-tests/activemq/src/test/java/org/apache/camel/quarkus/component/activemq/it/ActiveMQIT.java +++ b/integration-tests/activemq/src/test/java/org/apache/camel/quarkus/component/activemq/it/ActiveMQIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.activemq.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ActiveMQIT extends ActiveMQTest { } diff --git a/integration-tests/amqp/src/test/java/org/apache/camel/quarkus/component/amqp/it/AmqpIT.java b/integration-tests/amqp/src/test/java/org/apache/camel/quarkus/component/amqp/it/AmqpIT.java index 4c59efe626d5..5ce35e929b73 100644 --- a/integration-tests/amqp/src/test/java/org/apache/camel/quarkus/component/amqp/it/AmqpIT.java +++ b/integration-tests/amqp/src/test/java/org/apache/camel/quarkus/component/amqp/it/AmqpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.amqp.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class AmqpIT extends AmqpTest { } diff --git a/integration-tests/arangodb/pom.xml b/integration-tests/arangodb/pom.xml index 848f3d87872a..274352120961 100644 --- a/integration-tests/arangodb/pom.xml +++ b/integration-tests/arangodb/pom.xml @@ -55,6 +55,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java index 8e8600680223..58caf378ceeb 100644 --- a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java +++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.arangodb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ArangodbIT extends ArangodbTest { } diff --git a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java index 1896dda13214..42246d01fbd4 100644 --- a/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java +++ b/integration-tests/as2/src/test/java/org/apache/camel/quarkus/component/as2/it/As2IT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.as2.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class As2IT extends As2Test { } diff --git a/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapIT.java b/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapIT.java index e52f423ddd08..9e71294024f9 100644 --- a/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapIT.java +++ b/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.atlasmap.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; //@DisabledOnNativeImage("https://github.com/apache/camel-quarkus/issues/3189") -@NativeImageTest +@QuarkusIntegrationTest class AtlasmapIT extends AtlasmapTest { } diff --git a/integration-tests/avro-rpc/pom.xml b/integration-tests/avro-rpc/pom.xml index 6a2aff73bdd6..2cd1b49e6eea 100644 --- a/integration-tests/avro-rpc/pom.xml +++ b/integration-tests/avro-rpc/pom.xml @@ -63,6 +63,10 @@ javax.servlet javax.servlet-api + + javax.annotation + javax.annotation-api + test diff --git a/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcHttpIT.java b/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcHttpIT.java index 50db908a7dec..04c7b3fa356b 100644 --- a/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcHttpIT.java +++ b/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcHttpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.avro.rpc.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class AvroRpcHttpIT extends AvroRpcHttpTest { } diff --git a/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcNettyIT.java b/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcNettyIT.java index 96e4eab6d838..bab67929b2c6 100644 --- a/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcNettyIT.java +++ b/integration-tests/avro-rpc/src/test/java/org/apache/camel/quarkus/component/avro/rpc/it/AvroRpcNettyIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.avro.rpc.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class AvroRpcNettyIT extends AvroRpcNettyTest { } diff --git a/integration-tests/avro/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroIT.java b/integration-tests/avro/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroIT.java index 9ad2a4d89041..ae5a820c3dcd 100644 --- a/integration-tests/avro/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroIT.java +++ b/integration-tests/avro/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.avro.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class AvroIT extends AvroTest { } diff --git a/integration-tests/base64/src/test/java/org/apache/camel/quarkus/component/base64/it/Base64IT.java b/integration-tests/base64/src/test/java/org/apache/camel/quarkus/component/base64/it/Base64IT.java index 0c69bd28d36d..0de6f4736c98 100644 --- a/integration-tests/base64/src/test/java/org/apache/camel/quarkus/component/base64/it/Base64IT.java +++ b/integration-tests/base64/src/test/java/org/apache/camel/quarkus/component/base64/it/Base64IT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.base64.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Base64IT extends Base64Test { } diff --git a/integration-tests/bean-validator/src/main/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorResource.java b/integration-tests/bean-validator/src/main/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorResource.java index e648a14c0c92..af9f29eaaf2c 100644 --- a/integration-tests/bean-validator/src/main/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorResource.java +++ b/integration-tests/bean-validator/src/main/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorResource.java @@ -50,6 +50,14 @@ public Response get(@PathParam("optional") String endpoint, @PathParam("manufact return get(new Car(manufactor, plate), endpoint); } + @Path("/get/{optional}/{manufactor}") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Response getNull(@PathParam("optional") String endpoint, @PathParam("manufactor") String manufactor) + throws Exception { + return get(new Car(manufactor, null), endpoint); + } + private Response get(Car car, String endpoint) throws Exception { LOG.info("bean-validator: " + car.getManufacturer() + "/" + car.getLicensePlate()); Exchange out = producerTemplate.request("direct:" + endpoint, e -> e.getMessage().setBody(car)); diff --git a/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorIT.java b/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorIT.java index 314f46c3189a..4a3a52c4fec6 100644 --- a/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorIT.java +++ b/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.bean.validator.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class BeanValidatorIT extends BeanValidatorTest { } diff --git a/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorTest.java b/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorTest.java index 9a31d806ccaf..8785041ac014 100644 --- a/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorTest.java +++ b/integration-tests/bean-validator/src/test/java/org/apache/camel/quarkus/component/bean/validator/it/BeanValidatorTest.java @@ -33,7 +33,10 @@ public void test() { RestAssured.get("/bean-validator/get/start/honda/123").then().statusCode(200); //not-forced optional check RestAssured.get("/bean-validator/get/start/honda/DD-AB-12").then().statusCode(200); - + //forced null-check + RestAssured.get("/bean-validator/get/start/honda").then().statusCode(400); + //Null-check not in optional group and null is valid for minSize + RestAssured.get("/bean-validator/get/optional/honda").then().statusCode(200); } } diff --git a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/CsvRecordIT.java b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/CsvRecordIT.java index 444ae049f64f..a1aadf6a51ca 100644 --- a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/CsvRecordIT.java +++ b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/CsvRecordIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.bindy.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CsvRecordIT extends CsvRecordTest { } diff --git a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthRecordIT.java b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthRecordIT.java index a465a86591cb..5c26be9633b4 100644 --- a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthRecordIT.java +++ b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthRecordIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.bindy.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FixedLengthRecordIT extends FixedLengthRecordTest { } diff --git a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java index 2e1bc7bd1110..1ab0824dbbac 100644 --- a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java +++ b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/FixedLengthWithLocaleIT.java @@ -16,11 +16,11 @@ */ package org.apache.camel.quarkus.component.bindy.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.Disabled; @Disabled("https://github.com/apache/camel-quarkus/issues/2407") -@NativeImageTest +@QuarkusIntegrationTest class FixedLengthWithLocaleIT extends FixedLengthWithLocaleTest { } diff --git a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/MessageRecordIT.java b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/MessageRecordIT.java index 52a9907b8650..d851431ceb18 100644 --- a/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/MessageRecordIT.java +++ b/integration-tests/bindy/src/test/java/org/apache/camel/quarkus/component/bindy/it/MessageRecordIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.bindy.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MessageRecordIT extends MessageTest { } diff --git a/integration-tests/box/src/test/java/org/apache/camel/quarkus/component/box/it/BoxIT.java b/integration-tests/box/src/test/java/org/apache/camel/quarkus/component/box/it/BoxIT.java index 47947d4fc8eb..655cfb547736 100644 --- a/integration-tests/box/src/test/java/org/apache/camel/quarkus/component/box/it/BoxIT.java +++ b/integration-tests/box/src/test/java/org/apache/camel/quarkus/component/box/it/BoxIT.java @@ -16,14 +16,14 @@ */ package org.apache.camel.quarkus.component.box.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "BOX_USER_NAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "BOX_USER_PASSWORD", matches = ".+") @EnabledIfEnvironmentVariable(named = "BOX_CLIENT_ID", matches = ".+") @EnabledIfEnvironmentVariable(named = "BOX_CLIENT_SECRET", matches = ".+") -@NativeImageTest +@QuarkusIntegrationTest class BoxIT extends BoxTest { } diff --git a/integration-tests/braintree/src/test/java/org/apache/camel/quarkus/component/braintree/it/BraintreeIT.java b/integration-tests/braintree/src/test/java/org/apache/camel/quarkus/component/braintree/it/BraintreeIT.java index 16d69d129862..240f4c5dee3d 100644 --- a/integration-tests/braintree/src/test/java/org/apache/camel/quarkus/component/braintree/it/BraintreeIT.java +++ b/integration-tests/braintree/src/test/java/org/apache/camel/quarkus/component/braintree/it/BraintreeIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.braintree.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -@NativeImageTest +@QuarkusIntegrationTest @EnabledIfEnvironmentVariable(named = "BRAINTREE_MERCHANT_ID", matches = ".+") @EnabledIfEnvironmentVariable(named = "BRAINTREE_PUBLIC_KEY", matches = ".+") @EnabledIfEnvironmentVariable(named = "BRAINTREE_PRIVATE_KEY", matches = ".+") diff --git a/integration-tests/caffeine/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineIT.java b/integration-tests/caffeine/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineIT.java index 64b931b42c62..57835ff0237e 100644 --- a/integration-tests/caffeine/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineIT.java +++ b/integration-tests/caffeine/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.caffeine.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CaffeineIT extends CaffeineTest { } diff --git a/integration-tests/cassandraql/pom.xml b/integration-tests/cassandraql/pom.xml index d53e9437ccaa..58fd78a5a915 100644 --- a/integration-tests/cassandraql/pom.xml +++ b/integration-tests/cassandraql/pom.xml @@ -68,6 +68,10 @@ cassandra test + + junit + junit + com.google.code.findbugs jsr305 @@ -78,6 +82,11 @@ + + io.quarkus + quarkus-junit4-mock + test + diff --git a/integration-tests/cassandraql/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CustomLoadBalancingPolicy.java b/integration-tests/cassandraql/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CustomLoadBalancingPolicy.java index 466212f325de..192cf2e242dc 100644 --- a/integration-tests/cassandraql/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CustomLoadBalancingPolicy.java +++ b/integration-tests/cassandraql/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CustomLoadBalancingPolicy.java @@ -24,19 +24,18 @@ import com.datastax.oss.driver.api.core.context.DriverContext; import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.internal.core.loadbalancing.DefaultLoadBalancingPolicy; -import edu.umd.cs.findbugs.annotations.NonNull; import io.quarkus.runtime.annotations.RegisterForReflection; @RegisterForReflection(fields = false, methods = false) public class CustomLoadBalancingPolicy extends DefaultLoadBalancingPolicy { private static final CountDownLatch latch = new CountDownLatch(1); - public CustomLoadBalancingPolicy(@NonNull DriverContext context, @NonNull String profileName) { + public CustomLoadBalancingPolicy(DriverContext context, String profileName) { super(context, profileName); } @Override - public void init(@NonNull Map nodes, @NonNull DistanceReporter distanceReporter) { + public void init(Map nodes, DistanceReporter distanceReporter) { super.init(nodes, distanceReporter); latch.countDown(); } diff --git a/integration-tests/cassandraql/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlIT.java b/integration-tests/cassandraql/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlIT.java index 5aa165d1ff40..9bd8183c9172 100644 --- a/integration-tests/cassandraql/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlIT.java +++ b/integration-tests/cassandraql/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.cassandraql.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CassandraqlIT extends CassandraqlTest { } diff --git a/integration-tests/cbor/src/test/java/org/apache/camel/quarkus/component/cbor/it/CborIT.java b/integration-tests/cbor/src/test/java/org/apache/camel/quarkus/component/cbor/it/CborIT.java index b297fdbd1fd1..c2029f8cb970 100644 --- a/integration-tests/cbor/src/test/java/org/apache/camel/quarkus/component/cbor/it/CborIT.java +++ b/integration-tests/cbor/src/test/java/org/apache/camel/quarkus/component/cbor/it/CborIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.cbor.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CborIT extends CborTest { } diff --git a/integration-tests/compression/pom.xml b/integration-tests/compression/pom.xml index 9b2da10040bc..bf7d493c92d0 100644 --- a/integration-tests/compression/pom.xml +++ b/integration-tests/compression/pom.xml @@ -47,17 +47,20 @@ org.apache.camel.quarkus camel-quarkus-direct + + org.apache.camel.quarkus + camel-quarkus-mock + io.quarkus quarkus-resteasy - - io.quarkus quarkus-junit5 - test + + io.rest-assured rest-assured @@ -129,6 +132,19 @@ + + org.apache.camel.quarkus + camel-quarkus-mock-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-zip-deflater-deployment diff --git a/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionResource.java b/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionResource.java index af8ae3aa20a5..cad45c57045b 100644 --- a/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionResource.java +++ b/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionResource.java @@ -16,11 +16,21 @@ */ package org.apache.camel.quarkus.component.compression.it; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.Arrays; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; 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.PathParam; @@ -28,7 +38,13 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.apache.camel.CamelContext; +import org.apache.camel.Message; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.mock.MockEndpoint; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; @Path("/compression") @ApplicationScoped @@ -37,16 +53,16 @@ public class CompressionResource { @Inject ProducerTemplate producerTemplate; + @Inject + CamelContext camelContext; + @Path("/compress/{format}") @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response zipfileCompress(@PathParam("format") String format, byte[] message) throws Exception { final byte[] response = producerTemplate.requestBody("direct:" + format + "-compress", message, byte[].class); - return Response - .created(new URI("https://camel.apache.org/")) - .header("content-length", response.length) - .entity(response) + return Response.created(new URI("https://camel.apache.org/")).header("content-length", response.length).entity(response) .build(); } @@ -56,11 +72,72 @@ public Response zipfileCompress(@PathParam("format") String format, byte[] messa @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response zipfileUncompress(@PathParam("format") String format, byte[] message) throws Exception { final byte[] response = producerTemplate.requestBody("direct:" + format + "-uncompress", message, byte[].class); - return Response - .created(new URI("https://camel.apache.org/")) - .header("content-length", response.length) - .entity(response) + return Response.created(new URI("https://camel.apache.org/")).header("content-length", response.length).entity(response) .build(); } + @Path("/zipfile/splitIteratorShouldSucceed") + @GET + public void zipFileSplitIteratorShouldSucceed() throws Exception { + try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { + try (ZipOutputStream zipOutputStream = new ZipOutputStream(baos)) { + zipOutputStream.putNextEntry(new ZipEntry("first")); + zipOutputStream.write("first-entry".getBytes(StandardCharsets.UTF_8)); + zipOutputStream.closeEntry(); + zipOutputStream.putNextEntry(new ZipEntry("second")); + zipOutputStream.write("second-entry".getBytes(StandardCharsets.UTF_8)); + zipOutputStream.closeEntry(); + zipOutputStream.close(); + } + + MockEndpoint mockSplitIterator = camelContext.getEndpoint("mock:zipfile-splititerator", MockEndpoint.class); + mockSplitIterator.expectedBodiesReceived("first-entry", "second-entry"); + producerTemplate.requestBody("direct:zipfile-splititerator", baos.toByteArray()); + mockSplitIterator.assertIsSatisfied(); + } + } + + @Path("/zipfile/aggregateShouldSucceed") + @GET + public void zipFileAggregateShouldSucceed() throws Exception { + + File firstInputFile = null, secondInputFile = null; + + try { + firstInputFile = File.createTempFile("cq-zipfile-it-", "-first"); + Files.write(firstInputFile.toPath(), Arrays.asList("first-content"), StandardCharsets.UTF_8); + secondInputFile = File.createTempFile("cq-zipfile-it-", "-second"); + Files.write(secondInputFile.toPath(), Arrays.asList("second-content"), StandardCharsets.UTF_8); + + MockEndpoint mockAggregate = camelContext.getEndpoint("mock:zipfile-aggregate", MockEndpoint.class); + mockAggregate.expectedMessageCount(1); + producerTemplate.requestBody("direct:zipfile-aggregate", firstInputFile); + producerTemplate.requestBody("direct:zipfile-aggregate", secondInputFile); + mockAggregate.assertIsSatisfied(); + + assertNotNull(mockAggregate.getReceivedExchanges()); + assertEquals(1, mockAggregate.getReceivedExchanges().size()); + Message producedMessage = mockAggregate.getReceivedExchanges().get(0).getMessage(); + assertNotNull(producedMessage); + byte[] producedZip = producedMessage.getBody(byte[].class); + + try (ByteArrayInputStream producedZipBytes = new ByteArrayInputStream(producedZip)) { + try (ZipInputStream producedZipInputStream = new ZipInputStream(producedZipBytes)) { + ZipEntry firstProducedEntry = producedZipInputStream.getNextEntry(); + assertNotNull(firstProducedEntry); + assertEquals(firstInputFile.getName(), firstProducedEntry.getName()); + ZipEntry secondProducedEntry = producedZipInputStream.getNextEntry(); + assertNotNull(secondProducedEntry); + assertEquals(secondInputFile.getName(), secondProducedEntry.getName()); + } + } + } finally { + if (firstInputFile != null) { + firstInputFile.delete(); + } + if (secondInputFile != null) { + secondInputFile.delete(); + } + } + } } diff --git a/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionRouteBuilder.java b/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionRouteBuilder.java index 7a81e5a21094..ffff6e4d6160 100644 --- a/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionRouteBuilder.java +++ b/integration-tests/compression/src/main/java/org/apache/camel/quarkus/component/compression/it/CompressionRouteBuilder.java @@ -16,7 +16,12 @@ */ package org.apache.camel.quarkus.component.compression.it; +import java.util.Iterator; + +import io.quarkus.runtime.annotations.RegisterForReflection; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dataformat.zipfile.ZipFileDataFormat; +import org.apache.camel.processor.aggregate.zipfile.ZipAggregationStrategy; public class CompressionRouteBuilder extends RouteBuilder { @Override @@ -40,5 +45,27 @@ public void configure() { .marshal().lzf(); from("direct:lzf-uncompress") .unmarshal().lzf(); + + // Test routes specific to camel-quarkus-zipfile + ZipFileDataFormat zipFileDataformat = new ZipFileDataFormat(); + zipFileDataformat.setUsingIterator(true); + + from("direct:zipfile-splititerator") + .unmarshal(zipFileDataformat) + .split(bodyAs(Iterator.class)) + .streaming() + .convertBodyTo(String.class) + .to("mock:zipfile-splititerator") + .end(); + + from("direct:zipfile-aggregate") + .aggregate(constant(true), new ZipAggregationStrategy()) + .completionSize(constant(2)) + .convertBodyTo(byte[].class) + .to("mock:zipfile-aggregate"); + } + + @RegisterForReflection(targets = { Iterator.class }) + public class MyReflectionConfiguration { } } diff --git a/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionIT.java b/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionIT.java index 35b3df956ea1..fcc36e58d86c 100644 --- a/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionIT.java +++ b/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.compression.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CompressionIT extends CompressionTest { } diff --git a/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionTest.java b/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionTest.java index 69199ae26a02..5ededb67f791 100644 --- a/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionTest.java +++ b/integration-tests/compression/src/test/java/org/apache/camel/quarkus/component/compression/it/CompressionTest.java @@ -23,6 +23,7 @@ import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -55,4 +56,19 @@ public void compressAndUncompress(String format) throws Exception { Assertions.assertArrayEquals(UNCOMPRESSED, uncompressed); } + @Test + public void zipFileSplitIteratorShouldSucceed() { + RestAssured.given() + .get("/compression/zipfile/splitIteratorShouldSucceed") + .then() + .statusCode(204); + } + + @Test + public void zipFileAggregateShouldSucceed() { + RestAssured.given() + .get("/compression/zipfile/aggregateShouldSucceed") + .then() + .statusCode(204); + } } diff --git a/integration-tests/consul/pom.xml b/integration-tests/consul/pom.xml index f7c08e81a33b..49af8b4f80bf 100644 --- a/integration-tests/consul/pom.xml +++ b/integration-tests/consul/pom.xml @@ -59,6 +59,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/consul/src/test/java/org/apache/camel/quarkus/component/consul/it/ConsulIT.java b/integration-tests/consul/src/test/java/org/apache/camel/quarkus/component/consul/it/ConsulIT.java index 78ec13fed55a..c31dd0a5165d 100644 --- a/integration-tests/consul/src/test/java/org/apache/camel/quarkus/component/consul/it/ConsulIT.java +++ b/integration-tests/consul/src/test/java/org/apache/camel/quarkus/component/consul/it/ConsulIT.java @@ -16,10 +16,8 @@ */ package org.apache.camel.quarkus.component.consul.it; -import io.quarkus.test.junit.NativeImageTest; -import org.junit.jupiter.api.Disabled; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest -@Disabled("https://github.com/apache/camel-quarkus/issues/3509") +@QuarkusIntegrationTest class ConsulIT extends ConsulTest { } diff --git a/integration-tests/core-discovery-disabled/src/test/java/org/apache/camel/quarkus/core/CoreDiscoveryDisabledIT.java b/integration-tests/core-discovery-disabled/src/test/java/org/apache/camel/quarkus/core/CoreDiscoveryDisabledIT.java index fb4c4413e0f5..9eeae69e995d 100644 --- a/integration-tests/core-discovery-disabled/src/test/java/org/apache/camel/quarkus/core/CoreDiscoveryDisabledIT.java +++ b/integration-tests/core-discovery-disabled/src/test/java/org/apache/camel/quarkus/core/CoreDiscoveryDisabledIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.core; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreDiscoveryDisabledIT extends CoreDiscoveryDisabledTest { } diff --git a/integration-tests/couchdb/pom.xml b/integration-tests/couchdb/pom.xml index a00e21b63bd3..807ca11eb16e 100644 --- a/integration-tests/couchdb/pom.xml +++ b/integration-tests/couchdb/pom.xml @@ -64,6 +64,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java index 552f1e0fe2d9..5c7623a31641 100644 --- a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java +++ b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.couchdb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CouchbIT extends CouchdbTest { } diff --git a/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoIT.java b/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoIT.java index e87d7e3e3877..4bf14e945bff 100644 --- a/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoIT.java +++ b/integration-tests/crypto/src/test/java/org/apache/camel/quarkus/component/crypto/it/CryptoIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.crypto.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CryptoIT extends CryptoTest { } diff --git a/integration-tests/csimple/src/test/java/org/apache/camel/quarkus/component/csimple/it/CSimpleIT.java b/integration-tests/csimple/src/test/java/org/apache/camel/quarkus/component/csimple/it/CSimpleIT.java index 500a67e2f400..d4e651fb85cb 100644 --- a/integration-tests/csimple/src/test/java/org/apache/camel/quarkus/component/csimple/it/CSimpleIT.java +++ b/integration-tests/csimple/src/test/java/org/apache/camel/quarkus/component/csimple/it/CSimpleIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.csimple.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CSimpleIT extends CSimpleTest { } diff --git a/integration-tests/csv/src/test/java/org/apache/camel/quarkus/component/csv/it/CsvIT.java b/integration-tests/csv/src/test/java/org/apache/camel/quarkus/component/csv/it/CsvIT.java index 9bffa01ece7b..3ce9688e0ba6 100644 --- a/integration-tests/csv/src/test/java/org/apache/camel/quarkus/component/csv/it/CsvIT.java +++ b/integration-tests/csv/src/test/java/org/apache/camel/quarkus/component/csv/it/CsvIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.csv.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class CsvIT extends CsvTest { } diff --git a/integration-tests/dataformat/src/test/java/org/apache/camel/quarkus/component/dataformat/it/DataformatIT.java b/integration-tests/dataformat/src/test/java/org/apache/camel/quarkus/component/dataformat/it/DataformatIT.java index d1947cdd4fa8..8676954dce1b 100644 --- a/integration-tests/dataformat/src/test/java/org/apache/camel/quarkus/component/dataformat/it/DataformatIT.java +++ b/integration-tests/dataformat/src/test/java/org/apache/camel/quarkus/component/dataformat/it/DataformatIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.dataformat.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DataformatIT extends DataformatTest { } diff --git a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonIT.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonIT.java index 7c60ad947e25..020efe3bab69 100644 --- a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonIT.java +++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.dataformats.jackson.json; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JacksonJsonIT extends JacksonJsonTest { } diff --git a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/xml/JacksonXmlIT.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/xml/JacksonXmlIT.java index acb7589fcac1..d7e44c4fc667 100644 --- a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/xml/JacksonXmlIT.java +++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/xml/JacksonXmlIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.dataformats.jackson.xml; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JacksonXmlIT extends JacksonXmlTest { } diff --git a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/json/JsonComponentsIT.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/json/JsonComponentsIT.java index bb24f9ea5bf7..5bd53f4e2df8 100644 --- a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/json/JsonComponentsIT.java +++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/json/JsonComponentsIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.dataformats.json; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JsonComponentsIT extends JsonComponentsTest { } diff --git a/integration-tests/debezium/pom.xml b/integration-tests/debezium/pom.xml index 80bb13bf576e..a9a9a0ef9248 100644 --- a/integration-tests/debezium/pom.xml +++ b/integration-tests/debezium/pom.xml @@ -74,21 +74,50 @@ org.testcontainers postgresql test + + + junit + junit + + org.testcontainers mysql test + + + junit + junit + + org.testcontainers mssqlserver test + + + junit + junit + + org.testcontainers mongodb test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java index ff49301e3601..0e74a9b4b215 100644 --- a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java +++ b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java @@ -16,11 +16,20 @@ */ package org.apache.camel.quarkus.component.debezium.common.it; +import java.util.Map; +import java.util.stream.Collectors; + import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.component.debezium.DebeziumConstants; +import org.apache.camel.component.debezium.DebeziumEndpoint; import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.inject.ConfigProperty; @@ -41,10 +50,23 @@ public abstract class AbstractDebeziumResource { @Inject Config config; + @Inject + CamelContext camelContext; + public AbstractDebeziumResource(Type type) { this.type = type; } + @Path("/getAdditionalProperties") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Map getAdditionalProperties() { + DebeziumEndpoint endpoint = (DebeziumEndpoint) camelContext.getEndpoint(getEndpointUrl() + + "&additionalProperties.database.connectionTimeZone=CET"); + return endpoint.getConfiguration().getAdditionalProperties().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> (String) e.getValue())); + } + String getEndpoinUrl(String hostname, String port, String username, String password, String databaseServerName, String offsetStorageFileName) { return type.getComponent() + ":localhost?" @@ -90,6 +112,11 @@ public String receiveEmptyMessages() { } private Exchange receiveAsExchange() { + String endpoint = getEndpointUrl(); + return consumerTemplate.receive(endpoint, TIMEOUT); + } + + protected String getEndpointUrl() { String endpoint = getEndpoinUrl( config.getValue(type.getPropertyHostname(), String.class), config.getValue(type.getPropertyPort(), String.class), @@ -97,6 +124,6 @@ private Exchange receiveAsExchange() { config.getValue(type.getPropertyPassword(), String.class), "qa", config.getValue(type.getPropertyOffsetFileName(), String.class)); - return consumerTemplate.receive(endpoint, TIMEOUT); + return endpoint; } } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbIT.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbIT.java index 25b04d603186..a89dc342af5e 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbIT.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.debezium.common.it.mongodb; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DebeziumMongodbIT extends DebeziumMongodbTest { } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlIT.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlIT.java index f4846e5ee5a4..9a247293101c 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlIT.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.debezium.common.it.mysql; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DebeziumMysqlIT extends DebeziumMysqlTest { } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresIT.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresIT.java index 6871bd373d38..dd14b0d8783e 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresIT.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.debezium.common.it.postgres; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DebeziumPostgresIT extends DebeziumPostgresTest { } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java index c610735fcb2b..4a7148ae019a 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java @@ -22,6 +22,7 @@ import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; import org.apache.camel.quarkus.component.debezium.common.it.AbstractDebeziumTest; import org.apache.camel.quarkus.component.debezium.common.it.Type; import org.eclipse.microprofile.config.Config; @@ -30,8 +31,12 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; +import static org.hamcrest.Matchers.is; + @QuarkusTest @QuarkusTestResource(DebeziumPostgresTestResource.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @@ -51,6 +56,16 @@ public static void setUp() throws SQLException { connection = DriverManager.getConnection(jdbcUrl); } + @Test + @Order(4) + public void testAdditionalProperty() { + //https://github.com/apache/camel-quarkus/issues/3488 + RestAssured.get(Type.postgres.getComponent() + "/getAdditionalProperties") + .then() + .statusCode(200) + .body("'database.connectionTimeZone'", is("CET")); + } + @AfterAll public static void cleanUp() throws SQLException { if (connection != null) { diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverIT.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverIT.java index 0a5cb5bcd804..c6b234ff32e5 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverIT.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.debezium.common.it.sqlserver; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DebeziumSqlserverIT extends DebeziumSqlserverTest { } diff --git a/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanDropletIT.java b/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanDropletIT.java index a371fa88645c..ca16d3a2f878 100644 --- a/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanDropletIT.java +++ b/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanDropletIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.digitalocean.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class DigitaloceanDropletIT extends DigitaloceanDropletTest { } diff --git a/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanIT.java b/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanIT.java index c23af07d9889..3c456b02f86c 100644 --- a/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanIT.java +++ b/integration-tests/digitalocean/src/test/java/org/apache/camel/quarkus/component/digitalocean/it/DigitaloceanIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.digitalocean.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DigitaloceanIT extends DigitaloceanTest { } diff --git a/integration-tests/disruptor/src/test/java/org/apache/camel/quarkus/component/disruptor/it/DisruptorIT.java b/integration-tests/disruptor/src/test/java/org/apache/camel/quarkus/component/disruptor/it/DisruptorIT.java index 90c04885ba39..2b001764d555 100644 --- a/integration-tests/disruptor/src/test/java/org/apache/camel/quarkus/component/disruptor/it/DisruptorIT.java +++ b/integration-tests/disruptor/src/test/java/org/apache/camel/quarkus/component/disruptor/it/DisruptorIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.disruptor.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DisruptorIT extends DisruptorTest { } diff --git a/integration-tests/dozer/src/test/java/org/apache/camel/quarkus/component/dozer/it/DozerIT.java b/integration-tests/dozer/src/test/java/org/apache/camel/quarkus/component/dozer/it/DozerIT.java index d83647bf6cf7..b638f3851d1a 100644 --- a/integration-tests/dozer/src/test/java/org/apache/camel/quarkus/component/dozer/it/DozerIT.java +++ b/integration-tests/dozer/src/test/java/org/apache/camel/quarkus/component/dozer/it/DozerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.dozer.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class DozerIT extends DozerTest { } diff --git a/integration-tests/dropbox/src/test/java/org/apache/camel/quarkus/component/dropbox/it/DropboxIT.java b/integration-tests/dropbox/src/test/java/org/apache/camel/quarkus/component/dropbox/it/DropboxIT.java index cdc354e65dd9..5ff45906d98e 100644 --- a/integration-tests/dropbox/src/test/java/org/apache/camel/quarkus/component/dropbox/it/DropboxIT.java +++ b/integration-tests/dropbox/src/test/java/org/apache/camel/quarkus/component/dropbox/it/DropboxIT.java @@ -16,12 +16,12 @@ */ package org.apache.camel.quarkus.component.dropbox.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "DROPBOX_ACCESS_TOKEN", matches = ".+") @EnabledIfEnvironmentVariable(named = "DROPBOX_CLIENT_IDENTIFIER", matches = ".+") -@NativeImageTest +@QuarkusIntegrationTest class DropboxIT extends DropboxTest { } diff --git a/integration-tests/elasticsearch-rest/pom.xml b/integration-tests/elasticsearch-rest/pom.xml index 94547f758972..a1eced8d2d3d 100644 --- a/integration-tests/elasticsearch-rest/pom.xml +++ b/integration-tests/elasticsearch-rest/pom.xml @@ -59,6 +59,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test org.awaitility diff --git a/integration-tests/elasticsearch-rest/src/test/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestIT.java b/integration-tests/elasticsearch-rest/src/test/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestIT.java index 688634caf178..7a3c12a682d5 100644 --- a/integration-tests/elasticsearch-rest/src/test/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestIT.java +++ b/integration-tests/elasticsearch-rest/src/test/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.elasticsearch.rest.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ElasticsearchRestIT extends ElasticsearchRestTest { } diff --git a/integration-tests/exec/src/test/java/org/apache/camel/quarkus/component/exec/it/ExecIT.java b/integration-tests/exec/src/test/java/org/apache/camel/quarkus/component/exec/it/ExecIT.java index e9e3551cf11b..758d86280637 100644 --- a/integration-tests/exec/src/test/java/org/apache/camel/quarkus/component/exec/it/ExecIT.java +++ b/integration-tests/exec/src/test/java/org/apache/camel/quarkus/component/exec/it/ExecIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.exec.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ExecIT extends ExecTest { } diff --git a/integration-tests/fhir/pom.xml b/integration-tests/fhir/pom.xml index d41627d566c9..7502c2540752 100644 --- a/integration-tests/fhir/pom.xml +++ b/integration-tests/fhir/pom.xml @@ -69,6 +69,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirRouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirRouteBuilder.java new file mode 100644 index 000000000000..6b72eb1f3c20 --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirRouteBuilder.java @@ -0,0 +1,249 @@ +/* + * 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.fhir.it; + +import java.net.MalformedURLException; +import java.net.URL; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.parser.StrictErrorHandler; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.FhirConfiguration; +import org.apache.camel.component.fhir.FhirJsonDataFormat; +import org.apache.camel.component.fhir.FhirXmlDataFormat; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; + +public abstract class AbstractFhirRouteBuilder extends RouteBuilder { + + abstract String getFhirVersion(); + + abstract FhirContext getFhirContext(); + + abstract boolean isEnabled(); + + @Override + public void configure() throws Exception { + if (isEnabled()) { + Config config = ConfigProvider.getConfig(); + String fhirVersion = getFhirVersion(); + String serverUrl = config.getValue("camel.fhir." + fhirVersion + ".test-url", String.class); + + FhirContext fhirContext = getFhirContext(); + + FhirConfiguration configuration = new FhirConfiguration(); + configuration.setLog(false); + configuration.setFhirContext(fhirContext); + configuration.setServerUrl(serverUrl); + configuration.setCompress(true); + + String sanitizedFhirVersion = fhirVersion.replace('_', '-'); + FhirComponent component = new FhirComponent(); + component.setConfiguration(configuration); + getContext().addComponent("fhir-" + sanitizedFhirVersion, component); + + fhirContext.setParserErrorHandler(new StrictErrorHandler()); + try { + URL url = new URL(serverUrl); + fhirContext.getRestfulClientFactory().setProxy(url.getHost(), url.getPort()); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + + FhirJsonDataFormat fhirJsonDataFormat = new FhirJsonDataFormat(); + fhirJsonDataFormat.setFhirContext(fhirContext); + fhirJsonDataFormat.setParserErrorHandler(new StrictErrorHandler()); + + FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat(); + fhirXmlDataFormat.setFhirContext(fhirContext); + fhirXmlDataFormat.setParserErrorHandler(new StrictErrorHandler()); + + // Capabilities + fromF("direct:capabilities-%s", sanitizedFhirVersion) + .toF("fhir-%s://capabilities/ofType?inBody=type", sanitizedFhirVersion); + + // Create + fromF("direct:createResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://create/resource?inBody=resource", sanitizedFhirVersion); + + fromF("direct:createResourceAsString-%s", sanitizedFhirVersion) + .toF("fhir-%s://create/resource?inBody=resourceAsString", sanitizedFhirVersion); + + // Dataformats + fromF("direct:json-to-%s", sanitizedFhirVersion) + .unmarshal(fhirJsonDataFormat) + .marshal(fhirJsonDataFormat); + + fromF("direct:xml-to-%s", sanitizedFhirVersion) + .unmarshal(fhirXmlDataFormat) + .marshal(fhirXmlDataFormat); + + // Delete + fromF("direct:delete-%s", sanitizedFhirVersion) + .toF("fhir-%s://delete/resource?inBody=resource", sanitizedFhirVersion); + + fromF("direct:deleteById-%s", sanitizedFhirVersion) + .toF("fhir-%s://delete/resourceById?inBody=id", sanitizedFhirVersion); + + fromF("direct:deleteByStringId-%s", sanitizedFhirVersion) + .toF("fhir-%s://delete/resourceById", sanitizedFhirVersion); + + fromF("direct:deleteConditionalByUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://delete/resourceConditionalByUrl?inBody=url", sanitizedFhirVersion); + + // History + fromF("direct:historyOnInstance-%s", sanitizedFhirVersion) + .toF("fhir-%s://history/onInstance", sanitizedFhirVersion); + + fromF("direct:historyOnServer-%s", sanitizedFhirVersion) + .toF("fhir-%s://history/onServer", sanitizedFhirVersion); + + fromF("direct:historyOnType-%s", sanitizedFhirVersion) + .toF("fhir-%s://history/onType", sanitizedFhirVersion); + + // Load page + fromF("direct:loadPageByUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://load-page/byUrl", sanitizedFhirVersion); + + fromF("direct:loadPageNext-%s", sanitizedFhirVersion) + .toF("fhir-%s://load-page/next?inBody=bundle", sanitizedFhirVersion); + + fromF("direct:loadPagePrevious-%s", sanitizedFhirVersion) + .toF("fhir-%s://load-page/previous?inBody=bundle", sanitizedFhirVersion); + + // Meta + fromF("direct:metaAdd-%s", sanitizedFhirVersion) + .toF("fhir-%s://meta/add", sanitizedFhirVersion); + + fromF("direct:metaDelete-%s", sanitizedFhirVersion) + .toF("fhir-%s://meta/delete", sanitizedFhirVersion); + + fromF("direct:metaGetFromResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://meta/getFromResource", sanitizedFhirVersion); + + fromF("direct:metaGetFromServer-%s", sanitizedFhirVersion) + .toF("fhir-%s://meta/getFromServer?inBody=metaType", sanitizedFhirVersion); + + fromF("direct:metaGetFromType-%s", sanitizedFhirVersion) + .toF("fhir-%s://meta/getFromType", sanitizedFhirVersion); + + // Operation + fromF("direct:operationOnInstance-%s", sanitizedFhirVersion) + .toF("fhir-%s://operation/onInstance", sanitizedFhirVersion); + + fromF("direct:operationOnInstanceVersion-%s", sanitizedFhirVersion) + .toF("fhir-%s://operation/onInstanceVersion", sanitizedFhirVersion); + + fromF("direct:operationOnServer-%s", sanitizedFhirVersion) + .toF("fhir-%s://operation/onServer", sanitizedFhirVersion); + + fromF("direct:operationOnType-%s", sanitizedFhirVersion) + .toF("fhir-%s://operation/onType", sanitizedFhirVersion); + + fromF("direct:operationProcessMessage-%s", sanitizedFhirVersion) + .toF("fhir-%s://operation/processMessage", sanitizedFhirVersion); + + // Patch + fromF("direct:patchById-%s", sanitizedFhirVersion) + .toF("fhir-%s://patch/patchById", sanitizedFhirVersion); + + fromF("direct:patchBySid-%s", sanitizedFhirVersion) + .toF("fhir-%s://patch/patchById", sanitizedFhirVersion); + + fromF("direct:patchByUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://patch/patchByUrl", sanitizedFhirVersion); + + // Read + fromF("direct:readById-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByLongId-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByStringId-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByIdAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByLongIdAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByStringIdAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByStringIdAndVersion-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByStringIdAndVersionAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceById", sanitizedFhirVersion); + + fromF("direct:readByIUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceByUrl", sanitizedFhirVersion); + + fromF("direct:readByUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceByUrl", sanitizedFhirVersion); + + fromF("direct:readByStringUrlAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceByUrl", sanitizedFhirVersion); + + fromF("direct:readByUrlAndStringResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://read/resourceByUrl", sanitizedFhirVersion); + + // Search + fromF("direct:searchByUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://search/searchByUrl?inBody=url", sanitizedFhirVersion); + + // Transaction + fromF("direct:transactionWithBundle-%s", sanitizedFhirVersion) + .toF("fhir-%s://transaction/withBundle?inBody=bundle", sanitizedFhirVersion); + + fromF("direct:transactionWithStringBundle-%s", sanitizedFhirVersion) + .toF("fhir-%s://transaction/withBundle?inBody=stringBundle", sanitizedFhirVersion); + + fromF("direct:transactionWithResources-%s", sanitizedFhirVersion) + .toF("fhir-%s://transaction/withResources?inBody=resources", sanitizedFhirVersion); + + // Update + fromF("direct:updateResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resource", sanitizedFhirVersion); + + fromF("direct:updateResourceWithStringId-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resource", sanitizedFhirVersion); + + fromF("direct:updateResourceAsString-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resource", sanitizedFhirVersion); + + fromF("direct:updateResourceAsStringWithStringId-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resource", sanitizedFhirVersion); + + fromF("direct:updateResourceBySearchUrl-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resourceBySearchUrl", sanitizedFhirVersion); + + fromF("direct:updateResourceBySearchUrlAndResourceAsString-%s", sanitizedFhirVersion) + .toF("fhir-%s://update/resourceBySearchUrl", sanitizedFhirVersion); + + // Validate + fromF("direct:validateResource-%s", sanitizedFhirVersion) + .toF("fhir-%s://validate/resource?inBody=resource", sanitizedFhirVersion); + + fromF("direct:validateResourceAsString-%s", sanitizedFhirVersion) + .toF("fhir-%s://validate/resource?inBody=resourceAsString", sanitizedFhirVersion); + } + } +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirConstants.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirConstants.java new file mode 100644 index 000000000000..86c9554ef345 --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirConstants.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.fhir.it; + +public interface FhirConstants { + String PATIENT_ADDRESS = "221b Baker St, Marylebone, London NW1 6XE, UK"; + String PATIENT_FIRST_NAME = "Sherlock"; + String PATIENT_GENDER_PATCH = "[ { \"op\":\"add\", \"path\":\"/gender\", \"value\":\"female\" } ]"; + String PATIENT_LAST_NAME = "Holmes"; +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgResource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgResource.java new file mode 100644 index 000000000000..e1f34b13ea18 --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgResource.java @@ -0,0 +1,1239 @@ +/* + * 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.fhir.it; + +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; +import javax.inject.Inject; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; +import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.dstu2.model.Bundle; +import org.hl7.fhir.dstu2.model.Conformance; +import org.hl7.fhir.dstu2.model.HumanName; +import org.hl7.fhir.dstu2.model.IdType; +import org.hl7.fhir.dstu2.model.Meta; +import org.hl7.fhir.dstu2.model.Narrative; +import org.hl7.fhir.dstu2.model.OperationOutcome; +import org.hl7.fhir.dstu2.model.Parameters; +import org.hl7.fhir.dstu2.model.Patient; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; + +@Path("/dstu2hl7org") +@ApplicationScoped +public class FhirDstu2Hl7OrgResource { + + @Inject + ProducerTemplate producerTemplate; + + @Inject + CamelContext context; + + @Inject + @Named("DSTU2_HL7ORG") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + Conformance result = producerTemplate.requestBodyAndHeaders("direct:capabilities-dstu2-hl7org", Conformance.class, + headers, Conformance.class); + return result.getStatus().name(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-dstu2-hl7org", + patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-dstu2-hl7org", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu2-hl7org", patientString, + InputStream.class)) { + return Response + .created(new URI("https:camel.apache.org/")) + .entity(response) + .build(); + } + } + + @Path("/fhir2xml") + @GET + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu2-hl7org", patientString, + InputStream.class)) { + return Response + .created(new URI("https:camel.apache.org/")) + .entity(response) + .build(); + } + } + + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).addFamily(PATIENT_LAST_NAME); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-dstu2-hl7org", patient, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-dstu2-hl7org", + new IdType(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-dstu2-hl7org", null, + headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-dstu2-hl7org", + body, + headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdType(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-dstu2-hl7org", null, headers, + Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-dstu2-hl7org", null, headers, + Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-dstu2-hl7org", null, headers, + Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-dstu2-hl7org", null, headers, + Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-dstu2-hl7org", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-dstu2-hl7org", bundle, headers, + Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") + @POST + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-dstu2-hl7org", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-dstu2-hl7org", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-dstu2-hl7org", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + Meta result = producerTemplate.requestBody("direct:metaGetFromServer-dstu2-hl7org", Meta.class, + Meta.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-dstu2-hl7org", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-dstu2-hl7org", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-dstu2-hl7org", null, + headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-dstu2-hl7org", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-dstu2-hl7org", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-dstu2-hl7org", null, + headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-dstu2-hl7org", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-dstu2-hl7org", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) throws UnsupportedEncodingException { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-dstu2-hl7org", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdType(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-dstu2-hl7org", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-dstu2-hl7org", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-dstu2-hl7org", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", iIdType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-dstu2-hl7org", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-dstu2-hl7org", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-dstu2-hl7org", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-dstu2-hl7org", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders( + "direct:readByStringIdAndVersionAndStringResource-dstu2-hl7org", + null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-dstu2-hl7org", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-dstu2-hl7org", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-dstu2-hl7org", + null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-dstu2-hl7org", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-dstu2-hl7org", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-dstu2-hl7org", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-dstu2-hl7org", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient() + .addName(new HumanName().addGiven("Oscar").addFamily("Peterson")); + Patient bobbyHebb = new Patient() + .addName(new HumanName().addGiven("Bobby").addFamily("Hebb")); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-dstu2-hl7org", + patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") + @POST + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2-hl7org", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2-hl7org", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-dstu2-hl7org", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-dstu2-hl7org", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-dstu2-hl7org", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-dstu2-hl7org", null, + headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId().toString(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders( + "direct:updateResourceBySearchUrlAndResourceAsString-dstu2-hl7org", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .addFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("

This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-dstu2-hl7org", patient, + MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .addFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-dstu2-hl7org", body, + MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).getValueAsString()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).getValueAsString()); + builder.add("lastName", patient.getName().get(0).getFamily().get(0).getValueAsString()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(Bundle.BundleType.TRANSACTION); + input.addEntry() + .setResource(new Patient() + .addName(new HumanName().addGiven("Art").addFamily("Tatum"))) + .getRequest() + .setMethod(Bundle.HTTPVerb.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-dstu2-hl7org", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); + } +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgRouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgRouteBuilder.java new file mode 100644 index 000000000000..9ec5ea2eab3a --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgRouteBuilder.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; +import javax.inject.Inject; +import javax.inject.Named; + +import ca.uhn.fhir.context.FhirContext; +import org.apache.camel.quarkus.component.fhir.FhirFlags; + +@ApplicationScoped +public class FhirDstu2Hl7OrgRouteBuilder extends AbstractFhirRouteBuilder { + + private static final Boolean ENABLED = new FhirFlags.Dstu2Hl7OrgEnabled().getAsBoolean(); + + @Inject + @Named("DSTU2_HL7ORG") + Instance fhirContextInstance; + + @Override + String getFhirVersion() { + return "dstu2_hl7org"; + } + + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } + + @Override + boolean isEnabled() { + return ENABLED; + } +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Resource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Resource.java index 956092db694f..ea677b54a943 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Resource.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Resource.java @@ -17,19 +17,71 @@ package org.apache.camel.quarkus.component.fhir.it; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; import javax.inject.Inject; -import javax.ws.rs.Consumes; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.model.dstu2.composite.HumanNameDt; +import ca.uhn.fhir.model.dstu2.composite.MetaDt; +import ca.uhn.fhir.model.dstu2.resource.Bundle; +import ca.uhn.fhir.model.dstu2.resource.Conformance; +import ca.uhn.fhir.model.dstu2.resource.OperationOutcome; +import ca.uhn.fhir.model.dstu2.resource.Parameters; +import ca.uhn.fhir.model.dstu2.resource.Patient; +import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum; +import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum; +import ca.uhn.fhir.model.dstu2.valueset.NarrativeStatusEnum; +import ca.uhn.fhir.model.primitive.DateDt; +import ca.uhn.fhir.model.primitive.IdDt; +import ca.uhn.fhir.model.primitive.StringDt; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; @Path("/dstu2") @ApplicationScoped @@ -38,41 +90,1126 @@ public class FhirDstu2Resource { @Inject ProducerTemplate producerTemplate; - @Path("/fhir2json") + @Inject + CamelContext context; + + @Inject + @Named("DSTU2") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + Conformance result = producerTemplate.requestBodyAndHeaders("direct:capabilities-dstu2", Conformance.class, + headers, Conformance.class); + return result.getStatus(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") @POST - @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(Arrays.asList(new StringDt(lastName))); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-dstu2", patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(Arrays.asList(new StringDt(lastName))); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-dstu2", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2json(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu2", patient, InputStream.class)) { + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(Arrays.asList(new StringDt(lastName))); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu2", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } @Path("/fhir2xml") - @POST - @Consumes(MediaType.APPLICATION_XML) + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2xml(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu2", patient, InputStream.class)) { + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(Arrays.asList(new StringDt(lastName))); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu2", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } - @Path("/createPatient") + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).setFamily(Arrays.asList(new StringDt(PATIENT_LAST_NAME))); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-dstu2", patient, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-dstu2", + new IdDt(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-dstu2", null, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-dstu2", body, + headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdDt(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-dstu2", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-dstu2", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-dstu2", null, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-dstu2", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-dstu2", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-dstu2", bundle, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") + @POST + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + MetaDt inMeta = new MetaDt(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-dstu2", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + MetaDt inMeta = new MetaDt(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-dstu2", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", MetaDt.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-dstu2", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + MetaDt result = producerTemplate.requestBody("direct:metaGetFromServer-dstu2", MetaDt.class, + MetaDt.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", MetaDt.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-dstu2", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-dstu2", null, headers, + Parameters.class); + + Parameters.Parameter parameter = result.getParameter().get(0); + Bundle bundle = (Bundle) parameter.getResource(); + IdDt patientId = bundle.getEntry().get(0).getResource().getId(); + return patientId.toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-dstu2", null, headers, + Parameters.class); + + Parameters.Parameter parameter = result.getParameter().get(0); + Bundle bundle = (Bundle) parameter.getResource(); + IdDt patientId = bundle.getEntry().get(0).getResource().getId(); + return patientId.toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-dstu2", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-dstu2", null, headers, + Parameters.class); + + Parameters.Parameter parameter = result.getParameter().get(0); + Bundle bundle = (Bundle) parameter.getResource(); + IdDt patientId = bundle.getEntry().get(0).getResource().getId(); + return patientId.toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-dstu2", null, headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdDt iIdType = new IdDt(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-dstu2", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-dstu2", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) throws UnsupportedEncodingException { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-dstu2", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdDt(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-dstu2", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-dstu2", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-dstu2", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdDt iIdType = new IdDt(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", iIdType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-dstu2", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-dstu2", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-dstu2", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-dstu2", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersionAndStringResource-dstu2", + null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdDt(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-dstu2", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-dstu2", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdDt(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-dstu2", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-dstu2", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-dstu2", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-dstu2", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-dstu2", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient() + .addName(new HumanNameDt().addGiven("Oscar").setFamily(Arrays.asList(new StringDt("Peterson")))); + Patient bobbyHebb = new Patient() + .addName(new HumanNameDt().addGiven("Bobby").setFamily(Arrays.asList(new StringDt("Hebb")))); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-dstu2", patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.TEXT_PLAIN) - public Response createPatient(String patient) throws Exception { - MethodOutcome result = producerTemplate.requestBody("direct:create-dstu2", patient, MethodOutcome.class); - return Response - .created(new URI("https://camel.apache.org/")) - .entity(result.getId().getIdPart()) - .build(); + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-dstu2", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-dstu2", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-dstu2", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-dstu2", null, headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(new DateDt(date)); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId().toString(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders( + "direct:updateResourceBySearchUrlAndResourceAsString-dstu2", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanNameDt() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(Arrays.asList(new StringDt(PATIENT_LAST_NAME)))); + + patient.getText().setStatus(NarrativeStatusEnum.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-dstu2", patient, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanNameDt() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(Arrays.asList(new StringDt(PATIENT_LAST_NAME)))); + + patient.getText().setStatus(NarrativeStatusEnum.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-dstu2", body, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).getValueAsString()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).getValueAsString()); + builder.add("lastName", patient.getName().get(0).getFamily().get(0).getValueAsString()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(BundleTypeEnum.TRANSACTION); + input.addEntry() + .setResource(new Patient() + .addName(new HumanNameDt().addGiven("Art").setFamily(Arrays.asList(new StringDt("Tatum"))))) + .getRequest() + .setMethod(HTTPVerbEnum.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-dstu2", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2RouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2RouteBuilder.java index a26b4f6b4b6e..c37d848d588e 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2RouteBuilder.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2RouteBuilder.java @@ -22,14 +22,10 @@ import javax.inject.Named; import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.StrictErrorHandler; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.fhir.FhirJsonDataFormat; -import org.apache.camel.component.fhir.FhirXmlDataFormat; import org.apache.camel.quarkus.component.fhir.FhirFlags; @ApplicationScoped -public class FhirDstu2RouteBuilder extends RouteBuilder { +public class FhirDstu2RouteBuilder extends AbstractFhirRouteBuilder { private static final Boolean ENABLED = new FhirFlags.Dstu2Enabled().getAsBoolean(); @@ -38,29 +34,17 @@ public class FhirDstu2RouteBuilder extends RouteBuilder { Instance fhirContextInstance; @Override - public void configure() { - if (ENABLED) { - FhirContext fhirContext = fhirContextInstance.get(); - fhirContext.setParserErrorHandler(new StrictErrorHandler()); - - FhirJsonDataFormat fhirJsonDataFormat = new FhirJsonDataFormat(); - fhirJsonDataFormat.setFhirContext(fhirContext); - fhirJsonDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat(); - fhirXmlDataFormat.setFhirContext(fhirContext); - fhirXmlDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - from("direct:json-to-dstu2") - .unmarshal(fhirJsonDataFormat) - .marshal(fhirJsonDataFormat); + String getFhirVersion() { + return "dstu2"; + } - from("direct:xml-to-dstu2") - .unmarshal(fhirXmlDataFormat) - .marshal(fhirXmlDataFormat); + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } - from("direct:create-dstu2") - .to("fhir://create/resource?inBody=resourceAsString&fhirContext=#DSTU2"); - } + @Override + boolean isEnabled() { + return ENABLED; } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Resource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Resource.java new file mode 100644 index 000000000000..90ebd2c5d23f --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Resource.java @@ -0,0 +1,1217 @@ +/* + * 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.fhir.it; + +import java.io.InputStream; +import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; +import javax.inject.Inject; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; +import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.dstu2016may.model.Bundle; +import org.hl7.fhir.dstu2016may.model.Conformance; +import org.hl7.fhir.dstu2016may.model.HumanName; +import org.hl7.fhir.dstu2016may.model.IdType; +import org.hl7.fhir.dstu2016may.model.Meta; +import org.hl7.fhir.dstu2016may.model.Narrative; +import org.hl7.fhir.dstu2016may.model.OperationOutcome; +import org.hl7.fhir.dstu2016may.model.Parameters; +import org.hl7.fhir.dstu2016may.model.Patient; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; + +@Path("/dstu2_1") +@ApplicationScoped +public class FhirDstu2_1Resource { + + @Inject + ProducerTemplate producerTemplate; + + @Inject + CamelContext context; + + @Inject + @Named("DSTU2_1") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + Conformance result = producerTemplate.requestBodyAndHeaders("direct:capabilities-dstu2-1", Conformance.class, + headers, Conformance.class); + + return result.getStatus().name(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-dstu2-1", patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-dstu2-1", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu2-1", patientString, InputStream.class)) { + return Response + .created(new URI("https:camel.apache.org/")) + .entity(response) + .build(); + } + } + + @Path("/fhir2xml") + @GET + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).addFamily(lastName); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu2-1", patientString, InputStream.class)) { + return Response + .created(new URI("https:camel.apache.org/")) + .entity(response) + .build(); + } + } + + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).addFamily(PATIENT_LAST_NAME); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-dstu2-1", patient, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-dstu2-1", + new IdType(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-dstu2-1", null, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-dstu2-1", body, + headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdType(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-dstu2-1", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-dstu2-1", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-dstu2-1", null, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-dstu2-1", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-dstu2-1", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-dstu2-1", bundle, headers, + Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") + @POST + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-dstu2-1", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-dstu2-1", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-dstu2-1", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + Meta result = producerTemplate.requestBody("direct:metaGetFromServer-dstu2-1", Meta.class, + Meta.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-dstu2-1", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-dstu2-1", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-dstu2-1", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-dstu2-1", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-dstu2-1", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-dstu2-1", null, headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-dstu2-1", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-dstu2-1", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-dstu2-1", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdType(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-dstu2-1", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-dstu2-1", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-dstu2-1", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", iIdType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-dstu2-1", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-dstu2-1", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-dstu2-1", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-dstu2-1", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersionAndStringResource-dstu2-1", + null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-dstu2-1", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-dstu2-1", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-dstu2-1", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-dstu2-1", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-dstu2-1", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-dstu2-1", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-dstu2-1", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient() + .addName(new HumanName().addGiven("Oscar").addFamily("Peterson")); + Patient bobbyHebb = new Patient() + .addName(new HumanName().addGiven("Bobby").addFamily("Hebb")); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-dstu2-1", patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") + @POST + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2-1", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu2-1", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-dstu2-1", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-dstu2-1", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-dstu2-1", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-dstu2-1", null, headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId().toString(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders( + "direct:updateResourceBySearchUrlAndResourceAsString-dstu2-1", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .addFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-dstu2-1", patient, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .addFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-dstu2-1", body, + MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).getValueAsString()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).getValueAsString()); + builder.add("lastName", patient.getName().get(0).getFamily().get(0).getValueAsString()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(Bundle.BundleType.TRANSACTION); + input.addEntry() + .setResource(new Patient() + .addName(new HumanName().addGiven("Art").addGiven("Tatum"))) + .getRequest() + .setMethod(Bundle.HTTPVerb.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-dstu2-1", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); + } +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1RouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1RouteBuilder.java new file mode 100644 index 000000000000..af900081a0f3 --- /dev/null +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1RouteBuilder.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; +import javax.inject.Inject; +import javax.inject.Named; + +import ca.uhn.fhir.context.FhirContext; +import org.apache.camel.quarkus.component.fhir.FhirFlags; + +@ApplicationScoped +public class FhirDstu2_1RouteBuilder extends AbstractFhirRouteBuilder { + + private static final Boolean ENABLED = new FhirFlags.Dstu2_1Enabled().getAsBoolean(); + + @Inject + @Named("DSTU2_1") + Instance fhirContextInstance; + + @Override + String getFhirVersion() { + return "dstu2_1"; + } + + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } + + @Override + boolean isEnabled() { + return ENABLED; + } +} diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Resource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Resource.java index 6fd84ed5f6ed..8abad66263d6 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Resource.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Resource.java @@ -17,19 +17,66 @@ package org.apache.camel.quarkus.component.fhir.it; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; import javax.inject.Inject; -import javax.ws.rs.Consumes; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.dstu3.model.Bundle; +import org.hl7.fhir.dstu3.model.CapabilityStatement; +import org.hl7.fhir.dstu3.model.HumanName; +import org.hl7.fhir.dstu3.model.IdType; +import org.hl7.fhir.dstu3.model.Meta; +import org.hl7.fhir.dstu3.model.Narrative; +import org.hl7.fhir.dstu3.model.OperationOutcome; +import org.hl7.fhir.dstu3.model.Parameters; +import org.hl7.fhir.dstu3.model.Patient; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; @Path("/dstu3") @ApplicationScoped @@ -38,41 +85,1124 @@ public class FhirDstu3Resource { @Inject ProducerTemplate producerTemplate; - @Path("/fhir2json") + @Inject + CamelContext context; + + @Inject + @Named("DSTU3") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + CapabilityStatement result = producerTemplate.requestBodyAndHeaders("direct:capabilities-dstu3", + CapabilityStatement.class, + headers, CapabilityStatement.class); + return result.getStatus().name(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") @POST - @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-dstu3", patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-dstu3", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2json(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu3", patient, InputStream.class)) { + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-dstu3", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } @Path("/fhir2xml") - @POST - @Consumes(MediaType.APPLICATION_XML) + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2xml(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu3", patient, InputStream.class)) { + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-dstu3", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } - @Path("/createPatient") + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).setFamily(PATIENT_LAST_NAME); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-dstu3", patient, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-dstu3", new IdType(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-dstu3", null, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-dstu3", body, + headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdType(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-dstu3", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-dstu3", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-dstu3", null, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-dstu3", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-dstu3", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-dstu3", bundle, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.TEXT_PLAIN) - public Response createPatient(String patient) throws Exception { - MethodOutcome result = producerTemplate.requestBody("direct:create-dstu3", patient, MethodOutcome.class); - return Response - .created(new URI("https://camel.apache.org/")) - .entity(result.getId().getIdPart()) - .build(); + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-dstu3", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-dstu3", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-dstu3", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + IBaseMetaType result = producerTemplate.requestBody("direct:metaGetFromServer-dstu3", Meta.class, IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-dstu3", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-dstu3", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-dstu3", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-dstu3", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-dstu3", null, headers, + Parameters.class); + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-dstu3", null, headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-dstu3", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-dstu3", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) throws UnsupportedEncodingException { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-dstu3", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdType(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-dstu3", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-dstu3", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-dstu3", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdType idType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", idType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-dstu3", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-dstu3", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-dstu3", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-dstu3", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersionAndStringResource-dstu3", + null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-dstu3", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-dstu3", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-dstu3", null, + headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-dstu3", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-dstu3", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-dstu3", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-dstu3", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient().addName(new HumanName().addGiven("Oscar").setFamily("Peterson")); + Patient bobbyHebb = new Patient().addName(new HumanName().addGiven("Bobby").setFamily("Hebb")); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-dstu3", patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") + @POST + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu3", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-dstu3", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-dstu3", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-dstu3", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-dstu3", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-dstu3", null, headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders( + "direct:updateResourceBySearchUrlAndResourceAsString-dstu3", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-dstu3", patient, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-dstu3", body, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).asStringValue()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).asStringValue()); + builder.add("lastName", patient.getName().get(0).getFamily()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(Bundle.BundleType.TRANSACTION); + input.addEntry() + .setResource(new Patient().addName(new HumanName().addGiven("Art").setFamily("Tatum"))) + .getRequest() + .setMethod(Bundle.HTTPVerb.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-dstu3", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3RouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3RouteBuilder.java index b08ba713cd58..ad3de409447a 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3RouteBuilder.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3RouteBuilder.java @@ -22,14 +22,10 @@ import javax.inject.Named; import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.StrictErrorHandler; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.fhir.FhirJsonDataFormat; -import org.apache.camel.component.fhir.FhirXmlDataFormat; import org.apache.camel.quarkus.component.fhir.FhirFlags; @ApplicationScoped -public class FhirDstu3RouteBuilder extends RouteBuilder { +public class FhirDstu3RouteBuilder extends AbstractFhirRouteBuilder { private static final Boolean ENABLED = new FhirFlags.Dstu3Enabled().getAsBoolean(); @Inject @@ -37,29 +33,17 @@ public class FhirDstu3RouteBuilder extends RouteBuilder { Instance fhirContextInstance; @Override - public void configure() { - if (ENABLED) { - FhirContext fhirContext = fhirContextInstance.get(); - fhirContext.setParserErrorHandler(new StrictErrorHandler()); - - FhirJsonDataFormat fhirJsonDataFormat = new FhirJsonDataFormat(); - fhirJsonDataFormat.setFhirContext(fhirContext); - fhirJsonDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat(); - fhirXmlDataFormat.setFhirContext(fhirContext); - fhirXmlDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - from("direct:json-to-dstu3") - .unmarshal(fhirJsonDataFormat) - .marshal(fhirJsonDataFormat); + String getFhirVersion() { + return "dstu3"; + } - from("direct:xml-to-dstu3") - .unmarshal(fhirXmlDataFormat) - .marshal(fhirXmlDataFormat); + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } - from("direct:create-dstu3") - .to("fhir://create/resource?inBody=resourceAsString&fhirContext=#DSTU3"); - } + @Override + boolean isEnabled() { + return ENABLED; } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Resource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Resource.java index 433c520fcd0f..ab7e23e88a42 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Resource.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Resource.java @@ -17,19 +17,68 @@ package org.apache.camel.quarkus.component.fhir.it; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; import javax.inject.Inject; -import javax.ws.rs.Consumes; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.Bundle; +import org.hl7.fhir.r4.model.Bundle.BundleEntryComponent; +import org.hl7.fhir.r4.model.CapabilityStatement; +import org.hl7.fhir.r4.model.HumanName; +import org.hl7.fhir.r4.model.IdType; +import org.hl7.fhir.r4.model.Meta; +import org.hl7.fhir.r4.model.Narrative.NarrativeStatus; +import org.hl7.fhir.r4.model.OperationOutcome; +import org.hl7.fhir.r4.model.Parameters; +import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent; +import org.hl7.fhir.r4.model.Patient; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; @Path("/r4") @ApplicationScoped @@ -38,41 +87,1115 @@ public class FhirR4Resource { @Inject ProducerTemplate producerTemplate; - @Path("/fhir2json") + @Inject + CamelContext context; + + @Inject + @Named("R4") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + CapabilityStatement result = producerTemplate.requestBodyAndHeaders("direct:capabilities-r4", CapabilityStatement.class, + headers, CapabilityStatement.class); + return result.getStatus().name(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") @POST - @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-r4", patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-r4", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2json(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:json-to-r4", patient, InputStream.class)) { + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-r4", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } @Path("/fhir2xml") - @POST - @Consumes(MediaType.APPLICATION_XML) + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2xml(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:xml-to-r4", patient, InputStream.class)) { + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-r4", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } - @Path("/createPatient") + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).setFamily(PATIENT_LAST_NAME); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-r4", patient, IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-r4", new IdType(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-r4", null, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-r4", body, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdType(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-r4", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-r4", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-r4", null, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-r4", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-r4", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-r4", bundle, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.TEXT_PLAIN) - public Response createPatient(String patient) throws Exception { - MethodOutcome result = producerTemplate.requestBody("direct:create-r4", patient, MethodOutcome.class); - return Response - .created(new URI("https://camel.apache.org/")) - .entity(result.getId().getIdPart()) - .build(); + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-r4", null, headers, IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-r4", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-r4", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + IBaseMetaType result = producerTemplate.requestBody("direct:metaGetFromServer-r4", Meta.class, IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-r4", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-r4", null, headers, + Parameters.class); + + ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-r4", null, headers, + Parameters.class); + + ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-r4", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-r4", null, headers, + Parameters.class); + ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-r4", null, headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-r4", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-r4", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) throws UnsupportedEncodingException { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-r4", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdType(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-r4", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-r4", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-r4", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdType idType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", idType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersionAndStringResource-r4", null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-r4", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-r4", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-r4", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-r4", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-r4", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-r4", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient().addName(new HumanName().addGiven("Oscar").setFamily("Peterson")); + Patient bobbyHebb = new Patient().addName(new HumanName().addGiven("Bobby").setFamily("Hebb")); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-r4", patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") + @POST + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-r4", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-r4", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-r4", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-r4", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-r4", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-r4", null, headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrlAndResourceAsString-r4", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-r4", patient, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-r4", body, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).asStringValue()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).asStringValue()); + builder.add("lastName", patient.getName().get(0).getFamily()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(Bundle.BundleType.TRANSACTION); + input.addEntry() + .setResource(new Patient().addName(new HumanName().addGiven("Art").setFamily("Tatum"))) + .getRequest() + .setMethod(Bundle.HTTPVerb.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-r4", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4RouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4RouteBuilder.java index 11ce9a58aff8..1efc6d1ca974 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4RouteBuilder.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR4RouteBuilder.java @@ -22,14 +22,10 @@ import javax.inject.Named; import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.StrictErrorHandler; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.fhir.FhirJsonDataFormat; -import org.apache.camel.component.fhir.FhirXmlDataFormat; import org.apache.camel.quarkus.component.fhir.FhirFlags; @ApplicationScoped -public class FhirR4RouteBuilder extends RouteBuilder { +public class FhirR4RouteBuilder extends AbstractFhirRouteBuilder { private static final Boolean ENABLED = new FhirFlags.R4Enabled().getAsBoolean(); @@ -38,29 +34,17 @@ public class FhirR4RouteBuilder extends RouteBuilder { Instance fhirContextInstance; @Override - public void configure() { - if (ENABLED) { - FhirContext fhirContext = fhirContextInstance.get(); - fhirContext.setParserErrorHandler(new StrictErrorHandler()); - - FhirJsonDataFormat fhirJsonDataFormat = new FhirJsonDataFormat(); - fhirJsonDataFormat.setFhirContext(fhirContext); - fhirJsonDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat(); - fhirXmlDataFormat.setFhirContext(fhirContext); - fhirXmlDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - from("direct:json-to-r4") - .unmarshal(fhirJsonDataFormat) - .marshal(fhirJsonDataFormat); + String getFhirVersion() { + return "r4"; + } - from("direct:xml-to-r4") - .unmarshal(fhirXmlDataFormat) - .marshal(fhirXmlDataFormat); + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } - from("direct:create-r4") - .to("fhir://create/resource?inBody=resourceAsString&fhirContext=#R4"); - } + @Override + boolean isEnabled() { + return ENABLED; } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Resource.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Resource.java index d0526e86a14b..ad5280ba1f94 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Resource.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Resource.java @@ -17,19 +17,66 @@ package org.apache.camel.quarkus.component.fhir.it; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.net.URI; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Instance; import javax.inject.Inject; -import javax.ws.rs.Consumes; +import javax.inject.Named; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +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 ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.rest.api.CacheControlDirective; +import ca.uhn.fhir.rest.api.EncodingEnum; import ca.uhn.fhir.rest.api.MethodOutcome; +import ca.uhn.fhir.rest.api.PreferReturnEnum; +import ca.uhn.fhir.rest.api.SummaryEnum; +import ca.uhn.fhir.rest.client.api.IGenericClient; +import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.fhir.FhirComponent; +import org.apache.camel.component.fhir.api.ExtraParameters; +import org.apache.camel.component.fhir.internal.FhirHelper; +import org.apache.camel.util.ObjectHelper; +import org.hl7.fhir.instance.model.api.IBaseBundle; +import org.hl7.fhir.instance.model.api.IBaseMetaType; +import org.hl7.fhir.instance.model.api.IBaseOperationOutcome; +import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r5.model.Bundle; +import org.hl7.fhir.r5.model.CapabilityStatement; +import org.hl7.fhir.r5.model.HumanName; +import org.hl7.fhir.r5.model.IdType; +import org.hl7.fhir.r5.model.Meta; +import org.hl7.fhir.r5.model.Narrative; +import org.hl7.fhir.r5.model.OperationOutcome; +import org.hl7.fhir.r5.model.Parameters; +import org.hl7.fhir.r5.model.Patient; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; @Path("/r5") @ApplicationScoped @@ -38,41 +85,1115 @@ public class FhirR5Resource { @Inject ProducerTemplate producerTemplate; - @Path("/fhir2json") + @Inject + CamelContext context; + + @Inject + @Named("R5") + Instance fhirContextInstance; + + ///////////////////// + // Capabilities + ///////////////////// + + @Path("/capabilities") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String capabilities(@QueryParam("encodeAs") String encodeAs) { + Map headers = new HashMap<>(); + if (encodeAs.equals("encodeJson") || encodeAs.equals("encodeXml")) { + headers.put(encodeAs, Boolean.TRUE); + } + + CapabilityStatement result = producerTemplate.requestBodyAndHeaders("direct:capabilities-r5", CapabilityStatement.class, + headers, CapabilityStatement.class); + return result.getStatus().name(); + } + + ///////////////////// + // Create + ///////////////////// + + @Path("/createPatientAsStringResource") @POST - @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatientAsStringResource( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address, + @QueryParam("encodeAs") String encodeAs) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = null; + Map headers = new HashMap<>(); + headers.put(encodeAs, Boolean.TRUE); + + if (encodeAs.equals("encodeJson")) { + patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + } else { + patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:createResourceAsString-r5", patientString, + headers, + MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + @Path("/createPatient") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createPatient( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) { + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + MethodOutcome result = producerTemplate.requestBody("direct:createResource-r5", patient, MethodOutcome.class); + + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("created", result.getCreated()); + builder.add("id", result.getId().getValue()); + builder.add("idPart", result.getId().getIdPart()); + builder.add("idUnqualifiedVersionless", result.getId().toUnqualifiedVersionless().getValue()); + builder.add("version", result.getId().getVersionIdPart()); + return builder.build(); + } + + ///////////////////// + // Dataformats + ///////////////////// + + @Path("/fhir2json") + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2json(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:json-to-r5", patient, InputStream.class)) { + public Response fhir2json( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newJsonParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:json-to-r5", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } @Path("/fhir2xml") - @POST - @Consumes(MediaType.APPLICATION_XML) + @GET @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response fhir2xml(String patient) throws Exception { - try (InputStream response = producerTemplate.requestBody("direct:xml-to-r5", patient, InputStream.class)) { + public Response fhir2xml( + @QueryParam("firstName") String firstName, + @QueryParam("lastName") String lastName, + @QueryParam("address") String address) throws Exception { + + Patient patient = new Patient(); + patient.addAddress().addLine(address); + patient.addName().addGiven(firstName).setFamily(lastName); + + String patientString = fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + + try (InputStream response = producerTemplate.requestBody("direct:xml-to-r5", patientString, InputStream.class)) { return Response - .created(new URI("https://camel.apache.org/")) + .created(new URI("https:camel.apache.org/")) .entity(response) .build(); } } - @Path("/createPatient") + ///////////////////// + // Delete + ///////////////////// + + @Path("/deletePatient/byModel") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByModel(@QueryParam("id") String id) { + Patient patient = new Patient(); + patient.addAddress().addLine(PATIENT_ADDRESS); + patient.addName().addGiven(PATIENT_FIRST_NAME).setFamily(PATIENT_LAST_NAME); + patient.setId(id); + + IBaseOperationOutcome result = producerTemplate.requestBody("direct:delete-r5", patient, IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byId") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientById(@QueryParam("id") String id) { + IBaseOperationOutcome result = producerTemplate.requestBody("direct:deleteById-r5", new IdType(id), + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byIdPart") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByIdPart(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.type", "Patient"); + headers.put("CamelFhir.stringId", id); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteByStringId-r5", null, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + @Path("/deletePatient/byUrl") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public String deletePatientByUrl(@QueryParam("cache") boolean noCache) { + Map headers = new HashMap<>(); + if (noCache) { + headers.put(ExtraParameters.CACHE_CONTROL_DIRECTIVE.getHeaderName(), new CacheControlDirective().setNoCache(true)); + } + + String body = String.format("Patient?given=%s&family=%s", PATIENT_FIRST_NAME, PATIENT_LAST_NAME); + IBaseOperationOutcome result = producerTemplate.requestBodyAndHeaders("direct:deleteConditionalByUrl-r5", body, headers, + IBaseOperationOutcome.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // History + ///////////////////// + + @Path("/history/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnInstance(@QueryParam("id") String id) { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.id", new IdType(id)); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnInstance-r5", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnServer-r5", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/history/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int historyOnType() { + final Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.returnType", Bundle.class); + headers.put("CamelFhir.count", 1); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:historyOnType-r5", null, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Load page + ///////////////////// + + @Path("/load/page/byUrl") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageByUrl() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.url", nextPageLink); + headers.put("CamelFhir.returnType", Bundle.class); + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPageByUrl-r5", null, headers, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/next") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPageNext() { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + Bundle result = producerTemplate.requestBody("direct:loadPageNext-r5", bundle, Bundle.class); + return result.getEntry().size(); + } + + @Path("/load/page/previous") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int loadPagePrevious(@QueryParam("encodeAsXml") boolean encodeAsXml) { + String url = "Patient?_count=2"; + Bundle bundle = getFhirClient() + .search() + .byUrl(url) + .returnBundle(Bundle.class) + .execute(); + + String nextPageLink = bundle.getLink("next").getUrl(); + bundle = getFhirClient() + .loadPage() + .byUrl(nextPageLink) + .andReturnBundle(Bundle.class) + .execute(); + + Map headers = new HashMap<>(); + if (encodeAsXml) { + headers.put(ExtraParameters.ENCODING_ENUM.getHeaderName(), EncodingEnum.XML); + } + + Bundle result = producerTemplate.requestBodyAndHeaders("direct:loadPagePrevious-r5", bundle, headers, Bundle.class); + return result.getEntry().size(); + } + + ///////////////////// + // Meta + ///////////////////// + + @Path("/meta") @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.TEXT_PLAIN) - public Response createPatient(String patient) throws Exception { - MethodOutcome result = producerTemplate.requestBody("direct:create-r5", patient, MethodOutcome.class); - return Response - .created(new URI("https://camel.apache.org/")) - .entity(result.getId().getIdPart()) - .build(); + @Produces(MediaType.TEXT_PLAIN) + public int metaAdd(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaAdd-r5", null, headers, IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta") + @DELETE + @Produces(MediaType.TEXT_PLAIN) + public int metaDelete(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + Meta inMeta = new Meta(); + inMeta.addTag().setSystem("urn:system1").setCode("urn:code1"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.meta", inMeta); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaDelete-r5", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromResource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromResource(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + final Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.id", iIdType); + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromResource-r5", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromServer() { + IBaseMetaType result = producerTemplate.requestBody("direct:metaGetFromServer-r5", Meta.class, IBaseMetaType.class); + return result.getTag().size(); + } + + @Path("/meta/getFromType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int metaGetFromType(@QueryParam("preferResponseType") boolean preferResponseType) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.metaType", Meta.class); + headers.put("CamelFhir.resourceType", "Patient"); + + if (preferResponseType) { + headers.put(ExtraParameters.PREFER_RESPONSE_TYPE.getHeaderName(), Patient.class); + } + + IBaseMetaType result = producerTemplate.requestBodyAndHeaders("direct:metaGetFromType-r5", null, headers, + IBaseMetaType.class); + return result.getTag().size(); + } + + ///////////////////// + // Operation + ///////////////////// + + @Path("/operation/onInstance") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstance(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstance-r5", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onInstanceVersion") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnInstanceVersion(@QueryParam("id") String id) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnInstanceVersion-r5", null, headers, + Parameters.class); + + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/onServer") + @GET + @Produces(MediaType.TEXT_PLAIN) + public boolean operationOnServer() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.name", "$get-resource-counts"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.TRUE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnServer-r5", null, headers, + Parameters.class); + return result != null; + } + + @Path("/operation/onType") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationOnType() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceType", Patient.class); + headers.put("CamelFhir.name", "everything"); + headers.put("CamelFhir.parameters", null); + headers.put("CamelFhir.outputParameterType", Parameters.class); + headers.put("CamelFhir.useHttpGet", Boolean.FALSE); + headers.put("CamelFhir.returnType", null); + headers.put("CamelFhir.extraParameters", null); + + Parameters result = producerTemplate.requestBodyAndHeaders("direct:operationOnType-r5", null, headers, + Parameters.class); + Parameters.ParametersParameterComponent parametersParameterComponent = result.getParameter().get(0); + Bundle bundle = (Bundle) parametersParameterComponent.getResource(); + Bundle.BundleEntryComponent bundleEntryComponent = bundle.getEntry().get(0); + return bundleEntryComponent.getResource().getIdElement().toUnqualifiedVersionless().getValue(); + } + + @Path("/operation/processMessage") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String operationProcessMessage() { + Map headers = new HashMap<>(); + headers.put("CamelFhir.respondToUri", null); + headers.put("CamelFhir.msgBundle", null); + headers.put("CamelFhir.asynchronous", Boolean.FALSE); + headers.put("CamelFhir.responseClass", null); + headers.put("CamelFhir.extraParameters", null); + + IBaseBundle result = producerTemplate.requestBodyAndHeaders("direct:operationProcessMessage-r5", null, headers, + IBaseBundle.class); + return result.getIdElement().getIdPart(); + } + + ///////////////////// + // Patch + ///////////////////// + + @Path("/patch/byId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchById(@QueryParam("id") String id, String patch) { + IdType iIdType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.id", iIdType); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchById-r5", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byStringId") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByStringId( + @QueryParam("id") String id, + @QueryParam("preferResponseTypes") boolean preferResponseTypes, + String patch) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.preferReturn", null); + + if (preferResponseTypes) { + List> preferredResponseTypes = new ArrayList<>(); + preferredResponseTypes.add(Patient.class); + headers.put(ExtraParameters.PREFER_RESPONSE_TYPES.getHeaderName(), preferredResponseTypes); + } + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchBySid-r5", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + @Path("/patch/byUrl") + @PATCH + @Produces(MediaType.TEXT_PLAIN) + public String patchByUrl(@QueryParam("id") String id, String patch) throws UnsupportedEncodingException { + Map headers = new HashMap<>(); + headers.put("CamelFhir.patchBody", patch); + headers.put("CamelFhir.url", "Patient?" + Patient.SP_RES_ID + "=" + id); + headers.put("CamelFhir.preferReturn", null); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:patchByUrl-r5", null, headers, + MethodOutcome.class); + + return getFhirClient() + .read() + .resource(Patient.class) + .withId(result.getId()) + .preferResponseType(Patient.class) + .execute() + .getGender() + .getDisplay(); + } + + ///////////////////// + // Read + ///////////////////// + + @Path("/readPatient/byId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientById(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.id", new IdType(id)); + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readById-r5", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongId-r5", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringId") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringId(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringId-r5", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIdAndStringResource(@QueryParam("id") String id) { + IdType idType = new IdType(id); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.id", idType); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIdAndStringResource-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byLongIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByLongIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.longId", Long.valueOf(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByLongIdAndStringResource-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndStringResource-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersion") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersion(@QueryParam("id") String id, @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersion-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringIdAndVersionWithResourceClass") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringIdAndVersionWithResourceClass(@QueryParam("id") String id, + @QueryParam("version") String version) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.stringId", id); + headers.put("CamelFhir.version", version); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringIdAndVersionAndStringResource-r5", null, + headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byIUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByIUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByIUrl-r5", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByUrl(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", Patient.class); + headers.put("CamelFhir.url", id); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrl-r5", null, headers, Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byStringUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readPatientByStringUrlAndStringResource(@QueryParam("id") String id) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.iUrl", new IdType(id)); + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByStringUrlAndStringResource-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + @Path("/readPatient/byUrlAndStringResource") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response readByUrlAndStringResource(@QueryParam("id") String id, @QueryParam("prettyPrint") boolean prettyPrint) { + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceClass", "Patient"); + headers.put("CamelFhir.url", id); + + if (prettyPrint) { + headers.put(ExtraParameters.PRETTY_PRINT.getHeaderName(), Boolean.TRUE); + } + + try { + Patient result = producerTemplate.requestBodyAndHeaders("direct:readByUrlAndStringResource-r5", null, headers, + Patient.class); + return Response.ok().entity(patientToJsonObject(result)).build(); + } catch (CamelExecutionException e) { + Throwable cause = e.getExchange().getException().getCause(); + if (cause instanceof ResourceGoneException) { + return Response.status(404).build(); + } + } + + return Response.noContent().build(); + } + + ///////////////////// + // Search + ///////////////////// + + @Path("/search/byUrl") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Response searchByUrl(@QueryParam("id") String id) { + String url = "Patient?" + Patient.SP_RES_ID + "=" + id + "&_format=json"; + Bundle result = producerTemplate.requestBody("direct:searchByUrl-r5", url, Bundle.class); + + List entry = result.getEntry(); + if (ObjectHelper.isNotEmpty(entry)) { + Patient patient = (Patient) entry.get(0).getResource(); + return Response.ok().entity(patientToJsonObject(patient)).build(); + } + return Response.status(404).build(); + } + + ///////////////////// + // Transaction + ///////////////////// + + @Path("/transaction/withBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithBundle() { + Bundle result = producerTemplate.requestBody("direct:transactionWithBundle-r5", createTransactionBundle(), + Bundle.class); + return result.getEntry().get(0).getResponse().getStatus(); + } + + @Path("/transaction/withStringBundle") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String transactionWithStringBundle() { + Bundle transactionBundle = createTransactionBundle(); + String stringBundle = fhirContextInstance.get().newJsonParser().encodeResourceToString(transactionBundle); + return producerTemplate.requestBody("direct:transactionWithStringBundle-r5", stringBundle, String.class); + } + + @Path("/transaction/withResources") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public int transactionWithResources(@QueryParam("summaryEnum") boolean summaryEnum) { + Patient oscar = new Patient().addName(new HumanName().addGiven("Oscar").setFamily("Peterson")); + Patient bobbyHebb = new Patient().addName(new HumanName().addGiven("Bobby").setFamily("Hebb")); + List patients = new ArrayList<>(2); + patients.add(oscar); + patients.add(bobbyHebb); + + Map headers = new HashMap<>(); + if (summaryEnum) { + headers.put(ExtraParameters.SUMMARY_ENUM.getHeaderName(), SummaryEnum.DATA); + } + + List result = producerTemplate.requestBodyAndHeaders("direct:transactionWithResources-r5", patients, + headers, List.class); + return result.size(); + } + + ///////////////////// + // Update + ///////////////////// + + @Path("/update/resource") + @POST + public void updateResource(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-r5", null, headers); + } + + @Path("/update/resource/withoutId") + @POST + public void updateResourceWithoutId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResource-r5", null, headers); + } + + @Path("/update/resource/withStringId") + @POST + public void updateResourceWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceWithStringId-r5", null, headers); + } + + @Path("/update/resource/asString") + @POST + public void updateResourceAsString(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.id", patient.getIdElement()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsString-r5", null, headers); + } + + @Path("/update/resource/asStringWithStringId") + @POST + public void updateResourceAsStringWithStringId(@QueryParam("id") String id) throws ParseException { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1998-04-29"); + patient.setBirthDate(date); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.stringId", patient.getIdElement().getIdPart()); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + producerTemplate.sendBodyAndHeaders("direct:updateResourceAsStringWithStringId-r5", null, headers); + } + + @Path("/update/resource/bySearchUrl") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceBySearchUrl(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getIdElement().getIdPart(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resource", patient); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrl-r5", null, headers, + MethodOutcome.class); + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + @Path("/update/resource/bySearchUrlAndResourceAsString") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String updateResourceByUrlAndResourceAsString(@QueryParam("id") String id) throws Exception { + Patient patient = getFhirClient().read() + .resource(Patient.class) + .withId(id) + .preferResponseType(Patient.class) + .execute(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse("1998-04-29"); + patient.setBirthDate(date); + + String url = "Patient?" + Patient.SP_IDENTIFIER + '=' + URLEncoder.encode(patient.getId(), "UTF-8"); + + Map headers = new HashMap<>(); + headers.put("CamelFhir.resourceAsString", fhirContextInstance.get().newJsonParser().encodeResourceToString(patient)); + headers.put("CamelFhir.url", url); + headers.put("CamelFhir.preferReturn", PreferReturnEnum.REPRESENTATION); + + MethodOutcome result = producerTemplate.requestBodyAndHeaders("direct:updateResourceBySearchUrlAndResourceAsString-r5", + null, headers, MethodOutcome.class); + + Patient updated = (Patient) result.getResource(); + return dateFormat.format(updated.getBirthDate()); + } + + ///////////////////// + // Validate + ///////////////////// + + @Path("/validate/resource") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResource() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + MethodOutcome result = producerTemplate.requestBody("direct:validateResource-r5", patient, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + @Path("/validate/resourceAsString") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String validateResourceAsString() { + Patient patient = new Patient() + .addName(new HumanName() + .addGiven(PATIENT_FIRST_NAME) + .setFamily(PATIENT_LAST_NAME)); + + patient.getText().setStatus(Narrative.NarrativeStatus.GENERATED); + patient.getText().setDivAsString("
This is the narrative text
"); + + String body = this.fhirContextInstance.get().newXmlParser().encodeResourceToString(patient); + MethodOutcome result = producerTemplate.requestBody("direct:validateResourceAsString-r5", body, MethodOutcome.class); + + OperationOutcome operationOutcome = (OperationOutcome) result.getOperationOutcome(); + return operationOutcome.getIssue().get(0).getDiagnostics(); + } + + private JsonObject patientToJsonObject(Patient patient) { + JsonObjectBuilder builder = Json.createObjectBuilder(); + builder.add("address", patient.getAddress().get(0).getLine().get(0).asStringValue()); + builder.add("firstName", patient.getName().get(0).getGiven().get(0).asStringValue()); + builder.add("lastName", patient.getName().get(0).getFamily()); + + Date birthDate = patient.getBirthDate(); + if (birthDate != null) { + String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(birthDate); + builder.add("birthDate", formattedDate); + } + return builder.build(); + } + + private Bundle createTransactionBundle() { + Bundle input = new Bundle(); + input.setType(Bundle.BundleType.TRANSACTION); + input.addEntry() + .setResource(new Patient().addName(new HumanName().addGiven("Art").setFamily("Tatum"))) + .getRequest() + .setMethod(Bundle.HTTPVerb.POST); + return input; + } + + private IGenericClient getFhirClient() { + FhirComponent component = context.getComponent("fhir-r5", FhirComponent.class); + return FhirHelper.createClient(component.getConfiguration(), context); } } diff --git a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5RouteBuilder.java b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5RouteBuilder.java index 48693300c580..ed81402cee7e 100644 --- a/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5RouteBuilder.java +++ b/integration-tests/fhir/src/main/java/org/apache/camel/quarkus/component/fhir/it/FhirR5RouteBuilder.java @@ -22,14 +22,10 @@ import javax.inject.Named; import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.parser.StrictErrorHandler; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.fhir.FhirJsonDataFormat; -import org.apache.camel.component.fhir.FhirXmlDataFormat; import org.apache.camel.quarkus.component.fhir.FhirFlags; @ApplicationScoped -public class FhirR5RouteBuilder extends RouteBuilder { +public class FhirR5RouteBuilder extends AbstractFhirRouteBuilder { private static final Boolean ENABLED = new FhirFlags.R5Enabled().getAsBoolean(); @@ -38,29 +34,17 @@ public class FhirR5RouteBuilder extends RouteBuilder { Instance fhirContextInstance; @Override - public void configure() { - if (ENABLED) { - FhirContext fhirContext = fhirContextInstance.get(); - fhirContext.setParserErrorHandler(new StrictErrorHandler()); - - FhirJsonDataFormat fhirJsonDataFormat = new FhirJsonDataFormat(); - fhirJsonDataFormat.setFhirContext(fhirContext); - fhirJsonDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - FhirXmlDataFormat fhirXmlDataFormat = new FhirXmlDataFormat(); - fhirXmlDataFormat.setFhirContext(fhirContext); - fhirXmlDataFormat.setParserErrorHandler(new StrictErrorHandler()); - - from("direct:json-to-r5") - .unmarshal(fhirJsonDataFormat) - .marshal(fhirJsonDataFormat); + String getFhirVersion() { + return "r5"; + } - from("direct:xml-to-r5") - .unmarshal(fhirXmlDataFormat) - .marshal(fhirXmlDataFormat); + @Override + FhirContext getFhirContext() { + return fhirContextInstance.get(); + } - from("direct:create-r5") - .to("fhir://create/resource?inBody=resourceAsString&fhirContext=#R5"); - } + @Override + boolean isEnabled() { + return ENABLED; } } diff --git a/integration-tests/fhir/src/main/resources/application.properties b/integration-tests/fhir/src/main/resources/application.properties index b7e9f8f6cb80..8f2f74b3ecf5 100644 --- a/integration-tests/fhir/src/main/resources/application.properties +++ b/integration-tests/fhir/src/main/resources/application.properties @@ -19,17 +19,12 @@ # Quarkus :: Camel :: FHIR # # The HAPI-FHIR library, on which camel-fhir depends on, heavily uses reflection which affects performance in Quarkus -# (memory footprint, build time, CPU resources etc...). For the sake of time, only R4 (which is the default FHIR -# version supported by the test server) +# (memory footprint, build time, CPU resources etc...). For the sake of time, only R4 is tested by default. To test +# additional FHIR versions, set the following configuration properties to true. # quarkus.camel.fhir.enable-dstu2=false -quarkus.camel.fhir.enable-dstu3=true -quarkus.camel.fhir.enable-r4=false +quarkus.camel.fhir.enable-dstu2_hl7org=false +quarkus.camel.fhir.enable-dstu2_1=false +quarkus.camel.fhir.enable-dstu3=false +quarkus.camel.fhir.enable-r4=true quarkus.camel.fhir.enable-r5=false - -# -# Camel :: FHIR -# -camel.component.fhir.log = false -camel.component.fhir.server-url = {{camel.fhir.test-url}} -camel.component.fhir.fhir-context = #bean:DSTU3 diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirTest.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirTest.java new file mode 100644 index 000000000000..1678e65e1775 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/AbstractFhirTest.java @@ -0,0 +1,883 @@ +/* + * 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.fhir.it; + +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import io.restassured.path.json.JsonPath; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_ADDRESS; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_FIRST_NAME; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_GENDER_PATCH; +import static org.apache.camel.quarkus.component.fhir.it.FhirConstants.PATIENT_LAST_NAME; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalToIgnoringCase; +import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static org.hamcrest.Matchers.is; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; + +abstract class AbstractFhirTest { + + @ParameterizedTest + @ValueSource(strings = { "fhir2json", "fhir2xml" }) + public void marshalUnmarshal(String path) { + RestAssured.given() + .get("/" + path) + .then() + .statusCode(201); + } + + @ParameterizedTest + @ValueSource(strings = { "encodeJson", "encodeXml" }) + public void capabilities(String encodeAs) { + RestAssured.given() + .queryParam("encodeAs", encodeAs) + .get("/capabilities") + .then() + .statusCode(200) + .body(is("ACTIVE")); + } + + @ParameterizedTest + @ValueSource(strings = { "encodeJson", "encodeXml" }) + public void createAsStringResource(String encodeAs) { + JsonPath result = RestAssured.given() + .queryParam("encodeAs", encodeAs) + .queryParam("firstName", PATIENT_FIRST_NAME) + .queryParam("lastName", PATIENT_LAST_NAME) + .queryParam("address", PATIENT_ADDRESS) + .contentType(ContentType.TEXT) + .post("/createPatientAsStringResource") + .then() + .statusCode(200) + .extract() + .jsonPath(); + try { + assertEquals(true, result.getBoolean("created")); + assertNotNull(result.getString("id")); + assertNotNull(result.getString("idPart")); + assertNotNull(result.getString("idUnqualifiedVersionless")); + assertNotNull(result.getString("version")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void createAsResource() { + JsonPath result = createPatient(); + try { + assertEquals(true, result.getBoolean("created")); + assertNotNull(result.getString("id")); + assertNotNull(result.getString("idPart")); + assertNotNull(result.getString("idUnqualifiedVersionless")); + assertNotNull(result.getString("version")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void deleteByModel() { + JsonPath result = createPatient(); + + String deleteEventId = RestAssured.given() + .queryParam("id", result.getString("id")) + .delete("/deletePatient/byModel") + .then() + .statusCode(200) + .extract() + .body() + .asString(); + + RestAssured.given() + .queryParam("id", deleteEventId) + .get("/readPatient/byId") + .then() + .statusCode(404); + } + + @Test + public void deleteById() { + JsonPath result = createPatient(); + + String deleteEventId = RestAssured.given() + .queryParam("id", result.getString("id")) + .delete("/deletePatient/byId") + .then() + .statusCode(200) + .extract() + .body() + .asString(); + + RestAssured.given() + .queryParam("id", deleteEventId) + .get("/readPatient/byId") + .then() + .statusCode(404); + } + + @Test + public void deleteByIdPart() { + JsonPath result = createPatient(); + + String deleteEventId = RestAssured.given() + .queryParam("id", result.getString("idPart")) + .delete("/deletePatient/byIdPart") + .then() + .statusCode(200) + .extract() + .body() + .asString(); + + RestAssured.given() + .queryParam("id", deleteEventId) + .get("/readPatient/byId") + .then() + .statusCode(404); + } + + @ParameterizedTest + @ValueSource(booleans = { false, true }) + public void deleteByUrl(boolean noCache) { + createPatient(); + + RestAssured.given() + .queryParam("noCache", noCache) + .delete("/deletePatient/byUrl") + .then() + .statusCode(204); + + RestAssured.given() + .get("/search/byUrl") + .then() + .statusCode(404); + } + + @Test + public void historyOnInstance() { + JsonPath result = createPatient(); + + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/history/onInstance") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void historyOnServer() { + JsonPath result = createPatient(); + + try { + RestAssured.given() + .get("/history/onServer") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void historyOnType() { + JsonPath result = createPatient(); + + try { + RestAssured.given() + .get("/history/onType") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void loadPageByUrl() { + Set ids = Stream.of( + createPatient("First Name 1", "Last Name 1", "Address 1"), + createPatient("First Name 2", "Last Name 2", "Address 2"), + createPatient("First Name 3", "Last Name 3", "Address 3")) + .map(json -> json.getString("id")) + .collect(Collectors.toSet()); + + try { + RestAssured.given() + .get("/load/page/byUrl") + .then() + .statusCode(200) + .body(is("2")); + } finally { + ids.forEach(this::deletePatient); + } + } + + @Test + public void loadPageByNext() { + Set ids = Stream.of( + createPatient("First Name 1", "Last Name 1", "Address 1"), + createPatient("First Name 2", "Last Name 2", "Address 2"), + createPatient("First Name 3", "Last Name 3", "Address 3")) + .map(json -> json.getString("id")) + .collect(Collectors.toSet()); + + try { + RestAssured.given() + .get("/load/page/next") + .then() + .statusCode(200) + .body(is("2")); + } finally { + ids.forEach(this::deletePatient); + } + } + + @Test + public void loadPageByPrevious() { + Set ids = Stream.of( + createPatient("First Name 1", "Last Name 1", "Address 1"), + createPatient("First Name 2", "Last Name 2", "Address 2"), + createPatient("First Name 3", "Last Name 3", "Address 3")) + .map(json -> json.getString("id")) + .collect(Collectors.toSet()); + + try { + RestAssured.given() + .queryParam("encodeAsXml", false) + .get("/load/page/previous") + .then() + .statusCode(200) + .body(is("2")); + } finally { + ids.forEach(this::deletePatient); + } + } + + @Test + public void loadPageByPreviousWithEncoding() { + Set ids = Stream.of( + createPatient("First Name 1", "Last Name 1", "Address 1"), + createPatient("First Name 2", "Last Name 2", "Address 2"), + createPatient("First Name 3", "Last Name 3", "Address 3")) + .map(json -> json.getString("id")) + .collect(Collectors.toSet()); + + try { + RestAssured.given() + .queryParam("encodeAsXml", false) + .get("/load/page/previous") + .then() + .statusCode(200) + .body(is("2")); + } finally { + ids.forEach(this::deletePatient); + } + } + + @Test + public void metaAdd() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void metaDelete() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + + RestAssured.given() + .queryParam("id", result.getString("id")) + .delete("/meta") + .then() + .statusCode(200) + .body(is("0")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void metaGetFromResource() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/meta/getFromResource") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void metaGetFromServer() { + RestAssured.given() + .get("/meta/getFromServer") + .then() + .statusCode(200) + .body(greaterThanOrEqualTo("2")); + } + + @ParameterizedTest + @ValueSource(booleans = { false, true }) + public void metaGetFromType(boolean preferResponseType) { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + + RestAssured.given() + .queryParam("preferResponseType", preferResponseType) + .get("/meta/getFromType") + .then() + .statusCode(200) + .body(is("1")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void operationOnInstance() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/operation/onInstance") + .then() + .statusCode(200) + .body(is(result.getString("idUnqualifiedVersionless"))); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void operationOnInstanceVersion() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/operation/onInstanceVersion") + .then() + .statusCode(200) + .body(is(result.getString("idUnqualifiedVersionless"))); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void operationOnServer() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .get("/operation/onServer") + .then() + .statusCode(200) + .body(is("true")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void operationOnType() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .get("/operation/onType") + .then() + .statusCode(200) + .body(is(result.getString("idUnqualifiedVersionless"))); + } finally { + deletePatient(result.getString("id")); + } + } + + @Disabled("ProcessMessage is not implemented on the mock FHIR server") + @Test + public void operationProcessMessage() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .get("/operation/processMessage") + .then() + .statusCode(200) + .body(is(result.getString("id"))); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void patchById() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .body(PATIENT_GENDER_PATCH) + .patch("/patch/byId") + .then() + .statusCode(200) + .body(equalToIgnoringCase("Female")); + } finally { + deletePatient(result.getString("id")); + } + } + + @ParameterizedTest + @ValueSource(booleans = { false, true }) + public void patchByStringId(boolean preferResponseTypes) { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .queryParam("preferResponseTypes", preferResponseTypes) + .body(PATIENT_GENDER_PATCH) + .patch("/patch/byStringId") + .then() + .statusCode(200) + .body(equalToIgnoringCase("female")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void patchByUrl() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .body(PATIENT_GENDER_PATCH) + .patch("/patch/byUrl") + .then() + .statusCode(200) + .body(equalToIgnoringCase("Female")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readById() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/readPatient/byId") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByLongId() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/readPatient/byLongId") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByStringId() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/readPatient/byStringId") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByIdAndStringResource() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/readPatient/byIdAndStringResource") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByLongIdAndStringResource() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/readPatient/byLongIdAndStringResource") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByStringIdAndStringResource() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/readPatient/byStringIdAndStringResource") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByStringIdAndVersion() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .queryParam("version", result.getString("version")) + .get("/readPatient/byStringIdAndVersion") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByStringIdAndVersionWithResourceClass() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .queryParam("version", result.getString("version")) + .get("/readPatient/byStringIdAndVersionWithResourceClass") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByIUrl() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/readPatient/byIUrl") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByUrl() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/readPatient/byUrl") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void readByStringUrlAndStringResource() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .get("/readPatient/byStringUrlAndStringResource") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @ParameterizedTest + @ValueSource(booleans = { false, true }) + public void readByUrlAndStringResource(boolean prettyPrint) { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("prettyPrint", prettyPrint) + .queryParam("id", result.getString("id")) + .get("/readPatient/byUrlAndStringResource") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void searchByUrl() { + JsonPath result = createPatient(); + try { + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/search/byUrl") + .then() + .statusCode(200) + .body( + "address", is(PATIENT_ADDRESS), + "firstName", is(PATIENT_FIRST_NAME), + "lastName", is(PATIENT_LAST_NAME)); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void transactionWithBundle() { + RestAssured.given() + .get("/transaction/withBundle") + .then() + .statusCode(200) + .body(containsString("Created")); + } + + @Test + public void transactionWithStringBundle() { + RestAssured.given() + .get("/transaction/withStringBundle") + .then() + .statusCode(200) + .body(containsString("Created")); + } + + @ParameterizedTest + @ValueSource(booleans = { false, true }) + public void transactionWithResources(boolean summaryEnum) { + RestAssured.given() + .queryParam("summaryEnum", summaryEnum) + .get("/transaction/withResources") + .then() + .statusCode(200) + .body(is("2")); + } + + @ParameterizedTest + @ValueSource(strings = { + "resource", + "resource/withoutId", + "resource/withStringId", + "resource/asString", + "resource/asStringWithStringId", + }) + public void updateResource(String updateApiPath) { + JsonPath result = createPatient(); + assertNull(result.get("birthDate")); + + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/update/" + updateApiPath) + .then() + .statusCode(204); + + RestAssured.given() + .queryParam("id", result.getString("idPart")) + .get("/readPatient/byId") + .then() + .statusCode(200) + .body("birthDate", is("1998-04-29")); + } finally { + deletePatient(result.getString("id")); + } + } + + @ParameterizedTest + @ValueSource(strings = { + "resource/bySearchUrl", + "resource/bySearchUrlAndResourceAsString" + }) + public void updateResourceByUrl(String updateApiPath) { + JsonPath result = createPatient(); + assertNull(result.get("birthDate")); + + try { + RestAssured.given() + .queryParam("id", result.getString("id")) + .post("/update/" + updateApiPath) + .then() + .statusCode(200) + .body(is("1998-04-29")); + } finally { + deletePatient(result.getString("id")); + } + } + + @Test + public void validateResource() { + RestAssured.given() + .get("/validate/resource") + .then() + .statusCode(200) + .body(is("No issues detected during validation")); + } + + @Test + public void validateResourceAsString() { + RestAssured.given() + .get("/validate/resourceAsString") + .then() + .statusCode(200) + .body(is("No issues detected during validation")); + } + + private JsonPath createPatient() { + return createPatient(PATIENT_FIRST_NAME, PATIENT_LAST_NAME, PATIENT_ADDRESS); + } + + private JsonPath createPatient(String firstName, String lastName, String address) { + return RestAssured.given() + .queryParam("firstName", firstName) + .queryParam("lastName", lastName) + .queryParam("address", address) + .contentType(ContentType.TEXT) + .post("/createPatient") + .then() + .statusCode(200) + .extract() + .jsonPath(); + } + + private void deletePatient(String id) { + RestAssured.given() + .queryParam("id", id) + .delete("/deletePatient/byId") + .then() + .statusCode(200); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientTest.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientTest.java deleted file mode 100644 index b5967a393521..000000000000 --- a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientTest.java +++ /dev/null @@ -1,113 +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.fhir.it; - -import ca.uhn.fhir.context.FhirContext; -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; -import io.restassured.http.ContentType; -import org.apache.camel.quarkus.component.fhir.FhirFlags; -import org.apache.camel.quarkus.test.EnabledIf; -import org.jboss.logging.Logger; -import org.junit.jupiter.api.Test; - -@QuarkusTest -@QuarkusTestResource(FhirTestResource.class) -class FhirClientTest { - private static final Logger LOG = Logger.getLogger(FhirClientTest.class); - - @Test - @EnabledIf(FhirFlags.R5Enabled.class) - public void fhirClientR5() { - LOG.info("Running R5 Client test"); - - final org.hl7.fhir.r5.model.Patient patient = getR5Patient(); - final String patientString = FhirContext.forR5().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString.getBytes()).post("/r5/createPatient") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.R4Enabled.class) - public void fhirClientR4() { - LOG.info("Running R4 Client test"); - - final org.hl7.fhir.r4.model.Patient patient = getR4Patient(); - final String patientString = FhirContext.forR4().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString.getBytes()).post("/r4/createPatient") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.Dstu3Enabled.class) - public void fhirClientDstu3() { - LOG.info("Running DSTU3 Client test"); - - final org.hl7.fhir.dstu3.model.Patient patient = getDstu3Patient(); - final String patientString = FhirContext.forDstu3().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/dstu3/createPatient") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.Dstu2Enabled.class) - public void fhirClientDstu2() { - LOG.info("Running DSTU2 CLIENT test"); - - final ca.uhn.fhir.model.dstu2.resource.Patient patient = getDstu2Patient(); - final String patientString = FhirContext.forDstu2().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/dstu2/createPatient") - .then().statusCode(201); - } - - private ca.uhn.fhir.model.dstu2.resource.Patient getDstu2Patient() { - ca.uhn.fhir.model.dstu2.resource.Patient patient = new ca.uhn.fhir.model.dstu2.resource.Patient(); - patient.addName().addGiven("Sherlock").addFamily("Holmes"); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - return patient; - } - - private org.hl7.fhir.dstu3.model.Patient getDstu3Patient() { - org.hl7.fhir.dstu3.model.Patient patient = new org.hl7.fhir.dstu3.model.Patient(); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - return patient; - } - - private org.hl7.fhir.r4.model.Patient getR4Patient() { - org.hl7.fhir.r4.model.Patient patient = new org.hl7.fhir.r4.model.Patient(); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - return patient; - } - - private org.hl7.fhir.r5.model.Patient getR5Patient() { - org.hl7.fhir.r5.model.Patient patient = new org.hl7.fhir.r5.model.Patient(); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - return patient; - } -} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatTest.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatTest.java deleted file mode 100644 index b2a4193b5764..000000000000 --- a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatTest.java +++ /dev/null @@ -1,164 +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.fhir.it; - -import ca.uhn.fhir.context.FhirContext; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; -import io.restassured.http.ContentType; -import org.apache.camel.quarkus.component.fhir.FhirFlags; -import org.apache.camel.quarkus.test.EnabledIf; -import org.hl7.fhir.dstu3.model.Patient; -import org.jboss.logging.Logger; -import org.junit.jupiter.api.Test; - -@QuarkusTest -class FhirDataformatTest { - private static final Logger LOG = Logger.getLogger(FhirDataformatTest.class); - - @Test - @EnabledIf(FhirFlags.Dstu2Enabled.class) - public void jsonDstu2() { - LOG.info("Running DSTU2 JSON test"); - - final ca.uhn.fhir.model.dstu2.resource.Patient patient = getDstu2Patient(); - final String patientString = FhirContext.forDstu2().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/dstu2/fhir2json") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.Dstu2Enabled.class) - public void xmlDstu2() { - LOG.info("Running DSTU2 XML test"); - - final ca.uhn.fhir.model.dstu2.resource.Patient patient = getDstu2Patient(); - final String patientString = FhirContext.forDstu2().newXmlParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.XML).body(patientString).post("/dstu2/fhir2xml") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.Dstu3Enabled.class) - public void jsonDstu3() { - LOG.info("Running DSTU3 JSON test"); - - final Patient patient = getDstu3Patient(); - final String patientString = FhirContext.forDstu3().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/dstu3/fhir2json") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.Dstu3Enabled.class) - public void xmlDstu3() { - LOG.info("Running DSTU3 XML test"); - - final Patient patient = getDstu3Patient(); - final String patientString = FhirContext.forDstu3().newXmlParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.XML).body(patientString).post("/dstu3/fhir2xml") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.R4Enabled.class) - public void jsonR4() { - LOG.info("Running R4 JSON test"); - - final org.hl7.fhir.r4.model.Patient patient = getR4Patient(); - final String patientString = FhirContext.forR4().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/r4/fhir2json") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.R4Enabled.class) - public void xmlR4() { - LOG.info("Running R4 XML test"); - - final org.hl7.fhir.r4.model.Patient patient = getR4Patient(); - final String patientString = FhirContext.forR4().newXmlParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.XML).body(patientString).post("/r4/fhir2xml") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.R5Enabled.class) - public void jsonR5() { - LOG.info("Running R5 JSON test"); - - final org.hl7.fhir.r5.model.Patient patient = getR5Patient(); - final String patientString = FhirContext.forR5().newJsonParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.JSON).body(patientString).post("/r5/fhir2json") - .then().statusCode(201); - } - - @Test - @EnabledIf(FhirFlags.R5Enabled.class) - public void xmlR5() { - LOG.info("Running R5 XML test"); - - final org.hl7.fhir.r5.model.Patient patient = getR5Patient(); - final String patientString = FhirContext.forR5().newXmlParser().encodeResourceToString(patient); - - RestAssured.given() - .contentType(ContentType.XML).body(patientString).post("/r5/fhir2xml") - .then().statusCode(201); - } - - private ca.uhn.fhir.model.dstu2.resource.Patient getDstu2Patient() { - ca.uhn.fhir.model.dstu2.resource.Patient patient = new ca.uhn.fhir.model.dstu2.resource.Patient(); - patient.addName().addGiven("Sherlock").addFamily("Holmes"); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - return patient; - } - - private org.hl7.fhir.dstu3.model.Patient getDstu3Patient() { - org.hl7.fhir.dstu3.model.Patient patient = new org.hl7.fhir.dstu3.model.Patient(); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - return patient; - } - - private org.hl7.fhir.r4.model.Patient getR4Patient() { - org.hl7.fhir.r4.model.Patient patient = new org.hl7.fhir.r4.model.Patient(); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - return patient; - } - - private org.hl7.fhir.r5.model.Patient getR5Patient() { - org.hl7.fhir.r5.model.Patient patient = new org.hl7.fhir.r5.model.Patient(); - patient.addAddress().addLine("221b Baker St, Marylebone, London NW1 6XE, UK"); - patient.addName().addGiven("Sherlock").setFamily("Holmes"); - return patient; - } -} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgIT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgIT.java new file mode 100644 index 000000000000..c2d720460770 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgIT.java @@ -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. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2Hl7OrgEnabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusIntegrationTest +@EnabledIf(Dstu2Hl7OrgEnabled.class) +class FhirDstu2Hl7OrgIT extends FhirDstu2Hl7OrgTest { + +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgTest.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgTest.java new file mode 100644 index 000000000000..74f3aa9f0f32 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Hl7OrgTest.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2Hl7OrgEnabled; +import org.apache.camel.quarkus.test.EnabledIf; + +import static org.hamcrest.Matchers.is; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "DSTU2_HL7ORG")) +@TestHTTPEndpoint(FhirDstu2Hl7OrgResource.class) +@EnabledIf(Dstu2Hl7OrgEnabled.class) +class FhirDstu2Hl7OrgTest extends AbstractFhirTest { + + public void capabilities(String encodeAs) { + RestAssured.given() + .queryParam("encodeAs", encodeAs) + .get("/capabilities") + .then() + .statusCode(204); + } + + public void metaGetFromServer() { + RestAssured.given() + .get("/meta/getFromServer") + .then() + .statusCode(200) + .body(is("0")); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2IT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2IT.java new file mode 100644 index 000000000000..a44af70bc93f --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2IT.java @@ -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. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusIntegrationTest +@EnabledIf(Dstu2Enabled.class) +class FhirDstu2IT extends FhirDstu2Test { + +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Test.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Test.java new file mode 100644 index 000000000000..35d89470bd9c --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2Test.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +import static org.hamcrest.Matchers.is; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "DSTU2")) +@TestHTTPEndpoint(FhirDstu2Resource.class) +@EnabledIf(Dstu2Enabled.class) +class FhirDstu2Test extends AbstractFhirTest { + + public void capabilities(String encodeAs) { + RestAssured.given() + .queryParam("encodeAs", encodeAs) + .get("/capabilities") + .then() + .statusCode(204); + } + + public void metaGetFromServer() { + RestAssured.given() + .get("/meta/getFromServer") + .then() + .statusCode(200) + .body(is("0")); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1IT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1IT.java new file mode 100644 index 000000000000..39c5a3479474 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1IT.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2_1Enabled; +import org.apache.camel.quarkus.test.EnabledIf; +import org.junit.jupiter.api.Disabled; + +@QuarkusIntegrationTest +@EnabledIf(Dstu2_1Enabled.class) +@Disabled("https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/335") +class FhirDstu2_1IT extends FhirDstu2_1Test { + +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Test.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Test.java new file mode 100644 index 000000000000..bdd0bdda0edc --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu2_1Test.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu2_1Enabled; +import org.apache.camel.quarkus.test.EnabledIf; +import org.junit.jupiter.api.Disabled; + +import static org.hamcrest.Matchers.is; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "DSTU2_1")) +@TestHTTPEndpoint(FhirDstu2_1Resource.class) +@EnabledIf(Dstu2_1Enabled.class) +@Disabled("https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/335") +class FhirDstu2_1Test extends AbstractFhirTest { + + @Override + public void metaGetFromServer() { + RestAssured.given() + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + + RestAssured.given() + .get("/meta/getFromServer") + .then() + .statusCode(200) + .body(is("1")); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3IT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3IT.java new file mode 100644 index 000000000000..e771aa631862 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3IT.java @@ -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. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu3Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusIntegrationTest +@EnabledIf(Dstu3Enabled.class) +class FhirDstu3IT extends FhirDstu3Test { + +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Test.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Test.java new file mode 100644 index 000000000000..2d4ec044f706 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDstu3Test.java @@ -0,0 +1,49 @@ +/* + * 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.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.apache.camel.quarkus.component.fhir.it.util.Dstu3Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +import static org.hamcrest.Matchers.is; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "DSTU3")) +@TestHTTPEndpoint(FhirDstu3Resource.class) +@EnabledIf(Dstu3Enabled.class) +class FhirDstu3Test extends AbstractFhirTest { + + @Override + public void metaGetFromServer() { + RestAssured.given() + .post("/meta") + .then() + .statusCode(200) + .body(is("1")); + + RestAssured.given() + .get("/meta/getFromServer") + .then() + .statusCode(200) + .body(is("1")); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientIT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4IT.java similarity index 77% rename from integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientIT.java rename to integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4IT.java index 27d38625d7c6..82af5e622f77 100644 --- a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirClientIT.java +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4IT.java @@ -16,9 +16,12 @@ */ package org.apache.camel.quarkus.component.fhir.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.R4Enabled; +import org.apache.camel.quarkus.test.EnabledIf; -@NativeImageTest -class FhirClientIT extends FhirClientTest { +@QuarkusIntegrationTest +@EnabledIf(R4Enabled.class) +class FhirR4IT extends FhirR4Test { } diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Test.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Test.java new file mode 100644 index 000000000000..cffbc85d5a72 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR4Test.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import org.apache.camel.quarkus.component.fhir.it.util.R4Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "R4")) +@TestHTTPEndpoint(FhirR4Resource.class) +@EnabledIf(R4Enabled.class) +class FhirR4Test extends AbstractFhirTest { + +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatIT.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5IT.java similarity index 77% rename from integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatIT.java rename to integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5IT.java index d6b0209f7426..44b3c95f5139 100644 --- a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirDataformatIT.java +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5IT.java @@ -16,8 +16,12 @@ */ package org.apache.camel.quarkus.component.fhir.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; +import org.apache.camel.quarkus.component.fhir.it.util.R5Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusIntegrationTest +@EnabledIf(R5Enabled.class) +class FhirR5IT extends FhirR5Test { -@NativeImageTest -class FhirDataformatIT extends FhirDataformatTest { } diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Test.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Test.java new file mode 100644 index 000000000000..11cf9e93a1e6 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirR5Test.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.fhir.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.ResourceArg; +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import org.apache.camel.quarkus.component.fhir.it.util.R5Enabled; +import org.apache.camel.quarkus.test.EnabledIf; + +@QuarkusTest +@QuarkusTestResource(value = FhirTestResource.class, initArgs = @ResourceArg(name = "fhirVersion", value = "R5")) +@TestHTTPEndpoint(FhirR5Resource.class) +@EnabledIf(R5Enabled.class) +class FhirR5Test extends AbstractFhirTest { +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirTestResource.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirTestResource.java index ff9627cee9dd..970d9aada43c 100644 --- a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirTestResource.java +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/FhirTestResource.java @@ -17,41 +17,58 @@ package org.apache.camel.quarkus.component.fhir.it; +import java.util.Collections; import java.util.Map; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; +import org.apache.camel.quarkus.component.fhir.it.util.FhirTestHelper; import org.apache.camel.util.CollectionHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; -import org.testcontainers.utility.TestcontainersConfiguration; public class FhirTestResource implements QuarkusTestResourceLifecycleManager { private static final Logger LOGGER = LoggerFactory.getLogger(FhirTestResource.class); + private static final String FHIR_DSTU_CONTAINER_TAG = "v4.2.0"; + private static final String FHIR_DSTU_CONTEXT_PATH = "/hapi-fhir-jpaserver/fhir"; + private static final String FHIR_R_CONTAINER_TAG = "v5.7.0"; + private static final String FHIR_R_CONTEXT_PATH = "/fhir"; private static final int CONTAINER_PORT = 8080; - private static final String CONTAINER_IMAGE = "quay.io/lburgazzoli/hapi-fhir-jpaserver-starter:4.1.0"; + private FhirVersion fhirVersion; private GenericContainer container; + @Override + public void init(Map initArgs) { + this.fhirVersion = FhirVersion.valueOf(initArgs.get("fhirVersion")); + } + @Override public Map start() { - LOGGER.info(TestcontainersConfiguration.getInstance().toString()); + if (this.fhirVersion == null) { + return Collections.emptyMap(); + } + + if (!FhirTestHelper.isFhirVersionEnabled(fhirVersion.name())) { + LOGGER.info("FHIR version {} is disabled. No hapi test container will be started for it.", + fhirVersion.simpleVersion()); + return Collections.emptyMap(); + } try { - container = new GenericContainer(CONTAINER_IMAGE) + LOGGER.info("FHIR version {} is enabled. Starting hapi test container for it.", fhirVersion.simpleVersion()); + String imageName = fhirVersion.getContainerImageName(); + container = new GenericContainer(imageName) .withExposedPorts(CONTAINER_PORT) - .withEnv("HAPI_FHIR_VERSION", "DSTU3") - .waitingFor(Wait.forListeningPort()); + .withEnv("HAPI_FHIR_VERSION", fhirVersion.getFhirContainerVersionEnvVarValue()) + .waitingFor(Wait.forHttp(fhirVersion.getHealthEndpointPath())); container.start(); return CollectionHelper.mapOf( - "camel.fhir.test-url", - String.format( - "http://%s:%d/hapi-fhir-jpaserver/fhir", - container.getContainerIpAddress(), - container.getMappedPort(CONTAINER_PORT))); + String.format("camel.fhir.%s.test-url", fhirVersion.simpleVersion()), + fhirVersion.getServerUrl(container.getContainerIpAddress(), container.getMappedPort(CONTAINER_PORT))); } catch (Exception e) { throw new RuntimeException(e); } @@ -67,4 +84,53 @@ public void stop() { // ignored } } + + enum FhirVersion { + DSTU2(FHIR_DSTU_CONTAINER_TAG, FHIR_DSTU_CONTEXT_PATH), + DSTU2_HL7ORG(FHIR_DSTU_CONTAINER_TAG, FHIR_DSTU_CONTEXT_PATH), + DSTU2_1(FHIR_DSTU_CONTAINER_TAG, FHIR_DSTU_CONTEXT_PATH), + DSTU3(FHIR_DSTU_CONTAINER_TAG, FHIR_DSTU_CONTEXT_PATH), + R4(FHIR_R_CONTAINER_TAG, FHIR_R_CONTEXT_PATH), + R5(FHIR_R_CONTAINER_TAG, FHIR_R_CONTEXT_PATH); + + private final String fhirImageTag; + private final String contextPath; + + FhirVersion(String fhirImageTag, String contextPath) { + this.fhirImageTag = fhirImageTag; + this.contextPath = contextPath; + } + + public String simpleVersion() { + return this.name().toLowerCase(); + } + + public String getFhirContainerImageTag() { + return fhirImageTag; + } + + public String getFhirContainerVersionEnvVarValue() { + // Cannot pass DSTU2_HL7ORG as the version to the mock server. However, it is analogous to DSTU2 anyway + if (this == DSTU2_HL7ORG) { + return DSTU2.name(); + } + return this.name(); + } + + public String getContextPath() { + return contextPath; + } + + public String getContainerImageName() { + return String.format("hapiproject/hapi:%s", getFhirContainerImageTag()); + } + + public String getServerUrl(String host, int port) { + return String.format("http://%s:%d%s", host, port, getContextPath()); + } + + public String getHealthEndpointPath() { + return String.format("%s/metadata", getContextPath()); + } + } } diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Enabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Enabled.java new file mode 100644 index 000000000000..bd0cc4edebee --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Enabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class Dstu2Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("DSTU2"); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Hl7OrgEnabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Hl7OrgEnabled.java new file mode 100644 index 000000000000..192c14bd1b25 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2Hl7OrgEnabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class Dstu2Hl7OrgEnabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("DSTU2_HL7ORG"); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2_1Enabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2_1Enabled.java new file mode 100644 index 000000000000..ba969e5466f4 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu2_1Enabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class Dstu2_1Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("DSTU2_1"); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu3Enabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu3Enabled.java new file mode 100644 index 000000000000..94c7510da3d8 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/Dstu3Enabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class Dstu3Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("DSTU3"); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/FhirTestHelper.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/FhirTestHelper.java new file mode 100644 index 000000000000..aad2b640cf8b --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/FhirTestHelper.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.io.IOException; +import java.util.Properties; + +import org.apache.camel.quarkus.component.fhir.it.AbstractFhirRouteBuilder; + +public final class FhirTestHelper { + + private FhirTestHelper() { + // Utility class + } + + public static boolean isFhirVersionEnabled(String version) { + try { + Properties properties = new Properties(); + properties.load(AbstractFhirRouteBuilder.class.getResourceAsStream("/application.properties")); + String key = "quarkus.camel.fhir.enable-" + version.toLowerCase(); + String envKey = key.toUpperCase().replace('.', '_'); + String value = (String) properties.getOrDefault(key, System.getProperty(key, System.getenv(envKey))); + return Boolean.valueOf(value); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R4Enabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R4Enabled.java new file mode 100644 index 000000000000..180a8bdaf5a2 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R4Enabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class R4Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("R4"); + } +} diff --git a/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R5Enabled.java b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R5Enabled.java new file mode 100644 index 000000000000..ff64f5413843 --- /dev/null +++ b/integration-tests/fhir/src/test/java/org/apache/camel/quarkus/component/fhir/it/util/R5Enabled.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.fhir.it.util; + +import java.util.function.BooleanSupplier; + +public class R5Enabled implements BooleanSupplier { + @Override + public boolean getAsBoolean() { + return FhirTestHelper.isFhirVersionEnabled("R5"); + } +} diff --git a/integration-tests/file/pom.xml b/integration-tests/file/pom.xml index 491855598309..64f4b41e4185 100644 --- a/integration-tests/file/pom.xml +++ b/integration-tests/file/pom.xml @@ -59,6 +59,16 @@ io.quarkus quarkus-resteasy-jackson
+ + org.awaitility + awaitility + + + org.hamcrest + hamcrest-core + + + @@ -71,17 +81,6 @@ rest-assured test - - org.awaitility - awaitility - test - - - org.hamcrest - hamcrest-core - - -
diff --git a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java index e5b8f797f206..3f2ee8739c33 100644 --- a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java +++ b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java @@ -16,9 +16,15 @@ */ package org.apache.camel.quarkus.component.file.it; +import java.io.File; import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.enterprise.context.ApplicationScoped; @@ -33,11 +39,13 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import com.mchange.io.FileUtils; import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.ProducerTemplate; import org.apache.camel.component.mock.MockEndpoint; +import org.awaitility.Awaitility; @Path("/file") @ApplicationScoped @@ -138,4 +146,42 @@ public String pollEnrich(String body, @PathParam("route") String route) throws E return producerTemplate.requestBody("direct:" + route, body, String.class); } + @Path("/writeThenReadFileWithCharsetShouldSucceed") + @GET + public void writeThenReadFileWithCharsetShouldSucceed() throws Exception { + + // Delete any charset encoded files that would reside from a previous run + Files.deleteIfExists(Paths.get("target/charsetIsoRead/charsetEncodedFile.txt")); + Files.deleteIfExists(Paths.get("target/charsetIsoWrite/charsetEncodedFile.txt")); + + // Using a charset that has few chance to be the default one on the build platform + String charsetName = "ISO-8859-1"; + String unencodedContent = "A string with ð char"; + byte[] encodedContent = unencodedContent.getBytes(charsetName); + + // Produce in the folder named 'charsetIsoWrite' and check the content is encoded as expected + producerTemplate.request("file:target/charsetIsoWrite/?charset=" + charsetName, ex -> { + ex.getMessage().setHeader(Exchange.FILE_NAME, "charsetEncodedFile.txt"); + ex.getMessage().setBody(unencodedContent); + }); + Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> { + File file = new File("target/charsetIsoWrite/charsetEncodedFile.txt"); + return Arrays.equals(encodedContent, FileUtils.getBytes(file)); + }); + + // Move the encoded file to the read folder + java.nio.file.Path source = Paths.get("target/charsetIsoWrite/charsetEncodedFile.txt"); + java.nio.file.Path destination = Paths.get("target/charsetIsoRead/charsetEncodedFile.txt"); + Files.move(source, destination, StandardCopyOption.ATOMIC_MOVE); + + // Start the route to consume the encoded file + context.getRouteController().startRoute("charsetIsoRead"); + + // Check that the consumed file content has been decoded as expected + Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> { + String decodedContent = getFromMock("charsetIsoRead"); + return unencodedContent.equals(decodedContent); + }); + } + } diff --git a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java index 891339c15bee..0986c97539d1 100644 --- a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java +++ b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileRoutes.java @@ -55,13 +55,11 @@ public void configure() { .convertBodyTo(String.class) .to("mock:" + CONSUME_BATCH); - from("file://target/charsetUTF8?initialDelay=0&delay=10&delete=true&charset=UTF-8") + from("file://target/charsetIsoRead?initialDelay=0&delay=10&delete=true&charset=ISO-8859-1") + .routeId("charsetIsoRead") + .autoStartup(false) .convertBodyTo(String.class) - .to("mock:charsetUTF8"); - - from("file://target/charsetISO?initialDelay=0&delay=10&delete=true&charset=ISO-8859-1") - .convertBodyTo(String.class) - .to("mock:charsetISO"); + .to("mock:charsetIsoRead"); from("file://target/idempotent?idempotent=true&move=done/${file:name}&initialDelay=0&delay=10") .convertBodyTo(String.class).to("mock:idempotent"); diff --git a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileWatchResource.java b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileWatchResource.java index 60ce5d5194c2..6945f8965ee6 100644 --- a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileWatchResource.java +++ b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileWatchResource.java @@ -30,7 +30,7 @@ import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.Message; -import org.apache.camel.component.file.watch.FileWatchComponent; +import org.apache.camel.component.file.watch.FileWatchConstants; import org.apache.camel.component.file.watch.constants.FileEventEnum; @Path("/file-watch") @@ -51,7 +51,7 @@ public Response getEvent(@QueryParam("path") String path) throws Exception { final Message message = exchange.getMessage(); final ObjectMapper mapper = new ObjectMapper(); final ObjectNode node = mapper.createObjectNode(); - node.put("type", message.getHeader(FileWatchComponent.EVENT_TYPE_HEADER, FileEventEnum.class).toString()); + node.put("type", message.getHeader(FileWatchConstants.EVENT_TYPE_HEADER, FileEventEnum.class).toString()); node.put("path", message.getHeader("CamelFileAbsolutePath", String.class)); return Response .ok() diff --git a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileIT.java b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileIT.java index 81a05c869bfd..62dda77376e6 100644 --- a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileIT.java +++ b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.file.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FileIT extends FileTest { } diff --git a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageIT.java b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageIT.java index 5abdc9a48618..323fb4aa19d9 100644 --- a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageIT.java +++ b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileLanguageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.file.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FileLanguageIT extends FileLanguageTest { } diff --git a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java index 2922d7dcf3c1..853660079e63 100644 --- a/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java +++ b/integration-tests/file/src/test/java/org/apache/camel/quarkus/component/file/it/FileTest.java @@ -37,8 +37,6 @@ import org.hamcrest.Matchers; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; import static org.apache.camel.quarkus.component.file.it.FileResource.CONSUME_BATCH; import static org.apache.camel.quarkus.component.file.it.FileResource.SEPARATOR; @@ -53,7 +51,6 @@ class FileTest { private static final String FILE_CONTENT_01 = "Hello1"; private static final String FILE_CONTENT_02 = "Hello2"; private static final String FILE_CONTENT_03 = "Hello3"; - private static final String FILE_BODY_UTF8 = "Hello World \u4f60\u597d"; private List pathsToDelete = new LinkedList<>(); @@ -83,28 +80,12 @@ public void file() throws UnsupportedEncodingException { .body(equalTo(FILE_BODY)); } - @DisabledOnOs(value = OS.WINDOWS, disabledReason = "https://github.com/apache/camel-quarkus/issues/3530") @Test - public void charset() throws UnsupportedEncodingException { - // Create a new file - createFile(FILE_BODY_UTF8, "/file/create/charsetUTF8", "UTF-8", null); - createFile(FILE_BODY_UTF8, "/file/create/charsetISO", "UTF-8", null); - - await().atMost(10, TimeUnit.SECONDS).until( - () -> RestAssured - .get("/file/getFromMock/charsetUTF8") - .then() - .extract().asString(), - equalTo(FILE_BODY_UTF8)); - - // File content read as ISO-8859-1 has to have different content (because file contains some unknown - // characters) - await().atMost(10, TimeUnit.SECONDS).until( - () -> RestAssured - .get("/file/getFromMock/charsetISO") - .then() - .extract().asString(), - equalTo(new String(FILE_BODY_UTF8.getBytes(), "ISO-8859-1"))); + public void writeThenReadFileWithCharsetShouldSucceed() { + RestAssured + .get("/file/writeThenReadFileWithCharsetShouldSucceed") + .then() + .statusCode(204); } @Test @@ -273,12 +254,15 @@ public void quartzSchedulerFilePollingConsumer() throws InterruptedException, Un } private static String createFile(String content, String path) throws UnsupportedEncodingException { - return createFile(content.getBytes("UTF-8"), path, null, null); + return createFile(content, path, "UTF-8", null); } static String createFile(String content, String path, String charset, String prefix) throws UnsupportedEncodingException { - return createFile(content.getBytes(), path, charset, prefix); + if (charset == null) { + charset = "UTF-8"; + } + return createFile(content.getBytes(charset), path, charset, prefix); } static String createFile(byte[] content, String path, String charset, String fileName) { diff --git a/integration-tests/flatpack/src/test/java/org/apache/camel/quarkus/component/flatpack/it/FlatpackIT.java b/integration-tests/flatpack/src/test/java/org/apache/camel/quarkus/component/flatpack/it/FlatpackIT.java index 7aebda552c65..fba50e09237f 100644 --- a/integration-tests/flatpack/src/test/java/org/apache/camel/quarkus/component/flatpack/it/FlatpackIT.java +++ b/integration-tests/flatpack/src/test/java/org/apache/camel/quarkus/component/flatpack/it/FlatpackIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.flatpack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FlatpackIT extends FlatpackTest { } diff --git a/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopIT.java b/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopIT.java index 2f34f6271e77..be2bf8cadcdb 100644 --- a/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopIT.java +++ b/integration-tests/fop/src/test/java/org/apache/camel/quarkus/component/fop/it/FopIT.java @@ -16,11 +16,11 @@ */ package org.apache.camel.quarkus.component.fop.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; -@NativeImageTest +@QuarkusIntegrationTest //https://github.com/apache/camel-quarkus/issues/3280 @DisabledOnOs(OS.MAC) class FopIT extends FopTest { diff --git a/integration-tests/freemarker/src/test/java/org/apache/camel/quarkus/component/freemarker/it/FreemarkerIT.java b/integration-tests/freemarker/src/test/java/org/apache/camel/quarkus/component/freemarker/it/FreemarkerIT.java index 69a2c75264e2..63f375ffbb61 100644 --- a/integration-tests/freemarker/src/test/java/org/apache/camel/quarkus/component/freemarker/it/FreemarkerIT.java +++ b/integration-tests/freemarker/src/test/java/org/apache/camel/quarkus/component/freemarker/it/FreemarkerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.freemarker.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FreemarkerIT extends FreemarkerTest { } diff --git a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftp/it/FtpIT.java b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftp/it/FtpIT.java index 2c74a2c67742..32a847df7de8 100644 --- a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftp/it/FtpIT.java +++ b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftp/it/FtpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.ftp.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class FtpIT extends FtpTest { } diff --git a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftps/it/FtpsIT.java b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftps/it/FtpsIT.java index a130e5b7a4ef..c2b257cae30b 100644 --- a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftps/it/FtpsIT.java +++ b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/ftps/it/FtpsIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.ftps.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable; -@NativeImageTest +@QuarkusIntegrationTest // https://github.com/apache/camel-quarkus/issues/2317 @DisabledIfEnvironmentVariable(named = "CI", matches = "true") class FtpsIT extends FtpsTest { diff --git a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/sftp/it/SftpIT.java b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/sftp/it/SftpIT.java index 554b067411e4..fcbf6e95757e 100644 --- a/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/sftp/it/SftpIT.java +++ b/integration-tests/ftp/src/test/java/org/apache/camel/quarkus/component/sftp/it/SftpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.sftp.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SftpIT extends SftpTest { } diff --git a/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderGoogleIT.java b/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderGoogleIT.java index ed78c6e746a6..05c0dbd55d5f 100644 --- a/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderGoogleIT.java +++ b/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderGoogleIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.geocoder.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GeocoderGoogleIT extends GeocoderGoogleTest { } diff --git a/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderNominationIT.java b/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderNominationIT.java index 0226082c3dd5..8baf177c1266 100644 --- a/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderNominationIT.java +++ b/integration-tests/geocoder/src/test/java/org/apache/camel/quarkus/component/geocoder/it/GeocoderNominationIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.geocoder.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class GeocoderNominationIT extends GeocoderNominationTest { } diff --git a/integration-tests/git/src/test/java/org/apache/camel/quarkus/component/git/it/GitIT.java b/integration-tests/git/src/test/java/org/apache/camel/quarkus/component/git/it/GitIT.java index 035daad25299..fced3bc4dd28 100644 --- a/integration-tests/git/src/test/java/org/apache/camel/quarkus/component/git/it/GitIT.java +++ b/integration-tests/git/src/test/java/org/apache/camel/quarkus/component/git/it/GitIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.git.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GitIT extends GitTest { } diff --git a/integration-tests/github/src/test/java/org/apache/camel/quarkus/component/github/it/GithubIT.java b/integration-tests/github/src/test/java/org/apache/camel/quarkus/component/github/it/GithubIT.java index 61521428b13e..594a486cd117 100644 --- a/integration-tests/github/src/test/java/org/apache/camel/quarkus/component/github/it/GithubIT.java +++ b/integration-tests/github/src/test/java/org/apache/camel/quarkus/component/github/it/GithubIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.github.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GithubIT extends GithubTest { } diff --git a/integration-tests/google-bigquery/src/test/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryIT.java b/integration-tests/google-bigquery/src/test/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryIT.java index 2ebc51be73f0..092161b753a5 100644 --- a/integration-tests/google-bigquery/src/test/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryIT.java +++ b/integration-tests/google-bigquery/src/test/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.google.bigquery.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -@NativeImageTest +@QuarkusIntegrationTest @EnabledIfEnvironmentVariable(named = "GOOGLE_APPLICATION_CREDENTIALS", matches = ".+") class GoogleBigqueryIT extends GoogleBigqueryTest { diff --git a/integration-tests/google-pubsub/pom.xml b/integration-tests/google-pubsub/pom.xml index 58c0155aaa84..d23e0e3c6204 100644 --- a/integration-tests/google-pubsub/pom.xml +++ b/integration-tests/google-pubsub/pom.xml @@ -55,6 +55,17 @@ org.testcontainers gcloud test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubIT.java b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubIT.java index d8aac91dfbf9..7f75070c0dea 100644 --- a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubIT.java +++ b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.google.pubsub.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GooglePubsubIT extends GooglePubsubTest { } diff --git a/integration-tests/google-storage/pom.xml b/integration-tests/google-storage/pom.xml index 383f1d0d9daa..45b9787a104b 100644 --- a/integration-tests/google-storage/pom.xml +++ b/integration-tests/google-storage/pom.xml @@ -63,11 +63,27 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test org.apache.camel.quarkus camel-quarkus-integration-test-support-mock-backend + + org.apache.camel.quarkus + camel-quarkus-integration-test-support + test +
diff --git a/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageIT.java b/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageIT.java index 31a3aa4c63a7..945d1b0b2158 100644 --- a/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageIT.java +++ b/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.google.storage.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GoogleStorageIT extends GoogleStorageTest { } diff --git a/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageTestResource.java b/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageTestResource.java index 92c6cf5e2121..234da5c77420 100644 --- a/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageTestResource.java +++ b/integration-tests/google-storage/src/test/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageTestResource.java @@ -20,11 +20,13 @@ import java.util.Map; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; +import org.apache.camel.quarkus.test.AvailablePortFinder; +import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.GenericContainer; public class GoogleStorageTestResource implements QuarkusTestResourceLifecycleManager { - public static final int PORT = 4443; + public static final int PORT = AvailablePortFinder.getNextAvailable(); public static final String CONTAINER_NAME = "fsouza/fake-gcs-server"; private GenericContainer container; @@ -35,14 +37,13 @@ public Map start() { Map properties = new HashMap<>(); if (GoogleStorageHelper.usingMockBackend()) { - - container = new GenericContainer<>(CONTAINER_NAME) - .withExposedPorts(PORT) + container = new FixedHostPortGenericContainer<>(CONTAINER_NAME) + .withFixedExposedPort(PORT, PORT) .withCreateContainerCmdModifier( - it -> it.withEntrypoint("/bin/fake-gcs-server", "-scheme", "http")); + it -> it.withEntrypoint("/bin/fake-gcs-server", "-scheme", "http", "-port", String.valueOf(PORT))); container.start(); - properties.put(GoogleStorageResource.PARAM_PORT, container.getMappedPort(PORT).toString()); + properties.put(GoogleStorageResource.PARAM_PORT, String.valueOf(PORT)); } return properties; diff --git a/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsIT.java b/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsIT.java index 6729ae0412a0..97eba68b481c 100644 --- a/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsIT.java +++ b/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsIT.java @@ -16,14 +16,14 @@ */ package org.apache.camel.quarkus.component.google.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "GOOGLE_API_APPLICATION_NAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "GOOGLE_API_CLIENT_ID", matches = ".+") @EnabledIfEnvironmentVariable(named = "GOOGLE_API_CLIENT_SECRET", matches = ".+") @EnabledIfEnvironmentVariable(named = "GOOGLE_API_REFRESH_TOKEN", matches = ".+") -@NativeImageTest +@QuarkusIntegrationTest class GoogleComponentsIT extends GoogleComponentsTest { } diff --git a/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java index cf6047ab0fe9..9f384e5fa07c 100644 --- a/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java +++ b/integration-tests/graphql/src/test/java/org/apache/camel/quarkus/component/graphql/it/GraphQLIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.graphql.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GraphQLIT extends GraphQLTest { } diff --git a/integration-tests/grok/src/test/java/org/apache/camel/quarkus/component/grok/it/GrokIT.java b/integration-tests/grok/src/test/java/org/apache/camel/quarkus/component/grok/it/GrokIT.java index c9a2738f98b3..680ca3d5bc9f 100644 --- a/integration-tests/grok/src/test/java/org/apache/camel/quarkus/component/grok/it/GrokIT.java +++ b/integration-tests/grok/src/test/java/org/apache/camel/quarkus/component/grok/it/GrokIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.grok.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GrokIT extends GrokTest { } diff --git a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcIT.java b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcIT.java index c06814cb8cf6..6677e6300da8 100644 --- a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcIT.java +++ b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.grpc.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class GrpcIT extends GrpcTest { } diff --git a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java index b9700ef77cdc..6498810bba62 100644 --- a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java +++ b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java @@ -38,6 +38,7 @@ import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.apache.camel.quarkus.component.grpc.it.GrpcRoute.GRPC_JWT_SECRET; @@ -116,6 +117,7 @@ public void forwardOnComplete() throws InterruptedException { } } + @Disabled("https://github.com/apache/camel-quarkus/issues/3037") @Test public void forwardOnError() throws InterruptedException { Config config = ConfigProvider.getConfig(); diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastAtomicIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastAtomicIT.java index d7ece86f431a..73bfc0dd615e 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastAtomicIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastAtomicIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class HazelcastAtomicIT extends HazelcastAtomicTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastIdempotentIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastIdempotentIT.java index 4aec2b428c29..1ed97fd2042e 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastIdempotentIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastIdempotentIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastIdempotentIT extends HazelcastIdempotentTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastInstanceIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastInstanceIT.java index 0e72f9280749..b55f463a787b 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastInstanceIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastInstanceIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastInstanceIT extends HazelcastInstanceTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastListIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastListIT.java index 57aa10c09167..c943f0a72238 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastListIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastListIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastListIT extends HazelcastListTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMapIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMapIT.java index c5fafdd0775b..7678ec551f72 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMapIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMapIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastMapIT extends HazelcastMapTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMultimapIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMultimapIT.java index cad8f4a7b7bc..34241c4746d4 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMultimapIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastMultimapIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastMultimapIT extends HazelcastMultimapTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastPolicyIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastPolicyIT.java index a65670ff6cba..2f32e6bb2321 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastPolicyIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastPolicyIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastPolicyIT extends HazelcastPolicyTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastQueueIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastQueueIT.java index 6c1c132fcff8..5fdb0be76f3e 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastQueueIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastQueueIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastQueueIT extends HazelcastQueueTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastReplicatedmapIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastReplicatedmapIT.java index b9aadfb07c03..571c766867b7 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastReplicatedmapIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastReplicatedmapIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastReplicatedmapIT extends HazelcastReplicatedmapTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastRingbufferIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastRingbufferIT.java index d3927b28c3f1..a11dddbaa2fe 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastRingbufferIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastRingbufferIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastRingbufferIT extends HazelcastRingbufferTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSedaIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSedaIT.java index 773ca4ffbbca..d76e0ef764bc 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSedaIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSedaIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastSedaIT extends HazelcastSedaTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSetIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSetIT.java index 734888cf1cf9..8ed6be741b28 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSetIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastSetIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastSetIT extends HazelcastSetTest { } diff --git a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastTopicIT.java b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastTopicIT.java index 3de33f753093..b6a6e93c5538 100644 --- a/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastTopicIT.java +++ b/integration-tests/hazelcast/src/test/java/org/apache/camel/quarkus/component/hazelcast/it/HazelcastTopicIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.hazelcast.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class HazelcastTopicIT extends HazelcastTopicTest { } diff --git a/integration-tests/headersmap/src/test/java/org/apache/camel/quarkus/component/headersmap/it/HeadersmapIT.java b/integration-tests/headersmap/src/test/java/org/apache/camel/quarkus/component/headersmap/it/HeadersmapIT.java index bc5e791122a3..714a4a321ae8 100644 --- a/integration-tests/headersmap/src/test/java/org/apache/camel/quarkus/component/headersmap/it/HeadersmapIT.java +++ b/integration-tests/headersmap/src/test/java/org/apache/camel/quarkus/component/headersmap/it/HeadersmapIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.headersmap.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class HeadersmapIT extends HeadersmapTest { } diff --git a/integration-tests/hl7/src/test/java/org/apache/camel/quarkus/component/hl7/it/Hl7IT.java b/integration-tests/hl7/src/test/java/org/apache/camel/quarkus/component/hl7/it/Hl7IT.java index 95396f801606..b9b89a22e361 100644 --- a/integration-tests/hl7/src/test/java/org/apache/camel/quarkus/component/hl7/it/Hl7IT.java +++ b/integration-tests/hl7/src/test/java/org/apache/camel/quarkus/component/hl7/it/Hl7IT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.hl7.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class Hl7IT extends Hl7Test { } diff --git a/integration-tests/http/pom.xml b/integration-tests/http/pom.xml index 0bb8a2a1ada6..dcff707ff5fd 100644 --- a/integration-tests/http/pom.xml +++ b/integration-tests/http/pom.xml @@ -61,7 +61,7 @@
io.quarkus - quarkus-undertow-websockets + quarkus-websockets io.quarkus @@ -90,6 +90,18 @@ org.testcontainers testcontainers + test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpIT.java b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpIT.java index 32704c90a32e..66456156e862 100644 --- a/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpIT.java +++ b/integration-tests/http/src/test/java/org/apache/camel/quarkus/component/http/it/HttpIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.http.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class HttpIT extends HttpTest { } diff --git a/integration-tests/hystrix/src/test/java/org/apache/camel/quarkus/component/hystrix/it/HystrixIT.java b/integration-tests/hystrix/src/test/java/org/apache/camel/quarkus/component/hystrix/it/HystrixIT.java index 3ea8e815ea54..b2226a5c935e 100644 --- a/integration-tests/hystrix/src/test/java/org/apache/camel/quarkus/component/hystrix/it/HystrixIT.java +++ b/integration-tests/hystrix/src/test/java/org/apache/camel/quarkus/component/hystrix/it/HystrixIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.hystrix.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable; -@NativeImageTest +@QuarkusIntegrationTest // https://github.com/apache/camel-quarkus/issues/1146 @DisabledIfEnvironmentVariable(named = "CI", matches = "true") class HystrixIT extends HystrixTest { diff --git a/integration-tests/infinispan/pom.xml b/integration-tests/infinispan/pom.xml index e5df6659034c..70f3c4e0a8c4 100644 --- a/integration-tests/infinispan/pom.xml +++ b/integration-tests/infinispan/pom.xml @@ -43,6 +43,10 @@ org.apache.camel.quarkus camel-quarkus-direct + + org.apache.camel.quarkus + camel-quarkus-mock + io.quarkus quarkus-resteasy @@ -67,6 +71,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test
@@ -147,6 +162,19 @@
+ + org.apache.camel.quarkus + camel-quarkus-mock-deployment + ${project.version} + pom + test + + + * + * + + +
@@ -160,6 +188,22 @@ true + + jdk17-build + + [17,) + + + + + maven-surefire-plugin + + --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED + + + + + diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java index 9bdd07f87a63..d85209195313 100644 --- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java +++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java @@ -17,30 +17,48 @@ package org.apache.camel.quarkus.component.infinispan; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; -import javax.annotation.PostConstruct; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.json.Json; import javax.json.JsonObject; +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.PathParam; 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.CamelContext; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.infinispan.InfinispanConstants; +import org.apache.camel.component.infinispan.InfinispanQueryBuilder; import org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.quarkus.component.infinispan.model.Person; +import org.apache.camel.util.CollectionHelper; import org.infinispan.client.hotrod.RemoteCacheManager; +import org.infinispan.client.hotrod.ServerStatistics; -@Path("/test") +import static org.apache.camel.quarkus.component.infinispan.InfinispanRoutes.CORRELATOR_HEADER; + +@Path("/infinispan") @ApplicationScoped public class InfinispanResources { - public static final String CACHE_NAME = "camel"; + public static final String CACHE_NAME_CAMEL = "camel"; + public static final String CACHE_NAME_QUARKUS = "quarkus"; @Inject RemoteCacheManager cacheManager; @@ -51,11 +69,6 @@ public class InfinispanResources { @Inject CamelContext camelContext; - @PostConstruct - public void setUp() { - cacheManager.administration().getOrCreateCache(CACHE_NAME, (String) null); - } - @Path("/inspect") @GET @Produces(MediaType.APPLICATION_JSON) @@ -68,26 +81,294 @@ public JsonObject inspectCamelInfinispanClientConfiguration() { .build(); } + @Path("/aggregate") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public void aggregate(@QueryParam("component") String component, String content) { + String uri = component.equals("infinispan") ? "direct:camelAggregation" : "direct:quarkusAggregation"; + Map headers = getCommonHeaders(component); + headers.put(CORRELATOR_HEADER, CORRELATOR_HEADER); + template.sendBodyAndHeaders(uri, content, headers); + } + + @Path("/clear") + @DELETE + public void clear(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + template.sendBodyAndHeaders("direct:clear", null, headers); + } + + @Path("/clearAsync") + @DELETE + public void clearAsync(@QueryParam("component") String component) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:clearAsync", null, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/compute") + @POST + public void compute(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + template.sendBodyAndHeaders("direct:compute", null, headers); + } + + @Path("/computeAsync") + @POST + public void computeAsync(@QueryParam("component") String component) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:computeAsync", null, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/containsKey") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Boolean containsKey(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + return template.requestBodyAndHeaders("direct:containsKey", null, headers, Boolean.class); + } + + @Path("/containsValue") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Boolean containsValue(@QueryParam("component") String component, @QueryParam("value") String value) { + Map headers = getCommonHeaders(component); + return template.requestBodyAndHeaders("direct:containsValue", value, headers, Boolean.class); + } + @Path("/get") @GET @Produces(MediaType.TEXT_PLAIN) - public String get(@QueryParam("component") String component) { + public String get(@QueryParam("component") String component, @QueryParam("key") String key) { + Map headers = getCommonHeaders(component); + headers.put(InfinispanConstants.KEY, Objects.requireNonNullElse(key, "the-key")); + return template.requestBodyAndHeaders("direct:get", null, headers, String.class); + } + + @Path("/getOrDefault") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String getOrDefault(@QueryParam("component") String component) { Map headers = getCommonHeaders(component); - return template.requestBodyAndHeaders("direct:get", "", headers, String.class); + return template.requestBodyAndHeaders("direct:getOrDefault", null, headers, String.class); } @Path("/put") @POST + @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.TEXT_PLAIN) public String put(@QueryParam("component") String component, String content) { Map headers = getCommonHeaders(component); return template.requestBodyAndHeaders("direct:put", content, headers, String.class); } + @Path("/putAsync") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public void putAsync(@QueryParam("component") String component, String content) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:putAsync", content, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/putAll") + @POST + public void putAll(@QueryParam("component") String component) { + Map body = CollectionHelper.mapOf("key-1", "value-1", "key-2", "value-2"); + Map headers = getCommonHeaders(component); + template.sendBodyAndHeaders("direct:putAll", body, headers); + } + + @Path("/putAllAsync") + @POST + public void putAllAsync(@QueryParam("component") String component) + throws ExecutionException, InterruptedException, TimeoutException { + Map body = CollectionHelper.mapOf("key-1", "value-1", "key-2", "value-2"); + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:putAllAsync", body, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/putIdempotent") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public void putIdempotent( + @QueryParam("component") String component, + @QueryParam("messageId") String messageId, + String content) { + String uri = component.equals("infinispan") ? "direct:camelIdempotent" : "direct:quarkusIdempotent"; + Map headers = getCommonHeaders(component); + headers.put("MessageId", messageId); + template.sendBodyAndHeaders(uri, content, headers); + } + + @Path("/putIfAbsent") + @POST + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.TEXT_PLAIN) + public String putIfAbsent(@QueryParam("component") String component, String content) { + Map headers = getCommonHeaders(component); + return template.requestBodyAndHeaders("direct:putIfAbsent", content, headers, String.class); + } + + @Path("/putIfAbsentAsync") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public void putIfAbsentAsync(@QueryParam("component") String component, String content) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:putIfAbsentAsync", content, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/query") + @GET + @Produces(MediaType.TEXT_PLAIN) + @SuppressWarnings("unchecked") + public Response query(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + String cacheName = (String) headers.get("cacheName"); + + cacheManager.getCache(cacheName).put("person", new Person("Test", "Person")); + + String query = "FROM person.Person WHERE firstName = 'Test'"; + InfinispanQueryBuilder builder = InfinispanQueryBuilder.create(query); + + headers.put(InfinispanConstants.QUERY_BUILDER, builder); + + List result = template.requestBodyAndHeaders("direct:query", null, headers, List.class); + if (result.isEmpty()) { + return Response.status(404).build(); + } + return Response.ok().entity(result.get(0)).build(); + } + + @Path("/remove") + @DELETE + public void remove(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + template.requestBodyAndHeaders("direct:remove", null, headers, String.class); + } + + @Path("/removeAsync") + @DELETE + public void removeAsync(@QueryParam("component") String component) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:removeAsync", null, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/replace") + @PATCH + @Consumes(MediaType.TEXT_PLAIN) + public void replace(@QueryParam("component") String component, String content) { + Map headers = getCommonHeaders(component); + template.sendBodyAndHeaders("direct:replace", content, headers); + } + + @Path("/replaceAsync") + @PATCH + @Consumes(MediaType.TEXT_PLAIN) + public void replaceAsync(@QueryParam("component") String component, String content) + throws ExecutionException, InterruptedException, TimeoutException { + Map headers = getCommonHeaders(component); + CompletableFuture future = template.requestBodyAndHeaders("direct:replaceAsync", content, headers, + CompletableFuture.class); + future.get(5, TimeUnit.SECONDS); + } + + @Path("/size") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Integer size(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + return template.requestBodyAndHeaders("direct:size", null, headers, Integer.class); + } + + @Path("/stats") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Integer stats(@QueryParam("component") String component) { + Map headers = getCommonHeaders(component); + ServerStatistics statistics = template.requestBodyAndHeaders("direct:stats", null, headers, ServerStatistics.class); + return statistics.getIntStatistic(ServerStatistics.CURRENT_NR_OF_ENTRIES); + } + + @Path("/mock/aggregation/results") + @GET + public void assertMockEndpointAggregationResults(@QueryParam("uri") String uri) throws InterruptedException { + MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class); + mockEndpoint.expectedMessageCount(2); + mockEndpoint.expectedBodiesReceived(1 + 3 + 4 + 5, 6 + 7 + 20 + 21); + + try { + mockEndpoint.assertIsSatisfied(5000); + } finally { + mockEndpoint.reset(); + } + } + + @Path("/mock/event/results") + @GET + public void assertMockEndpointEventResults(@QueryParam("uri") String uri) throws InterruptedException { + MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class); + mockEndpoint.expectedMessageCount(1); + mockEndpoint.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CLIENT_CACHE_ENTRY_CREATED"); + mockEndpoint.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull(); + mockEndpoint.message(0).header(InfinispanConstants.KEY).isEqualTo("test-key"); + + try { + mockEndpoint.assertIsSatisfied(5000); + } finally { + mockEndpoint.reset(); + } + } + + @Path("/mock/idempotent/results") + @GET + public void assertMockEndpointIdempotentResults(@QueryParam("uri") String uri) throws InterruptedException { + MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class); + mockEndpoint.expectedMessageCount(1); + try { + mockEndpoint.assertIsSatisfied(5000); + } finally { + mockEndpoint.reset(); + } + } + + @POST + @Path("consumer/{routeId}/{enabled}") + public void manageRoute( + @PathParam("routeId") String routeId, + @PathParam("enabled") boolean enabled) throws Exception { + if (enabled) { + camelContext.getRouteController().startRoute(routeId); + } else { + camelContext.getRouteController().stopRoute(routeId); + } + } + private Map getCommonHeaders(String componentName) { Map headers = new HashMap<>(); headers.put("component", componentName); - headers.put("cacheName", CACHE_NAME); + + if (componentName.equals("infinispan")) { + headers.put("cacheName", CACHE_NAME_CAMEL); + } else { + headers.put("cacheName", CACHE_NAME_QUARKUS); + } + return headers; } } diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java index c194cee475ed..e9476d72b389 100644 --- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java +++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java @@ -17,36 +17,194 @@ package org.apache.camel.quarkus.component.infinispan; import java.nio.charset.StandardCharsets; +import java.util.Set; +import java.util.function.BiFunction; import javax.inject.Named; +import org.apache.camel.AggregationStrategy; +import org.apache.camel.CamelContext; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.infinispan.InfinispanConstants; import org.apache.camel.component.infinispan.InfinispanOperation; +import org.apache.camel.component.infinispan.remote.InfinispanRemoteAggregationRepository; import org.apache.camel.component.infinispan.remote.InfinispanRemoteComponent; import org.apache.camel.component.infinispan.remote.InfinispanRemoteComponentConfigurer; +import org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration; +import org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener; +import org.apache.camel.component.infinispan.remote.InfinispanRemoteIdempotentRepository; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; +import org.infinispan.client.hotrod.RemoteCacheManager; +import org.infinispan.client.hotrod.annotation.ClientCacheEntryCreated; +import org.infinispan.client.hotrod.annotation.ClientListener; +import org.infinispan.client.hotrod.configuration.Configuration; +import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; +import org.infinispan.client.hotrod.event.ClientCacheEntryCreatedEvent; +import org.infinispan.commons.marshall.StringMarshaller; + +import static org.apache.camel.quarkus.component.infinispan.InfinispanResources.CACHE_NAME_CAMEL; +import static org.apache.camel.quarkus.component.infinispan.InfinispanResources.CACHE_NAME_QUARKUS; public class InfinispanRoutes extends RouteBuilder { + public static final int COMPLETION_SIZE = 4; + public static final String CORRELATOR_HEADER = "CORRELATOR_HEADER"; + @Override public void configure() { - // we do not need to set any information about the target infinispan server - // as the RemoteConnectionManager is produced by the infinispan extension - // and camel-main automatically bind it to the component + from("direct:clear") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.CLEAR) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); - from("direct:put") - .convertBodyTo(byte[].class) - .to("log:cache?showAll=true") - .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) - .setHeader(InfinispanConstants.KEY).constant("the-key".getBytes(StandardCharsets.UTF_8)) + from("direct:clearAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.CLEARASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); + + from("direct:compute") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.COMPUTE) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}?remappingFunction=#customMappingFunction"); + + from("direct:computeAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.COMPUTEASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}?remappingFunction=#customMappingFunction"); + + from("direct:containsKey") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.CONTAINSKEY) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); + + from("direct:containsValue") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.CONTAINSVALUE) .setHeader(InfinispanConstants.VALUE).body() - .toD("${header.component}:${header.cacheName}") - .to("log:put?showAll=true"); + .toD("${header.component}:${header.cacheName}"); from("direct:get") .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GET) - .setHeader(InfinispanConstants.KEY).constant("the-key".getBytes(StandardCharsets.UTF_8)) - .toD("${header.component}:${header.cacheName}") - .to("log:get?showAll=true"); + .toD("${header.component}:${header.cacheName}"); + + from("direct:getOrDefault") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.GETORDEFAULT) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.DEFAULT_VALUE).constant("default-value") + .toD("${header.component}:${header.cacheName}"); + + from("direct:put") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUT) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:putAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUTASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:putAll") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUTALL) + .setHeader(InfinispanConstants.MAP).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:putAllAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUTALLASYNC) + .setHeader(InfinispanConstants.MAP).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:putIfAbsent") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUTIFABSENT) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:putIfAbsentAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.PUTIFABSENTASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:query") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.QUERY) + .toD("${header.component}:${header.cacheName}"); + + from("direct:remove") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.REMOVE) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); + + from("direct:removeAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.REMOVEASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); + + from("direct:replace") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.REPLACE) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:replaceAsync") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.REPLACEASYNC) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .setHeader(InfinispanConstants.VALUE).body() + .toD("${header.component}:${header.cacheName}"); + + from("direct:size") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.SIZE) + .setHeader(InfinispanConstants.KEY).constant("the-key") + .toD("${header.component}:${header.cacheName}"); + + from("direct:stats") + .setHeader(InfinispanConstants.OPERATION).constant(InfinispanOperation.STATS) + .toD("${header.component}:${header.cacheName}"); + + from("infinispan:camel?eventTypes=CLIENT_CACHE_ENTRY_CREATED") + .id("infinispan-events") + .autoStartup(false) + .to("mock:resultCreated"); + + // Only start aggregation repository routes in JVM mode + if (!"executable".equals(System.getProperty("org.graalvm.nativeimage.kind"))) { + from("direct:camelAggregation") + .aggregate(header(CORRELATOR_HEADER)) + .aggregationRepository(createAggregationRepository("infinispan")) + .aggregationStrategy(createAggregationStrategy()) + .completionSize(COMPLETION_SIZE) + .to("mock:aggregationResult"); + + from("direct:quarkusAggregation") + .aggregate(header(CORRELATOR_HEADER)) + .aggregationRepository(createAggregationRepository("infinispan-quarkus")) + .aggregationStrategy(createAggregationStrategy()) + .completionSize(COMPLETION_SIZE) + .to("mock:aggregationResult"); + } + + from("direct:camelIdempotent") + .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan")) + .to("mock:resultIdempotent"); + + from("direct:quarkusIdempotent") + .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan-quarkus")) + .to("mock:resultIdempotent"); + + from("infinispan-quarkus:quarkus?eventTypes=CLIENT_CACHE_ENTRY_CREATED") + .id("infinispan-quarkus-events") + .autoStartup(false) + .to("mock:resultCreated"); + + from("infinispan:camel?customListener=#customListener") + .id("infinispan-custom-listener") + .autoStartup(false) + .to("mock:resultCustomListener"); + + from("infinispan-quarkus:quarkus?customListener=#customListener") + .id("infinispan-quarkus-custom-listener") + .autoStartup(false) + .to("mock:resultCustomListener"); } @Named("infinispan-quarkus") @@ -59,4 +217,95 @@ public InfinispanRemoteComponent infinispanQuarkus() { public InfinispanRemoteComponentConfigurer quarkusInfinispanConfigurer() { return new InfinispanRemoteComponentConfigurer(); } + + @Named("customMappingFunction") + public BiFunction mappingFunction() { + return (k, v) -> v + "-remapped"; + } + + @Named("customListener") + public InfinispanRemoteCustomListener customListener() { + return new CustomListener(); + } + + private InfinispanRemoteIdempotentRepository createIdempotentRepository(String componentName) { + String cacheName = componentName.equals("infinispan") ? CACHE_NAME_CAMEL : CACHE_NAME_QUARKUS; + InfinispanRemoteConfiguration configuration = getConfiguration(componentName); + InfinispanRemoteIdempotentRepository repository = new InfinispanRemoteIdempotentRepository(cacheName); + repository.setConfiguration(configuration); + return repository; + } + + private InfinispanRemoteAggregationRepository createAggregationRepository(String componentName) { + String cacheName = componentName.equals("infinispan") ? CACHE_NAME_CAMEL : CACHE_NAME_QUARKUS; + InfinispanRemoteAggregationRepository aggregationRepository = new InfinispanRemoteAggregationRepository(cacheName); + InfinispanRemoteConfiguration configuration = getConfiguration(componentName); + aggregationRepository.setConfiguration(configuration); + return aggregationRepository; + } + + private InfinispanRemoteConfiguration getConfiguration(String componentName) { + CamelContext camelContext = getCamelContext(); + InfinispanRemoteComponent component = camelContext.getComponent(componentName, InfinispanRemoteComponent.class); + InfinispanRemoteConfiguration configuration = component.getConfiguration().clone(); + configuration.setCacheContainerConfiguration(getConfigurationBuilder()); + if (componentName.equals("infinispan-quarkus")) { + Set beans = camelContext.getRegistry().findByType(RemoteCacheManager.class); + RemoteCacheManager cacheManager = beans.iterator().next(); + configuration.setCacheContainer(cacheManager); + } + return configuration; + } + + private Configuration getConfigurationBuilder() { + Config config = ConfigProvider.getConfig(); + ConfigurationBuilder clientBuilder = new ConfigurationBuilder(); + String[] hostParts = config.getValue("quarkus.infinispan-client.server-list", String.class).split(":"); + + clientBuilder.addServer() + .host(hostParts[0]) + .port(Integer.parseInt(hostParts[1])); + + clientBuilder + .security() + .authentication() + .username(config.getValue("quarkus.infinispan-client.auth-username", String.class)) + .password(config.getValue("quarkus.infinispan-client.auth-password", String.class)) + .serverName(config.getValue("quarkus.infinispan-client.auth-server-name", String.class)) + .saslMechanism(config.getValue("quarkus.infinispan-client.sasl-mechanism", String.class)) + .realm(config.getValue("quarkus.infinispan-client.auth-realm", String.class)) + .marshaller(new StringMarshaller(StandardCharsets.UTF_8)); + + return clientBuilder.build(); + } + + private AggregationStrategy createAggregationStrategy() { + return (oldExchange, newExchange) -> { + if (oldExchange == null) { + return newExchange; + } else { + Integer n = newExchange.getIn().getBody(Integer.class); + Integer o = oldExchange.getIn().getBody(Integer.class); + Integer v = (o == null ? 0 : o) + (n == null ? 0 : n); + oldExchange.getIn().setBody(v, Integer.class); + return oldExchange; + } + }; + } + + @ClientListener + static final class CustomListener extends InfinispanRemoteCustomListener { + + @ClientCacheEntryCreated + public void entryCreated(ClientCacheEntryCreatedEvent event) { + if (isAccepted(event.getType())) { + getEventProcessor().processEvent( + event.getType().toString(), + getCacheName(), + event.getKey(), + null, + null); + } + } + } } diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/Person.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/Person.java new file mode 100644 index 000000000000..9902d83518e4 --- /dev/null +++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/Person.java @@ -0,0 +1,44 @@ +/* + * 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.infinispan.model; + +import java.util.Objects; + +import org.infinispan.protostream.annotations.ProtoFactory; +import org.infinispan.protostream.annotations.ProtoField; + +public class Person { + + private final String firstName; + private final String lastName; + + @ProtoFactory + public Person(String firstName, String lastName) { + this.firstName = Objects.requireNonNull(firstName); + this.lastName = Objects.requireNonNull(lastName); + } + + @ProtoField(number = 1) + public String getFirstName() { + return firstName; + } + + @ProtoField(number = 2) + public String getLastName() { + return lastName; + } +} diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/PersonSchema.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/PersonSchema.java new file mode 100644 index 000000000000..4569d616d212 --- /dev/null +++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/model/PersonSchema.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.infinispan.model; + +import org.infinispan.protostream.GeneratedSchema; +import org.infinispan.protostream.annotations.AutoProtoSchemaBuilder; + +@AutoProtoSchemaBuilder(includeClasses = { Person.class }, schemaPackageName = "person") +interface PersonSchema extends GeneratedSchema { +} diff --git a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanIT.java b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanIT.java index 2bbaca457296..25a4208dc06f 100644 --- a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanIT.java +++ b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.infinispan; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class InfinispanIT extends InfinispanTest { } diff --git a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanServerTestResource.java b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanServerTestResource.java index 812828db62e5..54ebeaca4552 100644 --- a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanServerTestResource.java +++ b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanServerTestResource.java @@ -23,6 +23,7 @@ import org.apache.commons.lang3.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.testcontainers.containers.BindMode; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.utility.TestcontainersConfiguration; @@ -45,6 +46,8 @@ public Map start() { .withExposedPorts(HOTROD_PORT) .withEnv("USER", USER) .withEnv("PASS", PASS) + .withClasspathResourceMapping("infinispan.xml", "/user-config/infinispan.xml", BindMode.READ_ONLY) + .withCommand("-c", "/user-config/infinispan.xml") .waitingFor(Wait.forListeningPort()); container.start(); @@ -58,7 +61,6 @@ public Map start() { Map result = CollectionHelper.mapOf( // quarkus "quarkus.infinispan-client.server-list", serverList, - "quarkus.infinispan-client.near-cache-max-entries", "3", "quarkus.infinispan-client.auth-username", USER, "quarkus.infinispan-client.auth-password", PASS, "quarkus.infinispan-client.auth-realm", "default", diff --git a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java index abe2592a1b3a..c39731c5e7d9 100644 --- a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java +++ b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java @@ -16,12 +16,20 @@ */ package org.apache.camel.quarkus.component.infinispan; +import java.util.UUID; +import java.util.stream.IntStream; +import java.util.stream.Stream; + import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.junit.DisabledOnNativeImage; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; @@ -30,30 +38,489 @@ @QuarkusTestResource(InfinispanServerTestResource.class) public class InfinispanTest { + @AfterEach + public void afterEach() { + for (String componentName : componentNames()) { + RestAssured.with() + .queryParam("component", componentName) + .delete("/infinispan/clear") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(204); + } + } + + @DisabledOnNativeImage("https://github.com/apache/camel-quarkus/issues/3657") + @ParameterizedTest + @MethodSource("componentNames") + public void aggregate(String componentName) { + // TODO: https://github.com/apache/camel-quarkus/issues/3657 + // + // Enable testing InfinispanRemoteAggregationRepository with the Quarkus configured client. + // Technically it is possible with a custom META-INF/hotrod-client.properties and setting + // infinispan.client.hotrod.marshaller=org.infinispan.jboss.marshalling.core.JBossUserMarshaller + // However, it potentially impacts some of the Quarkus Infinispan extension functionality that relies on + // the default configured ProtoStreamMarshaller, thus we avoid doing it in this test suite + Assumptions.assumeTrue(componentName.equals("infinispan")); + + Stream.of(1, 3, 4, 5, 6, 7, 20, 21) + .forEach(value -> { + RestAssured.with() + .queryParam("component", componentName) + .body(value) + .post("/infinispan/aggregate") + .then() + .statusCode(204); + }); + + RestAssured.with() + .queryParam("uri", "mock:aggregationResult") + .get("/infinispan/mock/aggregation/results") + .then() + .statusCode(204); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void clear(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("Hello " + componentName)); + + RestAssured.with() + .queryParam("component", componentName) + .delete(computePath("/infinispan/clear", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(204); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void compute(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .body("Initial value") + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .post(computePath("/infinispan/compute", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("Initial value-remapped")); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void containsKey(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/containsKey") + .then() + .statusCode(200) + .body(is("false")); + + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/containsKey") + .then() + .statusCode(200) + .body(is("true")); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void containsValue(String componentName) { + String value = "test-value"; + + RestAssured.with() + .queryParam("component", componentName) + .queryParam("value", value) + .get("/infinispan/containsValue") + .then() + .statusCode(200) + .body(is("false")); + + RestAssured.with() + .queryParam("component", componentName) + .body(value) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .queryParam("value", value) + .get("/infinispan/containsValue") + .then() + .statusCode(200) + .body(is("true")); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void customListener(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .post("/infinispan/consumer/" + componentName + "-custom-listener/true") + .then() + .statusCode(204); + + try { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("uri", "mock:resultCustomListener") + .get("/infinispan/mock/event/results") + .then() + .statusCode(204); + } finally { + RestAssured.with() + .queryParam("component", componentName) + .post("/infinispan/consumer/" + componentName + "-custom-listener/false") + .then() + .statusCode(204); + } + } + + @ParameterizedTest + @MethodSource("componentNames") + public void events(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .post("/infinispan/consumer/" + componentName + "-events/true") + .then() + .statusCode(204); + + try { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("uri", "mock:resultCreated") + .get("/infinispan/mock/event/results") + .then() + .statusCode(204); + } finally { + RestAssured.with() + .queryParam("component", componentName) + .post("/infinispan/consumer/" + componentName + "-events/false") + .then() + .statusCode(204); + } + } + + @ParameterizedTest + @MethodSource("componentNames") + public void getOrDefault(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/getOrDefault") + .then() + .statusCode(200) + .body(is("default-value")); + + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/getOrDefault") + .then() + .statusCode(200) + .body(is("Hello " + componentName)); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void idempotent(String componentName) { + String messageId = UUID.randomUUID().toString(); + + IntStream.of(1, 10).forEach(value -> { + RestAssured.with() + .queryParam("component", componentName) + .queryParam("messageId", messageId) + .body("Message " + value) + .post("/infinispan/putIdempotent") + .then() + .statusCode(204); + }); + + RestAssured.with() + .queryParam("uri", "mock:resultIdempotent") + .get("/infinispan/mock/idempotent/results") + .then() + .statusCode(204); + } + @Test public void inspect() { RestAssured.when() - .get("/test/inspect") + .get("/infinispan/inspect") .then().body( "hosts", is(notNullValue()), "cache-manager", is("none")); } @ParameterizedTest - @ValueSource(strings = { "infinispan", "infinispan-quarkus" }) - public void testInfinispan(String componentName) { + @MethodSource("componentNamesWithSynchronicity") + public void put(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post(computePath("/infinispan/put", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("Hello " + componentName)); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void putAll(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .post(computePath("/infinispan/putAll", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .queryParam("key", "key-1") + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("value-1")); + + RestAssured.with() + .queryParam("component", componentName) + .queryParam("key", "key-2") + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("value-2")); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void putIfAbsent(String componentName, boolean isAsync) { RestAssured.with() .queryParam("component", componentName) .body("Hello " + componentName) - .post("/test/put") + .post(computePath("/infinispan/putIfAbsent", isAsync)) .then() .statusCode(204); RestAssured.with() .queryParam("component", componentName) - .get("/test/get") + .get("/infinispan/get") .then() .statusCode(200) .body(is("Hello " + componentName)); + + RestAssured.with() + .queryParam("component", componentName) + .body("An alternative value") + .post(computePath("/infinispan/putIfAbsent", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("Hello " + componentName)); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void query(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/query") + .then() + .statusCode(200); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void remove(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post(computePath("/infinispan/put", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .delete(computePath("/infinispan/remove", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(204); + } + + @ParameterizedTest + @MethodSource("componentNamesWithSynchronicity") + public void replace(String componentName, boolean isAsync) { + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post(computePath("/infinispan/put", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("Hello " + componentName)); + + RestAssured.with() + .queryParam("component", componentName) + .body("replaced cache value") + .patch(computePath("/infinispan/replace", isAsync)) + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/get") + .then() + .statusCode(200) + .body(is("replaced cache value")); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void size(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/size") + .then() + .statusCode(200) + .body(is("0")); + + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/size") + .then() + .statusCode(200) + .body(is("1")); + } + + @ParameterizedTest + @MethodSource("componentNames") + public void stats(String componentName) { + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/stats") + .then() + .statusCode(200) + .body(is("0")); + + RestAssured.with() + .queryParam("component", componentName) + .body("Hello " + componentName) + .post("/infinispan/put") + .then() + .statusCode(204); + + RestAssured.with() + .queryParam("component", componentName) + .get("/infinispan/stats") + .then() + .statusCode(200) + .body(is("1")); + } + + private String computePath(String path, boolean isAsync) { + if (isAsync) { + path += "Async"; + } + return path; + } + + public static String[] componentNames() { + return new String[] { + "infinispan", + "infinispan-quarkus" + }; + } + + public static Stream componentNamesWithSynchronicity() { + return Stream.of( + Arguments.of("infinispan", false), + Arguments.of("infinispan-quarkus", false), + Arguments.of("infinispan", true), + Arguments.of("infinispan-quarkus", true)); } } diff --git a/integration-tests/infinispan/src/test/resources/infinispan.xml b/integration-tests/infinispan/src/test/resources/infinispan.xml new file mode 100644 index 000000000000..60acf4789f4f --- /dev/null +++ b/integration-tests/infinispan/src/test/resources/infinispan.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/integration-tests/influxdb/pom.xml b/integration-tests/influxdb/pom.xml index ea4fe7a5dd28..a43c34454466 100644 --- a/integration-tests/influxdb/pom.xml +++ b/integration-tests/influxdb/pom.xml @@ -59,6 +59,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbIT.java b/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbIT.java index a7a1e2133989..9b23ca4373fb 100644 --- a/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbIT.java +++ b/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.influxdb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class InfluxdbIT extends InfluxdbTest { } diff --git a/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java b/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java index 9d035ab7cece..ebd23ec2bf3d 100644 --- a/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java +++ b/integration-tests/influxdb/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java @@ -31,8 +31,8 @@ import org.junit.jupiter.api.TestMethodOrder; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; @QuarkusTest @QuarkusTestResource(InfluxdbTestResource.class) diff --git a/integration-tests/ipfs/pom.xml b/integration-tests/ipfs/pom.xml deleted file mode 100644 index 3e7a59def3c4..000000000000 --- a/integration-tests/ipfs/pom.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - 4.0.0 - - org.apache.camel.quarkus - camel-quarkus-build-parent-it - 2.8.0-SNAPSHOT - ../../poms/build-parent-it/pom.xml - - - camel-quarkus-integration-test-ipfs - Camel Quarkus :: Integration Tests :: IPFS - Integration tests for Camel Quarkus IPFS extension - - - - org.apache.camel.quarkus - camel-quarkus-ipfs - - - io.quarkus - quarkus-resteasy - - - org.testcontainers - testcontainers - test - - - - - io.quarkus - quarkus-junit5 - test - - - io.rest-assured - rest-assured - test - - - - - - native - - - native - - - - native - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - - integration-test - verify - - - - - - - - - virtualDependencies - - - !noVirtualDependencies - - - - - - org.apache.camel.quarkus - camel-quarkus-ipfs-deployment - ${project.version} - pom - test - - - * - * - - - - - - - skip-testcontainers-tests - - - skip-testcontainers-tests - - - - true - - - - - diff --git a/integration-tests/ipfs/src/main/java/org/apache/camel/quarkus/component/ipfs/it/IpfsResource.java b/integration-tests/ipfs/src/main/java/org/apache/camel/quarkus/component/ipfs/it/IpfsResource.java deleted file mode 100644 index b01514464bed..000000000000 --- a/integration-tests/ipfs/src/main/java/org/apache/camel/quarkus/component/ipfs/it/IpfsResource.java +++ /dev/null @@ -1,58 +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.ipfs.it; - -import java.nio.file.Paths; - -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.QueryParam; -import javax.ws.rs.core.MediaType; - -import org.apache.camel.ProducerTemplate; - -@Path("/ipfs") -public class IpfsResource { - - @Inject - ProducerTemplate producerTemplate; - - @Path("/add") - @POST - @Consumes(MediaType.TEXT_PLAIN) - public String addFile(String path) { - return producerTemplate.requestBody("ipfs:add", Paths.get(path), String.class); - } - - @Path("/cat") - @GET - @Produces(MediaType.TEXT_PLAIN) - public String catFile(@QueryParam("hash") String hash) { - return producerTemplate.requestBody("ipfs:cat", hash, String.class); - } - - @Path("/get") - @GET - @Produces(MediaType.TEXT_PLAIN) - public String getFilePath(@QueryParam("hash") String hash) throws Exception { - return producerTemplate.requestBody("ipfs:get?outdir=target", hash, String.class); - } -} diff --git a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTest.java b/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTest.java deleted file mode 100644 index 038f9ed4aec9..000000000000 --- a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTest.java +++ /dev/null @@ -1,79 +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.ipfs.it; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; -import org.junit.jupiter.api.Test; - -import static org.hamcrest.CoreMatchers.is; -import static org.junit.jupiter.api.Assertions.assertEquals; - -@QuarkusTest -@QuarkusTestResource(IpfsTestResource.class) -class IpfsTest { - - @Test - public void ipfsComponent() throws IOException { - String fileContent = "Hello Camel Quarkus IPFS"; - - Path tempFile = Files.createTempFile("ipfs", ".txt"); - Files.write(tempFile, fileContent.getBytes(StandardCharsets.UTF_8)); - - try { - // Add file - String hash = RestAssured.given() - .body(tempFile.toString()) - .post("/ipfs/add") - .then() - .statusCode(200) - .extract() - .body() - .asString(); - - // Cat file - RestAssured.given() - .queryParam("hash", hash) - .get("/ipfs/cat") - .then() - .statusCode(200) - .body(is(fileContent)); - - // Retrieve file path - String filePath = RestAssured.given() - .queryParam("hash", hash) - .get("/ipfs/get") - .then() - .statusCode(200) - .extract() - .body() - .asString(); - - byte[] bytes = Files.readAllBytes(Paths.get(filePath)); - assertEquals(fileContent, new String(bytes, StandardCharsets.UTF_8)); - } finally { - Files.delete(tempFile); - } - } -} diff --git a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTestResource.java b/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTestResource.java deleted file mode 100644 index 2736bfb41096..000000000000 --- a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsTestResource.java +++ /dev/null @@ -1,54 +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.ipfs.it; - -import java.util.Map; - -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; -import org.apache.camel.util.CollectionHelper; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.wait.strategy.Wait; - -public class IpfsTestResource implements QuarkusTestResourceLifecycleManager { - - private static final String IPFS_IMAGE = "ipfs/go-ipfs:v0.4.11"; - private static final int IPFS_PORT = 5001; - - private GenericContainer container; - - @Override - public Map start() { - container = new GenericContainer<>(IPFS_IMAGE) - .withExposedPorts(IPFS_PORT) - .waitingFor(Wait.forLogMessage(".*Daemon is ready.*", 1)); - container.start(); - - return CollectionHelper.mapOf("camel.component.ipfs.ipfs-host", "127.0.0.1", - "camel.component.ipfs.ipfs-port", container.getMappedPort(IPFS_PORT).toString()); - } - - @Override - public void stop() { - try { - if (container != null) { - container.stop(); - } - } catch (Exception e) { - // Ignored - } - } -} diff --git a/integration-tests/jackson-avro/src/test/java/org/apache/camel/quarkus/component/jackson/avro/it/JacksonAvroIT.java b/integration-tests/jackson-avro/src/test/java/org/apache/camel/quarkus/component/jackson/avro/it/JacksonAvroIT.java index 4978d98196d0..2bcd82514087 100644 --- a/integration-tests/jackson-avro/src/test/java/org/apache/camel/quarkus/component/jackson/avro/it/JacksonAvroIT.java +++ b/integration-tests/jackson-avro/src/test/java/org/apache/camel/quarkus/component/jackson/avro/it/JacksonAvroIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jackson.avro.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JacksonAvroIT extends JacksonAvroTest { } diff --git a/integration-tests/jackson-protobuf/src/test/java/org/apache/camel/quarkus/component/jackson/protobuf/it/JacksonProtobufIT.java b/integration-tests/jackson-protobuf/src/test/java/org/apache/camel/quarkus/component/jackson/protobuf/it/JacksonProtobufIT.java index c7b74b23f598..be7bce7ebfc9 100644 --- a/integration-tests/jackson-protobuf/src/test/java/org/apache/camel/quarkus/component/jackson/protobuf/it/JacksonProtobufIT.java +++ b/integration-tests/jackson-protobuf/src/test/java/org/apache/camel/quarkus/component/jackson/protobuf/it/JacksonProtobufIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jackson.protobuf.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JacksonProtobufIT extends JacksonProtobufTest { } diff --git a/integration-tests/jaxb/src/test/java/org/apache/camel/quarkus/component/jaxb/it/JaxbIT.java b/integration-tests/jaxb/src/test/java/org/apache/camel/quarkus/component/jaxb/it/JaxbIT.java index f3322503fe99..a15812717711 100644 --- a/integration-tests/jaxb/src/test/java/org/apache/camel/quarkus/component/jaxb/it/JaxbIT.java +++ b/integration-tests/jaxb/src/test/java/org/apache/camel/quarkus/component/jaxb/it/JaxbIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jaxb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JaxbIT extends JaxbTest { } diff --git a/integration-tests/jdbc/src/test/java/org/apache/camel/quarkus/component/jdbc/CamelJdbcIT.java b/integration-tests/jdbc/src/test/java/org/apache/camel/quarkus/component/jdbc/CamelJdbcIT.java index a622ae88be39..a4764a169ce8 100644 --- a/integration-tests/jdbc/src/test/java/org/apache/camel/quarkus/component/jdbc/CamelJdbcIT.java +++ b/integration-tests/jdbc/src/test/java/org/apache/camel/quarkus/component/jdbc/CamelJdbcIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jdbc; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CamelJdbcIT extends CamelJdbcTest { } diff --git a/integration-tests/jfr/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrIT.java b/integration-tests/jfr/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrIT.java index 418aa683eb39..298a1b55e920 100644 --- a/integration-tests/jfr/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrIT.java +++ b/integration-tests/jfr/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jfr.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JfrIT extends JfrTest { } diff --git a/integration-tests/jing/src/test/java/org/apache/camel/quarkus/component/jing/it/JingIT.java b/integration-tests/jing/src/test/java/org/apache/camel/quarkus/component/jing/it/JingIT.java index 8b39af89989f..1acf2d4993c6 100644 --- a/integration-tests/jing/src/test/java/org/apache/camel/quarkus/component/jing/it/JingIT.java +++ b/integration-tests/jing/src/test/java/org/apache/camel/quarkus/component/jing/it/JingIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jing.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JingIT extends JingTest { } 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 index 9299558bc996..8171999ba9a9 100644 --- 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 @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jira.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JiraIT extends JiraTest { } diff --git a/integration-tests/jms-artemis-client/pom.xml b/integration-tests/jms-artemis-client/pom.xml index 49f4d1a19aff..4415943acae2 100644 --- a/integration-tests/jms-artemis-client/pom.xml +++ b/integration-tests/jms-artemis-client/pom.xml @@ -47,12 +47,6 @@ io.quarkiverse.artemis quarkus-artemis-jms - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - diff --git a/integration-tests/jms-artemis-client/src/test/java/org/apache/camel/quarkus/component/jms/artemis/it/JmsArtemisIT.java b/integration-tests/jms-artemis-client/src/test/java/org/apache/camel/quarkus/component/jms/artemis/it/JmsArtemisIT.java index 07d99e9f7b6f..b03f510777c8 100644 --- a/integration-tests/jms-artemis-client/src/test/java/org/apache/camel/quarkus/component/jms/artemis/it/JmsArtemisIT.java +++ b/integration-tests/jms-artemis-client/src/test/java/org/apache/camel/quarkus/component/jms/artemis/it/JmsArtemisIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.jms.artemis.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JmsArtemisIT extends JmsArtemisTest { } diff --git a/integration-tests/jms-qpid-amqp-client/pom.xml b/integration-tests/jms-qpid-amqp-client/pom.xml index b114e2cb7b73..c86b52926179 100644 --- a/integration-tests/jms-qpid-amqp-client/pom.xml +++ b/integration-tests/jms-qpid-amqp-client/pom.xml @@ -48,7 +48,7 @@ org.amqphub.quarkus quarkus-qpid-jms - + org.apache.geronimo.specs geronimo-jms_2.0_spec diff --git a/integration-tests/jms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/jms/qpid/it/JmsQpidIT.java b/integration-tests/jms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/jms/qpid/it/JmsQpidIT.java index 94cfd1662229..f53b4aeca0b6 100644 --- a/integration-tests/jms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/jms/qpid/it/JmsQpidIT.java +++ b/integration-tests/jms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/jms/qpid/it/JmsQpidIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.jms.qpid.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JmsQpidIT extends JmsQpidTest { } diff --git a/integration-tests/jolt/src/test/java/org/apache/camel/quarkus/component/jolt/it/JoltIT.java b/integration-tests/jolt/src/test/java/org/apache/camel/quarkus/component/jolt/it/JoltIT.java index be73f495aea8..d0cf468bb064 100644 --- a/integration-tests/jolt/src/test/java/org/apache/camel/quarkus/component/jolt/it/JoltIT.java +++ b/integration-tests/jolt/src/test/java/org/apache/camel/quarkus/component/jolt/it/JoltIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jolt.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JoltIT extends JoltTest { } diff --git a/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaIT.java b/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaIT.java index 33e839102659..924de39a50e5 100644 --- a/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaIT.java +++ b/integration-tests/jpa/src/test/java/org/apache/camel/quarkus/component/jpa/it/JpaIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jpa.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JpaIT extends JpaTest { } diff --git a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslIT.java b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslIT.java index 06f73dd5a5a6..53e7cb36bad2 100644 --- a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslIT.java +++ b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.js; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class JavaScriptDslIT extends JavaScriptDslTest { } diff --git a/integration-tests/jsch/pom.xml b/integration-tests/jsch/pom.xml index c66811a0a249..a4ab1c1da186 100644 --- a/integration-tests/jsch/pom.xml +++ b/integration-tests/jsch/pom.xml @@ -55,6 +55,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/jsch/src/test/java/org/apache/camel/quarkus/component/jsch/it/JschIT.java b/integration-tests/jsch/src/test/java/org/apache/camel/quarkus/component/jsch/it/JschIT.java index d36514092dd7..eca88805e045 100644 --- a/integration-tests/jsch/src/test/java/org/apache/camel/quarkus/component/jsch/it/JschIT.java +++ b/integration-tests/jsch/src/test/java/org/apache/camel/quarkus/component/jsch/it/JschIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jsch.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JschIT extends JschTest { } diff --git a/integration-tests/jslt/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltIT.java b/integration-tests/jslt/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltIT.java index 131473f65019..06af7fb89843 100644 --- a/integration-tests/jslt/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltIT.java +++ b/integration-tests/jslt/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jslt.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsltIT extends JsltTest { } diff --git a/integration-tests/json-validator/src/test/java/org/apache/camel/quarkus/component/json/validator/it/JsonValidatorIT.java b/integration-tests/json-validator/src/test/java/org/apache/camel/quarkus/component/json/validator/it/JsonValidatorIT.java index a63d52251e78..b79410a3ac3f 100644 --- a/integration-tests/json-validator/src/test/java/org/apache/camel/quarkus/component/json/validator/it/JsonValidatorIT.java +++ b/integration-tests/json-validator/src/test/java/org/apache/camel/quarkus/component/json/validator/it/JsonValidatorIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.validator.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonValidatorIT extends JsonValidatorTest { } diff --git a/integration-tests/jsonata/src/test/java/org/apache/camel/quarkus/component/jsonata/it/JsonataIT.java b/integration-tests/jsonata/src/test/java/org/apache/camel/quarkus/component/jsonata/it/JsonataIT.java index 30590fd57e62..1502431ee446 100644 --- a/integration-tests/jsonata/src/test/java/org/apache/camel/quarkus/component/jsonata/it/JsonataIT.java +++ b/integration-tests/jsonata/src/test/java/org/apache/camel/quarkus/component/jsonata/it/JsonataIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jsonata.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonataIT extends JsonataTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathBeanIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathBeanIT.java index 5796ad802d8f..a688ea22febf 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathBeanIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathBeanIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathBeanIT extends JsonPathBeanTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathCharsetsIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathCharsetsIT.java index 0b078d263e65..d1ccd87d862d 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathCharsetsIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathCharsetsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathCharsetsIT extends JsonPathCharsetsTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathContentBasedRouterIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathContentBasedRouterIT.java index d5fe6aff8c9a..1d88b2522cb0 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathContentBasedRouterIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathContentBasedRouterIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathContentBasedRouterIT extends JsonPathContentBasedRouterTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetBodyIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetBodyIT.java index 8ea1eb279983..4fc4a5692003 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetBodyIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetBodyIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathSetBodyIT extends JsonPathSetBodyTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetHeaderIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetHeaderIT.java index 113f359206c8..6c9af3d31da8 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetHeaderIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSetHeaderIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathSetHeaderIT extends JsonPathSetHeaderTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSplitIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSplitIT.java index 817d21af6c6e..0725accf43e7 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSplitIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathSplitIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathSplitIT extends JsonPathSplitTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathTransformIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathTransformIT.java index 41cba1506346..39b6773e00c7 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathTransformIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathTransformIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathTransformIT extends JsonPathTransformTest { } diff --git a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathWriteAsStringIT.java b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathWriteAsStringIT.java index 73ea9d3cf055..994838153a6e 100644 --- a/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathWriteAsStringIT.java +++ b/integration-tests/jsonpath/src/test/java/org/apache/camel/quarkus/component/json/path/it/JsonPathWriteAsStringIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.json.path.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JsonPathWriteAsStringIT extends JsonPathWriteAsStringTest { } diff --git a/integration-tests/jta/pom.xml b/integration-tests/jta/pom.xml index 314b7d297b13..3ad01eede21e 100644 --- a/integration-tests/jta/pom.xml +++ b/integration-tests/jta/pom.xml @@ -66,16 +66,6 @@ io.quarkiverse.artemis quarkus-artemis-jms - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - - - - jakarta.jms - jakarta.jms-api diff --git a/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaIT.java b/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaIT.java index 8aacd7c50a08..8d01b7bef32a 100644 --- a/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaIT.java +++ b/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.jta.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class JtaIT extends JtaTest { } diff --git a/integration-tests/kafka-oauth/pom.xml b/integration-tests/kafka-oauth/pom.xml index 58ab39f436b0..2bfee7fc6664 100644 --- a/integration-tests/kafka-oauth/pom.xml +++ b/integration-tests/kafka-oauth/pom.xml @@ -49,7 +49,7 @@
io.quarkus - quarkus-resteasy-jackson + quarkus-resteasy io.strimzi @@ -76,6 +76,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test org.awaitility diff --git a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaIT.java b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaIT.java index 7a5062ac0586..4a5bccde3d2b 100644 --- a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaIT.java +++ b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.kafka.oauth.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class KafkaIT extends KafkaTest { } diff --git a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java index 549ddb795f9d..51248918ef41 100644 --- a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java +++ b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java @@ -20,9 +20,12 @@ import java.util.Map; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; -import org.apache.camel.quarkus.kafka.oauth.it.container.KafkaContainer; +import io.strimzi.test.container.StrimziKafkaContainer; import org.apache.camel.quarkus.kafka.oauth.it.container.KeycloakContainer; import org.jboss.logging.Logger; +import org.testcontainers.utility.MountableFile; + +import static io.strimzi.test.container.StrimziKafkaContainer.KAFKA_PORT; /** * Inspired from https://github.com/quarkusio/quarkus/tree/main/integration-tests/kafka-oauth-keycloak/ @@ -30,12 +33,11 @@ public class KafkaKeycloakTestResource implements QuarkusTestResourceLifecycleManager { private static final Logger log = Logger.getLogger(KafkaKeycloakTestResource.class); - private KafkaContainer kafka; + private StrimziKafkaContainer kafka; private KeycloakContainer keycloak; @Override public Map start() { - Map properties = new HashMap<>(); //Start keycloak container @@ -45,10 +47,16 @@ public Map start() { keycloak.createHostsFile(); //Start kafka container - kafka = new KafkaContainer(); - kafka.start(); - log.info(kafka.getLogs()); - properties.put("kafka.bootstrap.servers", kafka.getBootstrapServers()); + this.kafka = new StrimziKafkaContainer("quay.io/strimzi/kafka:latest-kafka-3.0.0") + .withBrokerId(1) + .withKafkaConfigurationMap(Map.of("listener.security.protocol.map", "JWT:SASL_PLAINTEXT,BROKER1:PLAINTEXT")) + .withNetworkAliases("kafka") + .withServerProperties(MountableFile.forClasspathResource("kafkaServer.properties")) + .withBootstrapServers( + c -> String.format("JWT://%s:%s", c.getContainerIpAddress(), c.getMappedPort(KAFKA_PORT))); + this.kafka.start(); + log.info(this.kafka.getLogs()); + properties.put("kafka.bootstrap.servers", this.kafka.getBootstrapServers()); properties.put("camel.component.kafka.brokers", kafka.getBootstrapServers()); return properties; diff --git a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KafkaContainer.java b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KafkaContainer.java deleted file mode 100644 index 31885bf0b411..000000000000 --- a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KafkaContainer.java +++ /dev/null @@ -1,106 +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.kafka.oauth.it.container; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.github.dockerjava.api.command.InspectContainerResponse; -import io.strimzi.StrimziKafkaContainer; -import org.jboss.logging.Logger; -import org.testcontainers.containers.FixedHostPortGenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.wait.strategy.Wait; -import org.testcontainers.images.builder.Transferable; -import org.testcontainers.utility.MountableFile; - -/** - * Inspired from https://github.com/quarkusio/quarkus/tree/main/integration-tests/kafka-oauth-keycloak/ - */ -public class KafkaContainer extends FixedHostPortGenericContainer { - - private static final Logger LOGGER = Logger.getLogger(KafkaContainer.class); - - private static final String STARTER_SCRIPT = "/testcontainers_start.sh"; - private static final int KAFKA_PORT = 9092; - private static final String LATEST_KAFKA_VERSION; - - private static final List supportedKafkaVersions = new ArrayList<>(3); - - static { - InputStream inputStream = StrimziKafkaContainer.class.getResourceAsStream("/kafka-versions.txt"); - InputStreamReader streamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); - - try (BufferedReader bufferedReader = new BufferedReader(streamReader)) { - String kafkaVersion; - while ((kafkaVersion = bufferedReader.readLine()) != null) { - supportedKafkaVersions.add(kafkaVersion); - } - } catch (IOException e) { - LOGGER.error("Unable to load the supported Kafka versions", e); - } - - // sort kafka version from low to high - Collections.sort(supportedKafkaVersions); - - LATEST_KAFKA_VERSION = supportedKafkaVersions.get(supportedKafkaVersions.size() - 1); - } - - public KafkaContainer() { - super("quay.io/strimzi/kafka:" + "latest-kafka-" + LATEST_KAFKA_VERSION); - - withExposedPorts(KAFKA_PORT); - withFixedExposedPort(KAFKA_PORT, KAFKA_PORT); - withCopyFileToContainer(MountableFile.forClasspathResource("kafkaServer.properties"), - "/opt/kafka/config/server.properties"); - waitingFor(Wait.forLogMessage(".*Kafka startTimeMs:.*", 1)); - withNetwork(Network.SHARED); - withNetworkAliases("kafka"); - withEnv("LOG_DIR", "/tmp"); - } - - @Override - protected void doStart() { - // we need it for the startZookeeper(); and startKafka(); to run container before... - withCommand("sh", "-c", "while [ ! -f " + STARTER_SCRIPT + " ]; do sleep 0.1; done; " + STARTER_SCRIPT); - super.doStart(); - } - - @Override - protected void containerIsStarting(InspectContainerResponse containerInfo, boolean reused) { - super.containerIsStarting(containerInfo, reused); - LOGGER.info("Kafka servers :: " + getBootstrapServers()); - String command = "#!/bin/bash \n"; - command += "bin/zookeeper-server-start.sh ./config/zookeeper.properties &\n"; - command += "export CLASSPATH=\"/opt/kafka/libs/strimzi/*:$CLASSPATH\" \n"; - command += "bin/kafka-server-start.sh ./config/server.properties" + - " --override listeners=JWT://:" + KAFKA_PORT + - " --override advertised.listeners=" + getBootstrapServers(); - copyFileToContainer(Transferable.of(command.getBytes(StandardCharsets.UTF_8), 700), STARTER_SCRIPT); - } - - public String getBootstrapServers() { - return String.format("JWT://%s:%s", getHost(), KAFKA_PORT); - } - -} diff --git a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KeycloakContainer.java b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KeycloakContainer.java index 0b46077af0d2..dcf86ae38301 100644 --- a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KeycloakContainer.java +++ b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/container/KeycloakContainer.java @@ -18,7 +18,6 @@ import java.io.FileWriter; -import com.github.dockerjava.api.command.InspectContainerResponse; import org.testcontainers.containers.FixedHostPortGenericContainer; import org.testcontainers.containers.Network; import org.testcontainers.containers.wait.strategy.Wait; @@ -30,7 +29,7 @@ public class KeycloakContainer extends FixedHostPortGenericContainer { public KeycloakContainer() { - super("quay.io/keycloak/keycloak:15.0.2"); + super("quay.io/keycloak/keycloak:16.1.1"); withExposedPorts(8443); withFixedExposedPort(8080, 8080); withEnv("KEYCLOAK_USER", "admin"); @@ -41,27 +40,9 @@ public KeycloakContainer() { waitingFor(Wait.forLogMessage(".*WFLYSRV0025.*", 1)); withNetwork(Network.SHARED); withNetworkAliases("keycloak"); - withCreateContainerCmdModifier(cmd -> { - cmd.withEntrypoint(""); - cmd.withCmd("/bin/bash", "-c", "cd /opt/jboss/keycloak " + - "&& bin/jboss-cli.sh --file=ssl/keycloak-ssl.cli " + - "&& rm -rf standalone/configuration/standalone_xml_history/current " + - "&& cd .. " + - "&& /opt/jboss/tools/docker-entrypoint.sh -Dkeycloak.profile.feature.upload_scripts=enabled -b 0.0.0.0"); - }); - } - - @Override - protected void containerIsStarting(InspectContainerResponse containerInfo, boolean reused) { - super.containerIsStarting(containerInfo); - copyFileToContainer(MountableFile.forClasspathResource("certificates/ca-truststore.p12"), - "/opt/jboss/keycloak/standalone/configuration/certs/ca-truststore.p12"); - copyFileToContainer(MountableFile.forClasspathResource("certificates/keycloak.server.keystore.p12"), - "/opt/jboss/keycloak/standalone/configuration/certs/keycloak.server.keystore.p12"); - copyFileToContainer(MountableFile.forClasspathResource("keycloak/scripts/keycloak-ssl.cli"), - "/opt/jboss/keycloak/ssl/keycloak-ssl.cli"); - copyFileToContainer(MountableFile.forClasspathResource("keycloak/realms/kafka-authz-realm.json"), + withCopyFileToContainer(MountableFile.forClasspathResource("keycloak/realms/kafka-authz-realm.json"), "/opt/jboss/keycloak/realms/kafka-authz-realm.json"); + withCommand("-Dkeycloak.profile.feature.upload_scripts=enabled", "-b", "0.0.0.0"); } public void createHostsFile() { diff --git a/integration-tests/kafka-oauth/src/test/resources/certificates/README.md b/integration-tests/kafka-oauth/src/test/resources/certificates/README.md deleted file mode 100644 index 5056a5b262fe..000000000000 --- a/integration-tests/kafka-oauth/src/test/resources/certificates/README.md +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# 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. -# - -## -# Inspired from https://github.com/quarkusio/quarkus/tree/main/integration-tests/kafka-oauth-keycloak/ -# -# Generating the certificates and keystore - -## Creating a self-signed CA certificate and truststore - -```bash -./gen-ca.sh -``` - -This creates `crt.ca` and adds the certificate to the keystore `ca-truststore.p12`. - -## Creating a server certificate and add it to keystore - -```bash -./gen-keycloak-certs.sh -``` - -This creates server certificate for Keycloak, signs it and adds it to keystore `keycloak.server.keystore.p12`. - -## Cleanup - -```bash -rm ca.srl -rm ca.crt -rm ca.key -rm cert-file -rm cert-signed -``` \ No newline at end of file diff --git a/integration-tests/kafka-oauth/src/test/resources/certificates/ca-truststore.p12 b/integration-tests/kafka-oauth/src/test/resources/certificates/ca-truststore.p12 deleted file mode 100644 index f3fdb05d34b7..000000000000 Binary files a/integration-tests/kafka-oauth/src/test/resources/certificates/ca-truststore.p12 and /dev/null differ diff --git a/integration-tests/kafka-oauth/src/test/resources/certificates/gen-ca.sh b/integration-tests/kafka-oauth/src/test/resources/certificates/gen-ca.sh deleted file mode 100755 index c5c5af3247b3..000000000000 --- a/integration-tests/kafka-oauth/src/test/resources/certificates/gen-ca.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# 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. -# - -set -e - -# create CA key -openssl genrsa -out ca.key 4096 - -# create CA certificate -openssl req -x509 -new -nodes -sha256 -days 3650 -subj "/CN=quarkus.io" -key ca.key -out ca.crt - - -PASSWORD=changeit - -# create p12 truststore -keytool -keystore ca-truststore.p12 -storetype pkcs12 -alias ca -storepass $PASSWORD -keypass $PASSWORD -import -file ca.crt -noprompt diff --git a/integration-tests/kafka-oauth/src/test/resources/certificates/gen-keycloak-certs.sh b/integration-tests/kafka-oauth/src/test/resources/certificates/gen-keycloak-certs.sh deleted file mode 100755 index 2b921eab50d5..000000000000 --- a/integration-tests/kafka-oauth/src/test/resources/certificates/gen-keycloak-certs.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# 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. -# - - -set -e - -PASSWORD=changeit - -echo "#### Create server certificate for Keycloak" -keytool -keystore keycloak.server.keystore.p12 -storetype pkcs12 -keyalg RSA -alias keycloak -validity 3650 -genkey -storepass $PASSWORD -keypass $PASSWORD -dname CN=keycloak -ext SAN=DNS:keycloak - -echo "#### Sign server certificate (export, sign, add signed to keystore)" -keytool -keystore keycloak.server.keystore.p12 -storetype pkcs12 -alias keycloak -storepass $PASSWORD -keypass $PASSWORD -certreq -file cert-file -openssl x509 -req -CA ca.crt -CAkey ca.key -in cert-file -out cert-signed -days 3650 -CAcreateserial -passin pass:$PASSWORD -keytool -keystore keycloak.server.keystore.p12 -alias CARoot -storepass $PASSWORD -keypass $PASSWORD -import -file ca.crt -noprompt -keytool -keystore keycloak.server.keystore.p12 -alias keycloak -storepass $PASSWORD -keypass $PASSWORD -import -file cert-signed -noprompt diff --git a/integration-tests/kafka-oauth/src/test/resources/certificates/keycloak.server.keystore.p12 b/integration-tests/kafka-oauth/src/test/resources/certificates/keycloak.server.keystore.p12 deleted file mode 100644 index 406c335f45bf..000000000000 Binary files a/integration-tests/kafka-oauth/src/test/resources/certificates/keycloak.server.keystore.p12 and /dev/null differ diff --git a/integration-tests/kafka-sasl-ssl/pom.xml b/integration-tests/kafka-sasl-ssl/pom.xml index c253797853d3..8c774c141902 100644 --- a/integration-tests/kafka-sasl-ssl/pom.xml +++ b/integration-tests/kafka-sasl-ssl/pom.xml @@ -62,6 +62,17 @@ org.testcontainers kafka test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslIT.java b/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslIT.java index 113d16c00603..74f9c62ed5c5 100644 --- a/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslIT.java +++ b/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.kafka.sasl; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class KafkaSaslSslIT extends KafkaSaslSslTest { } diff --git a/integration-tests/kafka-sasl/pom.xml b/integration-tests/kafka-sasl/pom.xml index e130db07ab78..bd427cd26c5e 100644 --- a/integration-tests/kafka-sasl/pom.xml +++ b/integration-tests/kafka-sasl/pom.xml @@ -66,6 +66,17 @@ org.testcontainers kafka test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslIT.java b/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslIT.java index 6b25cb483acd..aca5a8d95ad7 100644 --- a/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslIT.java +++ b/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.kafka.sasl; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class KafkaSaslIT extends KafkaSaslBindingTest { } diff --git a/integration-tests/kafka-ssl/pom.xml b/integration-tests/kafka-ssl/pom.xml index ffde62fa3196..7c7e292641b6 100644 --- a/integration-tests/kafka-ssl/pom.xml +++ b/integration-tests/kafka-ssl/pom.xml @@ -66,6 +66,17 @@ org.testcontainers kafka test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslIT.java b/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslIT.java index 839cf6d847d6..c94cb3b5d7df 100644 --- a/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslIT.java +++ b/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.kafka.ssl; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class KafkaSslIT extends KafkaSslTest { } diff --git a/integration-tests/kafka/pom.xml b/integration-tests/kafka/pom.xml index e9e3e248f65f..af9bf4679981 100644 --- a/integration-tests/kafka/pom.xml +++ b/integration-tests/kafka/pom.xml @@ -55,6 +55,10 @@ org.apache.camel.quarkus camel-quarkus-seda
+ + org.apache.camel.quarkus + camel-quarkus-microprofile-health + org.apache.camel.quarkus camel-quarkus-integration-tests-support-kafka @@ -78,6 +82,17 @@ org.testcontainers kafka test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test org.awaitility @@ -165,6 +180,19 @@ + + org.apache.camel.quarkus + camel-quarkus-microprofile-health-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-mock-deployment diff --git a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java index e460fbc6ba74..381d8252bb5a 100644 --- a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java +++ b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java @@ -61,7 +61,7 @@ public void configure() throws Exception { from("direct:idempotent") .idempotentConsumer(header("id")) - .messageIdRepositoryRef("kafkaIdempotentRepository") + .idempotentRepository("kafkaIdempotentRepository") .to("mock:idempotent-results") .end(); diff --git a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsIT.java b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckIT.java similarity index 79% rename from integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsIT.java rename to integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckIT.java index 6b920e764c07..64aab71398e5 100644 --- a/integration-tests/ipfs/src/test/java/org/apache/camel/quarkus/component/ipfs/it/IpfsIT.java +++ b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckIT.java @@ -14,11 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.ipfs.it; +package org.apache.camel.quarkus.component.kafka.it; -import io.quarkus.test.junit.NativeImageTest; - -@NativeImageTest -class IpfsIT extends IpfsTest { +import io.quarkus.test.junit.QuarkusIntegrationTest; +@QuarkusIntegrationTest +public class CamelKafkaHealthCheckIT extends CamelKafkaHealthCheckTest { } diff --git a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckTest.java b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckTest.java new file mode 100644 index 000000000000..27bd62930814 --- /dev/null +++ b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaHealthCheckTest.java @@ -0,0 +1,59 @@ +/* + * 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.kafka.it; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.TestProfile; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.apache.camel.quarkus.test.support.kafka.InjectKafka; +import org.apache.camel.quarkus.test.support.kafka.KafkaTestResource; +import org.junit.jupiter.api.Test; +import org.testcontainers.containers.KafkaContainer; + +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; + +@QuarkusTest +@QuarkusTestResource(KafkaTestResource.class) +@TestProfile(KafkaHealthCheckProfile.class) +public class CamelKafkaHealthCheckTest { + + @InjectKafka + KafkaContainer container; + + @Test + void testHealthCheck() { + RestAssured.when().get("/q/health").then() + .contentType(ContentType.JSON) + .header("Content-Type", containsString("charset=UTF-8")) + .body("status", is("UP")); + + // stop the kafka container to test health-check DOWN + container.stop(); + + RestAssured.when().get("/q/health").then() + .contentType(ContentType.JSON) + .header("Content-Type", containsString("charset=UTF-8")) + .body("status", is("DOWN"), + "checks.find { it.name == 'camel-kafka' }.status", is("DOWN"), + "checks.find { it.name == 'camel-kafka' }.data.topic", notNullValue(), + "checks.find { it.name == 'camel-kafka' }.data.'client.id'", notNullValue()); + } +} diff --git a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaIT.java b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaIT.java index 39ac37e78768..00b058203d70 100644 --- a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaIT.java +++ b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.kafka.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CamelKafkaIT extends CamelKafkaTest { } diff --git a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/KafkaHealthCheckProfile.java b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/KafkaHealthCheckProfile.java new file mode 100644 index 000000000000..620c5dcd3ff7 --- /dev/null +++ b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/KafkaHealthCheckProfile.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.kafka.it; + +import java.util.Map; + +import io.quarkus.test.junit.QuarkusTestProfile; + +public class KafkaHealthCheckProfile implements QuarkusTestProfile { + @Override + public Map getConfigOverrides() { + // force shutdown + return Map.of("camel.main.shutdownTimeout", "10"); + } +} diff --git a/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletIT.java b/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletIT.java index 75ccbfe950c9..2bf5d8c600a5 100644 --- a/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletIT.java +++ b/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.kamelet.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class KameletIT extends KameletTest { } diff --git a/integration-tests/kotlin/src/test/kotlin/org/apache/camel/quarkus/kotlin/KotlinIT.kt b/integration-tests/kotlin/src/test/kotlin/org/apache/camel/quarkus/kotlin/KotlinIT.kt index 5e0a8f7d35db..d5ed517f677d 100644 --- a/integration-tests/kotlin/src/test/kotlin/org/apache/camel/quarkus/kotlin/KotlinIT.kt +++ b/integration-tests/kotlin/src/test/kotlin/org/apache/camel/quarkus/kotlin/KotlinIT.kt @@ -16,7 +16,7 @@ */ package org.apache.camel.quarkus.kotlin -import io.quarkus.test.junit.NativeImageTest +import io.quarkus.test.junit.QuarkusIntegrationTest -@NativeImageTest +@QuarkusIntegrationTest class KotlinIT : KotlinTest() \ No newline at end of file diff --git a/integration-tests/kubernetes/pom.xml b/integration-tests/kubernetes/pom.xml index 1656a1aa5fea..3c5fc2dd572a 100644 --- a/integration-tests/kubernetes/pom.xml +++ b/integration-tests/kubernetes/pom.xml @@ -55,6 +55,17 @@ io.quarkus quarkus-test-kubernetes-client test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java index c55ed17b4483..3664a71a711b 100644 --- a/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java +++ b/integration-tests/kubernetes/src/test/java/org/apache/camel/quarkus/component/kubernetes/it/KubernetesIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.kubernetes.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class KubernetesIT extends KubernetesTest { } diff --git a/integration-tests/kudu/pom.xml b/integration-tests/kudu/pom.xml index 36f8e23ada94..e46a0be1cff7 100644 --- a/integration-tests/kudu/pom.xml +++ b/integration-tests/kudu/pom.xml @@ -72,6 +72,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduIT.java b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduIT.java index 2a6eda3c4bd7..4b1809c9a2e7 100644 --- a/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduIT.java +++ b/integration-tests/kudu/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.kudu.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class KuduIT extends KuduTest { } diff --git a/integration-tests/leveldb/src/test/java/org/apache/camel/quarkus/component/leveldb/it/LeveldbIT.java b/integration-tests/leveldb/src/test/java/org/apache/camel/quarkus/component/leveldb/it/LeveldbIT.java index 743e2ab4139a..19dcdbc63527 100644 --- a/integration-tests/leveldb/src/test/java/org/apache/camel/quarkus/component/leveldb/it/LeveldbIT.java +++ b/integration-tests/leveldb/src/test/java/org/apache/camel/quarkus/component/leveldb/it/LeveldbIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.leveldb.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class LeveldbIT extends LeveldbTest { } diff --git a/integration-tests/lra/pom.xml b/integration-tests/lra/pom.xml index e0bf58b839d3..fea4a2ca08e9 100644 --- a/integration-tests/lra/pom.xml +++ b/integration-tests/lra/pom.xml @@ -77,6 +77,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/lra/src/test/java/org/apache/camel/quarkus/component/lra/it/LraIT.java b/integration-tests/lra/src/test/java/org/apache/camel/quarkus/component/lra/it/LraIT.java index dda7b3d7d5c4..b61271d64425 100644 --- a/integration-tests/lra/src/test/java/org/apache/camel/quarkus/component/lra/it/LraIT.java +++ b/integration-tests/lra/src/test/java/org/apache/camel/quarkus/component/lra/it/LraIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.lra.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class LraIT extends LraTest { } diff --git a/integration-tests/lumberjack/src/test/java/org/apache/camel/quarkus/component/lumberjack/it/LumberjackIT.java b/integration-tests/lumberjack/src/test/java/org/apache/camel/quarkus/component/lumberjack/it/LumberjackIT.java index 3c5f70ec87d0..6056ab955f0f 100644 --- a/integration-tests/lumberjack/src/test/java/org/apache/camel/quarkus/component/lumberjack/it/LumberjackIT.java +++ b/integration-tests/lumberjack/src/test/java/org/apache/camel/quarkus/component/lumberjack/it/LumberjackIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.lumberjack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class LumberjackIT extends LumberjackTest { } diff --git a/integration-tests/mail/pom.xml b/integration-tests/mail/pom.xml index 517d88950996..da68ab4d7297 100644 --- a/integration-tests/mail/pom.xml +++ b/integration-tests/mail/pom.xml @@ -47,6 +47,12 @@ org.jvnet.mock-javamail mock-javamail + + + junit + junit + + diff --git a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailIT.java b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailIT.java index d5eb1bb2daed..3cdb3d56369c 100644 --- a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailIT.java +++ b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.mail; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class MailIT extends MailTest { } diff --git a/integration-tests/main-caffeine-lrucache/src/test/java/org/apache/camel/quarkus/main/CoreMainCaffeineLRUCacheResourceIT.java b/integration-tests/main-caffeine-lrucache/src/test/java/org/apache/camel/quarkus/main/CoreMainCaffeineLRUCacheResourceIT.java index 9df8683326a3..ab30564645a7 100644 --- a/integration-tests/main-caffeine-lrucache/src/test/java/org/apache/camel/quarkus/main/CoreMainCaffeineLRUCacheResourceIT.java +++ b/integration-tests/main-caffeine-lrucache/src/test/java/org/apache/camel/quarkus/main/CoreMainCaffeineLRUCacheResourceIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreMainCaffeineLRUCacheResourceIT extends CoreMainCaffeineLRUCacheResourceTest { } diff --git a/integration-tests/main-discovery-disabled/src/test/java/org/apache/camel/quarkus/main/MainDiscoveryDisabledIT.java b/integration-tests/main-discovery-disabled/src/test/java/org/apache/camel/quarkus/main/MainDiscoveryDisabledIT.java index d2302a4fc531..c45e8d940753 100644 --- a/integration-tests/main-discovery-disabled/src/test/java/org/apache/camel/quarkus/main/MainDiscoveryDisabledIT.java +++ b/integration-tests/main-discovery-disabled/src/test/java/org/apache/camel/quarkus/main/MainDiscoveryDisabledIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class MainDiscoveryDisabledIT extends MainDiscoveryDisabledTest { } diff --git a/integration-tests/main-unknown-args-fail/src/test/java/org/apache/camel/quarkus/main/unknown/args/fail/MainUnknownArgumentFailIT.java b/integration-tests/main-unknown-args-fail/src/test/java/org/apache/camel/quarkus/main/unknown/args/fail/MainUnknownArgumentFailIT.java index ee4966c86d7d..74f5a7e50161 100644 --- a/integration-tests/main-unknown-args-fail/src/test/java/org/apache/camel/quarkus/main/unknown/args/fail/MainUnknownArgumentFailIT.java +++ b/integration-tests/main-unknown-args-fail/src/test/java/org/apache/camel/quarkus/main/unknown/args/fail/MainUnknownArgumentFailIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main.unknown.args.fail; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MainUnknownArgumentFailIT extends MainUnknownArgumentFailTest { } diff --git a/integration-tests/main-unknown-args-ignore/src/test/java/org/apache/camel/quarkus/main/unknown/args/ignore/MainUnknownArgumentIgnoreIT.java b/integration-tests/main-unknown-args-ignore/src/test/java/org/apache/camel/quarkus/main/unknown/args/ignore/MainUnknownArgumentIgnoreIT.java index be0f91ad2493..24313bddf885 100644 --- a/integration-tests/main-unknown-args-ignore/src/test/java/org/apache/camel/quarkus/main/unknown/args/ignore/MainUnknownArgumentIgnoreIT.java +++ b/integration-tests/main-unknown-args-ignore/src/test/java/org/apache/camel/quarkus/main/unknown/args/ignore/MainUnknownArgumentIgnoreIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main.unknown.args.ignore; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MainUnknownArgumentIgnoreIT extends MainUnknownArgumentIgnoreTest { } diff --git a/integration-tests/main-xml-io/src/main/resources/rests/my-rests.xml b/integration-tests/main-xml-io/src/main/resources/rests/my-rests.xml index fcbd834587e4..24f641fa35ea 100644 --- a/integration-tests/main-xml-io/src/main/resources/rests/my-rests.xml +++ b/integration-tests/main-xml-io/src/main/resources/rests/my-rests.xml @@ -19,12 +19,8 @@ --> - - - - Hello World! - - + + diff --git a/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml b/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml index 48feb17239e3..c3674672bec4 100644 --- a/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml +++ b/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml @@ -24,6 +24,13 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> + + + + Hello World! + + + diff --git a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoIT.java b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoIT.java index c1c090a46fee..5a08abf6efa9 100644 --- a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoIT.java +++ b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreMainXmlIoIT extends CoreMainXmlIoTest { } diff --git a/integration-tests/main-xml-jaxb/src/main/resources/rests/my-rests.xml b/integration-tests/main-xml-jaxb/src/main/resources/rests/my-rests.xml index fcbd834587e4..24f641fa35ea 100644 --- a/integration-tests/main-xml-jaxb/src/main/resources/rests/my-rests.xml +++ b/integration-tests/main-xml-jaxb/src/main/resources/rests/my-rests.xml @@ -19,12 +19,8 @@ --> - - - - Hello World! - - + + diff --git a/integration-tests/main-xml-jaxb/src/main/resources/routes/my-routes.xml b/integration-tests/main-xml-jaxb/src/main/resources/routes/my-routes.xml index e491c2998e2f..c3763c0d5f65 100644 --- a/integration-tests/main-xml-jaxb/src/main/resources/routes/my-routes.xml +++ b/integration-tests/main-xml-jaxb/src/main/resources/routes/my-routes.xml @@ -23,6 +23,13 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> + + + + Hello World! + + + diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbIT.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbIT.java index 48e9d7d10ffc..e138bef4ca36 100644 --- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbIT.java +++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreMainXmlJaxbIT extends CoreMainXmlJaxbTest { } diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java index 6fbbfdc74bde..89170e52b04b 100644 --- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java +++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java @@ -80,7 +80,7 @@ public void testDumpRoutes() { private boolean logContainsDumpedRoutes(String log) { return log.contains("") && - log.contains("") && + log.contains("") && log.contains("") && log.contains(""); } diff --git a/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml index fd1f1b687cb7..b24883180877 100644 --- a/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml +++ b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml @@ -16,10 +16,10 @@ # - rest: - path: "/greeting" - verb: - - method: "get" + get: + - path: "/greeting" to: "direct:rest" + - route: id: "rest-route" from: diff --git a/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java index 8735fb429414..8a11bd10b27f 100644 --- a/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java +++ b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreMainYamlIT extends CoreMainYamlTest { } diff --git a/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainIT.java b/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainIT.java index e56b19e8226d..8e7cbfbc245c 100644 --- a/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainIT.java +++ b/integration-tests/main/src/test/java/org/apache/camel/quarkus/main/CoreMainIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.main; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CoreMainIT extends CoreMainTest { } diff --git a/integration-tests/master/src/test/java/org/apache/camel/quarkus/component/master/it/MasterIT.java b/integration-tests/master/src/test/java/org/apache/camel/quarkus/component/master/it/MasterIT.java index 47b04af2d43b..a22caa305b72 100644 --- a/integration-tests/master/src/test/java/org/apache/camel/quarkus/component/master/it/MasterIT.java +++ b/integration-tests/master/src/test/java/org/apache/camel/quarkus/component/master/it/MasterIT.java @@ -16,12 +16,12 @@ */ package org.apache.camel.quarkus.component.master.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable; // https://github.com/apache/camel-quarkus/issues/2660 @DisabledIfEnvironmentVariable(named = "CI", matches = "true") -@NativeImageTest +@QuarkusIntegrationTest class MasterIT extends MasterTest { } diff --git a/integration-tests/micrometer/src/test/java/org/apache/camel/quarkus/component/micrometer/it/MicrometerIT.java b/integration-tests/micrometer/src/test/java/org/apache/camel/quarkus/component/micrometer/it/MicrometerIT.java index 2def38d1d45f..88609f54a964 100644 --- a/integration-tests/micrometer/src/test/java/org/apache/camel/quarkus/component/micrometer/it/MicrometerIT.java +++ b/integration-tests/micrometer/src/test/java/org/apache/camel/quarkus/component/micrometer/it/MicrometerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.micrometer.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MicrometerIT extends MicrometerTest { } diff --git a/integration-tests/microprofile/pom.xml b/integration-tests/microprofile/pom.xml index 456eaa063862..c53a42b8da19 100644 --- a/integration-tests/microprofile/pom.xml +++ b/integration-tests/microprofile/pom.xml @@ -33,23 +33,31 @@ org.apache.camel.quarkus - camel-quarkus-microprofile-fault-tolerance + camel-quarkus-bean org.apache.camel.quarkus - camel-quarkus-microprofile-health + camel-quarkus-direct org.apache.camel.quarkus - camel-quarkus-microprofile-metrics + camel-quarkus-log org.apache.camel.quarkus - camel-quarkus-direct + camel-quarkus-microprofile-fault-tolerance org.apache.camel.quarkus - camel-quarkus-log + camel-quarkus-microprofile-health + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics + + + org.apache.camel.quarkus + camel-quarkus-mock io.quarkus @@ -112,6 +120,19 @@ + + org.apache.camel.quarkus + camel-quarkus-bean-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-direct-deployment @@ -177,6 +198,19 @@ + + org.apache.camel.quarkus + camel-quarkus-mock-deployment + ${project.version} + pom + test + + + * + * + + + diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/GreetingBean.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/GreetingBean.java new file mode 100644 index 000000000000..3053a27bcd37 --- /dev/null +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/GreetingBean.java @@ -0,0 +1,65 @@ +/* + * 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.microprofile.it.faulttolerance; + +import java.util.concurrent.atomic.AtomicInteger; + +import javax.enterprise.context.ApplicationScoped; + +import org.eclipse.microprofile.faulttolerance.CircuitBreaker; +import org.eclipse.microprofile.faulttolerance.Fallback; +import org.eclipse.microprofile.faulttolerance.Timeout; + +import static org.apache.camel.quarkus.component.microprofile.it.faulttolerance.MicroProfileFaultToleranceRoutes.EXCEPTION_MESSAGE; +import static org.apache.camel.quarkus.component.microprofile.it.faulttolerance.MicroProfileFaultToleranceRoutes.FALLBACK_RESULT; +import static org.apache.camel.quarkus.component.microprofile.it.faulttolerance.MicroProfileFaultToleranceRoutes.RESULT; + +@ApplicationScoped +public class GreetingBean { + + @Fallback(fallbackMethod = "fallbackGreeting") + public String greetWithFallback() { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("beanFallback"); + if (counter.incrementAndGet() == 1) { + throw new IllegalStateException(EXCEPTION_MESSAGE); + } + return RESULT; + } + + @Timeout(250) + public String greetWithDelay() throws InterruptedException { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("beanTimeout"); + if (counter.incrementAndGet() == 1) { + Thread.sleep(500); + return "Nothing to see here, method invocation timed out!"; + } + return RESULT; + } + + @CircuitBreaker(failureRatio = 1.0, requestVolumeThreshold = 1, delay = 0) + public String greetWithCircuitBreaker() { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("beanThreshold"); + if (counter.incrementAndGet() == 1) { + throw new IllegalStateException(EXCEPTION_MESSAGE); + } + return RESULT; + } + + public String fallbackGreeting() { + return FALLBACK_RESULT; + } +} diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceHelper.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceHelper.java new file mode 100644 index 000000000000..63071b48bb89 --- /dev/null +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceHelper.java @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.component.microprofile.it.faulttolerance; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + +public class MicroProfileFaultToleranceHelper { + + private static final Map COUNTERS = new ConcurrentHashMap(); + + private MicroProfileFaultToleranceHelper() { + // Utility class + } + + public static AtomicInteger getCounter(String name) { + return COUNTERS.computeIfAbsent(name, key -> new AtomicInteger()); + } +} diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java index 3dca95a8405f..2ac31d6d3ee2 100644 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroProfileFaultToleranceRoutes.java @@ -16,23 +16,47 @@ */ package org.apache.camel.quarkus.component.microprofile.it.faulttolerance; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicInteger; +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.inject.Named; + import org.apache.camel.builder.RouteBuilder; +import org.eclipse.microprofile.faulttolerance.exceptions.TimeoutException; +@ApplicationScoped public class MicroProfileFaultToleranceRoutes extends RouteBuilder { + public static final String EXCEPTION_MESSAGE = "Simulated Exception"; public static final String FALLBACK_RESULT = "Fallback response"; public static final String RESULT = "Hello Camel Quarkus MicroProfile Fault Tolerance"; - private static final AtomicInteger COUNTER = new AtomicInteger(); - private static final AtomicInteger TIMEOUT_COUNTER = new AtomicInteger(); + + @Inject + GreetingBean greetingBean; @Override public void configure() throws Exception { - from("direct:faultTolerance") + from("direct:faultToleranceWithBulkhead") .circuitBreaker() + .faultToleranceConfiguration().bulkheadEnabled(true).end() .process(exchange -> { - if (COUNTER.incrementAndGet() == 1) { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("bulkhead"); + if (counter.incrementAndGet() == 1) { + throw new IllegalStateException(EXCEPTION_MESSAGE); + } + exchange.getMessage().setBody(RESULT); + }) + .onFallback() + .setBody().constant(FALLBACK_RESULT) + .end(); + + from("direct:faultToleranceWithFallback") + .circuitBreaker() + .process(exchange -> { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("fallback"); + if (counter.incrementAndGet() == 1) { throw new IllegalStateException("Simulated Exception"); } exchange.getMessage().setBody(RESULT); @@ -41,18 +65,72 @@ public void configure() throws Exception { .setBody().constant(FALLBACK_RESULT) .end(); + from("direct:faultToleranceWithThreshold") + .circuitBreaker() + .faultToleranceConfiguration().failureRatio(100).successThreshold(1).requestVolumeThreshold(1).delay(0).end() + .process(exchange -> { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("threshold"); + if (counter.incrementAndGet() == 1) { + throw new IllegalStateException("Simulated Exception"); + } + exchange.getMessage().setBody("Nothing to see here. Circuit breaker is open..."); + }) + .end() + .setBody().simple(RESULT); + from("direct:faultToleranceWithTimeout") .circuitBreaker() .faultToleranceConfiguration().timeoutEnabled(true).timeoutDuration(500).end() .process(exchange -> { - if (TIMEOUT_COUNTER.incrementAndGet() == 1) { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("timeout"); + if (counter.incrementAndGet() == 1) { Thread.sleep(1000); } - exchange.getMessage().setBody("Regular hi " + exchange.getMessage().getBody(String.class)); + exchange.getMessage().setBody(RESULT); }) .onFallback() - .setBody().simple("Sorry ${body}, had to fallback!") + .setBody().simple(FALLBACK_RESULT) .end(); + from("direct:faultToleranceWithTimeoutCustomExecutor") + .circuitBreaker() + .faultToleranceConfiguration().timeoutEnabled(true).timeoutScheduledExecutorService("myThreadPool") + .timeoutDuration(500).end() + .process(exchange -> { + AtomicInteger counter = MicroProfileFaultToleranceHelper.getCounter("timeoutCustomExecutor"); + if (counter.incrementAndGet() == 1) { + Thread.sleep(1000); + } + exchange.getMessage().setBody(RESULT); + }) + .onFallback() + .setBody().simple(FALLBACK_RESULT) + .end(); + + from("direct:inheritErrorHandler") + .errorHandler(deadLetterChannel("mock:dead").maximumRedeliveries(3).redeliveryDelay(0)) + .circuitBreaker().inheritErrorHandler(true) + .to("mock:start") + .throwException(new IllegalArgumentException(EXCEPTION_MESSAGE)).end() + .to("mock:end"); + + from("direct:circuitBreakerBean") + .bean(greetingBean, "greetWithCircuitBreaker"); + + from("direct:fallbackBean") + .bean(greetingBean, "greetWithFallback"); + + from("direct:timeoutBean") + .doTry() + .bean(greetingBean, "greetWithDelay") + .doCatch(TimeoutException.class) + .setBody().constant(FALLBACK_RESULT) + .end(); + } + + @Named("myThreadPool") + public ScheduledExecutorService myThreadPool() { + return getCamelContext().getExecutorServiceManager() + .newScheduledThreadPool(this, "myThreadPool", 2); } } diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java index 348a870046b2..3193d5448517 100644 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceResource.java @@ -23,7 +23,9 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.mock.MockEndpoint; @Path("/microprofile-fault-tolerance") public class MicroprofileFaultToleranceResource { @@ -31,10 +33,43 @@ public class MicroprofileFaultToleranceResource { @Inject ProducerTemplate producerTemplate; + @Inject + CamelContext context; + @Path("/route/{route}") @POST @Produces(MediaType.TEXT_PLAIN) - public String triggerFaultToleranceRoute(String body, @PathParam("route") String route) { - return producerTemplate.requestBody("direct:" + route, body, String.class); + public String triggerFaultToleranceRoute(@PathParam("route") String route) { + return producerTemplate.requestBody("direct:" + route, null, String.class); + } + + @Path("/faultToleranceWithThreshold/{route}") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String faultToleranceWithThreshold(@PathParam("route") String route) { + try { + return producerTemplate.requestBody("direct:" + route, null, String.class); + } catch (Exception e) { + return e.getCause().getMessage(); + } + } + + @Path("/inheritErrorHandler") + @POST + public void inheritErrorHandler() throws Exception { + MockEndpoint start = context.getEndpoint("mock:start", MockEndpoint.class); + start.expectedMessageCount(4); + + MockEndpoint end = context.getEndpoint("mock:end", MockEndpoint.class); + end.expectedMessageCount(0); + + MockEndpoint dead = context.getEndpoint("mock:dead", MockEndpoint.class); + dead.expectedMessageCount(1); + + producerTemplate.requestBody("direct:inheritErrorHandler", null, String.class); + + start.assertIsSatisfied(5000); + end.assertIsSatisfied(5000); + dead.assertIsSatisfied(5000); } } diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/CustomHealthCheckRepository.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/CustomHealthCheckRepository.java index c54665d73c95..2d313307c645 100644 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/CustomHealthCheckRepository.java +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/CustomHealthCheckRepository.java @@ -16,12 +16,10 @@ */ package org.apache.camel.quarkus.component.microprofile.it.health; -import java.util.Collections; import java.util.Map; import java.util.stream.Stream; import org.apache.camel.health.HealthCheck; -import org.apache.camel.health.HealthCheckConfiguration; import org.apache.camel.health.HealthCheckRepository; import org.apache.camel.health.HealthCheckResultBuilder; import org.apache.camel.impl.health.AbstractHealthCheck; @@ -43,21 +41,6 @@ public void setEnabled(boolean enabled) { // Noop } - @Override - public void setConfigurations(Map configurations) { - // Noop - } - - @Override - public Map getConfigurations() { - return Collections.emptyMap(); - } - - @Override - public void addConfiguration(String id, HealthCheckConfiguration configuration) { - // Noop - } - @Override public Stream stream() { return Stream.of(check); diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailingHealthCheck.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailingHealthCheck.java index 2d56d5427cbf..b278052d7911 100644 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailingHealthCheck.java +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailingHealthCheck.java @@ -25,7 +25,7 @@ public class FailingHealthCheck extends AbstractHealthCheck { public FailingHealthCheck() { super("failing-check"); - getConfiguration().setEnabled(false); + setEnabled(false); } @Override diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailureThresholdHealthCheck.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailureThresholdHealthCheck.java deleted file mode 100644 index 6fbcb6e7d43b..000000000000 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/FailureThresholdHealthCheck.java +++ /dev/null @@ -1,51 +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.microprofile.it.health; - -import java.util.Map; - -import org.apache.camel.health.HealthCheckResultBuilder; -import org.apache.camel.impl.health.AbstractHealthCheck; - -public final class FailureThresholdHealthCheck extends AbstractHealthCheck { - - private boolean returnStatusUp = false; - - public FailureThresholdHealthCheck() { - super("failure-threshold", "failure-threshold"); - getConfiguration().setEnabled(false); - getConfiguration().setFailureThreshold(2); - getConfiguration().setInterval(500); - } - - @Override - protected void doCall(HealthCheckResultBuilder builder, Map options) { - if (isReturnStatusUp()) { - builder.up(); - } else { - builder.down(); - } - } - - public void setReturnStatusUp(boolean returnStatusUp) { - this.returnStatusUp = returnStatusUp; - } - - public boolean isReturnStatusUp() { - return returnStatusUp; - } -} diff --git a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthResource.java b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthResource.java index f5392e6462e4..1e2e29732ed1 100644 --- a/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthResource.java +++ b/integration-tests/microprofile/src/main/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthResource.java @@ -24,7 +24,6 @@ import javax.ws.rs.QueryParam; import org.apache.camel.CamelContext; -import org.apache.camel.health.HealthCheck; import org.apache.camel.health.HealthCheckRegistry; @Path("/microprofile-health") @@ -52,7 +51,7 @@ public void healthCheckEnabled(@PathParam("healthCheckId") String healthCheckId, @QueryParam("healthCheckEnabled") boolean isHealthCheckEnabled) { HealthCheckRegistry registry = camelContext.getExtension(HealthCheckRegistry.class); registry.getCheck(healthCheckId).ifPresent(healthCheck -> { - healthCheck.getConfiguration().setEnabled(isHealthCheckEnabled); + healthCheck.setEnabled(isHealthCheckEnabled); if (isHealthCheckEnabled) { registry.register(healthCheck); } else { @@ -60,18 +59,4 @@ public void healthCheckEnabled(@PathParam("healthCheckId") String healthCheckId, } }); } - - @Path("/{healthCheckId}/return/status") - @POST - public void modifyHealthCheckStatus( - @PathParam("healthCheckId") String healthCheckId, - @QueryParam("returnStatusUp") boolean isReturnStatusUp) { - HealthCheck healthCheck = camelContext - .getExtension(HealthCheckRegistry.class) - .getCheck(healthCheckId) - .get(); - - FailureThresholdHealthCheck failureThresholdHealthCheck = (FailureThresholdHealthCheck) healthCheck; - failureThresholdHealthCheck.setReturnStatusUp(isReturnStatusUp); - } } diff --git a/integration-tests/microprofile/src/main/resources/application.properties b/integration-tests/microprofile/src/main/resources/application.properties index 4537e97b1ae6..9b94638296e9 100644 --- a/integration-tests/microprofile/src/main/resources/application.properties +++ b/integration-tests/microprofile/src/main/resources/application.properties @@ -26,9 +26,4 @@ quarkus.camel.metrics.enable-message-history = true camel.context.name = quarkus-camel-example # Prevent unwanted routes appearing in the health check output -camel.health.config[disabledHealthRoute].parent=routes -camel.health.config[disabledHealthRoute].enabled=false - -camel.health.config[checkIntervalThreshold].parent = routes -camel.health.config[checkIntervalThreshold].interval = 100 -camel.health.config[checkIntervalThreshold].failure-threshold = 2 +camel.health.exclude-pattern = disabledHealthRoute diff --git a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceIT.java b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceIT.java index 90bdf9f619b8..1362ada770ae 100644 --- a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceIT.java +++ b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.microprofile.it.faulttolerance; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MicroprofileFaultToleranceIT extends MicroprofileFaultToleranceTest { } diff --git a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceTest.java b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceTest.java index ff610c2ec4d9..4d5378c12aaa 100644 --- a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceTest.java +++ b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/faulttolerance/MicroprofileFaultToleranceTest.java @@ -18,46 +18,64 @@ import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; -import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; + +import static org.apache.camel.quarkus.component.microprofile.it.faulttolerance.MicroProfileFaultToleranceRoutes.EXCEPTION_MESSAGE; +import static org.hamcrest.Matchers.is; @QuarkusTest class MicroprofileFaultToleranceTest { - @Test - public void testCamelMicroProfileFaultToleranceFallback() { - + @ParameterizedTest + @MethodSource("routeUris") + public void testCamelMicroProfileFaultTolerance(String route) { // First request should trigger the fallback response - RestAssured.post("/microprofile-fault-tolerance/route/faultTolerance") + RestAssured.post("/microprofile-fault-tolerance/route/" + route) .then() .statusCode(200) - .body(Matchers.is(MicroProfileFaultToleranceRoutes.FALLBACK_RESULT)); + .body(is(MicroProfileFaultToleranceRoutes.FALLBACK_RESULT)); // Next request(s) should trigger the expected response - RestAssured.post("/microprofile-fault-tolerance/route/faultTolerance") + RestAssured.post("/microprofile-fault-tolerance/route/" + route) .then() .statusCode(200) - .body(Matchers.is(MicroProfileFaultToleranceRoutes.RESULT)); + .body(is(MicroProfileFaultToleranceRoutes.RESULT)); } - @Test - public void testCamelMicroProfileFaultToleranceFallbackWithTimeout() { - - // First request should trigger the fallback response - RestAssured.given() - .body("Joe") - .post("/microprofile-fault-tolerance/route/faultToleranceWithTimeout") + @ParameterizedTest + @ValueSource(strings = { "faultToleranceWithThreshold", "circuitBreakerBean" }) + public void testCamelMicroProfileFaultToleranceWithThreshold(String route) { + // First request should trigger an exception and open the circuit breaker + RestAssured.post("/microprofile-fault-tolerance/faultToleranceWithThreshold/" + route) .then() .statusCode(200) - .body(Matchers.is("Sorry Joe, had to fallback!")); + .body(is(EXCEPTION_MESSAGE)); - // Next request(s) should trigger the expected response - RestAssured.given() - .body("Mary") - .post("/microprofile-fault-tolerance/route/faultToleranceWithTimeout") + // Next request(s) should close the circuit breaker and trigger the expected response + RestAssured.post("/microprofile-fault-tolerance/faultToleranceWithThreshold/" + route) .then() .statusCode(200) - .body(Matchers.is("Regular hi Mary")); + .body(is(MicroProfileFaultToleranceRoutes.RESULT)); + } + + @Test + public void testCamelMicroProfileFaultToleranceInheritErrorHandler() { + RestAssured.post("/microprofile-fault-tolerance/inheritErrorHandler") + .then() + .statusCode(204); } + public static String[] routeUris() { + return new String[] { + "faultToleranceWithFallback", + "faultToleranceWithBulkhead", + "faultToleranceWithTimeout", + "faultToleranceWithTimeoutCustomExecutor", + "fallbackBean", + "timeoutBean", + }; + } } diff --git a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthTest.java b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthTest.java index db79af1aecde..4c24962fd0c4 100644 --- a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthTest.java +++ b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroProfileHealthTest.java @@ -16,15 +16,10 @@ */ package org.apache.camel.quarkus.component.microprofile.it.health; -import java.util.List; -import java.util.concurrent.TimeUnit; - import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; -import io.restassured.path.json.JsonPath; import org.apache.camel.ServiceStatus; -import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; import static org.hamcrest.Matchers.contains; @@ -165,66 +160,4 @@ public void testRouteStoppedDownStatus() { .statusCode(204); } } - - @Test - public void testFailureThreshold() { - try { - RestAssured.given() - .queryParam("healthCheckEnabled", "true") - .post("/microprofile-health/failure-threshold") - .then() - .statusCode(204); - - // Configured failure threshold and interval should allow the initial health state be UP - RestAssured.when().get("/q/health").then() - .contentType(ContentType.JSON) - .header("Content-Type", containsString("charset=UTF-8")) - .body("status", is("UP"), - "checks.findAll { it.name == 'failure-threshold' }.status.unique()", contains("UP")); - - // Poll the health endpoint until the threshold / interval is exceeded and the health state transitions to DOWN - Awaitility.await().atMost(10, TimeUnit.SECONDS).pollDelay(50, TimeUnit.MILLISECONDS).until(() -> { - JsonPath result = RestAssured.when().get("/q/health").then() - .contentType(ContentType.JSON) - .header("Content-Type", containsString("charset=UTF-8")) - .extract() - .jsonPath(); - - String status = result.getString("status"); - List routeStatus = result.getList("checks.findAll { it.name == 'failure-threshold' }.status.unique()"); - return status.equals("DOWN") && routeStatus.contains("DOWN"); - }); - - RestAssured.given() - .queryParam("returnStatusUp", true) - .post("/microprofile-health/failure-threshold/return/status") - .then() - .statusCode(204); - - // Try again with a poll delay > the failure interval and wait for the health state to transition to UP - Awaitility.await().atMost(10, TimeUnit.SECONDS).pollDelay(50, TimeUnit.MILLISECONDS).until(() -> { - JsonPath result = RestAssured.when().get("/q/health").then() - .contentType(ContentType.JSON) - .header("Content-Type", containsString("charset=UTF-8")) - .extract() - .jsonPath(); - - String status = result.getString("status"); - List routeStatus = result.getList("checks.findAll { it.name == 'failure-threshold' }.status.unique()"); - return status.equals("UP") && routeStatus.contains("UP"); - }); - } finally { - RestAssured.given() - .queryParam("returnStatusUp", false) - .post("/microprofile-health/failure-threshold/return/status") - .then() - .statusCode(204); - - RestAssured.given() - .queryParam("healthCheckEnabled", "false") - .post("/microprofile-health/failure-threshold") - .then() - .statusCode(204); - } - } } diff --git a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroprofileHealthIT.java b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroprofileHealthIT.java index 9d3e33bf86ad..7df16a79cc30 100644 --- a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroprofileHealthIT.java +++ b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/health/MicroprofileHealthIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.microprofile.it.health; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MicroprofileHealthIT extends MicroProfileHealthTest { } diff --git a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/metrics/MicroprofileMetricsIT.java b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/metrics/MicroprofileMetricsIT.java index f594fcd6fcb0..8c5123d5912e 100644 --- a/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/metrics/MicroprofileMetricsIT.java +++ b/integration-tests/microprofile/src/test/java/org/apache/camel/quarkus/component/microprofile/it/metrics/MicroprofileMetricsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.microprofile.it.metrics; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MicroprofileMetricsIT extends MicroProfileMetricsTest { } diff --git a/integration-tests/minio/pom.xml b/integration-tests/minio/pom.xml index eca8e36b6c3c..051bd0e1035c 100644 --- a/integration-tests/minio/pom.xml +++ b/integration-tests/minio/pom.xml @@ -60,6 +60,17 @@ org.testcontainers testcontainers test + + + junit + junit + + + + + io.quarkus + quarkus-junit4-mock + test diff --git a/integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioIT.java b/integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioIT.java index f5d78ca9ff80..5a57f4b8cb4a 100644 --- a/integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioIT.java +++ b/integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.minio.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MinioIT extends MinioTest { } diff --git a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpIT.java b/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpIT.java index f79e0ba0e120..b027c474dab9 100644 --- a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpIT.java +++ b/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.mllp.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MllpIT extends MllpTest { } diff --git a/integration-tests/msv/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvIT.java b/integration-tests/msv/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvIT.java index 016fc0ceef9a..b7ef9d636e5f 100644 --- a/integration-tests/msv/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvIT.java +++ b/integration-tests/msv/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.msv.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MsvIT extends MsvTest { } diff --git a/integration-tests/mustache/src/test/java/org/apache/camel/quarkus/component/mustache/it/MustacheIT.java b/integration-tests/mustache/src/test/java/org/apache/camel/quarkus/component/mustache/it/MustacheIT.java index 595475a6dbec..fd6bcff76bf5 100644 --- a/integration-tests/mustache/src/test/java/org/apache/camel/quarkus/component/mustache/it/MustacheIT.java +++ b/integration-tests/mustache/src/test/java/org/apache/camel/quarkus/component/mustache/it/MustacheIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.mustache.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class MustacheIT extends MustacheTest { } diff --git a/integration-tests/mybatis/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MyBatisIT.java b/integration-tests/mybatis/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MyBatisIT.java index a54cc94dc88f..5fe3170c5b3a 100644 --- a/integration-tests/mybatis/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MyBatisIT.java +++ b/integration-tests/mybatis/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MyBatisIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.mybatis.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class MyBatisIT extends MyBatisTest { } diff --git a/integration-tests/nagios/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosIT.java b/integration-tests/nagios/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosIT.java index 1b0357d3543d..fc2102fefdea 100644 --- a/integration-tests/nagios/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosIT.java +++ b/integration-tests/nagios/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.nagios.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NagiosIT extends NagiosTest { } diff --git a/integration-tests/nats/pom.xml b/integration-tests/nats/pom.xml index 81e707ca291d..6f9e7650069a 100644 --- a/integration-tests/nats/pom.xml +++ b/integration-tests/nats/pom.xml @@ -68,6 +68,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsIT.java b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsIT.java index d82b9fe8f8a4..ec962ad81a7c 100644 --- a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsIT.java +++ b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.nats.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NatsIT extends NatsTest { } diff --git a/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/tcp/NettyTcpIT.java b/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/tcp/NettyTcpIT.java index 060273aba208..45c64e26ef63 100644 --- a/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/tcp/NettyTcpIT.java +++ b/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/tcp/NettyTcpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.netty.tcp; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NettyTcpIT extends NettyTcpTest { } diff --git a/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/udp/NettyUdpIT.java b/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/udp/NettyUdpIT.java index 9673af06d8c5..504fe5bece8d 100644 --- a/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/udp/NettyUdpIT.java +++ b/integration-tests/netty/src/test/java/org/apache/camel/quarkus/component/netty/udp/NettyUdpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.netty.udp; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NettyUdpIT extends NettyUdpTest { } diff --git a/integration-tests/nitrite/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteIT.java b/integration-tests/nitrite/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteIT.java index 09330701e4d2..e96374e19775 100644 --- a/integration-tests/nitrite/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteIT.java +++ b/integration-tests/nitrite/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.nitrite.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NitriteIT extends NitriteTest { } diff --git a/integration-tests/nsq/pom.xml b/integration-tests/nsq/pom.xml index 6ab7b54b8fdf..affa2f266122 100644 --- a/integration-tests/nsq/pom.xml +++ b/integration-tests/nsq/pom.xml @@ -64,6 +64,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/nsq/src/test/java/org/apache/camel/quarkus/component/nsq/it/NsqIT.java b/integration-tests/nsq/src/test/java/org/apache/camel/quarkus/component/nsq/it/NsqIT.java index f62b36b201ad..625337671e76 100644 --- a/integration-tests/nsq/src/test/java/org/apache/camel/quarkus/component/nsq/it/NsqIT.java +++ b/integration-tests/nsq/src/test/java/org/apache/camel/quarkus/component/nsq/it/NsqIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.nsq.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class NsqIT extends NsqTest { } diff --git a/integration-tests/oaipmh/src/test/java/org/apache/camel/quarkus/component/oaipmh/it/OaipmhIT.java b/integration-tests/oaipmh/src/test/java/org/apache/camel/quarkus/component/oaipmh/it/OaipmhIT.java index 9519f66565b7..a84ca0d228fc 100644 --- a/integration-tests/oaipmh/src/test/java/org/apache/camel/quarkus/component/oaipmh/it/OaipmhIT.java +++ b/integration-tests/oaipmh/src/test/java/org/apache/camel/quarkus/component/oaipmh/it/OaipmhIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.oaipmh.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OaipmhIT extends OaipmhTest { } 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 index 67e6935de214..b96805af13be 100644 --- 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 @@ -16,11 +16,11 @@ */ package org.apache.camel.quarkus.component.olingo4.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.Disabled; @Disabled("https://github.com/apache/camel-quarkus/issues/1972") -@NativeImageTest +@QuarkusIntegrationTest class Olingo4IT extends Olingo4Test { } diff --git a/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/OpenApiRoutes.java b/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/OpenApiRoutes.java index 8e6a1e332fd0..6176af929ee5 100644 --- a/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/OpenApiRoutes.java +++ b/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/OpenApiRoutes.java @@ -60,13 +60,11 @@ public void configure() throws Exception { rest("/api") .get("/fruits/list") + .type(Fruit.class) .description("Gets a list of fruits") .id("list") .produces(MediaType.APPLICATION_JSON) - .route() - .setBody().constant(getFruits()) - .marshal().json() - .endRest() + .to("direct:fruits") .get("/operation/spec") .param() @@ -101,20 +99,14 @@ public void configure() throws Exception { .code("error") .message("Response Error") .endResponseMessage() - .route() - .setBody().constant("GET: /operation/spec") - .endRest() + .to("direct:echoMethodPath") .get("/security/scopes") .security("OAuth2", "scope1,scope2,scope3") - .route() - .setBody().constant("GET: /security/scopes") - .endRest() + .to("direct:echoMethodPath") .get("/security/api/key") - .route() - .setBody().constant("GET: /security/api/key/header") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .apiKey("X-API-Key", "The API key") .withHeader("X-API-KEY") @@ -122,17 +114,13 @@ public void configure() throws Exception { .end() .get("/security/basic/auth") - .route() - .setBody().constant("/security/basic/auth") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .basicAuth("basicAuth", "Basic Authentication") .end() .get("/security/oauth2") - .route() - .setBody().constant("/security/oauth2") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .oauth2("oauth2", "OAuth2 Authentication") .flow("implicit") @@ -146,35 +134,36 @@ public void configure() throws Exception { if (openApiVersion.equals("3.0.0")) { rest() .get("/security/bearer/token") - .route() - .setBody().constant("/security/bearer/token") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .bearerToken("bearerAuth", "Bearer Token Authentication") .end() .get("/security/mutual/tls") - .route() - .setBody().constant("/security/mutual/tls") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .mutualTLS("mutualTLS") .end() .get("/security/openid") - .route() - .setBody().constant("/security/openid") - .endRest() + .to("direct:echoMethodPath") .securityDefinitions() .openIdConnect("openId", "https://secure.apache.org/fake/openid-configuration") .end(); } + + from("direct:fruits") + .setBody().constant(getFruits()) + .marshal().json(); + + from("direct:echoMethodPath") + .setBody().simple("${header.CamelHttpMethod}: ${header.CamelHttpPath}"); } private Set getFruits() { Set fruits = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>())); - fruits.add(new Fruit("Apple", "Winter fruit")); - fruits.add(new Fruit("Pineapple", "Tropical fruit")); + fruits.add(new Fruit("Apple", "Winter fruit", 10)); + fruits.add(new Fruit("Pineapple", "Tropical fruit", 20)); return fruits; } } diff --git a/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/model/Fruit.java b/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/model/Fruit.java index 44ee9a135809..52117e7fb82a 100644 --- a/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/model/Fruit.java +++ b/integration-tests/openapi-java/src/main/java/org/apache/camel/quarkus/component/openapijava/it/model/Fruit.java @@ -23,9 +23,11 @@ public class Fruit { public String name; public String description; + public Integer num; - public Fruit(String name, String description) { + public Fruit(String name, String description, Integer num) { this.name = name; this.description = description; + this.num = num; } } diff --git a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/common/OpenApiTest.java b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/common/OpenApiTest.java index 4f9726578526..352851e43e35 100644 --- a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/common/OpenApiTest.java +++ b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/common/OpenApiTest.java @@ -200,9 +200,7 @@ public void openApiVendorExtensions(OpenApiContentType contentType) { .then() .contentType(ContentType.JSON) .statusCode(200) - .body( - containsString("x-camelContextId"), - containsString("x-routeId")); + .body(containsString("x-camelContextId")); } @Test diff --git a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2IT.java b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2IT.java index 3ae19562e81d..5ea4a935b541 100644 --- a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2IT.java +++ b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2IT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.openapijava.it.v2; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; -@NativeImageTest +@QuarkusIntegrationTest @EnabledIfSystemProperty(named = "test.profile", matches = "openapi.v2") class OpenApiV2IT extends OpenApiV2Test { } diff --git a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2Test.java b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2Test.java index 0b57703900bf..d59ac569448c 100644 --- a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2Test.java +++ b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v2/OpenApiV2Test.java @@ -136,4 +136,20 @@ public void openApiDefinition(OpenApiContentType contentType) { "basePath", is("/api"), "schemes", contains("http", "https")); } + + @ParameterizedTest + @EnumSource(OpenApiContentType.class) + public void openApiDefinitions(OpenApiContentType contentType) { + RestAssured.given() + .header("Accept", contentType.getMimeType()) + .get("/openapi") + .then() + .contentType(ContentType.JSON) + .statusCode(200) + .body( + "definitions.Fruit.type", is("object"), + "definitions.Fruit.properties.name.type", is("string"), + "definitions.Fruit.properties.description.type", is("string"), + "definitions.Fruit.properties.num.type", is("integer")); + } } diff --git a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3IT.java b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3IT.java index 3a310783ab8a..8533b0127265 100644 --- a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3IT.java +++ b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3IT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.openapijava.it.v3; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; -@NativeImageTest +@QuarkusIntegrationTest @EnabledIfSystemProperty(named = "test.profile", matches = "openapi.v3") class OpenApiV3IT extends OpenApiV3Test { } diff --git a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3Test.java b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3Test.java index 463b943e1f36..0f7159b0d334 100644 --- a/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3Test.java +++ b/integration-tests/openapi-java/src/test/java/org/apache/camel/quarkus/component/openapijava/it/v3/OpenApiV3Test.java @@ -92,4 +92,20 @@ public void openApiServers(OpenApiContentType contentType) { .statusCode(200) .body("servers[0].url", is("http://localhost:8080/api")); } + + @ParameterizedTest + @EnumSource(OpenApiContentType.class) + public void openApiComponents(OpenApiContentType contentType) { + RestAssured.given() + .header("Accept", contentType.getMimeType()) + .get("/openapi") + .then() + .contentType(ContentType.JSON) + .statusCode(200) + .body( + "components.schemas.Fruit.type", is("object"), + "components.schemas.Fruit.properties.name.type", is("string"), + "components.schemas.Fruit.properties.description.type", is("string"), + "components.schemas.Fruit.properties.num.type", is("integer")); + } } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderSnapshotIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderSnapshotIT.java index b3c0a1327ca2..c0afea8cba0a 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderSnapshotIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderSnapshotIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackCinderSnapshotIT extends OpenstackCinderSnapshotTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderVolumeIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderVolumeIT.java index 3b0ab445a497..a3c9aa69c12d 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderVolumeIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackCinderVolumeIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackCinderVolumeIT extends OpenstackCinderVolumeTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackGlanceIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackGlanceIT.java index 2e2e50b7d484..1385514ed586 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackGlanceIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackGlanceIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackGlanceIT extends OpenstackGlanceTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneDomainIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneDomainIT.java index 0a54780cf1cf..ad302454f96b 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneDomainIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneDomainIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackKeystoneDomainIT extends OpenstackKeystoneDomainTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneGroupIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneGroupIT.java index 8d031f9f13d3..672458916ae1 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneGroupIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneGroupIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackKeystoneGroupIT extends OpenstackKeystoneGroupTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneProjectIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneProjectIT.java index 90db51d47bc6..ac7578e9f330 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneProjectIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneProjectIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackKeystoneProjectIT extends OpenstackKeystoneProjectTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneRegionIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneRegionIT.java index ca8fd413b4e3..81c2ae513eaa 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneRegionIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneRegionIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackKeystoneRegionIT extends OpenstackKeystoneRegionTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneUserIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneUserIT.java index e149682e15c3..4b6217650d89 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneUserIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackKeystoneUserIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackKeystoneUserIT extends OpenstackKeystoneUserTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronNetworkIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronNetworkIT.java index d33e0c16e5c6..c825b17c543c 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronNetworkIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronNetworkIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackNeutronNetworkIT extends OpenstackNeutronNetworkTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronPortIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronPortIT.java index 8376c3ff3431..adbb31b67bc3 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronPortIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronPortIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackNeutronPortIT extends OpenstackNeutronPortTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronSubnetIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronSubnetIT.java index 9bc706f079a3..1c1c48f34091 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronSubnetIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNeutronSubnetIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackNeutronSubnetIT extends OpenstackNeutronSubnetTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaFlavorIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaFlavorIT.java index 70fb02afec8e..996011713097 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaFlavorIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaFlavorIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackNovaFlavorIT extends OpenstackNovaFlavorTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaServerIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaServerIT.java index ff8f3930226e..41ccc3946f38 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaServerIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackNovaServerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackNovaServerIT extends OpenstackNovaServerTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftContainerIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftContainerIT.java index 43a9cbab8c9e..be18473ee6f4 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftContainerIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftContainerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackSwiftContainerIT extends OpenstackSwiftContainerTest { } diff --git a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftObjectIT.java b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftObjectIT.java index aa76a00eb37d..460a2a9ecd7e 100644 --- a/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftObjectIT.java +++ b/integration-tests/openstack/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackSwiftObjectIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.openstack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenstackSwiftObjectIT extends OpenstackSwiftObjectTest { } diff --git a/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryIT.java b/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryIT.java index b53566f76518..823120c0c185 100644 --- a/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryIT.java +++ b/integration-tests/opentelemetry/src/test/java/org/apache/camel/quarkus/component/opentelemetry/it/OpenTelemetryIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.opentelemetry.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenTelemetryIT extends OpenTelemetryTest { } diff --git a/integration-tests/opentracing/src/test/java/org/apache/camel/quarkus/component/opentracing/it/OpenTracingIT.java b/integration-tests/opentracing/src/test/java/org/apache/camel/quarkus/component/opentracing/it/OpenTracingIT.java index 05e2bd4075b4..20960a3eb19a 100644 --- a/integration-tests/opentracing/src/test/java/org/apache/camel/quarkus/component/opentracing/it/OpenTracingIT.java +++ b/integration-tests/opentracing/src/test/java/org/apache/camel/quarkus/component/opentracing/it/OpenTracingIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.opentracing.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OpenTracingIT extends OpenTracingTest { } diff --git a/integration-tests/optaplanner/src/test/java/org/apache/camel/quarkus/component/optaplanner/it/OptaplannerIT.java b/integration-tests/optaplanner/src/test/java/org/apache/camel/quarkus/component/optaplanner/it/OptaplannerIT.java index 81cc65d0937b..ccb592c74ec4 100644 --- a/integration-tests/optaplanner/src/test/java/org/apache/camel/quarkus/component/optaplanner/it/OptaplannerIT.java +++ b/integration-tests/optaplanner/src/test/java/org/apache/camel/quarkus/component/optaplanner/it/OptaplannerIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.optaplanner.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class OptaplannerIT extends OptaplannerTest { } diff --git a/integration-tests/paho-mqtt5/pom.xml b/integration-tests/paho-mqtt5/pom.xml index 6f0cf6c6a685..02a76fbeff9e 100644 --- a/integration-tests/paho-mqtt5/pom.xml +++ b/integration-tests/paho-mqtt5/pom.xml @@ -55,6 +55,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5IT.java b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5IT.java index 5a8ce02b3ac2..6d34792faaae 100644 --- a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5IT.java +++ b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5IT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.paho.mqtt5.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PahoMqtt5IT extends PahoMqtt5Test { } diff --git a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java index 845ec2598dd4..e5e84099d013 100644 --- a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java +++ b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java @@ -26,11 +26,13 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; 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.ConsumerTemplate; import org.apache.camel.ProducerTemplate; +import org.eclipse.paho.client.mqttv3.MqttException; @Path("/paho") @ApplicationScoped @@ -73,4 +75,24 @@ public Response producePahoWsMessage(@PathParam("queueName") String queueName, S producerTemplate.sendBody("paho:" + queueName + "?retained=true&brokerUrl={{broker-url.ws}}", message); return Response.created(new URI("https://camel.apache.org/")).build(); } + + /** + * This method simulates the case where an MqqtException is thrown during a reconnection attempt + * in the MqttCallbackExtended instance set by the PahoConsumer on endpoint startup. + */ + @Path("/mqttExceptionDuringReconnectShouldSucceed") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String mqttExceptionDuringReconnectShouldSucceed() { + MqttException mqex = new MqttException(MqttException.REASON_CODE_BROKER_UNAVAILABLE); + return mqex.getMessage(); + } + + @Path("/readThenWriteWithFilePersistenceShouldSucceed") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String readThenWriteWithFilePersistenceShouldSucceed(@QueryParam("message") String message) throws Exception { + producerTemplate.requestBody("paho:withFilePersistence?retained=true&cleanSession=false&persistence=FILE", message); + return consumerTemplate.receiveBody("paho:withFilePersistence?cleanSession=false&persistence=FILE", 5000, String.class); + } } diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java index 87597c455127..48acc678065c 100644 --- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java +++ b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.paho.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PahoIT extends PahoTest { } diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java index 328cba040dcf..096aac392875 100644 --- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java +++ b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTest.java @@ -22,10 +22,12 @@ import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.apache.camel.quarkus.test.support.activemq.ActiveMQTestResource; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.StringRegularExpression.matchesRegex; @QuarkusTest @QuarkusTestResource(initArgs = { @@ -53,4 +55,23 @@ public void sendReceive(String protocol) { .statusCode(200) .body(is(message)); } + + @Test + public void mqttExceptionDuringReconnectShouldSucceed() { + RestAssured.get("/paho/mqttExceptionDuringReconnectShouldSucceed") + .then() + .statusCode(200) + .body(matchesRegex(".+")); + } + + @Test + public void readThenWriteWithFilePersistenceShouldSucceed() { + String message = "readThenWriteWithFilePersistenceShouldSucceed message content: 762e6af1-3ec7-40e0-9271-0c98a1001728"; + RestAssured.given() + .queryParam("message", message) + .get("/paho/readThenWriteWithFilePersistenceShouldSucceed") + .then() + .statusCode(200) + .body(is(message)); + } } diff --git a/integration-tests/pdf/src/test/java/org/apache/camel/quarkus/component/pdf/it/PdfIT.java b/integration-tests/pdf/src/test/java/org/apache/camel/quarkus/component/pdf/it/PdfIT.java index 15b137b57ba0..aa4def6fdf59 100644 --- a/integration-tests/pdf/src/test/java/org/apache/camel/quarkus/component/pdf/it/PdfIT.java +++ b/integration-tests/pdf/src/test/java/org/apache/camel/quarkus/component/pdf/it/PdfIT.java @@ -16,11 +16,11 @@ */ package org.apache.camel.quarkus.component.pdf.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; -@NativeImageTest +@QuarkusIntegrationTest //https://github.com/apache/camel-quarkus/issues/3417 @DisabledOnOs(OS.MAC) class PdfIT extends PdfTest { diff --git a/integration-tests/pg-replication-slot/pom.xml b/integration-tests/pg-replication-slot/pom.xml index 5dc8b643fff6..44749e3b765d 100644 --- a/integration-tests/pg-replication-slot/pom.xml +++ b/integration-tests/pg-replication-slot/pom.xml @@ -64,6 +64,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotIT.java b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotIT.java index 709c655db41d..8ad982388815 100644 --- a/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotIT.java +++ b/integration-tests/pg-replication-slot/src/test/java/org/apache/camel/quarkus/component/pg/replication/slot/it/PgReplicationSlotIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.pg.replication.slot.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PgReplicationSlotIT extends PgReplicationSlotTest { } diff --git a/integration-tests/pgevent/pom.xml b/integration-tests/pgevent/pom.xml index 6d8c03d8d97e..dd0d7376aed1 100644 --- a/integration-tests/pgevent/pom.xml +++ b/integration-tests/pgevent/pom.xml @@ -67,6 +67,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/pgevent/src/test/java/org/apache/camel/quarkus/component/pgevent/it/PgeventIT.java b/integration-tests/pgevent/src/test/java/org/apache/camel/quarkus/component/pgevent/it/PgeventIT.java index 9a43bbfce029..c614e99dcb11 100644 --- a/integration-tests/pgevent/src/test/java/org/apache/camel/quarkus/component/pgevent/it/PgeventIT.java +++ b/integration-tests/pgevent/src/test/java/org/apache/camel/quarkus/component/pgevent/it/PgeventIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.pgevent.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PgeventIT extends PgeventTest { } diff --git a/integration-tests/platform-http/pom.xml b/integration-tests/platform-http/pom.xml index 172b01a14c94..ea7a1626c152 100644 --- a/integration-tests/platform-http/pom.xml +++ b/integration-tests/platform-http/pom.xml @@ -31,6 +31,10 @@ Integration tests for Camel Quarkus platform-http extension + + org.apache.camel.quarkus + camel-quarkus-direct + org.apache.camel.quarkus camel-quarkus-platform-http @@ -108,6 +112,19 @@ + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-log-deployment diff --git a/integration-tests/platform-http/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpRouteBuilder.java b/integration-tests/platform-http/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpRouteBuilder.java index 0b315d1f0613..2003c6e599c3 100644 --- a/integration-tests/platform-http/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpRouteBuilder.java +++ b/integration-tests/platform-http/src/main/java/org/apache/camel/quarkus/component/platform/http/it/PlatformHttpRouteBuilder.java @@ -48,14 +48,16 @@ public void configure() { rest() .get("/platform-http/rest-get") - .route() - .setBody(constant("GET: /rest-get")) - .endRest() + .to("direct:echoMethodPath") .post("/platform-http/rest-post") .consumes("text/plain").produces("text/plain") - .route() - .setBody(constant("POST: /rest-post")) - .endRest(); + .to("direct:echoMethodPath"); + + from("direct:echoMethodPath") + .setBody().simple("${header.CamelHttpMethod}: ${header.CamelHttpPath}"); + + from("direct:greet") + .setBody().simple("Hello ${header.name}"); from("platform-http:/registry/inspect") .process(e -> { @@ -149,9 +151,7 @@ public void configure() { rest() .get("/platform-http/hello-by-name/{name}") .produces("text/plain") - .route() - .setBody(e -> "Hello " + e.getIn().getHeader("name", String.class)) - .endRest(); + .to("direct:greet"); // Webhook tests from("platform-http:/platform-http/webhookpath") diff --git a/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpIT.java b/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpIT.java index 73227f7cefea..34e6a9d20b62 100644 --- a/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpIT.java +++ b/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.http.server.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PlatformHttpIT extends PlatformHttpTest { } diff --git a/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpTest.java b/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpTest.java index 6a782c7a03f0..84d442b1b6f5 100644 --- a/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpTest.java +++ b/integration-tests/platform-http/src/test/java/org/apache/camel/quarkus/component/http/server/it/PlatformHttpTest.java @@ -69,11 +69,11 @@ public void basic() { @Test public void rest() throws Throwable { RestAssured.get("/my-context/platform-http/rest-get") - .then().body(equalTo("GET: /rest-get")); + .then().body(equalTo("GET: /my-context/platform-http/rest-get")); RestAssured.given() .contentType("text/plain") .post("/my-context/platform-http/rest-post") - .then().body(equalTo("POST: /rest-post")); + .then().body(equalTo("POST: /my-context/platform-http/rest-post")); } @Test diff --git a/integration-tests/protobuf/src/test/java/org/apache/camel/quarkus/component/protobuf/it/ProtobufIT.java b/integration-tests/protobuf/src/test/java/org/apache/camel/quarkus/component/protobuf/it/ProtobufIT.java index 9f84c2ae6d01..5e734c77d60e 100644 --- a/integration-tests/protobuf/src/test/java/org/apache/camel/quarkus/component/protobuf/it/ProtobufIT.java +++ b/integration-tests/protobuf/src/test/java/org/apache/camel/quarkus/component/protobuf/it/ProtobufIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.protobuf.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ProtobufIT extends ProtobufTest { } diff --git a/integration-tests/pubnub/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubIT.java b/integration-tests/pubnub/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubIT.java index 56966e5085ca..2551a41afd73 100644 --- a/integration-tests/pubnub/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubIT.java +++ b/integration-tests/pubnub/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.pubnub.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class PubnubIT extends PubnubTest { } diff --git a/integration-tests/quartz/pom.xml b/integration-tests/quartz/pom.xml index 8370af4d89a5..60636fa64887 100644 --- a/integration-tests/quartz/pom.xml +++ b/integration-tests/quartz/pom.xml @@ -47,6 +47,26 @@ io.quarkus quarkus-resteasy + + io.quarkus + quarkus-resteasy-jackson + + + io.quarkus + quarkus-jdbc-postgresql + + + io.quarkus + quarkus-jdbc-h2 + + + io.quarkus + quarkus-agroal + + + io.quarkus + quarkus-flyway + @@ -59,6 +79,16 @@ rest-assured test + + org.awaitility + awaitility + test + + + org.apache.camel.quarkus + camel-quarkus-integration-test-support + test + @@ -140,6 +170,17 @@ + + skip-testcontainers-tests + + + skip-testcontainers-tests + + + + true + + diff --git a/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzResource.java b/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzResource.java index 1abac2f49aec..f0e6c1960bb4 100644 --- a/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzResource.java +++ b/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzResource.java @@ -16,21 +16,74 @@ */ package org.apache.camel.quarkus.component.quartz.it; +import java.util.Map; +import java.util.stream.Collectors; + import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; +import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; +import org.apache.camel.Exchange; +import org.apache.camel.component.quartz.QuartzComponent; +import org.apache.camel.util.CollectionHelper; +import org.quartz.CronTrigger; @Path("/quartz") public class QuartzResource { + @Inject + CamelContext camelContext; + @Inject ConsumerTemplate consumerTemplate; + @javax.enterprise.inject.Produces + @Singleton + @Named("quartzFromProperties") + public QuartzComponent createQuartzFromProperties() { + return new QuartzComponent(); + } + + @javax.enterprise.inject.Produces + @Singleton + @Named("quartzNodeA") + public QuartzComponent createQuartzNodeA() { + return new QuartzComponent(); + } + + @javax.enterprise.inject.Produces + @Singleton + @Named("quartzNodeB") + public QuartzComponent createQuartzNodeB() { + return new QuartzComponent(); + } + + @javax.enterprise.inject.Produces + @Singleton + @Named("quartzNodeC") + public QuartzComponent createQuartzNodeC() { + return new QuartzComponent(); + } + + @Path("/getNameAndResult") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Map getSchedulerNameAndResult(@QueryParam("componentName") String componentName, + @QueryParam("fromEndpoint") String fromEndpoint) throws Exception { + + QuartzComponent comp = camelContext.getComponent(componentName, QuartzComponent.class); + + return CollectionHelper.mapOf("name", comp.getScheduler().getSchedulerName().replaceFirst(camelContext.getName(), ""), + "result", consumerTemplate.receiveBody("seda:" + fromEndpoint + "-result", 5000, String.class)); + } + @Path("/get") @GET @Produces(MediaType.TEXT_PLAIN) @@ -38,4 +91,25 @@ public String getSchedulerResult(@QueryParam("fromEndpoint") String fromEndpoint return consumerTemplate.receiveBody("seda:" + fromEndpoint + "-result", 5000, String.class); } + @Path("/getHeaders") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Map getHeaders(@QueryParam("fromEndpoint") String fromEndpoint) throws Exception { + Exchange exchange = consumerTemplate.receive("seda:" + fromEndpoint + "-result", 5000); + + return exchange.getMessage().getHeaders().entrySet().stream().filter(e -> e.getValue() instanceof String) + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().toString())); + } + + @Path("/getMisfire") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Map getMisfire(@QueryParam("fromEndpoint") String fromEndpoint) throws Exception { + Exchange exchange = consumerTemplate.receive("seda:" + fromEndpoint + "-result", 5000); + + System.out.println(exchange.getMessage().getHeaders().keySet().stream().collect(Collectors.joining(","))); + return CollectionHelper.mapOf("timezone", + exchange.getMessage().getHeader("trigger", CronTrigger.class).getTimeZone().getID(), + "misfire", exchange.getMessage().getHeader("trigger", CronTrigger.class).getMisfireInstruction() + ""); + } } diff --git a/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzRoutes.java b/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzRoutes.java index d836ee515996..2b1a42722dc3 100644 --- a/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzRoutes.java +++ b/integration-tests/quartz/src/main/java/org/apache/camel/quarkus/component/quartz/it/QuartzRoutes.java @@ -22,12 +22,38 @@ public class QuartzRoutes extends RouteBuilder { @Override public void configure() throws Exception { - from("quartz:0/1 * * * * ?") + + from("quartz:quartz/1 * * * * ?") .setBody(constant("Hello Camel Quarkus quartz")) .to("seda:quartz-result"); from("cron:tab?schedule=0/1 * * * * ?") .setBody(constant("Hello Camel Quarkus cron")) .to("seda:cron-result"); + + from("quartzFromProperties:properties/* 1 * * * ") + .setBody(constant("Hello Camel Quarkus Quartz Properties")) + .to("seda:quartz-properties-result"); + + // cron trigger + from("quartz://cronTrigger?cron=0/1+*+*+*+*+?&trigger.timeZone=Europe/Stockholm") + .setBody(constant("Hello Camel Quarkus Quartz From Cron Trigger")) + .to("seda:quartz-cron-trigger-result"); + + from("quartz://misfire?cron=0/1+*+*+*+*+?&trigger.timeZone=Europe/Stockholm&trigger.misfireInstruction=2") + .to("seda:quartz-cron-misfire-result"); + + from("quartzNodeA:nodeA/1 * * * * ") + .setBody(constant("Hello Camel Quarkus Quartz NodeA")) + .to("seda:quartz-nodeA-result"); + + from("quartzNodeB:nodeB/1 * * * * ") + .setBody(constant("Hello Camel Quarkus Quartz NodeB")) + .to("seda:quartz-nodeB-result"); + + from("quartzNodeC:nodeC/1 * * * * ") + .setBody(constant("Hello Camel Quarkus Quartz NodeC")) + .to("seda:quartz-nodeC-result"); + } } diff --git a/integration-tests/quartz/src/main/resources/application.properties b/integration-tests/quartz/src/main/resources/application.properties new file mode 100644 index 000000000000..0805de0517e2 --- /dev/null +++ b/integration-tests/quartz/src/main/resources/application.properties @@ -0,0 +1,47 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +camel.component.quartzNodeA.propertiesFile=quartz-node-A.properties +camel.component.quartzNodeB.propertiesFile=quartz-node-B.properties +camel.component.quartzFromProperties.propertiesFile=quartz.properties + +quarkus.native.resources.includes = quartz*.properties + +quarkus.datasource.devservices.enabled = true + +#postgresql db +quarkus.datasource.db-kind=postgresql +# flyway to create Quartz tables +quarkus.flyway.connect-retries=10 +quarkus.flyway.table=flyway_quarkus_history +quarkus.flyway.migrate-at-start=true +quarkus.flyway.baseline-on-migrate=true +quarkus.flyway.baseline-version=1.0 +quarkus.flyway.baseline-description=Quartz + +# h2 db +quarkus.datasource.h2ds.db-kind=h2 +# flyway to create Quartz tables +quarkus.flyway.h2ds.connect-retries=10 +quarkus.flyway.h2ds.table=flyway_quarkus_history +quarkus.flyway.h2ds.migrate-at-start=true +quarkus.flyway.h2ds.baseline-on-migrate=true +quarkus.flyway.h2ds.baseline-version=1.0 +quarkus.flyway.h2ds.baseline-description=Quartz + +#fixed port is required to use quarz.properties for DS configuration +quarkus.datasource.devservices.port = 5432 \ No newline at end of file diff --git a/integration-tests/quartz/src/main/resources/db/migration/V1.0.1__QuarkusQuartz.sql b/integration-tests/quartz/src/main/resources/db/migration/V1.0.1__QuarkusQuartz.sql new file mode 100644 index 000000000000..e62f739fa492 --- /dev/null +++ b/integration-tests/quartz/src/main/resources/db/migration/V1.0.1__QuarkusQuartz.sql @@ -0,0 +1,207 @@ +-- +-- 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. +-- + +CREATE TABLE QRTZ_JOB_DETAILS +( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BOOL NOT NULL, + IS_NONCONCURRENT BOOL NOT NULL, + IS_UPDATE_DATA BOOL NOT NULL, + REQUESTS_RECOVERY BOOL NOT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13, 4) NULL, + DEC_PROP_2 NUMERIC(13, 4) NULL, + BOOL_PROP_1 BOOL NULL, + BOOL_PROP_2 BOOL NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS +( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BYTEA NOT NULL, + PRIMARY KEY (SCHED_NAME, CALENDAR_NAME) +); + + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BOOL NULL, + REQUESTS_RECOVERY BOOL NULL, + PRIMARY KEY (SCHED_NAME, ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE +( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS +( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME, LOCK_NAME) +); + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY + ON QRTZ_JOB_DETAILS (SCHED_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP + ON QRTZ_JOB_DETAILS (SCHED_NAME, JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C + ON QRTZ_TRIGGERS (SCHED_NAME, CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME + ON QRTZ_TRIGGERS (SCHED_NAME, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_GROUP, TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); + + +COMMIT; \ No newline at end of file diff --git a/integration-tests/quartz/src/main/resources/quartz-node-A.properties b/integration-tests/quartz/src/main/resources/quartz-node-A.properties new file mode 100644 index 000000000000..3c54402c5338 --- /dev/null +++ b/integration-tests/quartz/src/main/resources/quartz-node-A.properties @@ -0,0 +1,62 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +#============================================================================ +# Configure Main Scheduler Properties +#============================================================================ + +org.quartz.jdbc.initialize-schema=always +org.quartz.scheduler.instanceName = NodeA +org.quartz.scheduler.instanceId = AUTO + +#============================================================================ +# Configure ThreadPool +#============================================================================ + +org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount = 25 +org.quartz.threadPool.threadPriority = 5 + +#============================================================================ +# Configure JobStore +#============================================================================ + +org.quartz.jobStore.misfireThreshold = 60000 + +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate +org.quartz.jobStore.useProperties = true +org.quartz.jobStore.dataSource = myDSA +org.quartz.jobStore.tablePrefix = QRTZ_ + +org.quartz.jobStore.isClustered = true +org.quartz.jobStore.clusterCheckinInterval = 500 + + +#============================================================================ +# Configure Datasources +#============================================================================ + +# datasource configuration +org.quartz.dataSource.myDSA.connectionProvider.class = org.apache.camel.quarkus.component.quartz.CamelQuarkusQuartzConnectionProvider + +# +#============================================================================ +# Disable JMX +#============================================================================ + +#com.mchange.v2.c3p0.management.ManagementCoordinator = com.mchange.v2.c3p0.management.NullManagementCoordinator \ No newline at end of file diff --git a/integration-tests/quartz/src/main/resources/quartz-node-B.properties b/integration-tests/quartz/src/main/resources/quartz-node-B.properties new file mode 100644 index 000000000000..210acdd676e1 --- /dev/null +++ b/integration-tests/quartz/src/main/resources/quartz-node-B.properties @@ -0,0 +1,63 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +#============================================================================ +# Configure Main Scheduler Properties +#============================================================================ + +org.quartz.jdbc.initialize-schema=always +org.quartz.scheduler.instanceName = NodeB +org.quartz.scheduler.instanceId = AUTO + +#============================================================================ +# Configure ThreadPool +#============================================================================ + +org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount = 25 +org.quartz.threadPool.threadPriority = 5 + +#============================================================================ +# Configure JobStore +#============================================================================ + +org.quartz.jobStore.misfireThreshold = 60000 + +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate +org.quartz.jobStore.useProperties = true +org.quartz.jobStore.dataSource = myDSB +org.quartz.jobStore.tablePrefix = QRTZ_ + +org.quartz.jobStore.isClustered = true +org.quartz.jobStore.clusterCheckinInterval = 500 + + +#============================================================================ +# Configure Datasources +#============================================================================ + +# datasource configuration +org.quartz.dataSource.myDSB.connectionProvider.class = org.apache.camel.quarkus.component.quartz.CamelQuarkusQuartzConnectionProvider +org.quartz.dataSource.myDSB.dataSourceName = h2ds + +# +#============================================================================ +# Disable JMX +#============================================================================ + +#com.mchange.v2.c3p0.management.ManagementCoordinator = com.mchange.v2.c3p0.management.NullManagementCoordinator \ No newline at end of file diff --git a/integration-tests/quartz/src/main/resources/quartz-node-C.properties b/integration-tests/quartz/src/main/resources/quartz-node-C.properties new file mode 100644 index 000000000000..11c2432ac7b9 --- /dev/null +++ b/integration-tests/quartz/src/main/resources/quartz-node-C.properties @@ -0,0 +1,67 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +#============================================================================ +# Configure Main Scheduler Properties +#============================================================================ + +org.quartz.jdbc.initialize-schema=always +org.quartz.scheduler.instanceName = NodeB +org.quartz.scheduler.instanceId = AUTO + +#============================================================================ +# Configure ThreadPool +#============================================================================ + +org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount = 25 +org.quartz.threadPool.threadPriority = 5 + +#============================================================================ +# Configure JobStore +#============================================================================ + +org.quartz.jobStore.misfireThreshold = 60000 + +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate +org.quartz.jobStore.useProperties = true +org.quartz.jobStore.dataSource = myDSC +org.quartz.jobStore.tablePrefix = QRTZ_ + +org.quartz.jobStore.isClustered = true +org.quartz.jobStore.clusterCheckinInterval = 500 + + +#============================================================================ +# Configure Datasources +#============================================================================ + +# datasource configuration +org.quartz.dataSource.myDSC.driver = org.postgresql.Driver + +# datasource configuration +org.quartz.dataSource.myDSC.URL=jdbc:postgresql://localhost:5432/default +org.quartz.dataSource.myDSC.user = quarkus +org.quartz.dataSource.myDSC.password = quarkus + +# +#============================================================================ +# Disable JMX +#============================================================================ + +#com.mchange.v2.c3p0.management.ManagementCoordinator = com.mchange.v2.c3p0.management.NullManagementCoordinator \ No newline at end of file diff --git a/integration-tests/kafka-oauth/src/test/resources/keycloak/scripts/keycloak-ssl.cli b/integration-tests/quartz/src/main/resources/quartz.properties similarity index 68% rename from integration-tests/kafka-oauth/src/test/resources/keycloak/scripts/keycloak-ssl.cli rename to integration-tests/quartz/src/main/resources/quartz.properties index 405f1c826b8c..caf79895b34a 100644 --- a/integration-tests/kafka-oauth/src/test/resources/keycloak/scripts/keycloak-ssl.cli +++ b/integration-tests/quartz/src/main/resources/quartz.properties @@ -14,7 +14,13 @@ ## See the License for the specific language governing permissions and ## limitations under the License. ## --------------------------------------------------------------------------- -embed-server --server-config=standalone-ha.xml -/core-service=management/security-realm=UndertowRealm:add() -/core-service=management/security-realm=UndertowRealm/server-identity=ssl:add(keystore-path=certs/keycloak.server.keystore.p12, keystore-relative-to=jboss.server.config.dir, keystore-password=changeit) -/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm, value=UndertowRealm) + +org.quartz.scheduler.instanceName = MyScheduler +org.quartz.scheduler.instanceId = 2 +org.quartz.scheduler.rmi.export = false +org.quartz.scheduler.rmi.proxy = false + +org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount = 3 + +org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore diff --git a/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzIT.java b/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzIT.java index 37abefb0f9bc..d25f74fdd839 100644 --- a/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzIT.java +++ b/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.quartz.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class QuartzIT extends QuartzTest { } diff --git a/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzTest.java b/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzTest.java index f37bb6f97d91..c55252dd58eb 100644 --- a/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzTest.java +++ b/integration-tests/quartz/src/test/java/org/apache/camel/quarkus/component/quartz/it/QuartzTest.java @@ -18,6 +18,7 @@ import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -36,4 +37,79 @@ public void testSchedulerComponent(String component) { .statusCode(200) .body(is("Hello Camel Quarkus " + component)); } + + @Test + public void testProperties() { + RestAssured.given() + .queryParam("fromEndpoint", "quartz-properties") + .queryParam("componentName", "quartzFromProperties") + .get("/quartz/getNameAndResult") + .then() + .statusCode(200) + .body("name", is("MyScheduler-"), + "result", is("Hello Camel Quarkus Quartz Properties")); + } + + @Test + public void testCronTrigger() { + RestAssured.given() + .queryParam("fromEndpoint", "quartz-cron-trigger") + .get("/quartz/get") + .then() + .statusCode(200) + .body(is("Hello Camel Quarkus Quartz From Cron Trigger")); + + } + + @Test + public void testHeaders() { + RestAssured.given() + .queryParam("fromEndpoint", "quartz") + .get("/quartz/getHeaders") + .then() + .statusCode(200) + .body("triggerName", is("1 * * * * ")); + } + + @Test + public void testMisfire() { + RestAssured.given() + .queryParam("fromEndpoint", "quartz-cron-misfire") + .get("/quartz/getMisfire") + .then() + .statusCode(200) + .body("timezone", is("Europe/Stockholm"), + "misfire", is("2")); + } + + @Test + public void testClustered() throws InterruptedException { + RestAssured.given() + .queryParam("fromEndpoint", "quartz-nodeA") + .get("/quartz/get") + .then() + .statusCode(200) + .body(is("Hello Camel Quarkus Quartz NodeA")); + } + + @Test + public void testClusteredWithNamedDS() throws InterruptedException { + RestAssured.given() + .queryParam("fromEndpoint", "quartz-nodeB") + .get("/quartz/get") + .then() + .statusCode(200) + .body(is("Hello Camel Quarkus Quartz NodeB")); + } + + @Test + public void testClusteredWithoutDS() throws InterruptedException { + //NodeB uses h2 db, which is not initialized therefore no message will be received + RestAssured.given() + .queryParam("fromEndpoint", "quartz-nodeC") + .get("/quartz/get") + .then() + .statusCode(200) + .body(is("Hello Camel Quarkus Quartz NodeC")); + } } diff --git a/integration-tests/qute/src/test/java/org/apache/camel/quarkus/component/qute/it/QuteIT.java b/integration-tests/qute/src/test/java/org/apache/camel/quarkus/component/qute/it/QuteIT.java index 5f05e728295d..c8cd02d3bf69 100644 --- a/integration-tests/qute/src/test/java/org/apache/camel/quarkus/component/qute/it/QuteIT.java +++ b/integration-tests/qute/src/test/java/org/apache/camel/quarkus/component/qute/it/QuteIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.qute.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class QuteIT extends QuteTest { } diff --git a/integration-tests/rabbitmq/pom.xml b/integration-tests/rabbitmq/pom.xml index 40f9e3fe6ce0..375f3d2eb56d 100644 --- a/integration-tests/rabbitmq/pom.xml +++ b/integration-tests/rabbitmq/pom.xml @@ -55,6 +55,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/rabbitmq/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqIT.java b/integration-tests/rabbitmq/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqIT.java index dcc6ea9ae343..97f98114b194 100644 --- a/integration-tests/rabbitmq/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqIT.java +++ b/integration-tests/rabbitmq/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.rabbitmq.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class RabbitmqIT extends RabbitmqTest { } diff --git a/integration-tests/reactive-streams/src/test/java/org/apache/camel/quarkus/component/reactive/streams/it/ReactiveStreamsIT.java b/integration-tests/reactive-streams/src/test/java/org/apache/camel/quarkus/component/reactive/streams/it/ReactiveStreamsIT.java index 2f25623f7734..105d55fbdecf 100644 --- a/integration-tests/reactive-streams/src/test/java/org/apache/camel/quarkus/component/reactive/streams/it/ReactiveStreamsIT.java +++ b/integration-tests/reactive-streams/src/test/java/org/apache/camel/quarkus/component/reactive/streams/it/ReactiveStreamsIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.reactive.streams.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ReactiveStreamsIT extends ReactiveStreamsTest { } diff --git a/integration-tests/rest-openapi/src/test/java/org/apache/camel/quarkus/component/rest/openapi/it/RestOpenapiIT.java b/integration-tests/rest-openapi/src/test/java/org/apache/camel/quarkus/component/rest/openapi/it/RestOpenapiIT.java index 1fc2ce0c1b77..46befbb6145e 100644 --- a/integration-tests/rest-openapi/src/test/java/org/apache/camel/quarkus/component/rest/openapi/it/RestOpenapiIT.java +++ b/integration-tests/rest-openapi/src/test/java/org/apache/camel/quarkus/component/rest/openapi/it/RestOpenapiIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.rest.openapi.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class RestOpenapiIT extends RestOpenapiTest { } diff --git a/integration-tests/rest/pom.xml b/integration-tests/rest/pom.xml index dc80da26f65c..dec26a011013 100644 --- a/integration-tests/rest/pom.xml +++ b/integration-tests/rest/pom.xml @@ -35,6 +35,10 @@ org.apache.camel.quarkus camel-quarkus-bean
+ + org.apache.camel.quarkus + camel-quarkus-direct + org.apache.camel.quarkus camel-quarkus-http @@ -124,6 +128,19 @@ + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-http-deployment diff --git a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java index 5342994ffd21..de4f92fd7410 100644 --- a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java +++ b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java @@ -43,41 +43,29 @@ public void configure() { rest("/rest") .delete() .produces("text/plain") - .route() - .setBody(constant("DELETE: /rest")) - .endRest() + .to("direct:echoMethodPath") .get() .produces("text/plain") - .route() - .setBody(constant("GET: /rest")) - .endRest() + .to("direct:echoMethodPath") .head() - .route() - .setHeader(Exchange.CONTENT_TYPE).constant("text/plain") - .endRest() + .to("direct:contentTypeText") .patch() .consumes("text/plain") .produces("text/plain") - .route() - .setBody(simple("${body}: /rest")) - .endRest() + .to("direct:echoBodyPath") .post() .consumes("text/plain") .produces("text/plain") - .route() - .setBody(simple("${body}: /rest")) - .endRest() + .to("direct:echoBodyPath") .put() .consumes("text/plain") .produces("text/plain") - .route() - .setBody(simple("${body}: /rest")) - .endRest() + .to("direct:echoBodyPath") .post("/validation") .clientRequestValidation(true) @@ -85,55 +73,67 @@ public void configure() { .param().name("messageMiddle").type(RestParamType.body).required(true).endParam() .param().name("messageEnd").type(RestParamType.header).required(true).endParam() .param().name("unused").type(RestParamType.formData).required(false).endParam() - .route() - .setBody(simple("${header.messageStart} ${body} ${header.messageEnd}")) - .endRest() + .to("direct:greetWithBody") .get("/template/{messageStart}/{messageEnd}") - .route() - .setBody(simple("${header.messageStart} ${header.messageEnd}")) - .endRest() + .to("direct:greet") .post("/pojo/binding/json") .bindingMode(RestBindingMode.json) .type(Person.class) .produces(MediaType.TEXT_PLAIN) - .route() - .setBody(simple("Name: ${body.firstName} ${body.lastName}, Age: ${body.age}")) - .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) - .endRest() + .to("direct:personString") .get("/binding/json/producer") - .route() - .setBody(constant(PERSON_JSON)) - .endRest() + .to("direct:personJson") .post("/pojo/binding/xml") .bindingMode(RestBindingMode.xml) .type(Person.class) .produces(MediaType.TEXT_PLAIN) - .route() - .setBody(simple("Name: ${body.firstName} ${body.lastName}, Age: ${body.age}")) - .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) - .endRest() + .to("direct:personString") .get("/binding/xml/producer") - .route() - .setBody(constant(PERSON_XML)) - .endRest() + .to("direct:personXml") .post("/log") - .route() - .log("Hello ${body}") - .endRest() + .to("direct:hello") .verb("head", "/custom/verb") - .route() - .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) - .endRest() + .to("direct:contentTypeText") .post("/multipart/upload") - .route() + .to("direct:processAttachments"); + + from("direct:echoMethodPath") + .setBody().simple("${header.CamelHttpMethod}: ${header.CamelHttpPath}"); + + from("direct:echoBodyPath") + .setBody().simple("${body}: ${header.CamelHttpPath}"); + + from("direct:greetWithBody") + .setBody(simple("${header.messageStart} ${body} ${header.messageEnd}")); + + from("direct:greet") + .setBody(simple("${header.messageStart} ${header.messageEnd}")); + + from("direct:hello") + .log("Hello ${body}"); + + from("direct:personString") + .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) + .setBody().simple("Name: ${body.firstName} ${body.lastName}, Age: ${body.age}"); + + from("direct:personJson") + .setBody().constant(PERSON_JSON); + + from("direct:personXml") + .setBody().constant(PERSON_XML); + + from("direct:contentTypeText") + .setHeader(Exchange.CONTENT_TYPE).constant("text/plain"); + + from("direct:processAttachments") .process(exchange -> { AttachmentMessage attachmentMessage = exchange.getMessage(AttachmentMessage.class); Map attachments = attachmentMessage.getAttachments(); @@ -143,7 +143,6 @@ public void configure() { } else { exchange.getMessage().setBody("0"); } - }) - .endRest(); + }); } } diff --git a/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestIT.java b/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestIT.java index a46a79eba666..88872dacefe7 100644 --- a/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestIT.java +++ b/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.rest.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class RestIT extends RestTest { } diff --git a/integration-tests/saga/src/test/java/org/apache/camel/quarkus/component/saga/it/SagaTestIT.java b/integration-tests/saga/src/test/java/org/apache/camel/quarkus/component/saga/it/SagaTestIT.java index a27bbe1b455e..91e76c4d4b15 100644 --- a/integration-tests/saga/src/test/java/org/apache/camel/quarkus/component/saga/it/SagaTestIT.java +++ b/integration-tests/saga/src/test/java/org/apache/camel/quarkus/component/saga/it/SagaTestIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.saga.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SagaTestIT extends SagaTest { } diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java index 729fc4eb84d4..fac927f234e4 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.salesforce; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SalesforceIT extends SalesforceTest { } diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java index 650a8328d6af..70f09b0dd7c3 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceIntegrationIT.java @@ -16,13 +16,13 @@ */ package org.apache.camel.quarkus.component.salesforce; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") -@NativeImageTest +@QuarkusIntegrationTest public class SalesforceIntegrationIT extends SalesforceIntegrationTest { } diff --git a/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXPathIT.java b/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXPathIT.java index 666bc20d4e06..46cd39f71231 100644 --- a/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXPathIT.java +++ b/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXPathIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.saxon.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SaxonXPathIT extends SaxonXPathTest { } diff --git a/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXQueryIT.java b/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXQueryIT.java index bbfa2cd5bd77..751965aec9d8 100644 --- a/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXQueryIT.java +++ b/integration-tests/saxon/src/test/java/org/apache/camel/quarkus/component/saxon/it/SaxonXQueryIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.saxon.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SaxonXQueryIT extends SaxonXQueryTest { } diff --git a/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowIT.java b/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowIT.java index 6a5acf74da55..3070f7c45b22 100644 --- a/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowIT.java +++ b/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.servicenow.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ServicenowIT extends ServicenowTest { } diff --git a/integration-tests/servlet/pom.xml b/integration-tests/servlet/pom.xml index 45737b44ed09..36d8e7133fc3 100644 --- a/integration-tests/servlet/pom.xml +++ b/integration-tests/servlet/pom.xml @@ -33,7 +33,11 @@ org.apache.camel.quarkus - camel-quarkus-servlet + camel-quarkus-core-cloud + + + org.apache.camel.quarkus + camel-quarkus-direct org.apache.camel.quarkus @@ -41,7 +45,7 @@ org.apache.camel.quarkus - camel-quarkus-core-cloud + camel-quarkus-servlet @@ -108,6 +112,19 @@ + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + ${project.version} + pom + test + + + * + * + + + org.apache.camel.quarkus camel-quarkus-rest-deployment diff --git a/integration-tests/servlet/src/main/java/org/apache/camel/quarkus/component/servlet/CamelRoute.java b/integration-tests/servlet/src/main/java/org/apache/camel/quarkus/component/servlet/CamelRoute.java index 0730289e8f0b..933e42682d8a 100644 --- a/integration-tests/servlet/src/main/java/org/apache/camel/quarkus/component/servlet/CamelRoute.java +++ b/integration-tests/servlet/src/main/java/org/apache/camel/quarkus/component/servlet/CamelRoute.java @@ -18,6 +18,8 @@ import javax.enterprise.context.ApplicationScoped; +import org.apache.camel.Exchange; +import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; @ApplicationScoped @@ -33,13 +35,10 @@ public void configure() { rest() .get("/rest-get") - .route() - .setBody(constant("GET: /rest-get")) - .endRest() + .to("direct:echoMethodPath") + .post("/rest-post") - .route() - .setBody(constant("POST: /rest-post")) - .endRest(); + .to("direct:echoMethodPath"); from("servlet://hello?matchOnUriPrefix=true") .setBody(constant("GET: /hello")); @@ -50,6 +49,14 @@ public void configure() { from("servlet://favorite?servletName=my-favorite-servlet") .setBody(constant("GET: /favorite")); + from("direct:echoMethodPath") + .process(new Processor() { + @Override + public void process(Exchange exchange) throws Exception { + exchange.toString(); + } + }) + .setBody().simple("${header.CamelHttpMethod}: ${header.CamelServletContextPath}"); } } diff --git a/integration-tests/servlet/src/test/java/org/apache/camel/quarkus/component/servlet/CamelServletIT.java b/integration-tests/servlet/src/test/java/org/apache/camel/quarkus/component/servlet/CamelServletIT.java index 8684abe8c920..419475c9758c 100644 --- a/integration-tests/servlet/src/test/java/org/apache/camel/quarkus/component/servlet/CamelServletIT.java +++ b/integration-tests/servlet/src/test/java/org/apache/camel/quarkus/component/servlet/CamelServletIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.servlet; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class CamelServletIT extends CamelServletTest { } diff --git a/integration-tests/shiro/src/test/java/org/apache/camel/quarkus/component/shiro/it/ShiroIT.java b/integration-tests/shiro/src/test/java/org/apache/camel/quarkus/component/shiro/it/ShiroIT.java index 613c45b306a9..aa08aa40d14d 100644 --- a/integration-tests/shiro/src/test/java/org/apache/camel/quarkus/component/shiro/it/ShiroIT.java +++ b/integration-tests/shiro/src/test/java/org/apache/camel/quarkus/component/shiro/it/ShiroIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.shiro.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ShiroIT extends ShiroTest { } diff --git a/integration-tests/sjms-artemis-client/pom.xml b/integration-tests/sjms-artemis-client/pom.xml index 5a24099741d6..46956d50a05a 100644 --- a/integration-tests/sjms-artemis-client/pom.xml +++ b/integration-tests/sjms-artemis-client/pom.xml @@ -47,16 +47,6 @@ io.quarkiverse.artemis quarkus-artemis-jms - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - - - - jakarta.jms - jakarta.jms-api diff --git a/integration-tests/sjms-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms/artemis/it/SjmsArtemisIT.java b/integration-tests/sjms-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms/artemis/it/SjmsArtemisIT.java index c16d106eae67..0e0aac00f9f0 100644 --- a/integration-tests/sjms-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms/artemis/it/SjmsArtemisIT.java +++ b/integration-tests/sjms-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms/artemis/it/SjmsArtemisIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.sjms.artemis.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class SjmsArtemisIT extends SjmsArtemisTest { } diff --git a/integration-tests/sjms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms/qpid/it/SjmsQpidIT.java b/integration-tests/sjms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms/qpid/it/SjmsQpidIT.java index fbbf0de5cc07..45670eca0662 100644 --- a/integration-tests/sjms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms/qpid/it/SjmsQpidIT.java +++ b/integration-tests/sjms-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms/qpid/it/SjmsQpidIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.sjms.qpid.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class SjmsQpidIT extends SjmsQpidTest { } diff --git a/integration-tests/sjms2-artemis-client/pom.xml b/integration-tests/sjms2-artemis-client/pom.xml index 4618971bcedc..825f4870ceef 100644 --- a/integration-tests/sjms2-artemis-client/pom.xml +++ b/integration-tests/sjms2-artemis-client/pom.xml @@ -47,16 +47,6 @@ io.quarkiverse.artemis quarkus-artemis-jms - - - org.apache.geronimo.specs - geronimo-jms_2.0_spec - - - - - jakarta.jms - jakarta.jms-api diff --git a/integration-tests/sjms2-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms2/artemis/it/Sjms2ArtemisIT.java b/integration-tests/sjms2-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms2/artemis/it/Sjms2ArtemisIT.java index c6d805b099aa..79dd7d3ee92e 100644 --- a/integration-tests/sjms2-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms2/artemis/it/Sjms2ArtemisIT.java +++ b/integration-tests/sjms2-artemis-client/src/test/java/org/apache/camel/quarkus/component/sjms2/artemis/it/Sjms2ArtemisIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.sjms2.artemis.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class Sjms2ArtemisIT extends Sjms2ArtemisTest { } diff --git a/integration-tests/sjms2-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms2/qpid/it/Sjms2QpidIT.java b/integration-tests/sjms2-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms2/qpid/it/Sjms2QpidIT.java index 0adf0b062ce7..d7f75837c79e 100644 --- a/integration-tests/sjms2-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms2/qpid/it/Sjms2QpidIT.java +++ b/integration-tests/sjms2-qpid-amqp-client/src/test/java/org/apache/camel/quarkus/component/sjms2/qpid/it/Sjms2QpidIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.sjms2.qpid.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class Sjms2QpidIT extends Sjms2QpidTest { } diff --git a/integration-tests/slack/README.adoc b/integration-tests/slack/README.adoc index 4a4dd494591b..78c9a9cccf1b 100644 --- a/integration-tests/slack/README.adoc +++ b/integration-tests/slack/README.adoc @@ -4,7 +4,32 @@ By default the Slack integration tests use WireMock to stub the API interactions To run the `camel-quarkus-Slack` integration tests against the real API, you must first create a Slack account and workspace https://slack.com/get-started#/create. -Then configure Slack custom configurations for 'Incoming Webhooks' & the 'Slack API Tester' on your workspace. +Create a channel named `test-channel`. + +You’ll need to create a Slack app and use it on your workspace. + +Use the 'User OAuth Token' as token for the producer and consumer endpoints. Set the corresponding scopes for Bot Token: + +* `channels:history` +* `groups:history` +* `im:history` +* `mpim:history` +* `channels:read` +* `groups:read` +* `im:read` +* `mpim:read` +* `chat:write` + +Install your app for the channel `test-channel`. + +Add an `Incoming Webhook` for you app. + +Invite the bot in the channel `test-channel`. + +[source] +---- +/invite @BOT_NAME +---- Next set the following environment variables: diff --git a/integration-tests/slack/pom.xml b/integration-tests/slack/pom.xml index a61a27588fa3..53e8ca08aed1 100644 --- a/integration-tests/slack/pom.xml +++ b/integration-tests/slack/pom.xml @@ -42,7 +42,7 @@ io.quarkus - quarkus-resteasy + quarkus-resteasy-jackson diff --git a/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java index 1badb99483ed..abf5fa2d5fba 100644 --- a/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java +++ b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java @@ -17,6 +17,9 @@ package org.apache.camel.quarkus.component.slack.it; import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; @@ -29,8 +32,13 @@ import javax.ws.rs.core.Response; import com.slack.api.model.Message; +import com.slack.api.model.block.DividerBlock; +import com.slack.api.model.block.LayoutBlock; +import com.slack.api.model.block.SectionBlock; +import com.slack.api.model.block.composition.MarkdownTextObject; import org.apache.camel.ConsumerTemplate; import org.apache.camel.ProducerTemplate; +import org.apache.camel.quarkus.component.slack.it.model.SlackMessageResponse; import org.eclipse.microprofile.config.inject.ConfigProperty; @Path("/slack") @@ -48,20 +56,71 @@ public class SlackResource { @ConfigProperty(name = "slack.token") String slackToken; + @ConfigProperty(name = "slack.webhook.url") + String slackWebHookUrl; + @Path("/messages") @GET - @Produces(MediaType.TEXT_PLAIN) - public String getSlackMessages() throws Exception { - Message message = consumerTemplate.receiveBody("slack://general?maxResults=1&" + getSlackAuthParams(), + @Produces(MediaType.APPLICATION_JSON) + public SlackMessageResponse getSlackMessages() throws Exception { + Message message = consumerTemplate.receiveBody("slack://test-channel?maxResults=1&" + getSlackAuthParams(), 5000L, Message.class); - return message.getText(); + return new SlackMessageResponse(message.getText(), message.getBlocks() != null ? message.getBlocks().size() : 0); } - @Path("/message") + @Path("/message/token") @POST @Consumes(MediaType.TEXT_PLAIN) - public Response createSlackMessage(String message) throws Exception { - producerTemplate.requestBody("slack://general?" + getSlackAuthParams(), message); + public Response createSlackMessageWithToken(String message) throws Exception { + producerTemplate.requestBody("slack://test-channel?" + getSlackAuthParams(), message); + return Response + .created(new URI("https://camel.apache.org/")) + .build(); + } + + @Path("/message/webhook") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public Response createSlackMessageWithWebhook(String message) throws Exception { + producerTemplate.requestBody(String.format("slack://test-channel?webhookUrl=%s", slackWebHookUrl), message); + return Response + .created(new URI("https://camel.apache.org/")) + .build(); + } + + @Path("/message/block") + @POST + @Consumes(MediaType.TEXT_PLAIN) + public Response createBlockMessage(String text) throws Exception { + List blocks = new ArrayList(); + blocks.add(SectionBlock + .builder() + .text(MarkdownTextObject + .builder() + .text(text) + .build()) + .build()); + blocks.add(SectionBlock + .builder() + .fields(Arrays.asList( + MarkdownTextObject + .builder() + .text("*Testing Camel Quarkus blocks*") + .build(), + MarkdownTextObject + .builder() + .text("*You should be able to see these blocks") + .build())) + .build()); + blocks.add(DividerBlock + .builder() + .build()); + + Message message = new Message(); + message.setText(text); + message.setBlocks(blocks); + + producerTemplate.requestBody("slack://test-channel?" + getSlackAuthParams(), message); return Response .created(new URI("https://camel.apache.org/")) .build(); diff --git a/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/model/SlackMessageResponse.java b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/model/SlackMessageResponse.java new file mode 100644 index 000000000000..f0b2272216eb --- /dev/null +++ b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/model/SlackMessageResponse.java @@ -0,0 +1,49 @@ +/* + * 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.slack.it.model; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class SlackMessageResponse { + String text; + int nbBlocks; + + public SlackMessageResponse() { + } + + public SlackMessageResponse(String text, int nbBlocks) { + this.text = text; + this.nbBlocks = nbBlocks; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public int getNbBlocks() { + return nbBlocks; + } + + public void setNbBlocks(int nbBlocks) { + this.nbBlocks = nbBlocks; + } +} diff --git a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackIT.java b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackIT.java index 0369cd92cd24..03ae2b689121 100644 --- a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackIT.java +++ b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.slack.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SlackIT extends SlackTest { } diff --git a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTest.java b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTest.java index c3e8bab1b49b..3d7ef698b1f1 100644 --- a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTest.java +++ b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTest.java @@ -21,12 +21,12 @@ import com.github.tomakehurst.wiremock.WireMockServer; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.apache.camel.quarkus.test.wiremock.MockServer; import org.eclipse.microprofile.config.ConfigProvider; import org.junit.jupiter.api.Test; +import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.equalTo; /** @@ -47,21 +47,62 @@ class SlackTest { @Test public void testSlackProduceConsumeMessages() { - final String message = "Hello Camel Quarkus Slack" + (externalSlackEnabled() ? " " + UUID.randomUUID() : ""); - RestAssured.given() + // sending a message using Token + String message = "Hello Camel Quarkus Slack using Token" + (externalSlackEnabled() ? " " + UUID.randomUUID() : ""); + given() .contentType(ContentType.TEXT) .body(message) - .post("/slack/message") + .post("/slack/message/token") .then() .statusCode(201); - RestAssured.get("/slack/messages") + given() + .contentType(ContentType.JSON) + .get("/slack/messages") .then() .statusCode(200) - .body(equalTo(message)); + .body(equalTo(getExpectedResponse(message, 0))); + + // sending a message using Webhook URL + message = "Hello Camel Quarkus Slack using Webhook URL" + (externalSlackEnabled() ? " " + UUID.randomUUID() : ""); + + given() + .contentType(ContentType.TEXT) + .body(message) + .post("/slack/message/webhook") + .then() + .statusCode(201); + + given() + .contentType(ContentType.JSON) + .get("/slack/messages") + .then() + .statusCode(200) + .body(equalTo(getExpectedResponse(message, 0))); + + message = "Hello Camel Quarkus Slack using Blocks" + (externalSlackEnabled() ? " " + UUID.randomUUID() : ""); + + // sending message with blocks + given() + .contentType(ContentType.TEXT) + .body(message) + .post("/slack/message/block") + .then() + .statusCode(201); + + given() + .contentType(ContentType.JSON) + .get("/slack/messages") + .then() + .statusCode(200) + .body(equalTo(getExpectedResponse(message, 3))); } boolean externalSlackEnabled() { return !ConfigProvider.getConfig().getOptionalValue("wiremock.url", String.class).isPresent(); } + + String getExpectedResponse(String message, int nbBlocks) { + return String.format("{\"text\":\"%s\",\"nbBlocks\":%s}", message, nbBlocks); + } } diff --git a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java index ee519398ebe1..d00fbc3e4723 100644 --- a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java +++ b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java @@ -38,7 +38,7 @@ public Map start() { String webhookUrl = wiremockUrl != null ? wiremockUrl + "/services/webhook" : ConfigProvider.getConfig().getValue(SLACK_ENV_WEBHOOK_URL, String.class); return CollectionHelper.mergeMaps(properties, CollectionHelper.mapOf( - "camel.component.slack.webhook-url", webhookUrl, + "slack.webhook.url", webhookUrl, "slack.server-url", serverUrl, "slack.token", envOrDefault(SLACK_ENV_TOKEN, "test-token"))); } diff --git a/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithBlocks.json b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithBlocks.json new file mode 100644 index 000000000000..c67c3d106e3e --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithBlocks.json @@ -0,0 +1,42 @@ +{ + "id" : "c86380a0-2c6e-41ec-8183-467013109f96", + "name" : "chatpostmessage", + "request" : { + "url" : "/api/chat.postMessage", + "method" : "POST", + "bodyPatterns" : [ { + "equalTo" : "channel=test-channel&text=Hello%20Camel%20Quarkus%20Slack%20using%20Blocks&link_names=0&mrkdwn=1&blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22Hello%20Camel%20Quarkus%20Slack%20using%20Blocks%22%7D%7D%2C%7B%22type%22%3A%22section%22%2C%22fields%22%3A%5B%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*Testing%20Camel%20Quarkus%20blocks*%22%7D%2C%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*You%20should%20be%20able%20to%20see%20these%20blocks%22%7D%5D%7D%2C%7B%22type%22%3A%22divider%22%7D%5D&unfurl_links=0&unfurl_media=0&reply_broadcast=0", + "caseInsensitive" : false + } ] + }, + "response" : { + "status" : 200, + "body" : "{\"ok\":true,\"channel\":\"test\",\"ts\":\"1615377778.002900\",\"message\":{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"}}}", + "headers" : { + "date" : "Wed, 10 Mar 2021 12:02:58 GMT", + "server" : "Apache", + "x-xss-protection" : "0", + "pragma" : "no-cache", + "cache-control" : "private, no-cache, no-store, must-revalidate", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "x-slack-req-id" : "f353e4e5fc6450a0ca4a32ed0ad4e203", + "x-content-type-options" : "nosniff", + "referrer-policy" : "no-referrer", + "x-slack-backend" : "r", + "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history", + "x-accepted-oauth-scopes" : "chat:write", + "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", + "vary" : "Accept-Encoding", + "content-type" : "application/json; charset=utf-8", + "x-envoy-upstream-service-time" : "61", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-au28", + "x-via" : "envoy-www-iad-yrq3, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-yrq3" + } + }, + "uuid" : "c86380a0-2c6e-41ec-8183-467013109f96", + "persistent" : true, + "insertionIndex" : 2 +} \ No newline at end of file diff --git a/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithToken.json similarity index 93% rename from integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json rename to integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithToken.json index 825527a3b4e1..2043c66bc34c 100644 --- a/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json +++ b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithToken.json @@ -5,7 +5,7 @@ "url" : "/api/chat.postMessage", "method" : "POST", "bodyPatterns" : [ { - "equalTo" : "channel=general&text=Hello%20Camel%20Quarkus%20Slack&link_names=0&mrkdwn=1&unfurl_links=0&unfurl_media=0&reply_broadcast=0", + "equalTo" : "channel=test-channel&text=Hello%20Camel%20Quarkus%20Slack%20using%20Token&link_names=0&mrkdwn=1&unfurl_links=0&unfurl_media=0&reply_broadcast=0", "caseInsensitive" : false } ] }, diff --git a/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithWebhook.json b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithWebhook.json new file mode 100644 index 000000000000..d969ea000dc6 --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessageWithWebhook.json @@ -0,0 +1,42 @@ +{ + "id" : "c86380a0-2c6e-41ec-8183-467013109f96", + "name" : "chatpostmessage", + "request" : { + "url" : "/services/webhook", + "method" : "POST", + "bodyPatterns" : [ { + "equalTo" : "{\"text\":\"Hello Camel Quarkus Slack using Webhook URL\",\"channel\":\"test-channel\"}", + "caseInsensitive" : false + } ] + }, + "response" : { + "status" : 200, + "body" : "{\"ok\":true,\"channel\":\"test\",\"ts\":\"1615377778.002900\",\"message\":{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"}}}", + "headers" : { + "date" : "Wed, 10 Mar 2021 12:02:58 GMT", + "server" : "Apache", + "x-xss-protection" : "0", + "pragma" : "no-cache", + "cache-control" : "private, no-cache, no-store, must-revalidate", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "x-slack-req-id" : "f353e4e5fc6450a0ca4a32ed0ad4e203", + "x-content-type-options" : "nosniff", + "referrer-policy" : "no-referrer", + "x-slack-backend" : "r", + "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history", + "x-accepted-oauth-scopes" : "chat:write", + "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", + "vary" : "Accept-Encoding", + "content-type" : "application/json; charset=utf-8", + "x-envoy-upstream-service-time" : "61", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-au28", + "x-via" : "envoy-www-iad-yrq3, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-yrq3" + } + }, + "uuid" : "c86380a0-2c6e-41ec-8183-467013109f96", + "persistent" : true, + "insertionIndex" : 2 +} \ No newline at end of file diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithBlocks.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithBlocks.json new file mode 100644 index 000000000000..e0ebd2bcecbb --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithBlocks.json @@ -0,0 +1,42 @@ +{ + "id" : "e4c0ada4-54e1-45fa-b15a-d186df310279", + "name" : "conversationshistory", + "request" : { + "url" : "/api/conversations.history", + "method" : "POST", + "bodyPatterns" : [ { + "equalTo" : "channel=test-channel&limit=1&oldest=1615377778.002901&inclusive=0", + "caseInsensitive" : false + } ] + }, + "response" : { + "status" : 200, + "body" : "{\"ok\":true,\"messages\":[{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack using Blocks\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"},\"blocks\":[{\"type\":\"section\",\"block_id\":\"NqtD2\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"Hello Camel Quarkus Slack using Blocks b7b238a1-23f2-4006-a608-693ca4e85e44\",\"verbatim\":false}},{\"type\":\"section\",\"block_id\":\"6+e\",\"fields\":[{\"type\":\"mrkdwn\",\"text\":\"*Testing Camel Quarkus blocks*\",\"verbatim\":false},{\"type\":\"mrkdwn\",\"text\":\"*You should be able to see these blocks\",\"verbatim\":false}]},{\"type\":\"divider\",\"block_id\":\"jzX\"}]}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjE1Mzc3Njk4MDAyODAw\"}}", + "headers" : { + "date" : "Wed, 10 Mar 2021 12:03:00 GMT", + "server" : "Apache", + "x-xss-protection" : "0", + "pragma" : "no-cache", + "cache-control" : "private, no-cache, no-store, must-revalidate", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "x-slack-req-id" : "259fe0f01847f6464ccf232065351a82", + "x-content-type-options" : "nosniff", + "referrer-policy" : "no-referrer", + "x-slack-backend" : "r", + "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history", + "x-accepted-oauth-scopes" : "channels:history,groups:history,mpim:history,im:history,read", + "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", + "vary" : "Accept-Encoding", + "content-type" : "application/json; charset=utf-8", + "x-envoy-upstream-service-time" : "37", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-8pvg", + "x-via" : "envoy-www-iad-ntq9, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-ntq9" + } + }, + "uuid" : "e4c0ada4-54e1-45fa-b15a-d186df310279", + "persistent" : true, + "insertionIndex" : 4 +} \ No newline at end of file diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithToken.json similarity index 67% rename from integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json rename to integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithToken.json index 5dba9948ee90..5fc587d5f1ae 100644 --- a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithToken.json @@ -5,13 +5,13 @@ "url" : "/api/conversations.history", "method" : "POST", "bodyPatterns" : [ { - "equalTo" : "channel=test&limit=1&inclusive=0", + "equalTo" : "channel=test-channel&limit=1&inclusive=0", "caseInsensitive" : false } ] }, "response" : { "status" : 200, - "body" : "{\"ok\":true,\"messages\":[{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"}}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjE1Mzc3Njk4MDAyODAw\"}}", + "body" : "{\"ok\":true,\"messages\":[{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack using Token\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"}}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjE1Mzc3Njk4MDAyODAw\"}}", "headers" : { "date" : "Wed, 10 Mar 2021 12:03:00 GMT", "server" : "Apache", diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithWebhook.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithWebhook.json new file mode 100644 index 000000000000..464f6fc16ae3 --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistoryWithWebhook.json @@ -0,0 +1,42 @@ +{ + "id" : "e4c0ada4-54e1-45fa-b15a-d186df310279", + "name" : "conversationshistory", + "request" : { + "url" : "/api/conversations.history", + "method" : "POST", + "bodyPatterns" : [ { + "equalTo" : "channel=test-channel&limit=1&oldest=1615377778.002900&inclusive=0", + "caseInsensitive" : false + } ] + }, + "response" : { + "status" : 200, + "body" : "{\"ok\":true,\"messages\":[{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack using Webhook URL\",\"user\":\"test\",\"ts\":\"1615377778.002901\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\",\"image_72\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/service_72.png\"},\"team_id\":\"test\"}}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjE1Mzc3Njk4MDAyODAw\"}}", + "headers" : { + "date" : "Wed, 10 Mar 2021 12:03:00 GMT", + "server" : "Apache", + "x-xss-protection" : "0", + "pragma" : "no-cache", + "cache-control" : "private, no-cache, no-store, must-revalidate", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "x-slack-req-id" : "259fe0f01847f6464ccf232065351a82", + "x-content-type-options" : "nosniff", + "referrer-policy" : "no-referrer", + "x-slack-backend" : "r", + "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history", + "x-accepted-oauth-scopes" : "channels:history,groups:history,mpim:history,im:history,read", + "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", + "vary" : "Accept-Encoding", + "content-type" : "application/json; charset=utf-8", + "x-envoy-upstream-service-time" : "37", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-8pvg", + "x-via" : "envoy-www-iad-ntq9, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-ntq9" + } + }, + "uuid" : "e4c0ada4-54e1-45fa-b15a-d186df310279", + "persistent" : true, + "insertionIndex" : 4 +} \ No newline at end of file diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json index 2de676455e87..b719a991e6d1 100644 --- a/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json @@ -11,7 +11,7 @@ }, "response" : { "status" : 200, - "body" : "{\"ok\":true,\"channels\":[{\"id\":\"test\",\"name\":\"java-development\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904170,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"java-development\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":false,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"purpose\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"previous_names\":[],\"num_members\":1},{\"id\":\"test\",\"name\":\"random\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904169,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"random\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":false,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"Non-work banter and water cooler conversation\",\"creator\":\"test\",\"last_set\":1571904169},\"purpose\":{\"value\":\"A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.\",\"creator\":\"test\",\"last_set\":1571904169},\"previous_names\":[],\"num_members\":1},{\"id\":\"test\",\"name\":\"general\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904169,\"is_archived\":false,\"is_general\":true,\"unlinked\":0,\"name_normalized\":\"general\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":true,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"Company-wide announcements and work-based matters\",\"creator\":\"test\",\"last_set\":1571904169},\"purpose\":{\"value\":\"This channel is for workspace-wide communication and announcements. All members are in this channel.\",\"creator\":\"test\",\"last_set\":1571904169},\"previous_names\":[],\"num_members\":2}],\"response_metadata\":{\"next_cursor\":\"\"}}", + "body" : "{\"ok\":true,\"channels\":[{\"id\":\"test\",\"name\":\"java-development\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904170,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"java-development\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":false,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"purpose\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"previous_names\":[],\"num_members\":1},{\"id\":\"test\",\"name\":\"random\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904169,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"random\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":false,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"Non-work banter and water cooler conversation\",\"creator\":\"test\",\"last_set\":1571904169},\"purpose\":{\"value\":\"A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.\",\"creator\":\"test\",\"last_set\":1571904169},\"previous_names\":[],\"num_members\":1},{\"id\":\"test\",\"name\":\"general\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904169,\"is_archived\":false,\"is_general\":true,\"unlinked\":0,\"name_normalized\":\"general\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":true,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"Company-wide announcements and work-based matters\",\"creator\":\"test\",\"last_set\":1571904169},\"purpose\":{\"value\":\"This channel is for workspace-wide communication and announcements. All members are in this channel.\",\"creator\":\"test\",\"last_set\":1571904169},\"previous_names\":[],\"num_members\":2},{\"id\":\"test-channel\",\"name\":\"test-channel\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904170,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"test-channel\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":false,\"is_member\":false,\"is_private\":false,\"is_mpim\":false,\"topic\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"purpose\":{\"value\":\"\",\"creator\":\"\",\"last_set\":0},\"previous_names\":[],\"num_members\":3}],\"response_metadata\":{\"next_cursor\":\"\"}}", "headers" : { "date" : "Wed, 10 Mar 2021 12:02:58 GMT", "server" : "Apache", diff --git a/integration-tests/smallrye-reactive-messaging/src/test/java/org/apache/camel/quarkus/component/smallrye/reactive/messaging/it/SmallRyeReactiveMessagingIT.java b/integration-tests/smallrye-reactive-messaging/src/test/java/org/apache/camel/quarkus/component/smallrye/reactive/messaging/it/SmallRyeReactiveMessagingIT.java index bc82b41d6497..95d15de92e32 100644 --- a/integration-tests/smallrye-reactive-messaging/src/test/java/org/apache/camel/quarkus/component/smallrye/reactive/messaging/it/SmallRyeReactiveMessagingIT.java +++ b/integration-tests/smallrye-reactive-messaging/src/test/java/org/apache/camel/quarkus/component/smallrye/reactive/messaging/it/SmallRyeReactiveMessagingIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.smallrye.reactive.messaging.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SmallRyeReactiveMessagingIT extends SmallRyeReactiveMessagingTest { } diff --git a/integration-tests/soap/src/test/java/org/apache/camel/quarkus/component/soap/it/SoapIT.java b/integration-tests/soap/src/test/java/org/apache/camel/quarkus/component/soap/it/SoapIT.java index cf4967344ee1..5be98b9e4a7b 100644 --- a/integration-tests/soap/src/test/java/org/apache/camel/quarkus/component/soap/it/SoapIT.java +++ b/integration-tests/soap/src/test/java/org/apache/camel/quarkus/component/soap/it/SoapIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.soap.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SoapIT extends SoapTest { } diff --git a/integration-tests/solr/pom.xml b/integration-tests/solr/pom.xml index 14634712bb82..dbbb1823faca 100644 --- a/integration-tests/solr/pom.xml +++ b/integration-tests/solr/pom.xml @@ -64,6 +64,17 @@ org.testcontainers solr test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrIT.java b/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrIT.java index 854dbd84acb9..948b9de6c09c 100644 --- a/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrIT.java +++ b/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.solr.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class SolrIT extends SolrTest { } diff --git a/integration-tests/splunk/pom.xml b/integration-tests/splunk/pom.xml index 0a495409ed33..c12a716d6355 100644 --- a/integration-tests/splunk/pom.xml +++ b/integration-tests/splunk/pom.xml @@ -63,6 +63,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java index 00bc15c4db20..057f100a66b8 100644 --- a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java +++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.splunk.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SplunkIT extends SplunkTest { } diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java index cdc350a9af83..832ba9b6010b 100644 --- a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java +++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java @@ -28,7 +28,7 @@ import io.restassured.http.ContentType; import org.apache.camel.util.CollectionHelper; import org.eclipse.microprofile.config.ConfigProvider; -import org.junit.Assert; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.hamcrest.Matchers.anyOf; @@ -53,13 +53,13 @@ public void testWriteTcpAndReadNormal() { .statusCode(200) .extract().as(List.class); - Assert.assertEquals(3, result.size()); - Assert.assertEquals("Irma_normal", result.get(0).get("name")); - Assert.assertEquals("Earth\"", result.get(0).get("from")); - Assert.assertEquals("Leonard_normal", result.get(1).get("name")); - Assert.assertEquals("Earth 2.0\"", result.get(1).get("from")); - Assert.assertEquals("Sheldon_normal", result.get(2).get("name")); - Assert.assertEquals("Alpha Centauri\"", result.get(2).get("from")); + Assertions.assertEquals(3, result.size()); + Assertions.assertEquals("Irma_normal", result.get(0).get("name")); + Assertions.assertEquals("Earth\"", result.get(0).get("from")); + Assertions.assertEquals("Leonard_normal", result.get(1).get("name")); + Assertions.assertEquals("Earth 2.0\"", result.get(1).get("from")); + Assertions.assertEquals("Sheldon_normal", result.get(2).get("name")); + Assertions.assertEquals("Alpha Centauri\"", result.get(2).get("from")); } @Test diff --git a/integration-tests/spring-rabbitmq/pom.xml b/integration-tests/spring-rabbitmq/pom.xml index da088e773b4e..229b0c031f6a 100644 --- a/integration-tests/spring-rabbitmq/pom.xml +++ b/integration-tests/spring-rabbitmq/pom.xml @@ -64,6 +64,17 @@ org.testcontainers rabbitmq test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java index 52812e376ab3..f3a6ea569072 100644 --- a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java +++ b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.spring.rabbitmq.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SpringRabbitmqIT extends SpringRabbitmqTest { } diff --git a/integration-tests/sql/src/test/java/org/apache/camel/quarkus/component/sql/it/SqlIT.java b/integration-tests/sql/src/test/java/org/apache/camel/quarkus/component/sql/it/SqlIT.java index edec056746e3..a1a7a6ccf94a 100644 --- a/integration-tests/sql/src/test/java/org/apache/camel/quarkus/component/sql/it/SqlIT.java +++ b/integration-tests/sql/src/test/java/org/apache/camel/quarkus/component/sql/it/SqlIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.sql.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SqlIT extends SqlTest { } diff --git a/integration-tests/ssh/pom.xml b/integration-tests/ssh/pom.xml index 31801b27de95..666602a41928 100644 --- a/integration-tests/ssh/pom.xml +++ b/integration-tests/ssh/pom.xml @@ -55,6 +55,17 @@ org.testcontainers testcontainers test + + + junit + junit + + +
+ + io.quarkus + quarkus-junit4-mock + test
diff --git a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java index c18d67b4ec8a..92af64875a78 100644 --- a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java +++ b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.ssh.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SshIT extends SshTest { } diff --git a/integration-tests/stax/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxIT.java b/integration-tests/stax/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxIT.java index 282f7ee5046a..38fd5a30dde8 100644 --- a/integration-tests/stax/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxIT.java +++ b/integration-tests/stax/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.stax.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class StaxIT extends StaxTest { } diff --git a/integration-tests/stringtemplate/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateIT.java b/integration-tests/stringtemplate/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateIT.java index 485390b98b60..190836fb22fa 100644 --- a/integration-tests/stringtemplate/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateIT.java +++ b/integration-tests/stringtemplate/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.stringtemplate.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class StringtemplateIT extends StringtemplateTest { } diff --git a/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/atom/it/AtomIT.java b/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/atom/it/AtomIT.java index 700d1415dccb..77dcfdec7bf0 100644 --- a/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/atom/it/AtomIT.java +++ b/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/atom/it/AtomIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.atom.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class AtomIT extends AtomTest { } diff --git a/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/rss/it/RssIT.java b/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/rss/it/RssIT.java index 9c71b6e4dbf7..303cda9621c2 100644 --- a/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/rss/it/RssIT.java +++ b/integration-tests/syndication/src/test/java/org/apache/camel/quarkus/component/rss/it/RssIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.rss.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class RssIT extends RssTest { } diff --git a/integration-tests/syslog/src/test/java/org/apache/camel/quarkus/component/syslog/it/SyslogIT.java b/integration-tests/syslog/src/test/java/org/apache/camel/quarkus/component/syslog/it/SyslogIT.java index 47dd135a435d..2faaf3a5b6ce 100644 --- a/integration-tests/syslog/src/test/java/org/apache/camel/quarkus/component/syslog/it/SyslogIT.java +++ b/integration-tests/syslog/src/test/java/org/apache/camel/quarkus/component/syslog/it/SyslogIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.syslog.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class SyslogIT extends SyslogTest { } diff --git a/integration-tests/tarfile/src/test/java/org/apache/camel/quarkus/component/tarfile/it/TarfileIT.java b/integration-tests/tarfile/src/test/java/org/apache/camel/quarkus/component/tarfile/it/TarfileIT.java index d04986dab875..d9791d03ae84 100644 --- a/integration-tests/tarfile/src/test/java/org/apache/camel/quarkus/component/tarfile/it/TarfileIT.java +++ b/integration-tests/tarfile/src/test/java/org/apache/camel/quarkus/component/tarfile/it/TarfileIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.tarfile.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class TarfileIT extends TarfileTest { } diff --git a/integration-tests/telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramIT.java b/integration-tests/telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramIT.java index 23a735e47e0c..cee235f34913 100644 --- a/integration-tests/telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramIT.java +++ b/integration-tests/telegram/src/test/java/org/apache/camel/quarkus/component/telegram/it/TelegramIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.telegram.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class TelegramIT extends TelegramTest { } diff --git a/integration-tests/tika/src/test/java/org/apache/camel/quarkus/component/tika/it/TikaIT.java b/integration-tests/tika/src/test/java/org/apache/camel/quarkus/component/tika/it/TikaIT.java index 3cbf97edee82..2950b7fafb20 100644 --- a/integration-tests/tika/src/test/java/org/apache/camel/quarkus/component/tika/it/TikaIT.java +++ b/integration-tests/tika/src/test/java/org/apache/camel/quarkus/component/tika/it/TikaIT.java @@ -16,11 +16,11 @@ */ package org.apache.camel.quarkus.component.tika.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; -@NativeImageTest +@QuarkusIntegrationTest //https://github.com/apache/camel-quarkus/issues/3417 @DisabledOnOs(OS.MAC) class TikaIT extends TikaTest { diff --git a/integration-tests/twilio/src/test/java/org/apache/camel/quarkus/component/twilio/it/TwilioIT.java b/integration-tests/twilio/src/test/java/org/apache/camel/quarkus/component/twilio/it/TwilioIT.java index bc15dbfa38f8..68022dbf7f0b 100644 --- a/integration-tests/twilio/src/test/java/org/apache/camel/quarkus/component/twilio/it/TwilioIT.java +++ b/integration-tests/twilio/src/test/java/org/apache/camel/quarkus/component/twilio/it/TwilioIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.twilio.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class TwilioIT extends TwilioTest { } diff --git a/integration-tests/twitter/src/test/java/org/apache/camel/quarkus/component/twitter/CamelTwitterIT.java b/integration-tests/twitter/src/test/java/org/apache/camel/quarkus/component/twitter/CamelTwitterIT.java index e5c9461715a2..6f97609b1d39 100644 --- a/integration-tests/twitter/src/test/java/org/apache/camel/quarkus/component/twitter/CamelTwitterIT.java +++ b/integration-tests/twitter/src/test/java/org/apache/camel/quarkus/component/twitter/CamelTwitterIT.java @@ -16,10 +16,10 @@ */ package org.apache.camel.quarkus.component.twitter; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -@NativeImageTest +@QuarkusIntegrationTest @EnabledIfEnvironmentVariable(named = "TWITTER_CONSUMER_KEY", matches = "[a-zA-Z0-9]+") public class CamelTwitterIT extends CamelTwitterTest { diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatMarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatMarshalIT.java index f6d3a40f52a5..4f9405a47023 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatMarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatMarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityCsvDataFormatMarshalIT extends UniVocityCsvDataFormatMarshalTest { } diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatUnmarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatUnmarshalIT.java index 92c82109f900..13f5292746b2 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatUnmarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityCsvDataFormatUnmarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityCsvDataFormatUnmarshalIT extends UniVocityCsvDataFormatUnmarshalTest { } diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatMarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatMarshalIT.java index 18fc06b68a77..39d8d28c7b40 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatMarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatMarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityFixedWidthDataFormatMarshalIT extends UniVocityFixedWidthDataFormatMarshalTest { } diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatUnmarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatUnmarshalIT.java index 5aa79383b891..53adab516177 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatUnmarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityFixedWidthDataFormatUnmarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityFixedWidthDataFormatUnmarshalIT extends UniVocityFixedWidthDataFormatUnmarshalTest { } diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatMarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatMarshalIT.java index e78b951574b6..d6baf9a1ae5f 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatMarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatMarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityTsvDataFormatMarshalIT extends UniVocityTsvDataFormatMarshalTest { } diff --git a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatUnmarshalIT.java b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatUnmarshalIT.java index e7b9abdd831f..5e739acd496b 100644 --- a/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatUnmarshalIT.java +++ b/integration-tests/univocity-parsers/src/test/java/org/apache/camel/quarkus/component/univocity/parsers/it/UniVocityTsvDataFormatUnmarshalIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.univocity.parsers.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class UniVocityTsvDataFormatUnmarshalIT extends UniVocityTsvDataFormatUnmarshalTest { } diff --git a/integration-tests/validator/src/test/java/org/apache/camel/quarkus/component/validator/it/ValidatorIT.java b/integration-tests/validator/src/test/java/org/apache/camel/quarkus/component/validator/it/ValidatorIT.java index 4f52bc777a64..28a5a87972a2 100644 --- a/integration-tests/validator/src/test/java/org/apache/camel/quarkus/component/validator/it/ValidatorIT.java +++ b/integration-tests/validator/src/test/java/org/apache/camel/quarkus/component/validator/it/ValidatorIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.validator.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ValidatorIT extends ValidatorTest { } diff --git a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityIT.java b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityIT.java index f8a492292148..e2c8993ac54c 100644 --- a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityIT.java +++ b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityIT.java @@ -16,8 +16,8 @@ */ package org.apache.camel.quarkus.component.velocity.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class VelocityIT extends VelocityTest { } diff --git a/integration-tests/vertx-websocket/pom.xml b/integration-tests/vertx-websocket/pom.xml index 7947fe55d72e..abd5e2aef431 100644 --- a/integration-tests/vertx-websocket/pom.xml +++ b/integration-tests/vertx-websocket/pom.xml @@ -39,7 +39,7 @@ io.quarkus - quarkus-undertow-websockets + quarkus-websockets test diff --git a/integration-tests/vertx-websocket/src/test/java/org/apache/camel/quarkus/component/vertx/websocket/it/VertxWebsocketIT.java b/integration-tests/vertx-websocket/src/test/java/org/apache/camel/quarkus/component/vertx/websocket/it/VertxWebsocketIT.java index 2b3818e1a100..b3805e710492 100644 --- a/integration-tests/vertx-websocket/src/test/java/org/apache/camel/quarkus/component/vertx/websocket/it/VertxWebsocketIT.java +++ b/integration-tests/vertx-websocket/src/test/java/org/apache/camel/quarkus/component/vertx/websocket/it/VertxWebsocketIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.vertx.websocket.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class VertxWebsocketIT extends VertxWebsocketTest { } diff --git a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxIT.java b/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxIT.java index 12cfeb9a5c17..2d4b78e4201d 100644 --- a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxIT.java +++ b/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.vertx.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class VertxIT extends VertxTest { } diff --git a/integration-tests/weather/src/test/java/org/apache/camel/quarkus/component/weather/it/WeatherIT.java b/integration-tests/weather/src/test/java/org/apache/camel/quarkus/component/weather/it/WeatherIT.java index d527e7e3df89..49e2f6ed2633 100644 --- a/integration-tests/weather/src/test/java/org/apache/camel/quarkus/component/weather/it/WeatherIT.java +++ b/integration-tests/weather/src/test/java/org/apache/camel/quarkus/component/weather/it/WeatherIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.weather.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class WeatherIT extends WeatherTest { } diff --git a/integration-tests/xchange/pom.xml b/integration-tests/xchange/pom.xml index 1ac9b723b9c3..015b63457bdb 100644 --- a/integration-tests/xchange/pom.xml +++ b/integration-tests/xchange/pom.xml @@ -48,12 +48,6 @@ org.knowm.xchange xchange-kraken - - - com.google.code.findbugs - jsr305 - - diff --git a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java index 292890197d48..44d51064421c 100644 --- a/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java +++ b/integration-tests/xchange/src/test/java/org/apache/camel/quarkus/component/xchange/it/XchangeIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.xchange.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class XchangeIT extends XchangeTest { } diff --git a/integration-tests/xml/src/test/java/org/apache/camel/quarkus/component/xml/it/XmlIT.java b/integration-tests/xml/src/test/java/org/apache/camel/quarkus/component/xml/it/XmlIT.java index e9136aa8649b..f5312ad7dddf 100644 --- a/integration-tests/xml/src/test/java/org/apache/camel/quarkus/component/xml/it/XmlIT.java +++ b/integration-tests/xml/src/test/java/org/apache/camel/quarkus/component/xml/it/XmlIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.xml.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class XmlIT extends XmlTest { } diff --git a/integration-tests/xmlsecurity/src/test/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityIT.java b/integration-tests/xmlsecurity/src/test/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityIT.java index 43672203d737..d4da3ab8799c 100644 --- a/integration-tests/xmlsecurity/src/test/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityIT.java +++ b/integration-tests/xmlsecurity/src/test/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.xmlsecurity.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class XmlsecurityIT extends XmlsecurityTest { } diff --git a/integration-tests/xpath/src/test/java/org/apache/camel/quarkus/language/xpath/XPathIT.java b/integration-tests/xpath/src/test/java/org/apache/camel/quarkus/language/xpath/XPathIT.java index 5b8aace9d522..8d0d05ea3cc2 100644 --- a/integration-tests/xpath/src/test/java/org/apache/camel/quarkus/language/xpath/XPathIT.java +++ b/integration-tests/xpath/src/test/java/org/apache/camel/quarkus/language/xpath/XPathIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.language.xpath; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest public class XPathIT extends XPathTest { } diff --git a/integration-tests/xstream/src/test/java/org/apache/camel/quarkus/component/xstream/it/XstreamIT.java b/integration-tests/xstream/src/test/java/org/apache/camel/quarkus/component/xstream/it/XstreamIT.java index 508d79fe4959..19ef898ce070 100644 --- a/integration-tests/xstream/src/test/java/org/apache/camel/quarkus/component/xstream/it/XstreamIT.java +++ b/integration-tests/xstream/src/test/java/org/apache/camel/quarkus/component/xstream/it/XstreamIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.xstream.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class XstreamIT extends XstreamTest { } diff --git a/integration-tests/zendesk/src/test/java/org/apache/camel/quarkus/component/zendesk/it/ZendeskIT.java b/integration-tests/zendesk/src/test/java/org/apache/camel/quarkus/component/zendesk/it/ZendeskIT.java index 86b566541dd8..bef31e01cba0 100644 --- a/integration-tests/zendesk/src/test/java/org/apache/camel/quarkus/component/zendesk/it/ZendeskIT.java +++ b/integration-tests/zendesk/src/test/java/org/apache/camel/quarkus/component/zendesk/it/ZendeskIT.java @@ -16,9 +16,9 @@ */ package org.apache.camel.quarkus.component.zendesk.it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class ZendeskIT extends ZendeskTest { } diff --git a/pom.xml b/pom.xml index 463db02aed6e..b2d9133c0e08 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.apache.camel camel-dependencies - 3.15.0 + 3.16.0 org.apache.camel.quarkus @@ -39,26 +39,26 @@ - 3.15 + 3.16 ${camel.major.minor}.0 ${camel.major.minor}.x ${camel.docs.components.version}@components camel-${camel.major.minor}.x camel-spring-boot-${camel.major.minor}.x - 1.1.1 + 1.1.2 1.6.1.Final - 8.16.0.Final + 8.19.0.Final 1.0.5 1.0.4 0.3.0 - 1.1.0 + 1.2.0 1.0.0 2.3.0 - 1.0.1 + 1.0.2 1.0.3 - 2.7.3.Final + 2.8.0.Final 3.0.0 - 0.32.0 + 0.33.0 @@ -67,9 +67,13 @@ 3.5.2 1.11.0 2.17.127 + 3.22.0 1.11.714 1.0.5 + 1.21.0 + 1.7.3 1.70 + ${c3p0-version} ${commons-beanutils-version} 1.4 3.2.2 @@ -82,24 +86,25 @@ 4.1.0 ${eddsa-version} 2.3.31 - 1.1.2 1.111 0.8.0 - 0.22.2 - 21.3.1 - 1.43.2 + ${grpc-google-auth-library-version} + 22.0.0.2 + 1.45.0 4.0 ${hadoop3-version} ${hapi-version} ${hapi-fhir-version} ${hbase-version} 4.2.0-incubating + 13.0.6.Final ${influx-java-driver-version} 1.9.13 ${jackson1.version} 2.0.3 2.1.0 2.3.3 + ${json-patch-version} 1.0.55 2.10.6 2.1.31 @@ -107,7 +112,7 @@ 3.22.0-CR2 1.19.4 ${jetty9-version} - 6.0.0.202111291000-r + 6.1.0.202203080745-r 2.1.2 2.4.7 1.1.3 @@ -122,15 +127,14 @@ 2.5.0 1.5.3 2.12.15 - 3.13.0 - ${spring5-version} + 3.15.0 + 5.3.18 ${snakeyaml-version} - 1.1.7.7 1.4.0 ${xalan-version} ${xchange-version} ${xerces-version} - 2.3 + 2.7 ${xstream-version} ${web3j-version} ${web3j-quorum-version} @@ -157,7 +161,7 @@ 0.1.0 - 2.15.1 + 2.26.0 3.1.0 3.0.0 2.17.1 @@ -658,20 +662,55 @@ + ch.qos.logback:logback-classic + ch.qos.logback:logback-core + ch.qos.logback:logback-access + ch.qos.logback:logback + com.github.fge:* com.google.code.findbugs:jsr305 com.sun.activation:javax.activation commons-logging:commons-logging commons-logging:commons-logging-api io.netty:netty-all + org.glassfish:javax.json + org.glassfish:javax.el + jakarta.activation:jakarta.activation-api + jakarta.json:jakarta.json-api + jakarta.xml.bind:jakarta.xml.bind-api + jakarta.ws.rs:jakarta.ws.rs-api javax.activation:activation + javax.activation:javax.activation-api + javax.annotation:javax.annotation-api javax.enterprise:cdi-api + javax.inject:javax.inject + javax:javaee-api + javax.json:javax.json-api + javax.json.bind:javax.json.bind-api + javax.persistence:javax.persistence-api + javax.persistence:persistence-api + javax.security.enterprise:javax.security.enterprise-api javax.servlet:servlet-api javax.servlet:javax.servlet-api javax.transaction:jta javax.transaction:javax.transaction-api + javax.validation:validation-api + javax.xml.bind:jaxb-api + javax.websocket:javax.websocket-api + javax.ws.rs:javax.ws.rs-api + junit:junit log4j:log4j + org.jboss.logging:jboss-logmanager + org.jboss.logging:jboss-logging-jdk + org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec + org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec + org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec + org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec + org.jboss.spec.javax.servlet:jboss-servlet-api_4.0_spec + org.jboss.spec.javax.security.jacc:jboss-jacc-api_1.5_spec + org.jboss.spec.javax.security.auth.message:jboss-jaspi-api_1.1_spec org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec org.jboss.spec.javax.transaction:jboss-transaction-api_1.3_spec + org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec org.apache.geronimo.specs:geronimo-jms_1.1_spec org.apache.geronimo.specs:geronimo-jms_2.0_spec org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec @@ -682,6 +721,13 @@ org.apache.logging.log4j:log4j-core org.apache.logging.log4j:log4j-slf4j-impl + org.slf4j:jcl-over-slf4j + org.jboss.slf4j:slf4j-jboss-logging + org.slf4j:slf4j-simple + org.slf4j:slf4j-nop + org.slf4j:slf4j-jdk14 + org.slf4j:slf4j-log4j12 + org.slf4j:slf4j-log4j13 diff --git a/poms/bom-test/pom.xml b/poms/bom-test/pom.xml index fced6471ad02..7c32cc7ba806 100644 --- a/poms/bom-test/pom.xml +++ b/poms/bom-test/pom.xml @@ -214,16 +214,42 @@ org.apache.sshd sshd-sftp ${sshd.version} + + + org.slf4j + jcl-over-slf4j + + org.apache.sshd sshd-scp ${sshd.version} + + + org.slf4j + jcl-over-slf4j + + org.knowm.xchange xchange-kraken ${xchange.version} + + + com.google.code.findbugs + jsr305 + + + jakarta.ws.rs + jakarta.ws.rs-api + + + javax.annotation + javax.annotation-api + + org.jvnet.mock-javamail @@ -301,6 +327,26 @@ aws-java-sdk-core ${aws-java-sdk.version} + + com.azure + azure-core + ${azure-core.version} + test-jar + test + + + com.azure + azure-core-test + ${azure-core-test.version} + test + + + com.azure + azure-core-test + ${azure-core-test.version} + test-jar + test +
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index 2218c6028d39..aa51ccac66b0 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -42,13 +42,6 @@ - - io.quarkus - quarkus-bom - ${quarkus.version} - pom - import - org.codehaus.groovy groovy-bom @@ -120,13 +113,31 @@ ${camel.version} - commons-logging - commons-logging + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.activemq + activemq-broker + + + org.apache.geronimo.specs + geronimo-jms_1.1_spec org.apache.geronimo.specs geronimo-jta_1.1_spec + + commons-logging + commons-logging + @@ -134,6 +145,14 @@ camel-ahc ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.servlet javax.servlet-api @@ -148,6 +167,16 @@ org.apache.camel camel-ahc-ws ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -158,6 +187,14 @@ io.netty * + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-spring @@ -176,11 +213,31 @@ org.apache.camel camel-api ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-arangodb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -191,6 +248,22 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-slf4j-impl + + + org.bouncycastle + bcprov-debug-jdk15on + @@ -202,6 +275,16 @@ org.apache.camel camel-asn1 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -212,12 +295,34 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-atlasmap ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + org.apache.camel @@ -228,6 +333,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.ws.rs jsr311-api @@ -243,6 +356,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.geronimo.specs geronimo-activation_1.1_spec @@ -253,26 +374,96 @@ org.apache.camel camel-atomix ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-attachments ${camel.version} + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-avro ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + org.apache.camel camel-avro-rpc ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + org.apache.camel camel-avro-rpc-spi ${camel.version} + + + javax.annotation + javax.annotation-api + + + javax.servlet + javax.servlet-api + + org.apache.camel @@ -283,6 +474,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -294,6 +493,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -305,6 +512,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -320,6 +535,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -335,6 +558,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -350,6 +581,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -365,6 +604,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -380,6 +627,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -395,6 +650,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -410,6 +673,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -425,6 +696,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -440,6 +719,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -455,6 +742,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -470,6 +765,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -485,6 +788,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -500,6 +811,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -515,6 +834,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -530,6 +857,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -545,6 +880,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -560,6 +903,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -575,6 +926,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + software.amazon.awssdk netty-nio-client @@ -585,6 +944,16 @@ org.apache.camel camel-azure-cosmosdb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -595,12 +964,30 @@ io.netty netty-tcnative-boringssl-static + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-azure-servicebus ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -611,12 +998,30 @@ io.netty netty-tcnative-boringssl-static + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-azure-storage-datalake ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -627,17 +1032,45 @@ io.netty netty-tcnative-boringssl-static + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-barcode ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-base ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -648,36 +1081,118 @@ org.apache.camel camel-base64 ${camel.version} - - - org.apache.camel + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel camel-bean ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-bean-validator ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + org.apache.camel camel-beanio ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-beanstalk ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-bindy ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-bonita ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + org.apache.camel @@ -688,6 +1203,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -699,21 +1222,61 @@ org.apache.camel camel-braintree ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-browse ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-caffeine ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-caffeine-lrucache ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -724,32 +1287,90 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-catalog ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-cbor ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-chatscript ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-chunk ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-cloud ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -765,6 +1386,18 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + @@ -776,32 +1409,110 @@ asm asm + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.xml.bind + jaxb-api + org.apache.camel camel-coap ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-cometd ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + org.apache.camel camel-componentdsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-consul ${camel.version} + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + org.apache.camel camel-controlbus ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -812,35 +1523,80 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.persistence + javax.persistence-api + org.apache.activemq * + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + org.jboss.logmanager jboss-logmanager + + org.slf4j + jcl-over-slf4j + - - org.apache.camel - camel-core - ${camel.version} - org.apache.camel camel-core-catalog ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-core-engine ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-core-languages ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -851,6 +1607,16 @@ org.apache.camel camel-core-processor ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -861,6 +1627,16 @@ org.apache.camel camel-couchbase ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -871,52 +1647,206 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-cron ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-crypto ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-csv ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-dataformat ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-debezium-common ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.javassist + javassist + + + io.debezium + * + + org.apache.camel camel-debezium-mongodb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + org.apache.camel camel-debezium-mysql ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + org.apache.camel camel-debezium-postgres ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + org.apache.camel camel-debezium-sqlserver ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + org.apache.camel @@ -927,32 +1857,98 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-direct ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-disruptor ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-djl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-dns ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-dozer ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + org.slf4j + jcl-over-slf4j + + org.apache.camel @@ -963,12 +1959,34 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + org.apache.camel camel-dropbox ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -979,12 +1997,30 @@ org.apache.camel camel-ehcache ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-elasticsearch-rest ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.elasticsearch.client * @@ -995,36 +2031,111 @@ org.apache.camel camel-elsql ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-endpointdsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl-support + ${camel.version} org.apache.camel camel-etcd ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-etcd3 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-exec ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-facebook ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-fastjson ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1035,6 +2146,14 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.slf4j jcl-over-slf4j @@ -1054,16 +2173,46 @@ org.apache.camel camel-file ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-file-watch ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-flatpack ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1074,6 +2223,14 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1085,37 +2242,113 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-freemarker ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-ftp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-ganglia ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-geocoder ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.httpcomponents + httpclient + + + com.jayway.jsonpath + json-path + + org.apache.camel camel-git ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-github ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1130,6 +2363,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.annotation javax.annotation-api @@ -1157,6 +2398,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1172,6 +2421,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1187,6 +2444,18 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + @@ -1202,6 +2471,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1225,6 +2502,14 @@ io.perfmark perfmark-api + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.annotation javax.annotation-api @@ -1239,6 +2524,33 @@ + + org.apache.camel + camel-google-secret-manager + ${camel.version} + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.apache.camel camel-google-sheets @@ -1252,6 +2564,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1267,6 +2587,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.annotation javax.annotation-api @@ -1290,22 +2618,60 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-grok ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-groovy ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-groovy-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1325,22 +2691,60 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-gson ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-guava-eventbus ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-hazelcast ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1355,6 +2759,22 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.annotation + javax.annotation-api + @@ -1370,16 +2790,58 @@ commons-logging commons-logging + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.servlet + javax.servlet-api + javax.ws.rs jsr311-api + + javax.xml.bind + jaxb-api + org.apache.camel camel-headersmap ${camel.version} + + + ch.qos.logback + logback-classic + + + ch.qos.logback + logback-core + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1390,12 +2852,30 @@ org.apache.camel camel-hl7 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-http ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.servlet javax.servlet-api @@ -1415,11 +2895,36 @@ org.apache.camel camel-http-common ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-huaweicloud-common + ${camel.version} org.apache.camel camel-huaweicloud-smn ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1430,6 +2935,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1441,6 +2954,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -1452,22 +2973,52 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-ignite ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-infinispan ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.infinispan infinispan-core + + org.infinispan + infinispan-marshaller-protostuff + @@ -1479,6 +3030,16 @@ org.apache.camel camel-influxdb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1489,57 +3050,177 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-irc ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jackson ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jackson-avro ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jackson-protobuf ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jacksonxml ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jasypt ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-java-joor-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jaxb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jbpm ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + org.slf4j + jcl-over-slf4j + + org.apache.camel camel-jcache ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1550,6 +3231,18 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + javax.ws.rs javax.ws.rs-api @@ -1560,12 +3253,34 @@ org.apache.camel camel-jcr ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + org.apache.camel camel-jdbc ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.springframework spring-beans @@ -1580,27 +3295,75 @@ org.apache.camel camel-jfr ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jgroups ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jgroups-raft ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jing ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jira ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.ws.rs jsr311-api @@ -1644,10 +3407,22 @@ camel-jms ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-spring + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + org.springframework spring-beans @@ -1666,27 +3441,83 @@ org.apache.camel camel-johnzon ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jolt ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + org.apache.camel camel-jooq ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + org.apache.camel camel-joor ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jpa ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-spring @@ -1709,71 +3540,215 @@ org.apache.camel camel-js-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jsch ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jslt ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-json-patch ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-json-validator ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jsonapi ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jsonata ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jsonb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jsonpath ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jt400 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-jta ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + org.apache.camel camel-kafka ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-kamelet ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-kotlin-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1784,43 +3759,119 @@ io.fabric8 kubernetes-client + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-kudu ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-language ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-ldap ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-ldif ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-leveldb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-log ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-lra ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.cxf * @@ -1831,27 +3882,75 @@ org.apache.camel camel-lucene ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-lumberjack ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-lzf ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mail ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-main ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-headersmap @@ -1862,6 +3961,16 @@ org.apache.camel camel-management ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1872,22 +3981,60 @@ org.apache.camel camel-master ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-micrometer ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-microprofile-config ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-microprofile-fault-tolerance ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.eclipse.microprofile.fault-tolerance microprofile-fault-tolerance-api @@ -1898,12 +4045,34 @@ org.apache.camel camel-microprofile-health ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-microprofile-metrics ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + org.eclipse.microprofile.metrics microprofile-metrics-api @@ -1914,6 +4083,16 @@ org.apache.camel camel-milo ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -1928,23 +4107,59 @@ io.minio minio + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-mllp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mock ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mongodb ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.mongodb * @@ -1956,6 +4171,14 @@ camel-mongodb-gridfs ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.mongodb * @@ -1966,42 +4189,120 @@ org.apache.camel camel-msv ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mustache ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mvel ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-mybatis ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-nagios ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-nats ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-netty ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-netty-http ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.servlet javax.servlet-api @@ -2012,6 +4313,24 @@ org.apache.camel camel-nitrite ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + javax.validation + validation-api + + org.apache.camel @@ -2022,6 +4341,26 @@ com.google.code.findbugs jsr305 + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + @@ -2033,12 +4372,30 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-ognl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2049,6 +4406,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -2065,6 +4430,14 @@ com.fasterxml.jackson.dataformat jackson-dataformat-xml + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -2072,10 +4445,22 @@ camel-openstack ${camel.version} + + com.github.fge + * + com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -2087,18 +4472,44 @@ io.grpc grpc-netty-shaded + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-opentracing ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-optaplanner ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.optaplanner optaplanner-core @@ -2113,11 +4524,31 @@ org.apache.camel camel-paho ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-paho-mqtt5 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2128,17 +4559,49 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-pg-replication-slot ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-pgevent ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + org.apache.camel @@ -2149,11 +4612,31 @@ org.apache.camel camel-platform-http-vertx ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-printer ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2164,18 +4647,56 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-pubnub ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-pulsar ${camel.version} + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + com.google.code.findbugs jsr305 @@ -2184,6 +4705,14 @@ com.google.j2objc j2objc-annotations + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + @@ -2191,6 +4720,14 @@ camel-quartz ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.quartz-scheduler quartz @@ -2206,6 +4743,14 @@ camel-quickfix ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.quickfixj quickfixj-codegenerator @@ -2216,36 +4761,106 @@ org.apache.camel camel-rabbitmq ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-reactive-executor-vertx ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-reactive-streams ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-redis ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-ref ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-rest ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-rest-openapi ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2260,65 +4875,183 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-robotframework ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-rss ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-saga ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-salesforce ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + org.apache.camel camel-sap-netweaver ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-saxon ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-scheduler ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-schematron ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-seda ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-servicenow ${camel.version} + + com.sun.xml.messaging.saaj + saaj-impl + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + javax.xml.ws jaxws-api - com.sun.xml.messaging.saaj - saaj-impl + org.apache.geronimo.specs + geronimo-jta_1.1_spec @@ -2326,26 +5059,76 @@ org.apache.camel camel-servlet ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + +
org.apache.camel camel-shiro ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-sip ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-sjms ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-sjms2 ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2356,27 +5139,71 @@ com.googlecode.json-simple json-simple + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-smpp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-snakeyaml ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-snmp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-soap ${camel.version} + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2387,17 +5214,53 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + org.apache.camel camel-soroush ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-splunk ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2408,6 +5271,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -2415,6 +5286,18 @@ camel-spring-rabbitmq ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + org.springframework spring-beans @@ -2438,6 +5321,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.springframework spring-beans @@ -2452,66 +5343,200 @@ org.apache.camel camel-ssh ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + org.apache.camel camel-stax ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-stitch ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-stomp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-stream ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-stringtemplate ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-stub ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-support ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-syslog ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-tagsoup ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-tarfile ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-telegram ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-threadpoolfactory-vertx ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2522,17 +5547,53 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + org.apache.camel camel-tika ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.tika + * + + org.apache.camel camel-timer ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2549,6 +5610,18 @@ camel-twilio ${camel.version} + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + com.google.code.findbugs jsr305 @@ -2557,17 +5630,41 @@ commons-logging commons-logging + + javax.xml.bind + jaxb-api + org.apache.camel camel-twitter ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-univocity-parsers ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2583,16 +5680,46 @@ org.apache.camel camel-validator ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-velocity ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-vertx ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2603,16 +5730,46 @@ org.apache.camel camel-vertx-http ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-vertx-websocket ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-vm ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2623,22 +5780,68 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + org.apache.camel camel-web3j ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-webhook ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-wordpress ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + org.apache.camel @@ -2649,6 +5852,14 @@ commons-logging commons-logging + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + @@ -2660,22 +5871,68 @@ com.google.code.findbugs jsr305 + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + org.apache.camel camel-xj ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xml-io ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xml-io-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2686,46 +5943,136 @@ org.apache.camel camel-xml-jaxb ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xml-jaxp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xmlsecurity ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xmpp ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xpath ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xslt ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xslt-saxon ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-xstream ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-yaml-dsl ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel @@ -2741,36 +6088,91 @@ org.apache.camel camel-yammer ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-zendesk ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-zip-deflater ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-zipfile ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-zookeeper ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.apache.camel camel-zookeeper-master ${camel.version} - - - org.apache.camel - spi-annotations - ${camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + @@ -3909,6 +7311,16 @@ camel-quarkus-google-pubsub-deployment ${camel-quarkus.version}
+ + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + ${camel-quarkus.version} + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager-deployment + ${camel-quarkus.version} + org.apache.camel.quarkus camel-quarkus-google-sheets @@ -4354,6 +7766,11 @@ camel-quarkus-jolt ${camel-quarkus.version} + + org.apache.camel.quarkus + camel-quarkus-jolt-deployment + ${camel-quarkus.version} + org.apache.camel.quarkus camel-quarkus-jooq @@ -5554,6 +8971,16 @@ camel-quarkus-support-azure-core-deployment ${camel-quarkus.version} + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + ${camel-quarkus.version} + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-deployment + ${camel-quarkus.version} + org.apache.camel.quarkus camel-quarkus-support-bouncycastle @@ -5754,6 +9181,11 @@ camel-quarkus-tagsoup ${camel-quarkus.version} + + org.apache.camel.quarkus + camel-quarkus-tagsoup-deployment + ${camel-quarkus.version} + org.apache.camel.quarkus camel-quarkus-tarfile @@ -5799,6 +9231,11 @@ camel-quarkus-tika ${camel-quarkus.version} + + org.apache.camel.quarkus + camel-quarkus-tika-deployment + ${camel-quarkus.version} + org.apache.camel.quarkus camel-quarkus-timer @@ -6130,46 +9567,134 @@ ca.uhn.hapi hapi-structures-v21 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v22 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v23 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v231 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v24 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v25 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v251 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi hapi-structures-v26 ${hapi.version} + + + com.google.code.findbugs + jsr305 + + ca.uhn.hapi.fhir hapi-fhir-server ${hapi-fhir.version} + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-dstu2.1 + ${hapi-fhir.version} + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-hl7org-dstu2 + ${hapi-fhir.version} + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + com.fasterxml.woodstox @@ -6177,9 +9702,15 @@ ${woodstox-core.version} - com.github.fommil.netlib - core - ${fommil.netlib.core.version} + com.github.java-json-tools + json-patch + ${java-json-tools.json-patch.version} + + + com.google.code.findbugs + jsr305 + + com.github.jnr @@ -6207,10 +9738,33 @@ core ${zxing.version} + + com.mchange + c3p0 + ${c3p0.version} + com.orbitz.consul consul-client ${consul-client.version} + + + com.google.code.findbugs + jsr305 + + + com.google.errorprone + error_prone_annotations + + + com.google.j2objc + j2objc-annotations + + + org.codehaus.mojo + animal-sniffer-annotations + + com.squareup.okio @@ -6257,6 +9811,12 @@ commons-beanutils commons-beanutils ${commons-beanutils.version} + + + commons-logging + commons-logging + + commons-cli @@ -6357,6 +9917,16 @@ io.smallrye.reactive smallrye-reactive-messaging-camel ${smallrye.reactive.messaging.camel.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + jakarta.jms @@ -6367,6 +9937,16 @@ jakarta.xml.ws jakarta.xml.ws-api ${jakarta.xml.ws.api.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + jaxen @@ -6388,11 +9968,6 @@ json-smart ${json-smart.version} - - org.antlr - antlr - ${antlr3.version} - org.antlr antlr-runtime @@ -6407,6 +9982,12 @@ org.apache.avro avro-ipc-netty ${avro.version} + + + javax.annotation + javax.annotation-api + + org.apache.commons @@ -6447,6 +10028,36 @@ org.apache.kafka connect-runtime ${kafka.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + org.slf4j + slf4j-log4j12 + + org.apache.kudu @@ -6528,6 +10139,11 @@ js-scriptengine ${graalvm.version} + + org.infinispan + infinispan-jboss-marshalling + ${infinispan.version} + org.influxdb influxdb-java @@ -6572,21 +10188,61 @@ org.optaplanner optaplanner-quarkus ${optaplanner.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.optaplanner optaplanner-quarkus-deployment ${optaplanner.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.optaplanner optaplanner-quarkus-jackson ${optaplanner.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.optaplanner optaplanner-quarkus-jackson-deployment ${optaplanner.version} + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + org.springframework @@ -6619,11 +10275,21 @@ spring-expression ${spring.version} + + org.springframework + spring-jdbc + ${spring.version} + org.springframework spring-messaging ${spring.version} + + org.springframework + spring-orm + ${spring.version} + org.springframework spring-tx @@ -6673,4 +10339,109 @@
+ + + + org.l2x6.cq + cq-maven-plugin + + + flatten-bom + + flatten-bom + + process-resources + + + + + + io.quarkus:quarkus-bom + + + + + + org.apache.camel.quarkus:* + ca.uhn.hapi:* + + + + org.amqphub.quarkus:quarkus-qpid-jms + org.apache.geronimo.specs:geronimo-jms_2.0_spec + + + com.datastax.oss:java-driver-core + com.google.code.findbugs:jsr305 + + + com.datastax.oss:java-driver-query-builder + com.google.code.findbugs:jsr305 + + + io.quarkiverse.minio:quarkus-minio + com.google.code.findbugs:jsr305 + + + software.amazon.awssdk:apache-client + commons-logging:commons-logging + + + io.debezium:debezium-embedded:1.6.1.Final:jar + javax.activation:activation,javax.servlet:javax.servlet-api,log4j:log4j,org.apache.kafka:kafka-log4j-appender,org.apache.kafka:connect-runtime,org.apache.kafka:connect-file + + + org.glassfish.jaxb:jaxb-runtime + jakarta.xml.bind:jakarta.xml.bind-api + + + + + com.google.http-client:google-http-client + com.google.code.findbugs:jsr305 + + + io.debezium:debezium-embedded + javax.ws.rs:javax.ws.rs-api + + + io.grpc:grpc-netty + com.google.code.findbugs:jsr305 + + + org.apache.httpcomponents:* + commons-logging:commons-logging + + + org.apache.kafka:connect-runtime + javax.activation:activation,javax.servlet:javax.servlet-api,log4j:log4j + + + com.fasterxml.jackson.module:jackson-module-jaxb-annotations + jakarta.activation:jakarta.activation-api,jakarta.xml.bind:jakarta.xml.bind-api + + + + + + + + + + + + + + atlassian + https://packages.atlassian.com/maven-external/ + atlassian exteranl repo + + false + + + true + + + + diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml new file mode 100644 index 000000000000..04b927746cf8 --- /dev/null +++ b/poms/bom/src/main/generated/flattened-full-pom.xml @@ -0,0 +1,23033 @@ + + + 4.0.0 + org.apache.camel.quarkus + camel-quarkus-bom + 2.8.0-SNAPSHOT + pom + Camel Quarkus :: BOM + Apache Camel extensions for Quarkus + http://camel.apache.org/camel-quarkus-poms/camel-quarkus-bom + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + The Apache Camel Team + dev@camel.apache.org + http://camel.apache.org + Apache Software Foundation + http://apache.org/ + + http://camel.apache.org/banner.data/apache-camel-7.png + + + + + scm:git:http://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + scm:git:https://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + https://gitbox.apache.org/repos/asf?p=camel-quarkus.git;a=summary/camel-quarkus-poms/camel-quarkus-bom + + + GitHub + https://github.com/apache/camel-quarkus/issues + + + + apache.releases.https + Apache Release Distribution Repository + https://repository.apache.org/service/local/staging/deploy/maven2 + + + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots + + + + + + com.jcraft + jzlib + 1.1.3 + + + org.apache.camel + camel-activemq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.activemq + activemq-broker + + + org.apache.geronimo.specs + geronimo-jms_1.1_spec + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-ahc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + io.netty + netty-all + + + + + org.apache.camel + camel-ahc-ws + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-amqp + 3.16.0 + + + io.netty + * + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.qpid + qpid-jms-client + + + org.apache.qpid + proton-j + + + + + org.apache.camel + camel-api + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-arangodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-as2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-slf4j-impl + + + org.bouncycastle + bcprov-debug-jdk15on + + + + + org.apache.camel + camel-as2-api + 3.16.0 + + + org.apache.camel + camel-asn1 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-asterisk + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-atlasmap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-atmos + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + + + org.apache.camel + camel-atom + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-activation_1.1_spec + + + + + org.apache.camel + camel-atomix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-attachments + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc-spi + 3.16.0 + + + javax.annotation + javax.annotation-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-aws-secrets-manager + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws-xray + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws2-athena + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-cw + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ddb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ec2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ecs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eks + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eventbridge + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-iam + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kinesis + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-lambda + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-mq + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-msk + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-s3 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ses + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sns + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sqs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sts + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-translate + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-azure-cosmosdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-eventhubs + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-servicebus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-blob + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-datalake + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-queue + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-barcode + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base-engine + 3.16.0 + + + org.apache.camel + camel-base64 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + + + org.apache.camel + camel-beanio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-beanstalk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bindy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bonita + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-box + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-box-api + 3.16.0 + + + org.apache.camel + camel-braintree + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-browse + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine-lrucache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cassandraql + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cbor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chatscript + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cloud + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cluster + 3.16.0 + + + org.apache.camel + camel-cm-sms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-cmis + 3.16.0 + + + asm + asm + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-coap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cometd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-componentdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-consul + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-controlbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-corda + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.persistence + javax.persistence-api + + + org.apache.activemq + * + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.jboss.logmanager + jboss-logmanager + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-core-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-engine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-languages + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-model + 3.16.0 + + + org.apache.camel + camel-core-processor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-reifier + 3.16.0 + + + org.apache.camel + camel-couchbase + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-couchdb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-crypto + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-csv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dataformat + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-debezium-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.javassist + javassist + + + io.debezium + * + + + + + org.apache.camel + camel-debezium-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-mysql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-postgres + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-sqlserver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-digitalocean + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-direct + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-disruptor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-djl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dns + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dozer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-drill + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-dropbox + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dsl-support + 3.16.0 + + + org.apache.camel + camel-ehcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-elasticsearch-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.elasticsearch.client + * + + + + + org.apache.camel + camel-elsql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl-support + 3.16.0 + + + org.apache.camel + camel-etcd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-etcd3 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-exec + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-facebook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fastjson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fhir + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + xpp3 + xpp3 + + + + + org.apache.camel + camel-fhir-api + 3.16.0 + + + org.apache.camel + camel-file + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-file-watch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flatpack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flink + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fop + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-freemarker + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ftp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ganglia + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-geocoder + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.httpcomponents + httpclient + + + com.jayway.jsonpath + json-path + + + + + org.apache.camel + camel-git + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-github + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-bigquery + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-calendar + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-drive + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-functions + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-mail + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-pubsub + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.grpc + grpc-netty-shaded + + + io.perfmark + perfmark-api + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-secret-manager + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-sheets + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-storage + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-graphql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-grok + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl-common + 3.16.0 + + + org.apache.camel + camel-grpc + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-gson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-guava-eventbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hazelcast + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hbase + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-hdfs + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.servlet + javax.servlet-api + + + javax.ws.rs + jsr311-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-headersmap + 3.16.0 + + + ch.qos.logback + logback-classic + + + ch.qos.logback + logback-core + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-health + 3.16.0 + + + org.apache.camel + camel-hl7 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-http-base + 3.16.0 + + + org.apache.camel + camel-http-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-huaweicloud-common + 3.16.0 + + + org.apache.camel + camel-huaweicloud-smn + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hystrix + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ical + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iec60870 + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ignite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-infinispan + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.infinispan + infinispan-core + + + org.infinispan + infinispan-marshaller-protostuff + + + + + org.apache.camel + camel-infinispan-common + 3.16.0 + + + org.apache.camel + camel-influxdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iota + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-irc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-protobuf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jacksonxml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jasypt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-java-joor-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jbpm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jclouds + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + javax.ws.rs + javax.ws.rs-api + + + + + org.apache.camel + camel-jcr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jdbc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jfr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups-raft + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jira + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + com.google.j2objc + j2objc-annotations + + + com.google.code.findbugs + jsr305 + + + com.sun.jersey + * + + + commons-logging + commons-logging + + + org.apache.httpcomponents + httpclient-cache + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-johnzon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jolt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + + + org.apache.camel + camel-jooq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-joor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jpa + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-js-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-patch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonata + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jt400 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jta + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-kafka + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kamelet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kotlin-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kubernetes + 3.16.0 + + + io.fabric8 + kubernetes-client + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kudu + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-language + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldif + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-leveldb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-log + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lra + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.cxf + * + + + + + org.apache.camel + camel-lucene + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lumberjack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lzf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mail + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-main + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-headersmap + + + + + org.apache.camel + camel-management + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-management-api + 3.16.0 + + + org.apache.camel + camel-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-micrometer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-config + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-fault-tolerance + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.eclipse.microprofile.fault-tolerance + microprofile-fault-tolerance-api + + + + + org.apache.camel + camel-microprofile-health + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-metrics + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.eclipse.microprofile.metrics + microprofile-metrics-api + + + + + org.apache.camel + camel-milo + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-minio + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.minio + minio + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mllp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mock + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-mongodb-gridfs + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-msv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mustache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mvel + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mybatis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nagios + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nats + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-nitrite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-nsq + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + + + org.apache.camel + camel-oaipmh + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ognl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4-api + 3.16.0 + + + org.apache.camel + camel-openapi-java + 3.16.0 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-openstack + 3.16.0 + + + com.github.fge + * + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentelemetry + 3.16.0 + + + io.grpc + grpc-netty-shaded + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentracing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-optaplanner + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.optaplanner + optaplanner-core + + + org.optaplanner + optaplanner-persistence-common + + + + + org.apache.camel + camel-paho + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-paho-mqtt5 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pdf + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pg-replication-slot + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pgevent + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + + + org.apache.camel + camel-platform-http + 3.16.0 + + + org.apache.camel + camel-platform-http-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-printer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-protobuf + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pubnub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pulsar + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + com.google.code.findbugs + jsr305 + + + com.google.j2objc + j2objc-annotations + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-quartz + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + + + + org.apache.camel + camel-quickfix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quickfixj + quickfixj-codegenerator + + + + + org.apache.camel + camel-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-executor-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-streams + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-redis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ref + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest-openapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ribbon + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-robotframework + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rss + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saga + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-salesforce + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-sap-netweaver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-scheduler + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-schematron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-seda + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-servicenow + 3.16.0 + + + com.sun.xml.messaging.saaj + saaj-impl + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.xml.ws + jaxws-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-servlet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-shiro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sip + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms2 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-slack + 3.16.0 + + + com.googlecode.json-simple + json-simple + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-smpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snakeyaml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snmp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-soap + 3.16.0 + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-solr + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-soroush + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk-hec + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-spring-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-sql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-ssh + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-stax + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stitch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stomp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stringtemplate + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-support + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-syslog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tagsoup + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tarfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-telegram + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-threadpoolfactory-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-thrift + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-tika + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.tika + * + + + + + org.apache.camel + camel-timer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tooling-model + 3.16.0 + + + org.apache.camel + camel-tracing + 3.16.0 + + + org.apache.camel + camel-twilio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-twitter + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-univocity-parsers + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-util + 3.16.0 + + + org.apache.camel + camel-util-json + 3.16.0 + + + org.apache.camel + camel-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-velocity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-common + 3.16.0 + + + org.apache.camel + camel-vertx-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-websocket + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-weather + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-web3j + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-webhook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-wordpress + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-workday + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xchange + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-xj + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-util + 3.16.0 + + + org.apache.camel + camel-xml-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-jaxp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmlsecurity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xstream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl-common + 3.16.0 + + + org.apache.camel + camel-yaml-dsl-deserializers + 3.16.0 + + + org.apache.camel + camel-yammer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zendesk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zip-deflater + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zipfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel.quarkus + camel-quarkus-activemq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-activemq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-catalog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-component + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-beans + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-context + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master-deployment + 2.8.0-SNAPSHOT + + + ca.uhn.hapi + hapi-base + 2.3 + + + ca.uhn.hapi + hapi-structures-v21 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v22 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v23 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v231 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v24 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v25 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v251 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v26 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi.fhir + hapi-fhir-server + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-dstu2.1 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-hl7org-dstu2 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + com.fasterxml.woodstox + woodstox-core + 6.1.1 + + + com.github.java-json-tools + json-patch + 1.13 + + + com.google.code.findbugs + jsr305 + + + + + com.github.jnr + jnr-ffi + 2.1.2 + + + org.ow2.asm + asm-util + + + + + com.google.auth + google-auth-library-credentials + 1.5.3 + + + com.google.cloud + native-image-support + 0.8.0 + + + com.google.zxing + core + 3.3.3 + + + com.mchange + c3p0 + 0.9.5.5 + + + com.orbitz.consul + consul-client + 1.5.3 + + + com.google.code.findbugs + jsr305 + + + com.google.errorprone + error_prone_annotations + + + com.google.j2objc + j2objc-annotations + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + com.squareup.okio + okio + 1.17.2 + + + com.squareup.retrofit2 + converter-jackson + 2.5.0 + + + com.squareup.retrofit2 + retrofit + 2.5.0 + + + com.sun.istack + istack-commons-runtime + 3.0.10 + + + com.sun.mail + jakarta.mail + 1.6.6 + + + com.sun.activation + jakarta.activation + + + + + com.sun.xml.messaging.saaj + saaj-impl + 1.5.3 + + + com.thoughtworks.xstream + xstream + 1.4.19 + + + commons-beanutils + commons-beanutils + 1.9.4 + + + commons-logging + commons-logging + + + + + commons-cli + commons-cli + 1.4 + + + commons-collections + commons-collections + 3.2.2 + + + commons-lang + commons-lang + 2.6 + + + io.dropwizard.metrics + metrics-core + 4.1.0 + + + io.dropwizard.metrics + metrics-healthchecks + 4.1.0 + + + io.dropwizard.metrics + metrics-jmx + 4.1.0 + + + io.dropwizard.metrics + metrics-servlets + 4.1.0 + + + io.quarkiverse.freemarker + quarkus-freemarker + 0.3.0 + + + io.quarkiverse.freemarker + quarkus-freemarker-deployment + 0.3.0 + + + io.quarkiverse.jgit + quarkus-jgit + 1.2.0 + + + io.quarkiverse.jgit + quarkus-jgit-deployment + 1.2.0 + + + io.quarkiverse.jsch + quarkus-jsch + 1.0.0 + + + io.quarkiverse.jsch + quarkus-jsch-deployment + 1.0.0 + + + io.quarkiverse.minio + quarkus-minio + 2.3.0 + + + com.google.code.findbugs + jsr305 + + + + + io.quarkiverse.minio + quarkus-minio-deployment + 2.3.0 + + + io.quarkiverse.mybatis + quarkus-mybatis + 1.0.2 + + + io.quarkiverse.mybatis + quarkus-mybatis-deployment + 1.0.2 + + + io.quarkiverse.tika + quarkus-tika + 1.0.3 + + + io.quarkiverse.tika + quarkus-tika-deployment + 1.0.3 + + + io.smallrye.reactive + smallrye-reactive-messaging-camel + 3.15.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jakarta.jms + jakarta.jms-api + 2.0.3 + + + jakarta.xml.ws + jakarta.xml.ws-api + 2.3.3 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jaxen + jaxen + 1.2.0 + + + joda-time + joda-time + 2.10.6 + + + net.i2p.crypto + eddsa + 0.3.0 + + + net.minidev + json-smart + 2.4.7 + + + org.antlr + antlr-runtime + 3.5.2 + + + org.apache.avro + avro-ipc-jetty + 1.11.0 + + + org.apache.avro + avro-ipc-netty + 1.11.0 + + + javax.annotation + javax.annotation-api + + + + + org.apache.commons + commons-math3 + 3.6.1 + + + org.apache.curator + curator-client + 4.3.0 + + + org.apache.curator + curator-framework + 4.3.0 + + + org.apache.curator + curator-recipes + 4.3.0 + + + org.apache.curator + curator-test + 4.3.0 + + + org.apache.curator + curator-x-discovery + 4.3.0 + + + org.apache.htrace + htrace-core4 + 4.2.0-incubating + + + org.apache.kafka + connect-runtime + 3.1.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + org.slf4j + slf4j-log4j12 + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + + + org.apache.kudu + kudu-client + 1.14.0 + + + org.apache.xmlgraphics + xmlgraphics-commons + 2.7 + + + org.apache.zookeeper + zookeeper + 3.6.2 + + + org.apache.zookeeper + zookeeper-jute + 3.6.2 + + + org.asynchttpclient + async-http-client + 2.12.3 + + + org.bouncycastle + bcpg-jdk15on + 1.70 + + + org.bouncycastle + bcutil-jdk15on + 1.70 + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + + + org.codehaus.jackson + jackson-jaxrs + 1.9.13 + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + org.codehaus.jackson + jackson-xc + 1.9.13 + + + org.codehaus.mojo + animal-sniffer-annotations + 1.18 + + + org.codehaus.woodstox + stax2-api + 4.2 + + + org.eclipse.jgit + org.eclipse.jgit + 6.1.0.202203080745-r + + + org.graalvm.js + js + 22.0.0.2 + + + org.graalvm.js + js-scriptengine + 22.0.0.2 + + + org.infinispan + infinispan-jboss-marshalling + 13.0.6.Final + + + org.influxdb + influxdb-java + 2.22 + + + org.javassist + javassist + 3.22.0-CR2 + + + org.jetbrains.kotlin + kotlin-script-util + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm-host + 1.6.10 + + + org.jruby.jcodings + jcodings + 1.0.55 + + + org.jruby.joni + joni + 2.1.31 + + + org.mvel + mvel2 + 2.4.13.Final + + + org.optaplanner + optaplanner-quarkus + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.springframework + spring-aop + 5.3.18 + + + org.springframework + spring-beans + 5.3.18 + + + org.springframework + spring-context + 5.3.18 + + + org.springframework + spring-core + 5.3.18 + + + org.springframework + spring-jcl + + + + + org.springframework + spring-expression + 5.3.18 + + + org.springframework + spring-jdbc + 5.3.18 + + + org.springframework + spring-messaging + 5.3.18 + + + org.springframework + spring-orm + 5.3.18 + + + org.springframework + spring-tx + 5.3.18 + + + org.threeten + threetenbp + 1.4.0 + + + org.web3j + core + 3.6.0 + + + org.web3j + geth + 3.6.0 + + + org.web3j + parity + 3.6.0 + + + org.web3j + quorum + 0.8.0 + + + xalan + xalan + 2.7.2 + + + xml-apis + xml-apis + + + + + xerces + xercesImpl + 2.12.2 + + + org.codehaus.groovy + groovy + 3.0.8 + + + org.codehaus.groovy + groovy-ant + 3.0.8 + + + org.codehaus.groovy + groovy-astbuilder + 3.0.8 + + + org.codehaus.groovy + groovy-bsf + 3.0.8 + + + org.codehaus.groovy + groovy-cli-commons + 3.0.8 + + + org.codehaus.groovy + groovy-cli-picocli + 3.0.8 + + + org.codehaus.groovy + groovy-console + 3.0.8 + + + org.codehaus.groovy + groovy-datetime + 3.0.8 + + + org.codehaus.groovy + groovy-dateutil + 3.0.8 + + + org.codehaus.groovy + groovy-docgenerator + 3.0.8 + + + org.codehaus.groovy + groovy-groovydoc + 3.0.8 + + + org.codehaus.groovy + groovy-groovysh + 3.0.8 + + + org.codehaus.groovy + groovy-jaxb + 3.0.8 + + + org.codehaus.groovy + groovy-jmx + 3.0.8 + + + org.codehaus.groovy + groovy-json + 3.0.8 + + + org.codehaus.groovy + groovy-jsr223 + 3.0.8 + + + org.codehaus.groovy + groovy-macro + 3.0.8 + + + org.codehaus.groovy + groovy-nio + 3.0.8 + + + org.codehaus.groovy + groovy-servlet + 3.0.8 + + + org.codehaus.groovy + groovy-sql + 3.0.8 + + + org.codehaus.groovy + groovy-swing + 3.0.8 + + + org.codehaus.groovy + groovy-templates + 3.0.8 + + + org.codehaus.groovy + groovy-test + 3.0.8 + + + org.codehaus.groovy + groovy-test-junit5 + 3.0.8 + + + org.codehaus.groovy + groovy-testng + 3.0.8 + + + org.codehaus.groovy + groovy-xml + 3.0.8 + + + org.codehaus.groovy + groovy-yaml + 3.0.8 + + + software.amazon.awssdk + codegen-lite-maven-plugin + 2.17.127 + + + software.amazon.awssdk + codegen-lite + 2.17.127 + + + software.amazon.awssdk + codegen-maven-plugin + 2.17.127 + + + software.amazon.awssdk + codegen + 2.17.127 + + + software.amazon.awssdk + annotations + 2.17.127 + + + software.amazon.awssdk + arns + 2.17.127 + + + software.amazon.awssdk + json-utils + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-core + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-dataformat-cbor + 2.17.127 + + + software.amazon.awssdk + auth + 2.17.127 + + + software.amazon.awssdk + aws-core + 2.17.127 + + + software.amazon.awssdk + profiles + 2.17.127 + + + software.amazon.awssdk + aws-cbor-protocol + 2.17.127 + + + software.amazon.awssdk + aws-json-protocol + 2.17.127 + + + software.amazon.awssdk + aws-query-protocol + 2.17.127 + + + software.amazon.awssdk + aws-xml-protocol + 2.17.127 + + + software.amazon.awssdk + protocol-core + 2.17.127 + + + software.amazon.awssdk + regions + 2.17.127 + + + software.amazon.awssdk + sdk-core + 2.17.127 + + + software.amazon.awssdk + http-client-spi + 2.17.127 + + + software.amazon.awssdk + apache-client + 2.17.127 + + + commons-logging + commons-logging + + + + + software.amazon.awssdk + netty-nio-client + 2.17.127 + + + software.amazon.awssdk + url-connection-client + 2.17.127 + + + software.amazon.awssdk + utils + 2.17.127 + + + software.amazon.awssdk + cloudwatch-metric-publisher + 2.17.127 + + + software.amazon.awssdk + acm + 2.17.127 + + + software.amazon.awssdk + acmpca + 2.17.127 + + + software.amazon.awssdk + alexaforbusiness + 2.17.127 + + + software.amazon.awssdk + amplify + 2.17.127 + + + software.amazon.awssdk + apigateway + 2.17.127 + + + software.amazon.awssdk + apigatewaymanagementapi + 2.17.127 + + + software.amazon.awssdk + apigatewayv2 + 2.17.127 + + + software.amazon.awssdk + applicationautoscaling + 2.17.127 + + + software.amazon.awssdk + applicationdiscovery + 2.17.127 + + + software.amazon.awssdk + appmesh + 2.17.127 + + + software.amazon.awssdk + appstream + 2.17.127 + + + software.amazon.awssdk + appsync + 2.17.127 + + + software.amazon.awssdk + athena + 2.17.127 + + + software.amazon.awssdk + autoscaling + 2.17.127 + + + software.amazon.awssdk + autoscalingplans + 2.17.127 + + + software.amazon.awssdk + backup + 2.17.127 + + + software.amazon.awssdk + batch + 2.17.127 + + + software.amazon.awssdk + budgets + 2.17.127 + + + software.amazon.awssdk + chime + 2.17.127 + + + software.amazon.awssdk + cloud9 + 2.17.127 + + + software.amazon.awssdk + clouddirectory + 2.17.127 + + + software.amazon.awssdk + cloudformation + 2.17.127 + + + software.amazon.awssdk + cloudfront + 2.17.127 + + + software.amazon.awssdk + cloudhsm + 2.17.127 + + + software.amazon.awssdk + cloudhsmv2 + 2.17.127 + + + software.amazon.awssdk + cloudsearch + 2.17.127 + + + software.amazon.awssdk + cloudsearchdomain + 2.17.127 + + + software.amazon.awssdk + cloudtrail + 2.17.127 + + + software.amazon.awssdk + cloudwatch + 2.17.127 + + + software.amazon.awssdk + cloudwatchevents + 2.17.127 + + + software.amazon.awssdk + cloudwatchlogs + 2.17.127 + + + software.amazon.awssdk + codebuild + 2.17.127 + + + software.amazon.awssdk + codecommit + 2.17.127 + + + software.amazon.awssdk + codedeploy + 2.17.127 + + + software.amazon.awssdk + codepipeline + 2.17.127 + + + software.amazon.awssdk + codestar + 2.17.127 + + + software.amazon.awssdk + cognitoidentity + 2.17.127 + + + software.amazon.awssdk + cognitoidentityprovider + 2.17.127 + + + software.amazon.awssdk + cognitosync + 2.17.127 + + + software.amazon.awssdk + comprehend + 2.17.127 + + + software.amazon.awssdk + comprehendmedical + 2.17.127 + + + software.amazon.awssdk + config + 2.17.127 + + + software.amazon.awssdk + connect + 2.17.127 + + + software.amazon.awssdk + costandusagereport + 2.17.127 + + + software.amazon.awssdk + costexplorer + 2.17.127 + + + software.amazon.awssdk + databasemigration + 2.17.127 + + + software.amazon.awssdk + datapipeline + 2.17.127 + + + software.amazon.awssdk + datasync + 2.17.127 + + + software.amazon.awssdk + dax + 2.17.127 + + + software.amazon.awssdk + devicefarm + 2.17.127 + + + software.amazon.awssdk + directconnect + 2.17.127 + + + software.amazon.awssdk + directory + 2.17.127 + + + software.amazon.awssdk + dlm + 2.17.127 + + + software.amazon.awssdk + docdb + 2.17.127 + + + software.amazon.awssdk + dynamodb + 2.17.127 + + + software.amazon.awssdk + dynamodb-enhanced + 2.17.127 + + + software.amazon.awssdk + ec2 + 2.17.127 + + + software.amazon.awssdk + ecr + 2.17.127 + + + software.amazon.awssdk + ecs + 2.17.127 + + + software.amazon.awssdk + efs + 2.17.127 + + + software.amazon.awssdk + eks + 2.17.127 + + + software.amazon.awssdk + elasticache + 2.17.127 + + + software.amazon.awssdk + elasticbeanstalk + 2.17.127 + + + software.amazon.awssdk + elasticloadbalancing + 2.17.127 + + + software.amazon.awssdk + elasticloadbalancingv2 + 2.17.127 + + + software.amazon.awssdk + elasticsearch + 2.17.127 + + + software.amazon.awssdk + elastictranscoder + 2.17.127 + + + software.amazon.awssdk + emr + 2.17.127 + + + software.amazon.awssdk + firehose + 2.17.127 + + + software.amazon.awssdk + fms + 2.17.127 + + + software.amazon.awssdk + fsx + 2.17.127 + + + software.amazon.awssdk + gamelift + 2.17.127 + + + software.amazon.awssdk + glacier + 2.17.127 + + + software.amazon.awssdk + globalaccelerator + 2.17.127 + + + software.amazon.awssdk + glue + 2.17.127 + + + software.amazon.awssdk + greengrass + 2.17.127 + + + software.amazon.awssdk + guardduty + 2.17.127 + + + software.amazon.awssdk + health + 2.17.127 + + + software.amazon.awssdk + iam + 2.17.127 + + + software.amazon.awssdk + inspector + 2.17.127 + + + software.amazon.awssdk + iot + 2.17.127 + + + software.amazon.awssdk + iot1clickdevices + 2.17.127 + + + software.amazon.awssdk + iot1clickprojects + 2.17.127 + + + software.amazon.awssdk + iotanalytics + 2.17.127 + + + software.amazon.awssdk + iotdataplane + 2.17.127 + + + software.amazon.awssdk + iotjobsdataplane + 2.17.127 + + + software.amazon.awssdk + kafka + 2.17.127 + + + software.amazon.awssdk + kinesis + 2.17.127 + + + software.amazon.awssdk + kinesisanalytics + 2.17.127 + + + software.amazon.awssdk + kinesisanalyticsv2 + 2.17.127 + + + software.amazon.awssdk + kinesisvideo + 2.17.127 + + + software.amazon.awssdk + kinesisvideoarchivedmedia + 2.17.127 + + + software.amazon.awssdk + kinesisvideomedia + 2.17.127 + + + software.amazon.awssdk + kms + 2.17.127 + + + software.amazon.awssdk + lambda + 2.17.127 + + + software.amazon.awssdk + lexmodelbuilding + 2.17.127 + + + software.amazon.awssdk + lexruntime + 2.17.127 + + + software.amazon.awssdk + licensemanager + 2.17.127 + + + software.amazon.awssdk + lightsail + 2.17.127 + + + software.amazon.awssdk + machinelearning + 2.17.127 + + + software.amazon.awssdk + macie + 2.17.127 + + + software.amazon.awssdk + managedblockchain + 2.17.127 + + + software.amazon.awssdk + marketplacecommerceanalytics + 2.17.127 + + + software.amazon.awssdk + marketplaceentitlement + 2.17.127 + + + software.amazon.awssdk + marketplacemetering + 2.17.127 + + + software.amazon.awssdk + mediaconnect + 2.17.127 + + + software.amazon.awssdk + mediaconvert + 2.17.127 + + + software.amazon.awssdk + medialive + 2.17.127 + + + software.amazon.awssdk + mediapackage + 2.17.127 + + + software.amazon.awssdk + mediapackagevod + 2.17.127 + + + software.amazon.awssdk + mediastore + 2.17.127 + + + software.amazon.awssdk + mediastoredata + 2.17.127 + + + software.amazon.awssdk + mediatailor + 2.17.127 + + + software.amazon.awssdk + migrationhub + 2.17.127 + + + software.amazon.awssdk + mobile + 2.17.127 + + + software.amazon.awssdk + mq + 2.17.127 + + + software.amazon.awssdk + mturk + 2.17.127 + + + software.amazon.awssdk + neptune + 2.17.127 + + + software.amazon.awssdk + opsworks + 2.17.127 + + + software.amazon.awssdk + opsworkscm + 2.17.127 + + + software.amazon.awssdk + organizations + 2.17.127 + + + software.amazon.awssdk + pi + 2.17.127 + + + software.amazon.awssdk + pinpoint + 2.17.127 + + + software.amazon.awssdk + pinpointemail + 2.17.127 + + + software.amazon.awssdk + pinpointsmsvoice + 2.17.127 + + + software.amazon.awssdk + polly + 2.17.127 + + + software.amazon.awssdk + pricing + 2.17.127 + + + software.amazon.awssdk + quicksight + 2.17.127 + + + software.amazon.awssdk + ram + 2.17.127 + + + software.amazon.awssdk + rds + 2.17.127 + + + software.amazon.awssdk + rdsdata + 2.17.127 + + + software.amazon.awssdk + redshift + 2.17.127 + + + software.amazon.awssdk + rekognition + 2.17.127 + + + software.amazon.awssdk + resourcegroups + 2.17.127 + + + software.amazon.awssdk + resourcegroupstaggingapi + 2.17.127 + + + software.amazon.awssdk + robomaker + 2.17.127 + + + software.amazon.awssdk + route53 + 2.17.127 + + + software.amazon.awssdk + route53domains + 2.17.127 + + + software.amazon.awssdk + route53resolver + 2.17.127 + + + software.amazon.awssdk + s3 + 2.17.127 + + + software.amazon.awssdk + s3control + 2.17.127 + + + software.amazon.awssdk + sagemaker + 2.17.127 + + + software.amazon.awssdk + sagemakerruntime + 2.17.127 + + + software.amazon.awssdk + secretsmanager + 2.17.127 + + + software.amazon.awssdk + securityhub + 2.17.127 + + + software.amazon.awssdk + serverlessapplicationrepository + 2.17.127 + + + software.amazon.awssdk + servicecatalog + 2.17.127 + + + software.amazon.awssdk + servicediscovery + 2.17.127 + + + software.amazon.awssdk + ses + 2.17.127 + + + software.amazon.awssdk + sfn + 2.17.127 + + + software.amazon.awssdk + shield + 2.17.127 + + + software.amazon.awssdk + signer + 2.17.127 + + + software.amazon.awssdk + sms + 2.17.127 + + + software.amazon.awssdk + snowball + 2.17.127 + + + software.amazon.awssdk + sns + 2.17.127 + + + software.amazon.awssdk + sqs + 2.17.127 + + + software.amazon.awssdk + ssm + 2.17.127 + + + software.amazon.awssdk + storagegateway + 2.17.127 + + + software.amazon.awssdk + sts + 2.17.127 + + + software.amazon.awssdk + support + 2.17.127 + + + software.amazon.awssdk + swf + 2.17.127 + + + software.amazon.awssdk + textract + 2.17.127 + + + software.amazon.awssdk + transcribe + 2.17.127 + + + software.amazon.awssdk + transcribestreaming + 2.17.127 + + + software.amazon.awssdk + transfer + 2.17.127 + + + software.amazon.awssdk + translate + 2.17.127 + + + software.amazon.awssdk + waf + 2.17.127 + + + software.amazon.awssdk + workdocs + 2.17.127 + + + software.amazon.awssdk + worklink + 2.17.127 + + + software.amazon.awssdk + workmail + 2.17.127 + + + software.amazon.awssdk + workspaces + 2.17.127 + + + software.amazon.awssdk + xray + 2.17.127 + + + software.amazon.awssdk + groundstation + 2.17.127 + + + software.amazon.awssdk + iotthingsgraph + 2.17.127 + + + software.amazon.awssdk + iotevents + 2.17.127 + + + software.amazon.awssdk + ioteventsdata + 2.17.127 + + + software.amazon.awssdk + personalizeruntime + 2.17.127 + + + software.amazon.awssdk + personalize + 2.17.127 + + + software.amazon.awssdk + personalizeevents + 2.17.127 + + + software.amazon.awssdk + servicequotas + 2.17.127 + + + software.amazon.awssdk + applicationinsights + 2.17.127 + + + software.amazon.awssdk + ec2instanceconnect + 2.17.127 + + + software.amazon.awssdk + eventbridge + 2.17.127 + + + software.amazon.awssdk + lakeformation + 2.17.127 + + + software.amazon.awssdk + forecast + 2.17.127 + + + software.amazon.awssdk + forecastquery + 2.17.127 + + + software.amazon.awssdk + qldb + 2.17.127 + + + software.amazon.awssdk + qldbsession + 2.17.127 + + + software.amazon.awssdk + workmailmessageflow + 2.17.127 + + + software.amazon.awssdk + codestarnotifications + 2.17.127 + + + software.amazon.awssdk + savingsplans + 2.17.127 + + + software.amazon.awssdk + sso + 2.17.127 + + + software.amazon.awssdk + ssooidc + 2.17.127 + + + software.amazon.awssdk + marketplacecatalog + 2.17.127 + + + software.amazon.awssdk + sesv2 + 2.17.127 + + + software.amazon.awssdk + dataexchange + 2.17.127 + + + software.amazon.awssdk + migrationhubconfig + 2.17.127 + + + software.amazon.awssdk + connectparticipant + 2.17.127 + + + software.amazon.awssdk + wafv2 + 2.17.127 + + + software.amazon.awssdk + appconfig + 2.17.127 + + + software.amazon.awssdk + iotsecuretunneling + 2.17.127 + + + software.amazon.awssdk + elasticinference + 2.17.127 + + + software.amazon.awssdk + imagebuilder + 2.17.127 + + + software.amazon.awssdk + schemas + 2.17.127 + + + software.amazon.awssdk + accessanalyzer + 2.17.127 + + + software.amazon.awssdk + computeoptimizer + 2.17.127 + + + software.amazon.awssdk + networkmanager + 2.17.127 + + + software.amazon.awssdk + kendra + 2.17.127 + + + software.amazon.awssdk + frauddetector + 2.17.127 + + + software.amazon.awssdk + codegurureviewer + 2.17.127 + + + software.amazon.awssdk + codeguruprofiler + 2.17.127 + + + software.amazon.awssdk + outposts + 2.17.127 + + + software.amazon.awssdk + sagemakera2iruntime + 2.17.127 + + + software.amazon.awssdk + ebs + 2.17.127 + + + software.amazon.awssdk + kinesisvideosignaling + 2.17.127 + + + software.amazon.awssdk + detective + 2.17.127 + + + software.amazon.awssdk + codestarconnections + 2.17.127 + + + software.amazon.awssdk + synthetics + 2.17.127 + + + software.amazon.awssdk + iotsitewise + 2.17.127 + + + software.amazon.awssdk + macie2 + 2.17.127 + + + software.amazon.awssdk + codeartifact + 2.17.127 + + + software.amazon.awssdk + honeycode + 2.17.127 + + + software.amazon.awssdk + ivs + 2.17.127 + + + software.amazon.awssdk + braket + 2.17.127 + + + software.amazon.awssdk + identitystore + 2.17.127 + + + software.amazon.awssdk + appflow + 2.17.127 + + + software.amazon.awssdk + redshiftdata + 2.17.127 + + + software.amazon.awssdk + ssoadmin + 2.17.127 + + + software.amazon.awssdk + timestreamwrite + 2.17.127 + + + software.amazon.awssdk + timestreamquery + 2.17.127 + + + software.amazon.awssdk + s3outposts + 2.17.127 + + + software.amazon.awssdk + metrics-spi + 2.17.127 + + + software.amazon.awssdk + databrew + 2.17.127 + + + software.amazon.awssdk + servicecatalogappregistry + 2.17.127 + + + software.amazon.awssdk + networkfirewall + 2.17.127 + + + software.amazon.awssdk + mwaa + 2.17.127 + + + software.amazon.awssdk + devopsguru + 2.17.127 + + + software.amazon.awssdk + sagemakerfeaturestoreruntime + 2.17.127 + + + software.amazon.awssdk + appintegrations + 2.17.127 + + + software.amazon.awssdk + ecrpublic + 2.17.127 + + + software.amazon.awssdk + amplifybackend + 2.17.127 + + + software.amazon.awssdk + connectcontactlens + 2.17.127 + + + software.amazon.awssdk + lookoutvision + 2.17.127 + + + software.amazon.awssdk + customerprofiles + 2.17.127 + + + software.amazon.awssdk + emrcontainers + 2.17.127 + + + software.amazon.awssdk + sagemakeredge + 2.17.127 + + + software.amazon.awssdk + healthlake + 2.17.127 + + + software.amazon.awssdk + auditmanager + 2.17.127 + + + software.amazon.awssdk + amp + 2.17.127 + + + software.amazon.awssdk + greengrassv2 + 2.17.127 + + + software.amazon.awssdk + iotwireless + 2.17.127 + + + software.amazon.awssdk + iotfleethub + 2.17.127 + + + software.amazon.awssdk + iotdeviceadvisor + 2.17.127 + + + software.amazon.awssdk + location + 2.17.127 + + + software.amazon.awssdk + wellarchitected + 2.17.127 + + + software.amazon.awssdk + lexruntimev2 + 2.17.127 + + + software.amazon.awssdk + lexmodelsv2 + 2.17.127 + + + software.amazon.awssdk + fis + 2.17.127 + + + software.amazon.awssdk + lookoutmetrics + 2.17.127 + + + software.amazon.awssdk + mgn + 2.17.127 + + + software.amazon.awssdk + lookoutequipment + 2.17.127 + + + software.amazon.awssdk + nimble + 2.17.127 + + + software.amazon.awssdk + finspacedata + 2.17.127 + + + software.amazon.awssdk + finspace + 2.17.127 + + + software.amazon.awssdk + ssmincidents + 2.17.127 + + + software.amazon.awssdk + ssmcontacts + 2.17.127 + + + software.amazon.awssdk + applicationcostprofiler + 2.17.127 + + + software.amazon.awssdk + apprunner + 2.17.127 + + + software.amazon.awssdk + proton + 2.17.127 + + + software.amazon.awssdk + route53recoveryreadiness + 2.17.127 + + + software.amazon.awssdk + route53recoverycontrolconfig + 2.17.127 + + + software.amazon.awssdk + route53recoverycluster + 2.17.127 + + + software.amazon.awssdk + chimesdkmessaging + 2.17.127 + + + software.amazon.awssdk + chimesdkidentity + 2.17.127 + + + software.amazon.awssdk + snowdevicemanagement + 2.17.127 + + + software.amazon.awssdk + memorydb + 2.17.127 + + + software.amazon.awssdk + opensearch + 2.17.127 + + + software.amazon.awssdk + kafkaconnect + 2.17.127 + + + software.amazon.awssdk + wisdom + 2.17.127 + + + software.amazon.awssdk + voiceid + 2.17.127 + + + software.amazon.awssdk + account + 2.17.127 + + + software.amazon.awssdk + cloudcontrol + 2.17.127 + + + software.amazon.awssdk + grafana + 2.17.127 + + + software.amazon.awssdk + panorama + 2.17.127 + + + software.amazon.awssdk + chimesdkmeetings + 2.17.127 + + + software.amazon.awssdk + resiliencehub + 2.17.127 + + + software.amazon.awssdk + migrationhubstrategy + 2.17.127 + + + software.amazon.awssdk + drs + 2.17.127 + + + software.amazon.awssdk + appconfigdata + 2.17.127 + + + software.amazon.awssdk + migrationhubrefactorspaces + 2.17.127 + + + software.amazon.awssdk + inspector2 + 2.17.127 + + + software.amazon.awssdk + evidently + 2.17.127 + + + software.amazon.awssdk + rum + 2.17.127 + + + software.amazon.awssdk + rbin + 2.17.127 + + + software.amazon.awssdk + iottwinmaker + 2.17.127 + + + software.amazon.awssdk + workspacesweb + 2.17.127 + + + software.amazon.awssdk + backupgateway + 2.17.127 + + + software.amazon.awssdk + amplifyuibuilder + 2.17.127 + + + org.apache.qpid + qpid-jms-client + 1.6.0 + + + org.amqphub.quarkus + quarkus-qpid-jms + 0.33.0 + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + + + org.amqphub.quarkus + quarkus-qpid-jms-deployment + 0.33.0 + + + io.quarkus + quarkus-bom-quarkus-platform-descriptor + 2.8.0.Final + json + 2.8.0.Final + + + io.quarkus + quarkus-bom-quarkus-platform-properties + 2.8.0.Final + properties + + + biz.paluch.logging + logstash-gelf + 1.15.0 + + + com.amazonaws + aws-lambda-java-core + 1.2.1 + + + com.amazonaws + aws-lambda-java-events + 3.11.0 + + + com.amazonaws + aws-xray-recorder-sdk-aws-sdk-v2 + 2.11.0 + + + commons-logging + commons-logging + + + joda-time + joda-time + + + + + com.cronutils + cron-utils + 9.1.6 + + + com.fasterxml.jackson.core + jackson-annotations + 2.13.2 + + + com.fasterxml.jackson.core + jackson-core + 2.13.2 + + + com.fasterxml.jackson.core + jackson-databind + 2.13.2.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-avro + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-cbor + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-csv + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-ion + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-properties + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-protobuf + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-smile + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-toml + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.13.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-eclipse-collections + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-guava + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate4 + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate5-jakarta + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate5 + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-hppc + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jakarta-jsonp + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jaxrs + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-joda-money + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-joda + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-json-org + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr353 + 2.13.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-pcollections + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-base + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-cbor-provider + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-json-provider + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-smile-provider + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-xml-provider + 2.13.2 + + + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-yaml-provider + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-cbor-provider + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-smile-provider + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-xml-provider + 2.13.2 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-yaml-provider + 2.13.2 + + + com.fasterxml.jackson.jr + jackson-jr-all + 2.13.2 + + + com.fasterxml.jackson.jr + jackson-jr-annotation-support + 2.13.2 + + + com.fasterxml.jackson.jr + jackson-jr-objects + 2.13.2 + + + com.fasterxml.jackson.jr + jackson-jr-retrofit2 + 2.13.2 + + + com.fasterxml.jackson.jr + jackson-jr-stree + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-afterburner + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-blackbird + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-guice + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-jakarta-xmlbind-annotations + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + 2.13.2 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + com.fasterxml.jackson.module + jackson-module-jsonSchema + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-kotlin + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-mrbean + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-no-ctor-deser + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-osgi + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-parameter-names + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-paranamer + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-scala_2.11 + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-scala_2.12 + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-scala_2.13 + 2.13.2 + + + com.fasterxml.jackson.module + jackson-module-scala_3 + 2.13.2 + + + com.fasterxml + classmate + 1.5.1 + + + com.github.ben-manes.caffeine + caffeine + 2.9.3 + + + org.checkerframework + checker-qual + + + + + com.github.docker-java + docker-java-api + 3.2.12 + + + com.github.docker-java + docker-java-core + 3.2.12 + + + com.github.docker-java + docker-java-transport-httpclient5 + 3.2.12 + + + com.github.docker-java + docker-java-transport-jersey + 3.2.12 + + + com.github.docker-java + docker-java-transport-netty + 3.2.12 + + + com.github.docker-java + docker-java-transport-okhttp + 3.2.12 + + + com.github.docker-java + docker-java-transport-zerodep + 3.2.12 + + + com.github.docker-java + docker-java-transport + 3.2.12 + + + com.github.docker-java + docker-java + 3.2.12 + + + com.google.cloud.functions + functions-framework-api + 1.0.4 + + + com.google.cloud.tools + jib-core + 0.20.0 + + + commons-logging + commons-logging + + + org.checkerframework + checker-qual + + + com.google.code.findbugs + jsr305 + + + + + com.google.code.findbugs + jsr305 + 3.0.2 + + + com.google.code.gson + gson + 2.9.0 + + + com.google.errorprone + error_prone_annotations + 2.11.0 + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + com.google.guava + failureaccess + 1.0.1 + + + com.google.guava + guava + 31.1-jre + + + com.google.code.findbugs + jsr305 + + + com.google.guava + listenablefuture + + + + + com.google.http-client + google-http-client-android + 1.41.4 + + + com.google.http-client + google-http-client-apache-v2 + 1.41.4 + + + com.google.http-client + google-http-client-appengine + 1.41.4 + + + com.google.http-client + google-http-client-findbugs + 1.41.4 + + + com.google.http-client + google-http-client-gson + 1.41.4 + + + com.google.http-client + google-http-client-jackson2 + 1.41.4 + + + com.google.http-client + google-http-client-protobuf + 1.41.4 + + + com.google.http-client + google-http-client-test + 1.41.4 + + + com.google.http-client + google-http-client-xml + 1.41.4 + + + com.google.http-client + google-http-client + 1.41.4 + + + com.google.code.findbugs + jsr305 + + + + + com.google.protobuf + protobuf-java-util + 3.19.3 + + + org.checkerframework + checker-qual + + + + + com.google.protobuf + protobuf-java + 3.19.3 + + + com.google.protobuf + protoc + 3.19.3 + exe + linux-aarch_64 + + + com.google.protobuf + protoc + 3.19.3 + exe + linux-x86_32 + + + com.google.protobuf + protoc + 3.19.3 + exe + linux-x86_64 + + + com.google.protobuf + protoc + 3.19.3 + exe + osx-aarch_64 + + + com.google.protobuf + protoc + 3.19.3 + exe + osx-x86_64 + + + com.google.protobuf + protoc + 3.19.3 + exe + windows-x86_32 + + + com.google.protobuf + protoc + 3.19.3 + exe + windows-x86_64 + + + com.h2database + h2 + 1.4.197 + + + com.ibm.db2 + jcc + 11.5.7.0 + + + com.microsoft.azure.functions + azure-functions-java-library + 1.4.2 + + + com.microsoft.azure + adal4j + 1.6.7 + + + org.apache.commons + commons-lang3 + + + com.sun.mail + javax.mail + + + com.github.stephenc.jcip + jcip-annotations + + + com.nimbusds + lang-tag + + + com.nimbusds + nimbus-jose-jwt + + + net.minidev + json-smart + + + com.google.code.gson + gson + + + org.slf4j + slf4j-api + + + commons-codec + commons-codec + + + + + com.microsoft.sqlserver + mssql-jdbc + 7.2.2.jre8 + + + com.nimbusds + nimbus-jose-jwt + 9.21 + + + com.ongres.scram + client + 2.1 + + + com.oracle.database.ha + ons + 21.5.0.0 + + + com.oracle.database.ha + simplefan + 21.5.0.0 + + + com.oracle.database.jdbc.debug + ojdbc11-debug + 21.5.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc11-observability-debug + 21.5.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc11_g + 21.5.0.0 + + + com.oracle.database.jdbc.debug + ojdbc11dms_g + 21.5.0.0 + + + com.oracle.database.jdbc.debug + ojdbc8-debug + 21.5.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc8-observability-debug + 21.5.0.0 + pom + + + com.oracle.database.jdbc.debug + ojdbc8_g + 21.5.0.0 + + + com.oracle.database.jdbc.debug + ojdbc8dms_g + 21.5.0.0 + + + com.oracle.database.jdbc + ojdbc11-production + 21.5.0.0 + pom + + + com.oracle.database.jdbc + ojdbc11 + 21.5.0.0 + + + com.oracle.database.jdbc + ojdbc8-production + 21.5.0.0 + pom + + + com.oracle.database.jdbc + ojdbc8 + 21.5.0.0 + + + com.oracle.database.jdbc + rsi + 21.5.0.0 + + + com.oracle.database.jdbc + ucp11 + 21.5.0.0 + + + com.oracle.database.jdbc + ucp + 21.5.0.0 + + + com.oracle.database.nls + orai18n + 21.5.0.0 + + + com.oracle.database.observability + dms + 21.5.0.0 + + + com.oracle.database.observability + ojdbc11-observability + 21.5.0.0 + pom + + + com.oracle.database.observability + ojdbc11dms + 21.5.0.0 + + + com.oracle.database.observability + ojdbc8-observability + 21.5.0.0 + pom + + + com.oracle.database.observability + ojdbc8dms + 21.5.0.0 + + + com.oracle.database.security + oraclepki + 21.5.0.0 + + + com.oracle.database.security + osdt_cert + 21.5.0.0 + + + com.oracle.database.security + osdt_core + 21.5.0.0 + + + com.oracle.database.xml + xdb + 21.5.0.0 + + + com.oracle.database.xml + xmlparserv2 + 21.5.0.0 + + + com.salesforce.servicelibs + jprotoc + 1.2.1 + + + com.squareup.okhttp3 + logging-interceptor + 3.14.9 + + + com.squareup.okhttp3 + okhttp + 3.14.9 + + + com.sun.activation + jakarta.activation + 1.2.1 + + + commons-codec + commons-codec + 1.15 + + + commons-io + commons-io + 2.11.0 + + + de.flapdoodle.embed + de.flapdoodle.embed.mongo + 3.3.0 + + + dev.snowdrop + buildpack-client + 0.0.4 + + + info.picocli + picocli-codegen + 4.6.3 + + + info.picocli + picocli + 4.6.3 + + + io.agroal + agroal-api + 1.16 + + + io.agroal + agroal-narayana + 1.16 + + + io.agroal + agroal-pool + 1.16 + + + io.apicurio + apicurio-common-rest-client-vertx + 0.1.7.Final + + + io.apicurio + apicurio-registry-serdes-avro-serde + 2.2.1.Final + + + io.dekorate + helm-annotations + 2.9.0 + noapt + + + io.dekorate + knative-annotations + 2.9.0 + noapt + + + io.dekorate + kubernetes-annotations + 2.9.0 + noapt + + + io.dekorate + openshift-annotations + 2.9.0 + noapt + + + io.dekorate + servicebinding-annotations + 2.9.0 + noapt + + + io.fabric8.kubernetes + kubernetes-karaf-itests + 5.12.1 + + + io.fabric8.kubernetes + kubernetes-karaf + 5.12.1 + + + io.fabric8 + camel-k-client + 5.12.1 + + + io.fabric8 + camel-k-mock + 5.12.1 + + + io.fabric8 + camel-k-model-v1 + 5.12.1 + + + io.fabric8 + camel-k-model-v1alpha1 + 5.12.1 + + + io.fabric8 + camel-k-tests + 5.12.1 + + + io.fabric8 + certmanager-client + 5.12.1 + + + io.fabric8 + certmanager-examples + 5.12.1 + + + io.fabric8 + certmanager-model-v1 + 5.12.1 + + + io.fabric8 + certmanager-model-v1alpha2 + 5.12.1 + + + io.fabric8 + certmanager-model-v1alpha3 + 5.12.1 + + + io.fabric8 + certmanager-model-v1beta1 + 5.12.1 + + + io.fabric8 + certmanager-server-mock + 5.12.1 + + + io.fabric8 + certmanager-tests + 5.12.1 + + + io.fabric8 + chaosmesh-client + 5.12.1 + + + io.fabric8 + chaosmesh-examples + 5.12.1 + + + io.fabric8 + chaosmesh-model + 5.12.1 + + + io.fabric8 + chaosmesh-server-mock + 5.12.1 + + + io.fabric8 + chaosmesh-tests + 5.12.1 + + + io.fabric8 + crd-generator-api + 5.12.1 + + + io.fabric8 + crd-generator-apt + 5.12.1 + + + io.fabric8 + istio-client + 5.12.1 + + + io.fabric8 + istio-examples + 5.12.1 + + + io.fabric8 + istio-model-v1alpha3 + 5.12.1 + + + io.fabric8 + istio-model-v1beta1 + 5.12.1 + + + io.fabric8 + istio-server-mock + 5.12.1 + + + io.fabric8 + istio-tests + 5.12.1 + + + io.fabric8 + knative-client + 5.12.1 + + + io.fabric8 + knative-examples + 5.12.1 + + + io.fabric8 + knative-mock + 5.12.1 + + + io.fabric8 + knative-model + 5.12.1 + + + io.fabric8 + knative-tests + 5.12.1 + + + io.fabric8 + kubernetes-client + 5.12.1 + + + io.fabric8 + kubernetes-examples + 5.12.1 + + + io.fabric8 + kubernetes-model-admissionregistration + 5.12.1 + + + io.fabric8 + kubernetes-model-apiextensions + 5.12.1 + + + io.fabric8 + kubernetes-model-apps + 5.12.1 + + + io.fabric8 + kubernetes-model-autoscaling + 5.12.1 + + + io.fabric8 + kubernetes-model-batch + 5.12.1 + + + io.fabric8 + kubernetes-model-certificates + 5.12.1 + + + io.fabric8 + kubernetes-model-common + 5.12.1 + + + io.fabric8 + kubernetes-model-coordination + 5.12.1 + + + io.fabric8 + kubernetes-model-core + 5.12.1 + + + io.fabric8 + kubernetes-model-discovery + 5.12.1 + + + io.fabric8 + kubernetes-model-events + 5.12.1 + + + io.fabric8 + kubernetes-model-extensions + 5.12.1 + + + io.fabric8 + kubernetes-model-flowcontrol + 5.12.1 + + + io.fabric8 + kubernetes-model-jsonschema2pojo + 5.12.1 + + + io.fabric8 + kubernetes-model-metrics + 5.12.1 + + + io.fabric8 + kubernetes-model-networking + 5.12.1 + + + io.fabric8 + kubernetes-model-node + 5.12.1 + + + io.fabric8 + kubernetes-model-policy + 5.12.1 + + + io.fabric8 + kubernetes-model-rbac + 5.12.1 + + + io.fabric8 + kubernetes-model-scheduling + 5.12.1 + + + io.fabric8 + kubernetes-model-storageclass + 5.12.1 + + + io.fabric8 + kubernetes-model + 5.12.1 + + + io.fabric8 + kubernetes-openshift-uberjar + 5.12.1 + + + io.fabric8 + kubernetes-server-mock + 5.12.1 + + + io.fabric8 + kubernetes-test + 5.12.1 + + + io.fabric8 + model-annotator + 5.12.1 + + + io.fabric8 + open-cluster-management-agent-model + 5.12.1 + + + io.fabric8 + open-cluster-management-apps-model + 5.12.1 + + + io.fabric8 + open-cluster-management-client + 5.12.1 + + + io.fabric8 + open-cluster-management-cluster-model + 5.12.1 + + + io.fabric8 + open-cluster-management-discovery-model + 5.12.1 + + + io.fabric8 + open-cluster-management-observability-model + 5.12.1 + + + io.fabric8 + open-cluster-management-operator-model + 5.12.1 + + + io.fabric8 + open-cluster-management-placementruleapps-model + 5.12.1 + + + io.fabric8 + open-cluster-management-policy-model + 5.12.1 + + + io.fabric8 + open-cluster-management-search-model + 5.12.1 + + + io.fabric8 + open-cluster-management-server-mock + 5.12.1 + + + io.fabric8 + open-cluster-management-tests + 5.12.1 + + + io.fabric8 + openclustermanagement-examples + 5.12.1 + + + io.fabric8 + openshift-client + 5.12.1 + + + io.fabric8 + openshift-model-clusterautoscaling + 5.12.1 + + + io.fabric8 + openshift-model-console + 5.12.1 + + + io.fabric8 + openshift-model-hive + 5.12.1 + + + io.fabric8 + openshift-model-installer + 5.12.1 + + + io.fabric8 + openshift-model-machine + 5.12.1 + + + io.fabric8 + openshift-model-machineconfig + 5.12.1 + + + io.fabric8 + openshift-model-miscellaneous + 5.12.1 + + + io.fabric8 + openshift-model-monitoring + 5.12.1 + + + io.fabric8 + openshift-model-operator + 5.12.1 + + + io.fabric8 + openshift-model-operatorhub + 5.12.1 + + + io.fabric8 + openshift-model-storageversionmigrator + 5.12.1 + + + io.fabric8 + openshift-model-tuned + 5.12.1 + + + io.fabric8 + openshift-model-whereabouts + 5.12.1 + + + io.fabric8 + openshift-model + 5.12.1 + + + io.fabric8 + openshift-server-mock + 5.12.1 + + + io.fabric8 + service-catalog-examples + 5.12.1 + + + io.fabric8 + servicecatalog-client + 5.12.1 + + + io.fabric8 + servicecatalog-model + 5.12.1 + + + io.fabric8 + servicecatalog-server-mock + 5.12.1 + + + io.fabric8 + servicecatalog-tests + 5.12.1 + + + io.fabric8 + tekton-client + 5.12.1 + + + io.fabric8 + tekton-examples + 5.12.1 + + + io.fabric8 + tekton-mock + 5.12.1 + + + io.fabric8 + tekton-model-triggers + 5.12.1 + + + io.fabric8 + tekton-model-v1alpha1 + 5.12.1 + + + io.fabric8 + tekton-model-v1beta1 + 5.12.1 + + + io.fabric8 + tekton-tests + 5.12.1 + + + io.fabric8 + verticalpodautoscaler-client + 5.12.1 + + + io.fabric8 + verticalpodautoscaler-examples + 5.12.1 + + + io.fabric8 + verticalpodautoscaler-model-v1 + 5.12.1 + + + io.fabric8 + verticalpodautoscaler-server-mock + 5.12.1 + + + io.fabric8 + verticalpodautoscaler-tests + 5.12.1 + + + io.fabric8 + volcano-client + 5.12.1 + + + io.fabric8 + volcano-examples + 5.12.1 + + + io.fabric8 + volcano-model-v1beta1 + 5.12.1 + + + io.fabric8 + volcano-server-mock + 5.12.1 + + + io.fabric8 + volcano-tests + 5.12.1 + + + io.fabric8 + volumesnapshot-client + 5.12.1 + + + io.fabric8 + volumesnapshot-examples + 5.12.1 + + + io.fabric8 + volumesnapshot-model + 5.12.1 + + + io.fabric8 + volumesnapshot-server-mock + 5.12.1 + + + io.fabric8 + volumesnapshot-tests + 5.12.1 + + + io.grpc + grpc-all + 1.45.0 + + + io.grpc + grpc-alts + 1.45.0 + + + io.grpc + grpc-api + 1.45.0 + + + io.grpc + grpc-auth + 1.45.0 + + + io.grpc + grpc-benchmarks + 1.45.0 + + + io.grpc + grpc-census + 1.45.0 + + + io.grpc + grpc-context + 1.45.0 + + + io.grpc + grpc-core + 1.45.0 + + + io.grpc + grpc-googleapis + 1.45.0 + + + io.grpc + grpc-grpclb + 1.45.0 + + + io.grpc + grpc-interop-testing + 1.45.0 + + + io.grpc + grpc-netty-shaded + 1.45.0 + + + io.grpc + grpc-netty + 1.45.0 + + + com.google.code.findbugs + jsr305 + + + + + io.grpc + grpc-observability + 1.45.0 + + + io.grpc + grpc-okhttp + 1.45.0 + + + io.grpc + grpc-protobuf-lite + 1.45.0 + + + io.grpc + grpc-protobuf + 1.45.0 + + + io.grpc + grpc-rls + 1.45.0 + + + io.grpc + grpc-services + 1.45.0 + + + io.grpc + grpc-stub + 1.45.0 + + + io.grpc + grpc-testing-proto + 1.45.0 + + + io.grpc + grpc-testing + 1.45.0 + + + io.grpc + grpc-xds + 1.45.0 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + pom + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + linux-aarch_64 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + linux-x86_32 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + linux-x86_64 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + osx-aarch_64 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + osx-x86_64 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + windows-x86_32 + + + io.grpc + protoc-gen-grpc-java + 1.45.0 + exe + windows-x86_64 + + + io.jaegertracing + jaeger-core + 1.8.0 + + + io.jaegertracing + jaeger-thrift + 1.8.0 + + + org.apache.tomcat.embed + tomcat-embed-core + + + + + io.jaegertracing + jaeger-zipkin + 1.8.0 + + + commons-logging + commons-logging + + + javax.annotation + javax.annotation-api + + + org.apache.tomcat.embed + tomcat-embed-core + + + + + io.micrometer + micrometer-core + 1.8.4 + + + io.micrometer + micrometer-jersey2 + 1.8.4 + + + io.micrometer + micrometer-registry-appoptics + 1.8.4 + + + io.micrometer + micrometer-registry-atlas + 1.8.4 + + + io.micrometer + micrometer-registry-azure-monitor + 1.8.4 + + + io.micrometer + micrometer-registry-cloudwatch2 + 1.8.4 + + + io.micrometer + micrometer-registry-cloudwatch + 1.8.4 + + + io.micrometer + micrometer-registry-datadog + 1.8.4 + + + io.micrometer + micrometer-registry-dynatrace + 1.8.4 + + + io.micrometer + micrometer-registry-elastic + 1.8.4 + + + io.micrometer + micrometer-registry-ganglia + 1.8.4 + + + io.micrometer + micrometer-registry-graphite + 1.8.4 + + + io.micrometer + micrometer-registry-health + 1.8.4 + + + io.micrometer + micrometer-registry-humio + 1.8.4 + + + io.micrometer + micrometer-registry-influx + 1.8.4 + + + io.micrometer + micrometer-registry-jmx + 1.8.4 + + + io.micrometer + micrometer-registry-kairos + 1.8.4 + + + io.micrometer + micrometer-registry-new-relic + 1.8.4 + + + io.micrometer + micrometer-registry-opentsdb + 1.8.4 + + + io.micrometer + micrometer-registry-prometheus + 1.8.4 + + + io.micrometer + micrometer-registry-signalfx + 1.8.4 + + + io.micrometer + micrometer-registry-stackdriver + 1.8.4 + + + io.micrometer + micrometer-registry-statsd + 1.8.4 + + + io.micrometer + micrometer-registry-wavefront + 1.8.4 + + + io.micrometer + micrometer-test + 1.8.4 + + + io.netty + netty-all + 4.1.74.Final + + + io.netty + netty-buffer + 4.1.74.Final + + + io.netty + netty-codec-dns + 4.1.74.Final + + + io.netty + netty-codec-haproxy + 4.1.74.Final + + + io.netty + netty-codec-http2 + 4.1.74.Final + + + io.netty + netty-codec-http + 4.1.74.Final + + + io.netty + netty-codec-memcache + 4.1.74.Final + + + io.netty + netty-codec-mqtt + 4.1.74.Final + + + io.netty + netty-codec-redis + 4.1.74.Final + + + io.netty + netty-codec-smtp + 4.1.74.Final + + + io.netty + netty-codec-socks + 4.1.74.Final + + + io.netty + netty-codec-stomp + 4.1.74.Final + + + io.netty + netty-codec-xml + 4.1.74.Final + + + io.netty + netty-codec + 4.1.74.Final + + + io.netty + netty-common + 4.1.74.Final + + + io.netty + netty-dev-tools + 4.1.74.Final + + + io.netty + netty-example + 4.1.74.Final + + + io.netty + netty-handler-proxy + 4.1.74.Final + + + io.netty + netty-handler + 4.1.74.Final + + + io.netty + netty-resolver-dns-classes-macos + 4.1.74.Final + + + io.netty + netty-resolver-dns-native-macos + 4.1.74.Final + + + io.netty + netty-resolver-dns-native-macos + 4.1.74.Final + osx-aarch_64 + + + io.netty + netty-resolver-dns-native-macos + 4.1.74.Final + osx-x86_64 + + + io.netty + netty-resolver-dns + 4.1.74.Final + + + io.netty + netty-resolver + 4.1.74.Final + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + linux-aarch_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + linux-x86_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + osx-aarch_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + osx-x86_64 + + + io.netty + netty-tcnative-boringssl-static + 2.0.48.Final + windows-x86_64 + + + io.netty + netty-tcnative-classes + 2.0.48.Final + + + io.netty + netty-tcnative + 2.0.48.Final + linux-aarch_64-fedora + + + io.netty + netty-tcnative + 2.0.48.Final + linux-x86_64-fedora + + + io.netty + netty-tcnative + 2.0.48.Final + linux-x86_64 + + + io.netty + netty-tcnative + 2.0.48.Final + osx-x86_64 + + + io.netty + netty-transport-classes-epoll + 4.1.74.Final + + + io.netty + netty-transport-classes-kqueue + 4.1.74.Final + + + io.netty + netty-transport-native-epoll + 4.1.74.Final + + + io.netty + netty-transport-native-epoll + 4.1.74.Final + linux-aarch_64 + + + io.netty + netty-transport-native-epoll + 4.1.74.Final + linux-x86_64 + + + io.netty + netty-transport-native-kqueue + 4.1.74.Final + + + io.netty + netty-transport-native-kqueue + 4.1.74.Final + osx-aarch_64 + + + io.netty + netty-transport-native-kqueue + 4.1.74.Final + osx-x86_64 + + + io.netty + netty-transport-native-unix-common + 4.1.74.Final + + + io.netty + netty-transport-native-unix-common + 4.1.74.Final + linux-aarch_64 + + + io.netty + netty-transport-native-unix-common + 4.1.74.Final + linux-x86_64 + + + io.netty + netty-transport-native-unix-common + 4.1.74.Final + osx-aarch_64 + + + io.netty + netty-transport-native-unix-common + 4.1.74.Final + osx-x86_64 + + + io.netty + netty-transport-rxtx + 4.1.74.Final + + + io.netty + netty-transport-sctp + 4.1.74.Final + + + io.netty + netty-transport-udt + 4.1.74.Final + + + io.netty + netty-transport + 4.1.74.Final + + + io.opentelemetry.instrumentation + opentelemetry-apache-dubbo-2.7 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-apache-httpclient-4.3 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-armeria-1.3 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-lambda-core-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-lambda-events-2.2 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-sdk-1.11-autoconfigure + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-sdk-1.11 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-sdk-2.2-autoconfigure + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-aws-sdk-2.2 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-elasticsearch-transport-common + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-grpc-1.6 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-guava-10.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-instrumentation-api-annotation-support + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-instrumentation-api + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-instrumentation-appender-api-internal + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-instrumentation-appender-sdk-internal + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jaeger-exporter-starter + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jaxws-common + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jdbc + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jetty-httpclient-9.2 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-kafka-clients-2.6 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-kafka-clients-common + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-ktor-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-lettuce-5.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-lettuce-common + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-log4j-appender-2.16 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-log4j-context-data-2.16-autoconfigure + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-logback-appender-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-logback-mdc-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-micrometer-1.5 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-mongo-3.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-okhttp-3.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-oshi + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-otlp-exporter-starter + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-quartz-2.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-ratpack-1.7 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-reactor-3.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-restlet-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-restlet-2.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rocketmq-client-4.8 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-runtime-metrics + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rxjava-1.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rxjava-2.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rxjava-3-common + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rxjava-3.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-rxjava-3.1.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-boot-autoconfigure + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-integration-4.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-starter + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-web-3.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-webflux-5.0 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-spring-webmvc-3.1 + 1.12.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-zipkin-exporter-starter + 1.12.0-alpha + + + io.opentelemetry.javaagent.instrumentation + opentelemetry-javaagent-jaxrs-common-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent.instrumentation + opentelemetry-javaagent-kafka-clients-0.11-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent.instrumentation + opentelemetry-javaagent-rmi-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent.instrumentation + opentelemetry-javaagent-servlet-common-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent.instrumentation + opentelemetry-javaagent-undertow-1.4-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-agent-for-testing + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-javaagent-bootstrap + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-javaagent-extension-api + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-javaagent-instrumentation-api + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-javaagent-tooling-java9 + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-javaagent-tooling + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-muzzle + 1.12.0-alpha + + + io.opentelemetry.javaagent + opentelemetry-testing-common + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-api + 1.12.0 + + + io.opentelemetry + opentelemetry-context + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-jaeger-proto + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-jaeger-thrift + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-jaeger + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-logging-otlp + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-logging + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-otlp-common + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-otlp-http-logs + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-exporter-otlp-http-metrics + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-exporter-otlp-http-trace + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-otlp-logs + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-exporter-otlp-metrics + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-exporter-otlp-trace + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-otlp + 1.12.0 + + + io.opentelemetry + opentelemetry-exporter-prometheus + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-exporter-zipkin + 1.12.0 + + + io.opentelemetry + opentelemetry-extension-annotations + 1.12.0 + + + io.opentelemetry + opentelemetry-extension-aws + 1.12.0 + + + io.opentelemetry + opentelemetry-extension-incubator + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-extension-kotlin + 1.12.0 + + + io.opentelemetry + opentelemetry-extension-noop-api + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-extension-trace-propagators + 1.12.0 + + + io.opentelemetry + opentelemetry-opencensus-shim + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-opentracing-shim + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-common + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-extension-autoconfigure-spi + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-extension-autoconfigure + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-extension-aws + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-extension-jaeger-remote-sampler + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-extension-jfr-events + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-extension-metric-incubator + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-extension-resources + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-extension-tracing-incubator + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-extension-zpages + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-logs-testing + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-logs + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-metrics-testing + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-metrics + 1.12.0-alpha + + + io.opentelemetry + opentelemetry-sdk-testing + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk-trace + 1.12.0 + + + io.opentelemetry + opentelemetry-sdk + 1.12.0 + + + io.opentelemetry + opentelemetry-semconv + 1.12.0-alpha + + + io.opentracing.contrib + opentracing-jdbc + 0.2.4 + + + io.opentracing.contrib + opentracing-kafka-client + 0.1.15 + + + io.opentracing.contrib + opentracing-mongo-common + 0.1.5 + + + io.opentracing + opentracing-api + 0.33.0 + + + io.opentracing + opentracing-mock + 0.33.0 + + + io.opentracing + opentracing-noop + 0.33.0 + + + io.opentracing + opentracing-util + 0.33.0 + + + io.opentracing + opentracing-util + 0.33.0 + test-jar + + + io.opentracing + opentracing-util + 0.33.0 + test-jar + tests + + + io.quarkus.arc + arc-processor + 2.8.0.Final + + + io.quarkus.arc + arc + 2.8.0.Final + + + io.quarkus.gizmo + gizmo + 1.0.10.Final + + + io.quarkus.gizmo + gizmo + 1.0.10.Final + test-jar + + + io.quarkus.gizmo + gizmo + 1.0.10.Final + test-jar + tests + + + io.quarkus.http + quarkus-http-core + 4.1.8 + + + io.quarkus.http + quarkus-http-servlet + 4.1.8 + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.2_spec + + + + + io.quarkus.http + quarkus-http-vertx-backend + 4.1.8 + + + io.netty + netty-all + + + + + io.quarkus.http + quarkus-http-websocket-core + 4.1.8 + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.2_spec + + + + + io.quarkus.http + quarkus-http-websocket-vertx + 4.1.8 + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.2_spec + + + + + io.quarkus.qute + qute-core + 2.8.0.Final + + + io.quarkus.qute + qute-generator + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-client-processor + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-client + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-common-processor + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-common + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-jackson + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-jsonb + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-processor + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive-vertx + 2.8.0.Final + + + io.quarkus.resteasy.reactive + resteasy-reactive + 2.8.0.Final + + + io.quarkus.security + quarkus-security + 1.1.4.Final + + + javax.inject + javax.inject + + + javax.enterprise + cdi-api + + + + + io.quarkus + quarkus-agroal-deployment + 2.8.0.Final + + + io.quarkus + quarkus-agroal-spi + 2.8.0.Final + + + io.quarkus + quarkus-agroal + 2.8.0.Final + + + io.quarkus + quarkus-amazon-alexa-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-alexa + 2.8.0.Final + + + io.quarkus + quarkus-amazon-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-common + 2.8.0.Final + + + io.quarkus + quarkus-amazon-dynamodb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-dynamodb + 2.8.0.Final + + + io.quarkus + quarkus-amazon-iam-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-iam + 2.8.0.Final + + + io.quarkus + quarkus-amazon-kms-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-kms + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-common + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-event-server + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-http-event-server + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-http + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-rest-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-rest-event-server + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-rest + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-xray-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda-xray + 2.8.0.Final + + + io.quarkus + quarkus-amazon-lambda + 2.8.0.Final + + + io.quarkus + quarkus-amazon-s3-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-s3 + 2.8.0.Final + + + io.quarkus + quarkus-amazon-secretsmanager-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-secretsmanager + 2.8.0.Final + + + io.quarkus + quarkus-amazon-ses-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-ses + 2.8.0.Final + + + io.quarkus + quarkus-amazon-sns-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-sns + 2.8.0.Final + + + io.quarkus + quarkus-amazon-sqs-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-sqs + 2.8.0.Final + + + io.quarkus + quarkus-amazon-ssm-deployment + 2.8.0.Final + + + io.quarkus + quarkus-amazon-ssm + 2.8.0.Final + + + io.quarkus + quarkus-apache-httpclient-deployment + 2.8.0.Final + + + io.quarkus + quarkus-apache-httpclient + 2.8.0.Final + + + io.quarkus + quarkus-apicurio-registry-avro-deployment + 2.8.0.Final + + + io.quarkus + quarkus-apicurio-registry-avro + 2.8.0.Final + + + io.quarkus + quarkus-arc-deployment + 2.8.0.Final + + + io.quarkus + quarkus-arc + 2.8.0.Final + + + io.quarkus + quarkus-arquillian + 2.8.0.Final + + + io.quarkus + quarkus-artemis-core-deployment + 2.8.0.Final + + + io.quarkus + quarkus-artemis-core + 2.8.0.Final + + + io.quarkus + quarkus-artemis-jms-deployment + 2.8.0.Final + + + io.quarkus + quarkus-artemis-jms + 2.8.0.Final + + + io.quarkus + quarkus-avro-deployment + 2.8.0.Final + + + io.quarkus + quarkus-avro + 2.8.0.Final + + + io.quarkus + quarkus-awt-deployment + 2.8.0.Final + + + io.quarkus + quarkus-awt + 2.8.0.Final + + + io.quarkus + quarkus-azure-functions-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-azure-functions-http + 2.8.0.Final + + + io.quarkus + quarkus-bootstrap-app-model + 2.8.0.Final + + + io.quarkus + quarkus-bootstrap-core + 2.8.0.Final + + + io.quarkus + quarkus-bootstrap-gradle-resolver + 2.8.0.Final + + + io.quarkus + quarkus-bootstrap-maven-resolver + 2.8.0.Final + + + io.quarkus + quarkus-bootstrap-runner + 2.8.0.Final + + + io.quarkus + quarkus-builder + 2.8.0.Final + + + io.quarkus + quarkus-cache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-cache + 2.8.0.Final + + + io.quarkus + quarkus-caffeine-deployment + 2.8.0.Final + + + io.quarkus + quarkus-caffeine + 2.8.0.Final + + + io.quarkus + quarkus-class-change-agent + 2.8.0.Final + + + io.quarkus + quarkus-config-yaml-deployment + 2.8.0.Final + + + io.quarkus + quarkus-config-yaml + 2.8.0.Final + + + io.quarkus + quarkus-consul-config-deployment + 2.8.0.Final + + + io.quarkus + quarkus-consul-config + 2.8.0.Final + + + io.quarkus + quarkus-container-image-buildpack-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-buildpack + 2.8.0.Final + + + io.quarkus + quarkus-container-image-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-docker-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-docker + 2.8.0.Final + + + io.quarkus + quarkus-container-image-jib-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-jib + 2.8.0.Final + + + io.quarkus + quarkus-container-image-openshift-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-openshift + 2.8.0.Final + + + io.quarkus + quarkus-container-image-s2i-deployment + 2.8.0.Final + + + io.quarkus + quarkus-container-image-s2i + 2.8.0.Final + + + io.quarkus + quarkus-container-image-spi + 2.8.0.Final + + + io.quarkus + quarkus-container-image-util + 2.8.0.Final + + + io.quarkus + quarkus-container-image + 2.8.0.Final + + + io.quarkus + quarkus-core-deployment + 2.8.0.Final + + + io.quarkus + quarkus-core + 2.8.0.Final + + + io.quarkus + quarkus-credentials-deployment + 2.8.0.Final + + + io.quarkus + quarkus-credentials + 2.8.0.Final + + + io.quarkus + quarkus-datasource-common + 2.8.0.Final + + + io.quarkus + quarkus-datasource-deployment-spi + 2.8.0.Final + + + io.quarkus + quarkus-datasource-deployment + 2.8.0.Final + + + io.quarkus + quarkus-datasource + 2.8.0.Final + + + io.quarkus + quarkus-development-mode-spi + 2.8.0.Final + + + io.quarkus + quarkus-devservices-common + 2.8.0.Final + + + io.quarkus + quarkus-devservices-db2 + 2.8.0.Final + + + io.quarkus + quarkus-devservices-deployment + 2.8.0.Final + + + io.quarkus + quarkus-devservices-derby + 2.8.0.Final + + + io.quarkus + quarkus-devservices-h2 + 2.8.0.Final + + + io.quarkus + quarkus-devservices-mariadb + 2.8.0.Final + + + io.quarkus + quarkus-devservices-mssql + 2.8.0.Final + + + io.quarkus + quarkus-devservices-mysql + 2.8.0.Final + + + io.quarkus + quarkus-devservices-oracle + 2.8.0.Final + + + io.quarkus + quarkus-devservices-postgresql + 2.8.0.Final + + + io.quarkus + quarkus-devtools-common + 2.8.0.Final + + + io.quarkus + quarkus-devtools-registry-client + 2.8.0.Final + + + io.quarkus + quarkus-devtools-testing + 2.8.0.Final + + + io.quarkus + quarkus-devtools-utilities + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-client-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-client-common + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-client + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-high-level-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elasticsearch-rest-high-level-client + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-common + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-jdbc-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-jdbc + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-ldap-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-ldap + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-oauth2-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-oauth2 + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-properties-file-deployment + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security-properties-file + 2.8.0.Final + + + io.quarkus + quarkus-elytron-security + 2.8.0.Final + + + io.quarkus + quarkus-flyway-deployment + 2.8.0.Final + + + io.quarkus + quarkus-flyway + 2.8.0.Final + + + io.quarkus + quarkus-fs-util + 0.0.9 + + + io.quarkus + quarkus-funqy-amazon-lambda + 2.8.0.Final + + + io.quarkus + quarkus-funqy-google-cloud-functions-deployment + 2.8.0.Final + + + io.quarkus + quarkus-funqy-google-cloud-functions + 2.8.0.Final + + + io.quarkus + quarkus-funqy-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-funqy-http + 2.8.0.Final + + + io.quarkus + quarkus-funqy-knative-events-deployment + 2.8.0.Final + + + io.quarkus + quarkus-funqy-knative-events + 2.8.0.Final + + + io.quarkus + quarkus-funqy-server-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-funqy-server-common + 2.8.0.Final + + + io.quarkus + quarkus-google-cloud-functions-deployment + 2.8.0.Final + + + io.quarkus + quarkus-google-cloud-functions-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-google-cloud-functions-http + 2.8.0.Final + + + io.quarkus + quarkus-google-cloud-functions + 2.8.0.Final + + + io.quarkus + quarkus-grpc-codegen + 2.8.0.Final + + + io.quarkus + quarkus-grpc-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-grpc-common + 2.8.0.Final + + + io.quarkus + quarkus-grpc-deployment + 2.8.0.Final + + + io.quarkus + quarkus-grpc-protoc-plugin + 2.8.0.Final + shaded + + + io.quarkus + quarkus-grpc-stubs + 2.8.0.Final + + + io.quarkus + quarkus-grpc + 2.8.0.Final + + + com.google.android + annotations + + + + + io.quarkus + quarkus-hibernate-envers-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-envers + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache-common + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache-kotlin-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache-kotlin + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-panache + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-rest-data-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm-rest-data-panache + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-orm + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-panache-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-panache-common + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-panache + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-rest-data-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive-rest-data-panache + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-reactive + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-coordination-outbox-polling-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-coordination-outbox-polling + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-elasticsearch-aws-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-elasticsearch-aws + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-elasticsearch-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-search-orm-elasticsearch + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-validator-deployment + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-validator-spi + 2.8.0.Final + + + io.quarkus + quarkus-hibernate-validator + 2.8.0.Final + + + io.quarkus + quarkus-ide-launcher + 2.8.0.Final + + + * + * + + + + + io.quarkus + quarkus-infinispan-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-infinispan-client + 2.8.0.Final + + + io.quarkus + quarkus-jackson-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jackson-spi + 2.8.0.Final + + + io.quarkus + quarkus-jackson + 2.8.0.Final + + + io.quarkus + quarkus-jacoco-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jacoco + 2.8.0.Final + + + io.quarkus + quarkus-jaeger-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jaeger + 2.8.0.Final + + + io.quarkus + quarkus-jaxb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jaxb + 2.8.0.Final + + + io.quarkus + quarkus-jaxp-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jaxp + 2.8.0.Final + + + io.quarkus + quarkus-jaxrs-client-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jaxrs-client-reactive + 2.8.0.Final + + + io.quarkus + quarkus-jaxrs-spi-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-db2 + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-derby + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-h2-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-h2 + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mariadb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mariadb + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mssql-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mssql + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mysql-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-mysql + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-oracle-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-oracle + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-postgresql-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jdbc-postgresql + 2.8.0.Final + + + io.quarkus + quarkus-jgit-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jgit + 2.8.0.Final + + + io.quarkus + quarkus-jsch-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jsch + 2.8.0.Final + + + io.quarkus + quarkus-jsonb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jsonb-spi + 2.8.0.Final + + + io.quarkus + quarkus-jsonb + 2.8.0.Final + + + io.quarkus + quarkus-jsonp-deployment + 2.8.0.Final + + + io.quarkus + quarkus-jsonp + 2.8.0.Final + + + io.quarkus + quarkus-junit4-mock + 2.8.0.Final + + + io.quarkus + quarkus-junit5-internal + 2.8.0.Final + + + io.quarkus + quarkus-junit5-mockito-config + 2.8.0.Final + + + io.quarkus + quarkus-junit5-mockito + 2.8.0.Final + + + io.quarkus + quarkus-junit5-properties + 2.8.0.Final + + + io.quarkus + quarkus-junit5 + 2.8.0.Final + + + io.quarkus + quarkus-kafka-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kafka-client + 2.8.0.Final + + + io.quarkus + quarkus-kafka-streams-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kafka-streams + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-admin-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-admin-client-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-admin-client-reactive + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-admin-client + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-authorization-deployment + 2.8.0.Final + + + io.quarkus + quarkus-keycloak-authorization + 2.8.0.Final + + + io.quarkus + quarkus-kind-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kind + 2.8.0.Final + + + io.quarkus + quarkus-kotlin-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kotlin + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-client-internal-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-client-internal + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-client-spi + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-client + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-config-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-config + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-service-binding-deployment + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-service-binding-spi + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-service-binding + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes-spi + 2.8.0.Final + + + io.quarkus + quarkus-kubernetes + 2.8.0.Final + + + io.quarkus + quarkus-liquibase-deployment + 2.8.0.Final + + + io.quarkus + quarkus-liquibase-mongodb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-liquibase-mongodb + 2.8.0.Final + + + io.quarkus + quarkus-liquibase + 2.8.0.Final + + + io.quarkus + quarkus-logging-gelf-deployment + 2.8.0.Final + + + io.quarkus + quarkus-logging-gelf + 2.8.0.Final + + + io.quarkus + quarkus-logging-json-deployment + 2.8.0.Final + + + io.quarkus + quarkus-logging-json + 2.8.0.Final + + + io.quarkus + quarkus-logging-sentry-deployment + 2.8.0.Final + + + io.quarkus + quarkus-logging-sentry + 2.8.0.Final + + + io.quarkus + quarkus-mailer-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mailer + 2.8.0.Final + + + io.quarkus + quarkus-micrometer-deployment + 2.8.0.Final + + + io.quarkus + quarkus-micrometer-registry-prometheus-deployment + 2.8.0.Final + + + io.quarkus + quarkus-micrometer-registry-prometheus + 2.8.0.Final + + + io.quarkus + quarkus-micrometer + 2.8.0.Final + + + io.quarkus + quarkus-minikube-deployment + 2.8.0.Final + + + io.quarkus + quarkus-minikube + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-client + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache-common + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache-kotlin-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache-kotlin + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-panache + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-rest-data-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mongodb-rest-data-panache + 2.8.0.Final + + + io.quarkus + quarkus-mutiny-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mutiny-reactive-streams-operators-deployment + 2.8.0.Final + + + io.quarkus + quarkus-mutiny-reactive-streams-operators + 2.8.0.Final + + + io.quarkus + quarkus-mutiny + 2.8.0.Final + + + io.quarkus + quarkus-narayana-jta-deployment + 2.8.0.Final + + + io.quarkus + quarkus-narayana-jta + 2.8.0.Final + + + io.quarkus + quarkus-narayana-lra-deployment + 2.8.0.Final + + + io.quarkus + quarkus-narayana-lra + 2.8.0.Final + + + io.quarkus + quarkus-narayana-stm-deployment + 2.8.0.Final + + + io.quarkus + quarkus-narayana-stm + 2.8.0.Final + + + io.quarkus + quarkus-neo4j-deployment + 2.8.0.Final + + + io.quarkus + quarkus-neo4j + 2.8.0.Final + + + io.quarkus + quarkus-netty-deployment + 2.8.0.Final + + + io.quarkus + quarkus-netty + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client-filter-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client-filter + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client-reactive-filter-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client-reactive-filter + 2.8.0.Final + + + io.quarkus + quarkus-oidc-client + 2.8.0.Final + + + io.quarkus + quarkus-oidc-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-common + 2.8.0.Final + + + io.quarkus + quarkus-oidc-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-token-propagation-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-token-propagation-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-oidc-token-propagation-reactive + 2.8.0.Final + + + io.quarkus + quarkus-oidc-token-propagation + 2.8.0.Final + + + io.quarkus + quarkus-oidc + 2.8.0.Final + + + io.quarkus + quarkus-openshift-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-openshift-client + 2.8.0.Final + + + io.quarkus + quarkus-openshift-deployment + 2.8.0.Final + + + io.quarkus + quarkus-openshift + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry-deployment + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry-exporter-jaeger-deployment + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry-exporter-jaeger + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry-exporter-otlp-deployment + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry-exporter-otlp + 2.8.0.Final + + + io.quarkus + quarkus-opentelemetry + 2.8.0.Final + + + io.quarkus + quarkus-panache-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-panache-common + 2.8.0.Final + + + io.quarkus + quarkus-panache-hibernate-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-panache-hibernate-common + 2.8.0.Final + + + io.quarkus + quarkus-panache-mock + 2.8.0.Final + + + io.quarkus + quarkus-panacheql + 2.8.0.Final + + + io.quarkus + quarkus-picocli-deployment + 2.8.0.Final + + + io.quarkus + quarkus-picocli + 2.8.0.Final + + + io.quarkus + quarkus-project-core-extension-codestarts + 2.8.0.Final + + + io.quarkus + quarkus-quartz-deployment + 2.8.0.Final + + + io.quarkus + quarkus-quartz + 2.8.0.Final + + + io.quarkus + quarkus-qute-deployment + 2.8.0.Final + + + io.quarkus + quarkus-qute + 2.8.0.Final + + + io.quarkus + quarkus-reactive-datasource-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-datasource + 2.8.0.Final + + + io.quarkus + quarkus-reactive-db2-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-db2-client + 2.8.0.Final + + + io.quarkus + quarkus-reactive-messaging-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-messaging-http + 2.8.0.Final + + + io.quarkus + quarkus-reactive-mssql-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-mssql-client + 2.8.0.Final + + + io.quarkus + quarkus-reactive-mysql-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-mysql-client + 2.8.0.Final + + + io.quarkus + quarkus-reactive-oracle-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-oracle-client + 2.8.0.Final + + + io.quarkus + quarkus-reactive-pg-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-pg-client + 2.8.0.Final + + + io.quarkus + quarkus-reactive-routes-deployment + 2.8.0.Final + + + io.quarkus + quarkus-reactive-routes + 2.8.0.Final + + + io.quarkus + quarkus-redis-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-redis-client + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-config-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-config + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jackson-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jackson + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jaxb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jaxb + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jsonb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-jsonb + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-mutiny-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-mutiny + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jackson-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jackson + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jaxb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jaxb + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jsonb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-jsonb + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-kotlin-serialization-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive-kotlin-serialization + 2.8.0.Final + + + io.quarkus + quarkus-rest-client-reactive + 2.8.0.Final + + + io.quarkus + quarkus-rest-client + 2.8.0.Final + + + io.quarkus + quarkus-rest-data-panache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-rest-data-panache + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-common-spi + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jackson-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jackson + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jaxb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jaxb + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jsonb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-jsonb + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-links-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-links + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-multipart-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-multipart + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-mutiny-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-mutiny-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-mutiny-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-mutiny + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-qute-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-qute + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-deployment + 2.8.0.Final + test-jar + test + + + io.quarkus + quarkus-resteasy-reactive-deployment + 2.8.0.Final + test-jar + tests + test + + + io.quarkus + quarkus-resteasy-reactive-jackson-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jackson-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jackson-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jackson + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jaxb-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jaxb-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jaxb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jaxb + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jsonb-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jsonb-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jsonb-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-jsonb + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-serialization-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-serialization-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-serialization-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin-serialization + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-kotlin + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-links-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-links + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-qute-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-qute + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-server-spi-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-servlet-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-servlet + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive-spi-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-reactive + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-server-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-server-common-spi + 2.8.0.Final + + + io.quarkus + quarkus-resteasy-server-common + 2.8.0.Final + + + io.quarkus + quarkus-resteasy + 2.8.0.Final + + + io.quarkus + quarkus-scala-deployment + 2.8.0.Final + + + io.quarkus + quarkus-scala + 2.8.0.Final + + + io.quarkus + quarkus-scheduler-deployment + 2.8.0.Final + + + io.quarkus + quarkus-scheduler + 2.8.0.Final + + + io.quarkus + quarkus-security-deployment + 2.8.0.Final + + + io.quarkus + quarkus-security-jpa-deployment + 2.8.0.Final + + + io.quarkus + quarkus-security-jpa + 2.8.0.Final + + + io.quarkus + quarkus-security-runtime-spi + 2.8.0.Final + + + io.quarkus + quarkus-security-spi + 2.8.0.Final + + + io.quarkus + quarkus-security + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-context-propagation-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-context-propagation + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-fault-tolerance-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-fault-tolerance + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-graphql-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-graphql-client + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-graphql-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-graphql + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-health-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-health-spi + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-health + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-jwt-build-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-jwt-build + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-jwt-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-jwt + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-metrics-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-metrics-spi + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-metrics + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-openapi-common-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-openapi-deployment + 2.8.0.Final + + + org.jboss.shrinkwrap + shrinkwrap-api + + + + + io.quarkus + quarkus-smallrye-openapi-spi + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-openapi + 2.8.0.Final + + + org.jboss.shrinkwrap + shrinkwrap-api + + + + + io.quarkus + quarkus-smallrye-opentracing-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-opentracing + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-amqp + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-kafka-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-kafka + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-kotlin + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-mqtt + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging-rabbitmq + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-messaging + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-streams-operators-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-streams-operators + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-type-converters-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-reactive-type-converters + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-stork-deployment + 2.8.0.Final + + + io.quarkus + quarkus-smallrye-stork + 2.8.0.Final + + + io.quarkus + quarkus-spring-beans-api + 5.2.SP4 + + + io.quarkus + quarkus-spring-boot-orm-api + 2.1.SP1 + + + io.quarkus + quarkus-spring-boot-properties-api + 2.1.SP1 + + + io.quarkus + quarkus-spring-boot-properties-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-boot-properties + 2.8.0.Final + + + io.quarkus + quarkus-spring-cache-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-cache + 2.8.0.Final + + + io.quarkus + quarkus-spring-cloud-config-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-cloud-config-client + 2.8.0.Final + + + io.quarkus + quarkus-spring-context-api + 5.2.SP4 + + + io.quarkus + quarkus-spring-core-api + 5.2.SP4 + + + io.quarkus + quarkus-spring-data-commons-api + 2.1.SP2 + + + io.quarkus + quarkus-spring-data-jpa-api + 2.1.SP2 + + + io.quarkus + quarkus-spring-data-jpa-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-data-jpa + 2.8.0.Final + + + io.quarkus + quarkus-spring-data-rest-api + 2.1.SP2 + + + io.quarkus + quarkus-spring-data-rest-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-data-rest + 2.8.0.Final + + + io.quarkus + quarkus-spring-di-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-di + 2.8.0.Final + + + io.quarkus + quarkus-spring-scheduled-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-scheduled + 2.8.0.Final + + + io.quarkus + quarkus-spring-security-core-api + 5.3.Final + + + io.quarkus + quarkus-spring-security-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-security + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-api + 5.2.SP4 + + + io.quarkus + quarkus-spring-web-common + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-resteasy-classic-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-resteasy-classic + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-resteasy-reactive-deployment + 2.8.0.Final + + + io.quarkus + quarkus-spring-web-resteasy-reactive + 2.8.0.Final + + + io.quarkus + quarkus-spring-web + 2.8.0.Final + + + io.quarkus + quarkus-spring-webmvc-api + 5.2.SP4 + + + io.quarkus + quarkus-swagger-ui-deployment + 2.8.0.Final + + + io.quarkus + quarkus-swagger-ui + 2.8.0.Final + + + io.quarkus + quarkus-test-amazon-lambda + 2.8.0.Final + + + io.quarkus + quarkus-test-artemis + 2.8.0.Final + + + io.quarkus + quarkus-test-common + 2.8.0.Final + + + io.quarkus + quarkus-test-derby + 2.8.0.Final + + + io.quarkus + quarkus-test-h2 + 2.8.0.Final + + + io.quarkus + quarkus-test-infinispan-client + 2.8.0.Final + + + io.quarkus + quarkus-test-kafka-companion + 2.8.0.Final + + + io.quarkus + quarkus-test-keycloak-server + 2.8.0.Final + + + io.quarkus + quarkus-test-kubernetes-client + 2.8.0.Final + + + io.quarkus + quarkus-test-ldap + 2.8.0.Final + + + io.quarkus + quarkus-test-mongodb + 2.8.0.Final + + + io.quarkus + quarkus-test-oidc-server + 2.8.0.Final + + + io.quarkus + quarkus-test-openshift-client + 2.8.0.Final + + + io.quarkus + quarkus-test-security-jwt + 2.8.0.Final + + + io.quarkus + quarkus-test-security-oidc + 2.8.0.Final + + + io.quarkus + quarkus-test-security + 2.8.0.Final + + + io.quarkus + quarkus-test-vault + 2.8.0.Final + + + io.quarkus + quarkus-test-vertx + 2.8.0.Final + + + io.quarkus + quarkus-tika-deployment + 2.8.0.Final + + + io.quarkus + quarkus-tika + 2.8.0.Final + + + io.quarkus + quarkus-transaction-annotations + 2.8.0.Final + + + io.quarkus + quarkus-undertow-deployment + 2.8.0.Final + + + io.quarkus + quarkus-undertow-spi + 2.8.0.Final + + + io.quarkus + quarkus-undertow + 2.8.0.Final + + + io.quarkus + quarkus-vault-deployment + 2.8.0.Final + + + io.quarkus + quarkus-vault-model + 2.8.0.Final + + + io.quarkus + quarkus-vault + 2.8.0.Final + + + io.quarkus + quarkus-vertx-deployment + 2.8.0.Final + + + io.quarkus + quarkus-vertx-graphql-deployment + 2.8.0.Final + + + io.quarkus + quarkus-vertx-graphql + 2.8.0.Final + + + io.quarkus + quarkus-vertx-http-deployment-spi + 2.8.0.Final + + + io.quarkus + quarkus-vertx-http-deployment + 2.8.0.Final + + + io.quarkus + quarkus-vertx-http-dev-console-runtime-spi + 2.8.0.Final + + + io.quarkus + quarkus-vertx-http-dev-console-spi + 2.8.0.Final + + + io.quarkus + quarkus-vertx-http + 2.8.0.Final + + + io.quarkus + quarkus-vertx-web-deployment + 2.8.0.Final + + + io.quarkus + quarkus-vertx-web + 2.8.0.Final + + + io.quarkus + quarkus-vertx + 2.8.0.Final + + + io.quarkus + quarkus-webjars-locator-deployment + 2.8.0.Final + + + io.quarkus + quarkus-webjars-locator + 2.8.0.Final + + + io.quarkus + quarkus-websockets-client-deployment + 2.8.0.Final + + + io.quarkus + quarkus-websockets-client + 2.8.0.Final + + + io.quarkus + quarkus-websockets-deployment + 2.8.0.Final + + + io.quarkus + quarkus-websockets + 2.8.0.Final + + + io.reactivex.rxjava2 + rxjava + 2.2.21 + + + io.rest-assured + json-schema-validator + 4.5.1 + + + javax.activation + activation + + + com.google.code.findbugs + jsr305 + + + com.sun.xml.bind + jaxb-osgi + + + commons-logging + commons-logging + + + + + io.rest-assured + kotlin-extensions + 4.5.1 + + + javax.activation + activation + + + javax.activation + javax.activation-api + + + com.sun.xml.bind + jaxb-osgi + + + commons-logging + commons-logging + + + + + io.rest-assured + rest-assured + 4.5.1 + + + javax.activation + activation + + + javax.activation + javax.activation-api + + + jakarta.activation + jakarta.activation-api + + + com.sun.xml.bind + jaxb-osgi + + + commons-logging + commons-logging + + + + + io.smallrye.common + smallrye-common-annotation + 1.10.0 + + + io.smallrye.common + smallrye-common-classloader + 1.10.0 + + + io.smallrye.common + smallrye-common-constraint + 1.10.0 + + + io.smallrye.common + smallrye-common-cpu + 1.10.0 + + + io.smallrye.common + smallrye-common-expression + 1.10.0 + + + io.smallrye.common + smallrye-common-function + 1.10.0 + + + io.smallrye.common + smallrye-common-io + 1.10.0 + + + io.smallrye.common + smallrye-common-net + 1.10.0 + + + io.smallrye.common + smallrye-common-os + 1.10.0 + + + io.smallrye.common + smallrye-common-version + 1.10.0 + + + io.smallrye.common + smallrye-common-vertx-context + 1.10.0 + + + io.smallrye.config + smallrye-config-common + 2.9.2 + + + io.smallrye.config + smallrye-config-source-file-system + 2.9.2 + + + io.smallrye.config + smallrye-config-source-yaml + 2.9.2 + + + io.smallrye.config + smallrye-config-validator + 2.9.2 + + + io.smallrye.config + smallrye-config + 2.9.2 + + + org.osgi + org.osgi.annotation.versioning + + + org.ow2.asm + asm + + + + + io.smallrye.reactive + mutiny-kotlin + 1.4.0 + + + io.smallrye.reactive + mutiny-math + 1.4.0 + + + io.smallrye.reactive + mutiny-reactive-streams-operators + 1.4.0 + + + io.smallrye.reactive + mutiny-reactor + 1.4.0 + + + io.smallrye.reactive + mutiny-rxjava + 1.4.0 + + + io.smallrye.reactive + mutiny-smallrye-context-propagation + 1.4.0 + + + io.smallrye.reactive + mutiny-test-utils + 1.4.0 + + + io.smallrye.reactive + mutiny + 1.4.0 + + + io.smallrye.reactive + smallrye-connector-attribute-processor + 3.15.0 + + + io.smallrye.reactive + smallrye-mutiny-health-check + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-amqp-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-common + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-htdigest + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-htpasswd + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-jdbc + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-jwt + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-ldap + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-mongo + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-oauth2 + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-otp + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-properties + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-shiro + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-sql-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-auth-webauthn + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-bridge-common + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-cassandra-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-circuit-breaker + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-config + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-consul-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-core + 2.19.0 + + + com.fasterxml.jackson.core + jackson-databind + + + + + io.smallrye.reactive + smallrye-mutiny-vertx-db2-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-jdbc-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-json-schema + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-junit5 + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-kafka-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-mail-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-micrometer-metrics + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-mongo-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-mqtt + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-mssql-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-mysql-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-oracle-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-pg-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-rabbitmq-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-redis-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-runtime + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-backend-consul + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-backend-redis + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-backend-zookeeper + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-bridge-consul + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-bridge-docker-links + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-bridge-docker + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-bridge-kubernetes + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery-bridge-zookeeper + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-service-discovery + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-shell + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-sql-client-templates + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-sql-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-stomp + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-tcp-eventbus-bridge + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-client + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-common + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-graphql + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-openapi + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-freemarker + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-handlebars + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-jade + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-mvel + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-pebble + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-rocker + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-templ-thymeleaf + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web-validation + 2.19.0 + + + io.smallrye.reactive + smallrye-mutiny-vertx-web + 2.19.0 + + + io.smallrye.reactive + smallrye-reactive-converter-api + 2.6.0 + + + io.smallrye.reactive + smallrye-reactive-converter-mutiny + 2.6.0 + + + io.smallrye.reactive + smallrye-reactive-converter-rxjava2 + 2.6.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-amqp + 3.15.0 + + + com.fasterxml.jackson.core + jackson-core + + + org.slf4j + slf4j-log4j12 + + + + + io.smallrye.reactive + smallrye-reactive-messaging-api + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-health + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-in-memory + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-kafka-test-companion + 3.15.0 + + + commons-logging + commons-logging + + + + + io.smallrye.reactive + smallrye-reactive-messaging-kafka + 3.15.0 + + + com.fasterxml.jackson.core + jackson-core + + + org.scala-lang + scala-reflect + + + org.apache.kafka + kafka-clients + + + com.101tec + zkclient + + + org.slf4j + slf4j-log4j12 + + + log4j + log4j + + + + + io.smallrye.reactive + smallrye-reactive-messaging-mqtt + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-provider + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-messaging-rabbitmq + 3.15.0 + + + io.smallrye.reactive + smallrye-reactive-streams-operators + 1.0.13 + + + io.smallrye.reactive + vertx-mutiny-clients + 2.19.0 + + + io.smallrye.reactive + vertx-mutiny-generator + 2.19.0 + + + io.smallrye.stork + stork-api + 1.1.0 + + + io.smallrye.stork + stork-configuration-generator + 1.1.0 + + + io.smallrye.stork + stork-core + 1.1.0 + + + io.smallrye.stork + stork-load-balancer-least-requests + 1.1.0 + + + io.smallrye.stork + stork-load-balancer-least-response-time + 1.1.0 + + + io.smallrye.stork + stork-load-balancer-power-of-two-choices + 1.1.0 + + + io.smallrye.stork + stork-load-balancer-random + 1.1.0 + + + io.smallrye.stork + stork-microprofile-config + 1.1.0 + + + io.smallrye.stork + stork-service-discovery-composite + 1.1.0 + + + io.smallrye.stork + stork-service-discovery-consul + 1.1.0 + + + io.smallrye.stork + stork-service-discovery-eureka + 1.1.0 + + + io.smallrye.stork + stork-service-discovery-kubernetes + 1.1.0 + + + io.smallrye.stork + stork-service-discovery-static-list + 1.1.0 + + + io.smallrye.stork + stork-test-utils + 1.1.0 + + + io.smallrye + smallrye-config-common + 1.5.0 + + + io.smallrye + smallrye-config + 1.5.0 + + + io.smallrye + smallrye-context-propagation-api + 1.2.2 + + + io.smallrye + smallrye-context-propagation-jta + 1.2.2 + + + io.smallrye + smallrye-context-propagation-propagators-rxjava1 + 1.2.2 + + + io.smallrye + smallrye-context-propagation-propagators-rxjava2 + 1.2.2 + + + io.smallrye + smallrye-context-propagation + 1.2.2 + + + io.smallrye + smallrye-fault-tolerance-context-propagation + 5.3.1 + + + io.smallrye + smallrye-fault-tolerance-mutiny + 5.3.1 + + + io.smallrye + smallrye-fault-tolerance-tracing-propagation + 5.3.1 + + + io.smallrye + smallrye-fault-tolerance-vertx + 5.3.1 + + + io.smallrye + smallrye-fault-tolerance + 5.3.1 + + + io.smallrye + smallrye-graphql-cdi + 1.4.4 + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-graphql-client-api + 1.4.4 + + + io.smallrye + smallrye-graphql-client-implementation-vertx + 1.4.4 + + + io.smallrye + smallrye-graphql-client-implementation + 1.4.4 + + + io.smallrye + smallrye-graphql-schema-builder + 1.4.4 + + + io.smallrye + smallrye-graphql-ui-graphiql + 1.4.4 + + + io.smallrye + smallrye-health-provided-checks + 3.2.1 + + + io.smallrye + smallrye-health-ui + 3.2.1 + + + io.smallrye + smallrye-health + 3.2.1 + + + jakarta.json + jakarta.json-api + + + + + io.smallrye + smallrye-jwt-build + 3.3.3 + + + io.smallrye + smallrye-jwt + 3.3.3 + + + org.jboss.logging + jboss-logging + + + javax + javaee-api + + + javax.annotation + javax.annotation-api + + + io.smallrye + smallrye-jwt-build + + + + + io.smallrye + smallrye-metrics-api + 3.0.4 + + + io.smallrye + smallrye-metrics + 3.0.4 + + + javax + javaee-api + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-open-api-core + 2.1.22 + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-open-api-jaxrs + 2.1.22 + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-open-api-spring + 2.1.22 + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-open-api-ui + 2.1.22 + + + io.smallrye + smallrye-open-api-vertx + 2.1.22 + + + org.osgi + org.osgi.annotation.versioning + + + + + io.smallrye + smallrye-opentracing + 2.1.0 + + + org.eclipse.microprofile.config + microprofile-config-api + + + + + io.strimzi + kafka-oauth-client + 0.10.0 + + + io.strimzi + strimzi-test-container + 0.100.0 + + + junit + junit + + + + + io.vertx + vertx-amqp-client + 4.2.5 + + + io.vertx + vertx-auth-common + 4.2.5 + + + io.vertx + vertx-auth-htdigest + 4.2.5 + + + io.vertx + vertx-auth-htpasswd + 4.2.5 + + + io.vertx + vertx-auth-jdbc + 4.2.5 + + + io.vertx + vertx-auth-jwt + 4.2.5 + + + io.vertx + vertx-auth-ldap + 4.2.5 + + + io.vertx + vertx-auth-mongo + 4.2.5 + + + io.vertx + vertx-auth-oauth2 + 4.2.5 + + + io.vertx + vertx-auth-otp + 4.2.5 + + + io.vertx + vertx-auth-properties + 4.2.5 + + + io.vertx + vertx-auth-shiro + 4.2.5 + + + io.vertx + vertx-auth-sql-client + 4.2.5 + + + io.vertx + vertx-auth-webauthn + 4.2.5 + + + io.vertx + vertx-auth + 4.2.5 + pom + + + io.vertx + vertx-bridge-common + 4.2.5 + + + io.vertx + vertx-camel-bridge + 4.2.5 + + + io.vertx + vertx-cassandra-client + 4.2.5 + + + io.vertx + vertx-circuit-breaker + 4.2.5 + + + io.vertx + vertx-codegen + 4.2.5 + + + io.vertx + vertx-codegen + 4.2.5 + test-jar + + + io.vertx + vertx-codegen + 4.2.5 + processor + + + io.vertx + vertx-codegen + 4.2.5 + sources + + + io.vertx + vertx-codegen + 4.2.5 + tck-sources + + + io.vertx + vertx-codegen + 4.2.5 + tck + + + io.vertx + vertx-codegen + 4.2.5 + test-jar + tests + + + io.vertx + vertx-config-consul + 4.2.5 + + + io.vertx + vertx-config-git + 4.2.5 + + + io.vertx + vertx-config-hocon + 4.2.5 + + + io.vertx + vertx-config-kubernetes-configmap + 4.2.5 + + + io.vertx + vertx-config-parent + 4.2.5 + pom + + + io.vertx + vertx-config-redis + 4.2.5 + + + io.vertx + vertx-config-spring-config-server + 4.2.5 + + + io.vertx + vertx-config-vault + 4.2.5 + + + io.vertx + vertx-config-yaml + 4.2.5 + + + io.vertx + vertx-config-zookeeper + 4.2.5 + + + io.vertx + vertx-config + 4.2.5 + + + io.vertx + vertx-consul-client + 4.2.5 + + + io.vertx + vertx-consul-client + 4.2.5 + test-jar + + + io.vertx + vertx-consul-client + 4.2.5 + test-jar + tests + + + io.vertx + vertx-consul + 4.2.5 + + + io.vertx + vertx-core + 4.2.5 + + + io.vertx + vertx-core + 4.2.5 + test-jar + + + io.vertx + vertx-core + 4.2.5 + sources + + + io.vertx + vertx-core + 4.2.5 + test-jar + tests + + + io.vertx + vertx-db2-client + 4.2.5 + + + io.vertx + vertx-docgen + 0.9.4 + + + io.vertx + vertx-dropwizard-metrics + 4.2.5 + + + io.vertx + vertx-grpc-parent + 4.2.5 + + + io.vertx + vertx-grpc + 4.2.5 + + + io.vertx + vertx-hazelcast + 4.2.5 + + + io.vertx + vertx-health-check + 4.2.5 + + + io.vertx + vertx-http-proxy + 4.2.5 + + + io.vertx + vertx-http-service-factory + 4.2.5 + + + io.vertx + vertx-ignite + 4.2.5 + + + io.vertx + vertx-infinispan-parent + 4.2.5 + + + io.vertx + vertx-infinispan + 4.2.5 + + + io.vertx + vertx-jdbc-client + 4.2.5 + + + io.vertx + vertx-jgroups + 4.2.5 + + + io.vertx + vertx-json-schema + 4.2.5 + + + io.vertx + vertx-junit5-rx-java2 + 4.2.5 + + + io.vertx + vertx-junit5-rx-java3 + 4.2.5 + + + io.vertx + vertx-junit5-rx-java + 4.2.5 + + + io.vertx + vertx-junit5 + 4.2.5 + + + io.vertx + vertx-jwt + 4.2.5 + + + io.vertx + vertx-kafka-client + 4.2.5 + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.module + jackson-module-scala_2.12 + + + org.scala-lang + scala-reflect + + + org.apache.kafka + kafka-clients + + + com.101tec + zkclient + + + org.slf4j + slf4j-log4j12 + + + + + io.vertx + vertx-lang-groovy-parent + 4.2.5 + + + io.vertx + vertx-lang-groovy + 4.2.5 + + + io.vertx + vertx-lang-kotlin-compiler + 4.2.5 + + + io.vertx + vertx-lang-kotlin-coroutines + 4.2.5 + + + io.vertx + vertx-lang-kotlin-parent + 4.2.5 + + + io.vertx + vertx-lang-kotlin + 4.2.5 + + + io.vertx + vertx-mail-client + 4.2.5 + + + io.vertx + vertx-mail-client + 4.2.5 + test-jar + + + io.vertx + vertx-mail-client + 4.2.5 + test-jar + tests + + + io.vertx + vertx-maven-service-factory-parent + 4.2.5 + + + io.vertx + vertx-maven-service-factory + 4.2.5 + + + io.vertx + vertx-micrometer-metrics + 4.2.5 + + + io.vertx + vertx-mongo-client + 4.2.5 + + + io.vertx + vertx-mongo-client + 4.2.5 + test-jar + + + io.vertx + vertx-mongo-client + 4.2.5 + test-jar + tests + + + io.vertx + vertx-mqtt + 4.2.5 + + + io.vertx + vertx-mssql-client + 4.2.5 + + + io.vertx + vertx-mysql-client + 4.2.5 + + + io.vertx + vertx-opentelemetry + 4.2.5 + + + io.vertx + vertx-opentracing + 4.2.5 + + + io.vertx + vertx-oracle-client + 4.2.5.1 + + + io.vertx + vertx-pg-client + 4.2.5 + + + io.vertx + vertx-proton + 4.2.5 + + + io.vertx + vertx-rabbitmq-client + 4.2.5 + + + io.vertx + vertx-reactive-streams + 4.2.5 + + + io.vertx + vertx-redis-client + 4.2.5 + + + io.vertx + vertx-rx-java2 + 4.2.5 + + + io.vertx + vertx-rx-java3 + 4.2.5 + + + io.vertx + vertx-rx-java + 4.2.5 + + + io.vertx + vertx-rx + 4.2.5 + pom + + + io.vertx + vertx-service-discovery-backend-consul + 4.2.5 + + + io.vertx + vertx-service-discovery-backend-redis + 4.2.5 + + + io.vertx + vertx-service-discovery-backend-zookeeper + 4.2.5 + + + io.vertx + vertx-service-discovery-bridge-consul + 4.2.5 + + + io.vertx + vertx-service-discovery-bridge-docker-links + 4.2.5 + + + io.vertx + vertx-service-discovery-bridge-docker + 4.2.5 + + + io.vertx + vertx-service-discovery-bridge-kubernetes + 4.2.5 + + + io.vertx + vertx-service-discovery-bridge-zookeeper + 4.2.5 + + + io.vertx + vertx-service-discovery-parent + 4.2.5 + pom + + + io.vertx + vertx-service-discovery + 4.2.5 + + + io.vertx + vertx-service-discovery + 4.2.5 + test-jar + + + io.vertx + vertx-service-discovery + 4.2.5 + test-jar + tests + + + io.vertx + vertx-service-factory + 4.2.5 + + + io.vertx + vertx-service-proxy + 4.2.5 + + + io.vertx + vertx-service-proxy + 4.2.5 + processor + + + io.vertx + vertx-shell + 4.2.5 + + + io.vertx + vertx-sockjs-service-proxy + 4.2.5 + + + io.vertx + vertx-sql-client-parent + 4.2.5 + + + io.vertx + vertx-sql-client-templates + 4.2.5 + + + io.vertx + vertx-sql-client + 4.2.5 + + + io.vertx + vertx-sql-client + 4.2.5 + test-jar + + + io.vertx + vertx-sql-client + 4.2.5 + test-jar + tests + + + io.vertx + vertx-sql-common + 4.2.5 + + + io.vertx + vertx-stomp + 4.2.5 + + + io.vertx + vertx-sync + 4.2.5 + + + io.vertx + vertx-tcp-eventbus-bridge + 4.2.5 + + + io.vertx + vertx-tracing-parent + 4.2.5 + + + io.vertx + vertx-unit + 4.2.5 + + + io.vertx + vertx-web-api-contract + 4.2.5 + + + io.vertx + vertx-web-api-service + 4.2.5 + + + io.vertx + vertx-web-client + 4.2.5 + + + io.vertx + vertx-web-common + 4.2.5 + + + io.vertx + vertx-web-graphql + 4.2.5 + + + io.vertx + vertx-web-openapi + 4.2.5 + + + io.vertx + vertx-web-parent + 4.2.5 + pom + + + io.vertx + vertx-web-proxy + 4.2.5 + + + io.vertx + vertx-web-sstore-cookie + 4.2.5 + + + io.vertx + vertx-web-sstore-infinispan + 4.2.5 + + + io.vertx + vertx-web-sstore-redis + 4.2.5 + + + io.vertx + vertx-web-templ-freemarker + 4.2.5 + + + io.vertx + vertx-web-templ-freemarker + 4.2.5 + test-jar + + + io.vertx + vertx-web-templ-freemarker + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-freemarker + 4.2.5 + test-jar + tests + + + io.vertx + vertx-web-templ-handlebars + 4.2.5 + + + io.vertx + vertx-web-templ-handlebars + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-httl + 4.2.5 + + + io.vertx + vertx-web-templ-httl + 4.2.5 + test-jar + + + io.vertx + vertx-web-templ-httl + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-httl + 4.2.5 + test-jar + tests + + + io.vertx + vertx-web-templ-jade + 4.2.5 + + + io.vertx + vertx-web-templ-jade + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-jte + 4.2.5 + + + io.vertx + vertx-web-templ-jte + 4.2.5 + test-jar + + + io.vertx + vertx-web-templ-jte + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-jte + 4.2.5 + test-jar + tests + + + io.vertx + vertx-web-templ-mvel + 4.2.5 + + + io.vertx + vertx-web-templ-mvel + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-pebble + 4.2.5 + + + io.vertx + vertx-web-templ-pebble + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-rocker + 4.2.5 + + + io.vertx + vertx-web-templ-rocker + 4.2.5 + test-jar + + + io.vertx + vertx-web-templ-rocker + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-rocker + 4.2.5 + test-jar + tests + + + io.vertx + vertx-web-templ-rythm + 4.2.5 + + + io.vertx + vertx-web-templ-rythm + 4.2.5 + test-jar + + + io.vertx + vertx-web-templ-rythm + 4.2.5 + shaded + + + io.vertx + vertx-web-templ-rythm + 4.2.5 + test-jar + tests + + + io.vertx + vertx-web-templ-thymeleaf + 4.2.5 + + + io.vertx + vertx-web-templ-thymeleaf + 4.2.5 + shaded + + + io.vertx + vertx-web-validation + 4.2.5 + + + io.vertx + vertx-web + 4.2.5 + + + io.vertx + vertx-web + 4.2.5 + test-jar + + + io.vertx + vertx-web + 4.2.5 + js + client + + + io.vertx + vertx-web + 4.2.5 + test-jar + tests + + + io.vertx + vertx-zipkin + 4.2.5 + + + io.vertx + vertx-zookeeper + 4.2.5 + + + jakarta.activation + jakarta.activation-api + 1.2.1 + + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + + + jakarta.enterprise + jakarta.enterprise.cdi-api + 2.0.2 + + + jakarta.inject + jakarta.inject-api + 1.0 + + + jakarta.interceptor + jakarta.interceptor-api + 1.2.5 + + + jakarta.ejb + jakarta.ejb-api + + + + + jakarta.json.bind + jakarta.json.bind-api + 1.0.2 + + + jakarta.persistence + jakarta.persistence-api + 2.2.3 + + + jakarta.security.auth.message + jakarta.security.auth.message-api + 1.1.3 + + + jakarta.security.jacc + jakarta.security.jacc-api + 1.6.1 + + + jakarta.servlet + jakarta.servlet-api + 4.0.3 + + + jakarta.transaction + jakarta.transaction-api + 1.3.3 + + + jakarta.validation + jakarta.validation-api + 2.0.2 + + + jakarta.websocket + jakarta.websocket-api + 1.1.2 + + + jakarta.xml.bind + jakarta.xml.bind-api + 2.3.3 + + + mysql + mysql-connector-java + 8.0.28 + + + com.google.protobuf + protobuf-java + + + + + net.bytebuddy + byte-buddy + 1.12.8 + + + net.java.dev.jna + jna + 5.8.0 + + + org.aesh + aesh + 2.6 + + + org.aesh + readline + 2.2 + + + org.antlr + antlr4-runtime + 4.9.2 + + + org.antlr + antlr4 + 4.9.2 + + + org.apache.avro + avro-compiler + 1.11.0 + + + org.apache.avro + avro + 1.11.0 + + + org.apache.commons + commons-compress + 1.21 + + + org.apache.commons + commons-lang3 + 3.12.0 + + + org.apache.derby + derbyclient + 10.14.2.0 + + + org.apache.derby + derbynet + 10.14.2.0 + + + org.apache.derby + derbytools + 10.14.2.0 + + + org.apache.httpcomponents + httpasyncclient + 4.1.5 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpclient-cache + 4.5.13 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpclient + 4.5.13 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpcore-nio + 4.4.15 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpcore + 4.4.15 + + + commons-logging + commons-logging + + + + + org.apache.httpcomponents + httpmime + 4.5.13 + + + commons-logging + commons-logging + + + + + org.apache.kafka + kafka-clients + 3.1.0 + + + org.apache.kafka + kafka-streams-test-utils + 3.1.0 + + + org.apache.kafka + kafka-streams + 3.1.0 + + + org.apache.kafka + kafka_2.12 + 3.1.0 + + + com.google.code.findbugs + jsr305 + + + + + org.apache.logging.log4j + log4j-api + 2.17.2 + + + org.apache.maven.plugin-tools + maven-plugin-annotations + 3.6.0 + + + org.apache.maven + maven-artifact + + + + + org.apache.maven.resolver + maven-resolver-api + 1.6.3 + + + org.apache.maven.resolver + maven-resolver-connector-basic + 1.6.3 + + + org.slf4j + slf4j-api + + + + + org.apache.maven.resolver + maven-resolver-transport-wagon + 1.6.3 + + + org.slf4j + slf4j-api + + + + + org.apache.maven.resolver + maven-resolver-util + 1.6.3 + + + org.apache.maven.shared + maven-invoker + 3.0.1 + + + org.apache.maven.shared + maven-shared-utils + 3.3.4 + + + org.apache.maven.wagon + wagon-file + 3.4.3 + + + org.codehaus.plexus + plexus-utils + + + + + org.apache.maven.wagon + wagon-http + 3.4.3 + + + org.slf4j + slf4j-api + + + org.codehaus.plexus + plexus-utils + + + commons-io + commons-io + + + + + org.apache.maven.wagon + wagon-provider-api + 3.4.3 + + + org.apache.maven + maven-core + 3.8.4 + + + javax.inject + javax.inject + + + org.checkerframework + checker-qual + + + org.slf4j + slf4j-api + + + + + org.apache.maven + maven-embedder + 3.8.4 + + + org.sonatype.plexus + plexus-sec-dispatcher + + + org.sonatype.plexus + plexus-cipher + + + javax.annotation + javax.annotation-api + + + javax.inject + javax.inject + + + org.slf4j + slf4j-api + + + org.codehaus.plexus + plexus-utils + + + + + org.apache.maven + maven-model + 3.8.4 + + + org.apache.maven + maven-plugin-api + 3.8.4 + + + javax.annotation + javax.annotation-api + + + javax.inject + javax.inject + + + + + org.apache.maven + maven-resolver-provider + 3.8.4 + + + javax.inject + javax.inject + + + org.slf4j + slf4j-api + + + + + org.apache.maven + maven-settings-builder + 3.8.4 + + + javax.inject + javax.inject + + + org.codehaus.plexus + plexus-utils + + + + + org.apache.maven + maven-settings + 3.8.4 + + + org.apache.maven + maven-toolchain + 3.0-alpha-2 + + + org.codehaus.plexus + plexus-classworlds + + + + + org.apache.qpid + proton-j + 0.33.10 + + + org.awaitility + awaitility-kotlin + 4.2.0 + + + org.awaitility + awaitility-scala + 4.2.0 + + + org.awaitility + awaitility + 4.2.0 + + + org.bouncycastle + bc-fips + 1.0.2.3 + + + org.bouncycastle + bcpkix-jdk15on + 1.70 + + + org.bouncycastle + bcprov-jdk15on + 1.70 + + + org.bouncycastle + bctls-fips + 1.0.12.3 + + + org.bouncycastle + bctls-jdk15on + 1.70 + + + org.checkerframework + checker-qual + 3.21.3 + + + org.codehaus.plexus + plexus-classworlds + 2.6.0 + + + * + * + + + + + org.codehaus.plexus + plexus-component-annotations + 2.1.0 + + + org.codehaus.plexus + plexus-utils + 3.3.0 + + + org.eclipse.microprofile.config + microprofile-config-api + 2.0.1 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.eclipse.microprofile.context-propagation + microprofile-context-propagation-api + 1.2 + + + org.eclipse.microprofile.jwt + microprofile-jwt-auth-api + 1.2 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.eclipse.microprofile.metrics + microprofile-metrics-api + 3.0.1 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.eclipse.microprofile.opentracing + microprofile-opentracing-api + 2.0 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.eclipse.microprofile.reactive-streams-operators + microprofile-reactive-streams-operators-api + 1.0.1 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.eclipse.microprofile.reactive-streams-operators + microprofile-reactive-streams-operators-core + 1.0.1 + + + org.eclipse.microprofile.rest.client + microprofile-rest-client-api + 2.0 + + + org.eclipse.sisu + org.eclipse.sisu.inject + 0.3.5 + + + org.eclipse.sisu + org.eclipse.sisu.plexus + 0.3.5 + + + * + * + + + + + org.eclipse + yasson + 1.0.11 + + + jakarta.json + jakarta.json-api + + + + + org.elasticsearch.client + elasticsearch-rest-client-sniffer + 8.1.1 + + + org.elasticsearch.client + elasticsearch-rest-client + 8.1.1 + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + 7.10.2 + + + org.apache.logging.log4j + log4j-api + + + + + org.flywaydb + flyway-core + 8.5.4 + + + org.flywaydb + flyway-mysql + 8.5.4 + + + org.flywaydb + flyway-sqlserver + 8.5.4 + + + org.glassfish.jaxb + jaxb-runtime + 2.3.3-b02 + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.glassfish + jakarta.el + 3.0.4 + + + org.glassfish + jakarta.json + 1.1.6 + + + org.graalvm.nativeimage + svm + 22.0.0.2 + provided + + + * + * + + + + + org.graalvm.sdk + graal-sdk + 22.0.0.2 + + + org.gradle + gradle-tooling-api + 7.4.1 + + + org.slf4j + slf4j-api + + + + + org.hibernate.reactive + hibernate-reactive-core + 1.1.4.Final + + + org.hibernate.search + hibernate-search-backend-elasticsearch-aws + 6.1.3.Final + + + org.hibernate.search + hibernate-search-backend-elasticsearch + 6.1.3.Final + + + org.hibernate.search + hibernate-search-mapper-orm-coordination-outbox-polling + 6.1.3.Final + + + org.hibernate.search + hibernate-search-mapper-orm + 6.1.3.Final + + + org.hibernate.common + hibernate-commons-annotations + + + + + org.hibernate.validator + hibernate-validator + 6.2.3.Final + + + org.hibernate + hibernate-core + 5.6.7.Final + + + org.hibernate + hibernate-envers + 5.6.7.Final + + + org.hibernate + hibernate-graalvm + 5.6.7.Final + + + org.hibernate + hibernate-jpamodelgen + 5.6.7.Final + + + org.hibernate + quarkus-local-cache + 0.1.0 + + + org.infinispan.protostream + protostream-processor + 4.4.1.Final + + + org.infinispan.protostream + protostream-types + 4.4.1.Final + + + org.infinispan.protostream + protostream + 4.4.1.Final + + + org.infinispan + infinispan-client-hotrod + 13.0.6.Final + + + org.infinispan + infinispan-commons-test + 13.0.6.Final + + + org.infinispan + infinispan-commons + 13.0.6.Final + + + org.infinispan + infinispan-component-annotations + 13.0.6.Final + + + org.infinispan + infinispan-core + 13.0.6.Final + + + org.infinispan + infinispan-core + 13.0.6.Final + test-jar + + + org.infinispan + infinispan-core + 13.0.6.Final + test-jar + tests + + + org.infinispan + infinispan-directory-provider + 13.0.6.Final + + + org.infinispan + infinispan-lucene-directory + 13.0.6.Final + + + org.infinispan + infinispan-objectfilter + 13.0.6.Final + + + org.infinispan + infinispan-query-dsl + 13.0.6.Final + + + org.infinispan + infinispan-query + 13.0.6.Final + + + org.infinispan + infinispan-remote-query-client + 13.0.6.Final + + + org.infinispan + infinispan-remote-query-server + 13.0.6.Final + + + org.infinispan + infinispan-server-hotrod + 13.0.6.Final + + + org.infinispan + infinispan-server-hotrod + 13.0.6.Final + test-jar + + + org.infinispan + infinispan-server-hotrod + 13.0.6.Final + test-jar + tests + + + org.infinispan + infinispan-server-testdriver-core + 13.0.6.Final + + + org.jacoco + org.jacoco.agent + 0.8.7 + + + org.jacoco + org.jacoco.agent + 0.8.7 + runtime + + + org.jacoco + org.jacoco.core + 0.8.7 + + + org.jacoco + org.jacoco.report + 0.8.7 + + + org.jboss.logging + commons-logging-jboss-logging + 1.0.0.Final + + + org.jboss.logging + jboss-logging-annotations + 2.2.1.Final + + + org.jboss.logging + jboss-logging-processor + 2.2.1.Final + + + org.jboss.logging + jboss-logging + 3.4.3.Final + + + org.jboss.logmanager + jboss-logmanager-embedded + 1.0.9 + + + org.graalvm.nativeimage + svm + + + org.jboss.modules + jboss-modules + + + org.glassfish + javax.json + + + + + org.jboss.logmanager + log4j-jboss-logmanager + 1.3.0.Final + + + org.jboss.logmanager + jboss-logmanager + + + + + org.jboss.logmanager + log4j2-jboss-logmanager + 1.1.1.Final + + + org.jboss.logmanager + jboss-logmanager + + + + + org.jboss.metadata + jboss-metadata-web + 14.0.0.Final + + + org.jboss.logging + jboss-logging + + + + + org.jboss.narayana.jta + narayana-jta + 5.12.4.Final + + + org.jboss.narayana.jts + narayana-jts-integration + 5.12.4.Final + + + org.jboss.narayana.rts + lra-coordinator-jar + 5.12.4.Final + + + org.jboss.spec.javax.servlet + jboss-servlet-api_3.1_spec + + + + + org.jboss.narayana.rts + lra-proxy-api + 5.12.4.Final + + + org.jboss.narayana.rts + lra-service-base + 5.12.4.Final + + + commons-logging + commons-logging + + + + + org.jboss.narayana.rts + narayana-lra + 5.12.4.Final + + + org.jboss.narayana.rts + narayana-lra + + + org.jboss.narayana.rts + lra-service-base + + + commons-logging + commons-logging + + + org.jboss.resteasy + resteasy-client + + + org.jboss.resteasy + resteasy-jackson2-provider + + + + + org.jboss.narayana.stm + stm + 5.12.4.Final + + + org.jboss.resteasy + jose-jwt + 4.7.5.Final + + + org.jboss.resteasy + resteasy-atom-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-cache-core + 4.7.5.Final + + + org.jboss.resteasy + resteasy-cdi + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client-api + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client-jetty + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client-microprofile-base + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client-microprofile + 4.7.5.Final + + + org.eclipse.microprofile.config + microprofile-config-api + + + + + org.jboss.resteasy + resteasy-client-reactor-netty + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client-vertx + 4.7.5.Final + + + org.jboss.resteasy + resteasy-client + 4.7.5.Final + + + org.jboss.resteasy + resteasy-context-propagation + 4.7.5.Final + + + org.jboss.resteasy + resteasy-core-spi + 4.7.5.Final + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.3_spec + + + javax.activation + activation + + + + + org.jboss.resteasy + resteasy-core + 4.7.5.Final + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.3_spec + + + javax.activation + activation + + + + + org.jboss.resteasy + resteasy-crypto + 4.7.5.Final + + + org.jboss.resteasy + resteasy-fastinfoset-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-guice + 4.7.5.Final + + + org.jboss.resteasy + resteasy-html + 4.7.5.Final + + + org.jboss.resteasy + resteasy-jackson2-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-jaxb-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-jdk-http + 4.7.5.Final + + + org.jboss.resteasy + resteasy-jsapi + 4.7.5.Final + + + org.jboss.resteasy + resteasy-json-binding-provider + 4.7.5.Final + + + jakarta.json + jakarta.json-api + + + + + org.jboss.resteasy + resteasy-json-p-provider + 4.7.5.Final + + + jakarta.json + jakarta.json-api + + + + + org.jboss.resteasy + resteasy-links + 4.7.5.Final + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.3_spec + + + org.hibernate.javax.persistence + hibernate-jpa-2.1-api + + + org.checkerframework + checker-qual + + + jakarta.activation + jakarta.activation-api + + + + + org.jboss.resteasy + resteasy-multipart-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-netty4-cdi + 4.7.5.Final + + + org.jboss.resteasy + resteasy-netty4 + 4.7.5.Final + + + org.jboss.resteasy + resteasy-reactive-context + 4.7.5.Final + + + org.jboss.resteasy + resteasy-reactor-netty + 4.7.5.Final + + + org.jboss.resteasy + resteasy-reactor + 4.7.5.Final + + + org.jboss.resteasy + resteasy-rxjava2 + 4.7.5.Final + + + org.jboss.resteasy + resteasy-context-propagation + + + + + org.jboss.resteasy + resteasy-servlet-initializer + 4.7.5.Final + + + org.jboss.resteasy + resteasy-spring-web + 4.7.5.Final + + + org.jboss.spec.javax.annotation + jboss-annotations-api_1.3_spec + + + javax.activation + activation + + + + + org.jboss.resteasy + resteasy-spring + 4.7.5.Final + + + org.jboss.resteasy + resteasy-undertow + 4.7.5.Final + + + org.jboss.resteasy + resteasy-validator-provider + 4.7.5.Final + + + org.jboss.resteasy + resteasy-vertx + 4.7.5.Final + + + org.jboss.resteasy + resteasy-wadl-undertow-connector + 4.7.5.Final + + + org.jboss.resteasy + resteasy-wadl + 4.7.5.Final + + + org.jboss.shrinkwrap + shrinkwrap-depchain + 1.2.6 + pom + + + org.jboss.slf4j + slf4j-jboss-logmanager + 1.1.0.Final + + + org.jboss.spec.javax.ws.rs + jboss-jaxrs-api_2.1_spec + 2.0.1.Final + + + org.jboss.spec.javax.xml.bind + jboss-jaxb-api_2.3_spec + 2.0.0.Final + + + org.jboss.threads + jboss-threads + 3.4.2.Final + + + org.jboss + jandex + 2.4.2.Final + + + org.jboss + jboss-transaction-spi + 7.6.0.Final + + + org.jetbrains.kotlin + kotlin-compiler + 1.6.10 + + + org.jetbrains.kotlin + kotlin-reflect + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-common + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-jdk7 + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 1.6.10 + + + org.jetbrains.kotlin + kotlin-stdlib + 1.6.10 + + + org.jetbrains.kotlinx + kotlinx-coroutines-android + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-core-jvm + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-core + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-debug + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-guava + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-javafx + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-jdk8 + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-jdk9 + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-play-services + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-reactive + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-reactor + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-rx2 + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-rx3 + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-slf4j + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-swing + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-test-jvm + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-coroutines-test + 1.6.0 + + + org.jetbrains.kotlinx + kotlinx-serialization-json + 1.3.2 + + + org.jsoup + jsoup + 1.14.2 + + + org.junit-pioneer + junit-pioneer + 1.5.0 + + + org.junit.jupiter + junit-jupiter-api + 5.8.2 + + + org.junit.jupiter + junit-jupiter-engine + 5.8.2 + + + org.junit.jupiter + junit-jupiter-migrationsupport + 5.8.2 + + + org.junit.jupiter + junit-jupiter-params + 5.8.2 + + + org.junit.jupiter + junit-jupiter + 5.8.2 + + + org.junit.platform + junit-platform-commons + 1.8.2 + + + org.junit.platform + junit-platform-console + 1.8.2 + + + org.junit.platform + junit-platform-engine + 1.8.2 + + + org.junit.platform + junit-platform-jfr + 1.8.2 + + + org.junit.platform + junit-platform-launcher + 1.8.2 + + + org.junit.platform + junit-platform-reporting + 1.8.2 + + + org.junit.platform + junit-platform-runner + 1.8.2 + + + org.junit.platform + junit-platform-suite-api + 1.8.2 + + + org.junit.platform + junit-platform-suite-commons + 1.8.2 + + + org.junit.platform + junit-platform-suite-engine + 1.8.2 + + + org.junit.platform + junit-platform-suite + 1.8.2 + + + org.junit.platform + junit-platform-testkit + 1.8.2 + + + org.junit.vintage + junit-vintage-engine + 5.8.2 + + + org.keycloak + keycloak-adapter-core + 17.0.1 + + + org.keycloak + keycloak-adapter-spi + 17.0.1 + + + org.keycloak + keycloak-admin-client + 17.0.1 + + + org.checkerframework + checker-qual + + + + + org.keycloak + keycloak-authz-client + 17.0.1 + + + org.keycloak + keycloak-core + 17.0.1 + + + org.liquibase.ext + liquibase-mongodb + 4.9.0 + + + org.liquibase + liquibase-core + 4.9.0 + + + ch.qos.logback + logback-classic + + + javax.xml.bind + jaxb-api + + + + + org.lz4 + lz4-java + 1.8.0 + + + org.mariadb.jdbc + mariadb-java-client + 3.0.4 + + + org.mockito + mockito-android + 4.4.0 + + + org.mockito + mockito-core + 4.4.0 + + + org.mockito + mockito-errorprone + 4.4.0 + + + org.mockito + mockito-inline + 4.4.0 + + + org.mockito + mockito-junit-jupiter + 4.4.0 + + + org.mockito + mockito-proxy + 4.4.0 + + + org.mongodb + bson + 4.3.4 + + + org.mongodb + mongodb-crypt + 1.2.1 + + + org.mongodb + mongodb-driver-core + 4.3.4 + + + org.mongodb + mongodb-driver-legacy + 4.3.4 + + + org.mongodb + mongodb-driver-reactivestreams + 4.3.4 + + + org.mongodb + mongodb-driver-sync + 4.3.4 + + + org.ow2.asm + asm-analysis + 9.2 + + + org.ow2.asm + asm-commons + 9.2 + + + org.ow2.asm + asm-tree + 9.2 + + + org.ow2.asm + asm + 9.2 + + + org.postgresql + postgresql + 42.3.3 + + + org.checkerframework + checker-qual + + + + + org.quartz-scheduler + quartz + 2.3.2 + + + org.reactivestreams + reactive-streams + 1.0.3 + + + org.osgi + org.osgi.annotation.versioning + + + + + org.scala-lang + scala-compiler + 2.12.13 + + + org.scala-lang + scala-library + 2.12.13 + + + org.scala-lang + scala-reflect + 2.12.13 + + + org.slf4j + slf4j-api + 1.7.36 + + + org.testcontainers + azure + 1.16.3 + + + org.testcontainers + cassandra + 1.16.3 + + + org.testcontainers + clickhouse + 1.16.3 + + + org.testcontainers + cockroachdb + 1.16.3 + + + org.testcontainers + couchbase + 1.16.3 + + + org.testcontainers + database-commons + 1.16.3 + + + org.testcontainers + db2 + 1.16.3 + + + org.testcontainers + dynalite + 1.16.3 + + + org.testcontainers + elasticsearch + 1.16.3 + + + org.testcontainers + gcloud + 1.16.3 + + + org.testcontainers + influxdb + 1.16.3 + + + org.testcontainers + jdbc + 1.16.3 + + + org.testcontainers + junit-jupiter + 1.16.3 + + + org.testcontainers + k3s + 1.16.3 + + + org.testcontainers + kafka + 1.16.3 + + + org.testcontainers + localstack + 1.16.3 + + + org.testcontainers + mariadb + 1.16.3 + + + org.testcontainers + mockserver + 1.16.3 + + + org.testcontainers + mongodb + 1.16.3 + + + org.testcontainers + mssqlserver + 1.16.3 + + + org.testcontainers + mysql + 1.16.3 + + + org.testcontainers + neo4j + 1.16.3 + + + org.testcontainers + nginx + 1.16.3 + + + org.testcontainers + oracle-xe + 1.16.3 + + + org.testcontainers + orientdb + 1.16.3 + + + org.testcontainers + postgresql + 1.16.3 + + + org.testcontainers + presto + 1.16.3 + + + org.testcontainers + pulsar + 1.16.3 + + + org.testcontainers + r2dbc + 1.16.3 + + + org.testcontainers + rabbitmq + 1.16.3 + + + org.testcontainers + selenium + 1.16.3 + + + org.testcontainers + solr + 1.16.3 + + + org.testcontainers + spock + 1.16.3 + + + org.testcontainers + testcontainers + 1.16.3 + + + org.testcontainers + toxiproxy + 1.16.3 + + + org.testcontainers + trino + 1.16.3 + + + org.testcontainers + vault + 1.16.3 + + + org.testng + testng + 6.14.2 + + + org.wildfly.client + wildfly-client-config + 1.0.1.Final + + + org.wildfly.common + wildfly-common + 1.5.4.Final-format-001 + + + org.wildfly.openssl + wildfly-openssl-java + 1.0.6.Final + + + org.wildfly.openssl + wildfly-openssl-linux-x86_64 + 1.0.6.Final + + + org.wildfly.security + wildfly-elytron-asn1 + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-auth-server + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-credential + 1.19.0.Final + + + org.slf4j + jcl-over-slf4j + + + + + org.wildfly.security + wildfly-elytron-password-impl + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-realm-jdbc + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-realm-ldap + 1.19.0.Final + + + org.slf4j + jcl-over-slf4j + + + + + org.wildfly.security + wildfly-elytron-realm-token + 1.19.0.Final + + + org.slf4j + jcl-over-slf4j + + + + + org.wildfly.security + wildfly-elytron-realm + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-digest + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-external + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-gs2 + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-gssapi + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-oauth2 + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-plain + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-sasl-scram + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-security-manager-action + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-ssl + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron-x500-cert + 1.19.0.Final + + + org.wildfly.security + wildfly-elytron + 1.19.0.Final + + + org.xerial.snappy + snappy-java + 1.1.8.4 + + + org.yaml + snakeyaml + 1.30 + + + org.eclipse.jetty + apache-jsp + 9.4.45.v20220203 + + + org.eclipse.jetty + apache-jstl + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-java-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-java-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-openjdk8-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-openjdk8-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-conscrypt-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-conscrypt-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-annotations + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-ant + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-continuation + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-deploy + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-distribution + 9.4.45.v20220203 + zip + + + org.eclipse.jetty + jetty-distribution + 9.4.45.v20220203 + tar.gz + + + org.eclipse.jetty.fcgi + fcgi-client + 9.4.45.v20220203 + + + org.eclipse.jetty.fcgi + fcgi-server + 9.4.45.v20220203 + + + org.eclipse.jetty.gcloud + jetty-gcloud-session-manager + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-home + 9.4.45.v20220203 + zip + + + org.eclipse.jetty + jetty-home + 9.4.45.v20220203 + tar.gz + + + org.eclipse.jetty + jetty-http + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-client + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-common + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-hpack + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-http-client-transport + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-http-spi + 9.4.45.v20220203 + + + org.eclipse.jetty + infinispan-common + 9.4.45.v20220203 + + + org.eclipse.jetty + infinispan-remote-query + 9.4.45.v20220203 + + + org.eclipse.jetty + infinispan-embedded-query + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-hazelcast + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-io + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jaas + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jaspi + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jmx + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jndi + 9.4.45.v20220203 + + + org.eclipse.jetty.memcached + jetty-memcached-sessions + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-nosql + 9.4.45.v20220203 + + + org.eclipse.jetty.osgi + jetty-osgi-boot + 9.4.45.v20220203 + + + org.eclipse.jetty.osgi + jetty-osgi-boot-jsp + 9.4.45.v20220203 + + + org.eclipse.jetty.osgi + jetty-osgi-boot-warurl + 9.4.45.v20220203 + + + org.eclipse.jetty.osgi + jetty-httpservice + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-plus + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-proxy + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-quickstart + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-rewrite + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-security + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-openid + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlet + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlets + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-spring + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-unixsocket + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util-ajax + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-webapp + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + javax-websocket-client-impl + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + javax-websocket-server-impl + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + websocket-api + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + websocket-client + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + websocket-common + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + websocket-server + 9.4.45.v20220203 + + + org.eclipse.jetty.websocket + websocket-servlet + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-xml + 9.4.45.v20220203 + + + com.azure + azure-ai-formrecognizer + 3.1.5 + + + com.azure + azure-ai-metricsadvisor + 1.0.3 + + + com.azure + azure-ai-textanalytics + 5.1.3 + + + com.azure + azure-communication-chat + 1.1.1 + + + com.azure + azure-communication-common + 1.0.5 + + + com.azure + azure-communication-identity + 1.1.3 + + + com.azure + azure-communication-phonenumbers + 1.0.5 + + + com.azure + azure-communication-sms + 1.0.5 + + + com.azure + azure-core + 1.21.0 + + + com.azure + azure-core-amqp + 2.3.3 + + + com.azure + azure-core-http-netty + 1.11.1 + + + com.azure + azure-core-http-okhttp + 1.7.4 + + + com.azure + azure-core-management + 1.4.2 + + + com.azure + azure-core-serializer-json-gson + 1.1.7 + + + com.azure + azure-core-serializer-json-jackson + 1.2.8 + + + com.azure + azure-cosmos + 4.20.0 + + + com.azure + azure-data-appconfiguration + 1.2.3 + + + com.azure + azure-data-tables + 12.1.3 + + + com.azure + azure-digitaltwins-core + 1.1.3 + + + com.azure + azure-identity + 1.4.0 + + + com.azure + azure-messaging-eventgrid + 4.7.0 + + + com.azure + azure-messaging-eventhubs + 5.10.2 + + + com.azure + azure-messaging-eventhubs-checkpointstore-blob + 1.10.1 + + + com.azure + azure-messaging-servicebus + 7.4.2 + + + com.azure + azure-mixedreality-authentication + 1.1.2 + + + com.azure + azure-mixedreality-remoterendering + 1.1.1 + + + com.azure + azure-monitor-query + 1.0.0 + + + com.azure + azure-search-documents + 11.4.4 + + + com.azure + azure-security-keyvault-administration + 4.0.4 + + + com.azure + azure-security-keyvault-certificates + 4.2.4 + + + com.azure + azure-security-keyvault-jca + 2.1.0 + + + com.azure + azure-security-keyvault-keys + 4.3.4 + + + com.azure + azure-security-keyvault-secrets + 4.3.4 + + + com.azure + azure-storage-blob + 12.14.1 + + + com.azure + azure-storage-blob-batch + 12.11.1 + + + com.azure + azure-storage-blob-cryptography + 12.14.1 + + + com.azure + azure-storage-common + 12.14.0 + + + com.azure + azure-storage-file-datalake + 12.7.1 + + + com.azure + azure-storage-file-share + 12.11.1 + + + com.azure + azure-storage-internal-avro + 12.1.1 + + + com.azure + azure-storage-queue + 12.11.1 + + + com.microsoft.azure + msal4j + 1.11.0 + + + com.microsoft.azure + msal4j-persistence-extension + 1.1.0 + + + com.microsoft.azure + qpid-proton-j-extensions + 1.2.4 + + + net.java.dev.jna + jna-platform + 5.6.0 + + + org.hdrhistogram + HdrHistogram + 2.1.12 + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate3 + 2.12.5 + + + com.fasterxml.jackson.datatype + jackson-datatype-jaxrs + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-cbor-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-smile-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-xml-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-yaml-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + 2.12.5 + jakarta + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + junit + junit + 4.13.1 + + + io.projectreactor + reactor-core + 3.4.10 + + + io.projectreactor + reactor-test + 3.4.10 + + + io.projectreactor + reactor-tools + 3.4.10 + + + io.projectreactor.addons + reactor-extra + 3.4.5 + + + io.projectreactor.addons + reactor-adapter + 3.4.5 + + + io.projectreactor.netty + reactor-netty + 1.0.11 + + + io.projectreactor.netty + reactor-netty-core + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http-brave + 1.0.11 + + + io.projectreactor.addons + reactor-pool + 0.2.6 + + + io.projectreactor.kafka + reactor-kafka + 1.3.6 + + + io.projectreactor.rabbitmq + reactor-rabbitmq + 1.5.3 + + + io.projectreactor.kotlin + reactor-kotlin-extensions + 1.1.4 + + + com.datastax.oss + java-driver-core + 4.14.0 + + + io.dropwizard.metrics + metrics-core + + + org.hdrhistogram + HdrHistogram + + + com.google.code.findbugs + jsr305 + + + + + org.apache.tinkerpop + gremlin-core + 3.4.10 + + + org.yaml + snakeyaml + + + com.carrotsearch + hppc + + + com.jcabi + * + + + net.objecthunter + exp4j + + + true + + + org.apache.tinkerpop + tinkergraph-gremlin + 3.4.10 + true + + + com.esri.geometry + esri-geometry-api + 1.2.1 + true + + + com.datastax.oss.quarkus + cassandra-quarkus-client + 1.1.2 + + + com.datastax.oss.quarkus + cassandra-quarkus-client-deployment + 1.1.2 + + + com.datastax.oss.quarkus + cassandra-quarkus-test-framework + 1.1.2 + + + com.datastax.oss.quarkus + cassandra-quarkus-mapper-processor + 1.1.2 + + + com.datastax.oss + java-driver-core-shaded + 4.14.0 + + + com.datastax.oss + java-driver-mapper-processor + 4.14.0 + + + com.datastax.oss + java-driver-mapper-runtime + 4.14.0 + + + com.datastax.oss + java-driver-query-builder + 4.14.0 + + + com.google.code.findbugs + jsr305 + + + + + com.datastax.oss + java-driver-test-infra + 4.14.0 + + + com.datastax.oss + java-driver-metrics-micrometer + 4.14.0 + + + com.datastax.oss + java-driver-metrics-microprofile + 4.14.0 + + + com.datastax.oss + native-protocol + 1.5.1 + + + com.datastax.oss + java-driver-shaded-guava + 25.1-jre-graal-sub-1 + + + org.apache.kafka + connect-api + 2.7.0 + + + org.apache.kafka + connect-json + 2.7.0 + + + org.apache.kafka + connect-file + 2.7.0 + + + org.apache.kafka + connect-transforms + 2.7.0 + + + org.apache.kafka + kafka_2.12 + 2.7.0 + test + + + io.confluent + kafka-connect-avro-converter + 6.0.2 + + + io.confluent + kafka-connect-protobuf-converter + 6.0.2 + + + io.apicurio + apicurio-registry-utils-converter + 2.0.0.Final + + + com.zendesk + mysql-binlog-connector-java + 0.25.1 + + + mil.nga + wkb + 1.0.2 + + + com.oracle.instantclient + xstreams + 21.1.0.0 + + + org.slf4j + slf4j-log4j12 + 1.7.30 + + + log4j + log4j + 1.2.17 + + + com.google.api.grpc + proto-google-common-protos + 1.17.0 + + + io.vitess + vitess-grpc-client + 9.0.0 + + + com.github.jsqlparser + jsqlparser + 2.1 + + + org.apache.cassandra + cassandra-all + 3.11.10 + + + com.datastax.cassandra + cassandra-driver-core + 3.11.0 + + + javax.xml.bind + jaxb-api + 2.3.1 + + + org.easytesting + fest-assert + 1.4 + + + org.openjdk.jmh + jmh-core + 1.21 + + + org.openjdk.jmh + jmh-generator-annprocess + 1.21 + + + com.jayway.jsonpath + json-path + 2.4.0 + + + org.skyscreamer + jsonassert + 1.5.0 + test + + + org.reflections + reflections + 0.9.12 + + + org.cassandraunit + cassandra-unit + 3.5.0.1 + test + + + io.debezium + debezium-api + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + + + io.debezium + debezium-scripting + 1.6.1.Final + + + io.debezium + debezium-embedded + 1.6.1.Final + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-jdbc + 1.6.1.Final + + + io.debezium + debezium-connector-postgres + 1.6.1.Final + + + io.debezium + debezium-connector-postgres-test + 1.6.1.Final + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + + + io.debezium + debezium-ddl-parser + 1.6.1.Final + + + io.debezium + debezium-connector-mongodb + 1.6.1.Final + + + io.debezium + debezium-connector-sqlserver + 1.6.1.Final + + + io.debezium + debezium-connector-oracle + 1.6.1.Final + + + io.debezium + debezium-connector-db2 + 1.6.1.Final + + + io.debezium + debezium-connector-vitess + 1.6.1.Final + + + io.debezium + debezium-connector-cassandra + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + test-jar + + + io.debezium + debezium-embedded + 1.6.1.Final + test-jar + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + test-jar + + + com.hazelcast + hazelcast + 5.0.2 + + + javax.cache + cache-api + 1.1.1 + + + net.openhft + affinity + 3.20.0 + + + com.hazelcast + quarkus-hazelcast-client + 3.0.0 + + + com.hazelcast + quarkus-hazelcast-client-deployment + 3.0.0 + + + com.hazelcast + quarkus-test-hazelcast + 3.0.0 + + + io.quarkus + quarkus-bom-quarkus-platform-descriptor + 2.7.2.Final + json + 2.7.2.Final + + + com.amazonaws.serverless + aws-serverless-java-container-core + 1.6.1 + + + commons-logging + commons-logging + + + javax.servlet + javax.servlet-api + + + javax.ws.rs + javax.ws.rs-api + + + + + io.opentelemetry.instrumentation + opentelemetry-aws-lambda-1.0 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jaxws-2.0-axis2-1.6 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jaxws-2.0-cxf-3.0 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-jsf-common + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-log4j-2.13.2 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-logback-1.0 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-ratpack-1.4 + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-servlet-common + 1.9.0-alpha + + + io.opentelemetry.instrumentation + opentelemetry-servlet-javax-common + 1.9.0-alpha + + + io.opentelemetry + opentelemetry-api-metrics + 1.9.0-alpha + + + io.opentracing.contrib + opentracing-concurrent + 0.4.0 + + + io.opentracing.contrib + opentracing-jaxrs2 + 1.0.0 + + + io.opentracing.contrib + opentracing-tracerresolver + 0.1.8 + + + io.opentracing.contrib + opentracing-web-servlet-filter + 0.4.1 + + + io.quarkus + quarkus-junit5-vertx + 2.7.2.Final + + + io.quarkus + quarkus-undertow-websockets + 2.7.2.Final + + + io.smallrye.stork + stork-load-balancer-response-time + 1.0.0 + + + org.assertj + assertj-core + 3.21.0 + + + + diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml new file mode 100644 index 000000000000..a9a79878947c --- /dev/null +++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml @@ -0,0 +1,10969 @@ + + + 4.0.0 + org.apache.camel.quarkus + camel-quarkus-bom + 2.8.0-SNAPSHOT + pom + Camel Quarkus :: BOM + Apache Camel extensions for Quarkus + http://camel.apache.org/camel-quarkus-poms/camel-quarkus-bom + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + The Apache Camel Team + dev@camel.apache.org + http://camel.apache.org + Apache Software Foundation + http://apache.org/ + + http://camel.apache.org/banner.data/apache-camel-7.png + + + + + scm:git:http://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + scm:git:https://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + https://gitbox.apache.org/repos/asf?p=camel-quarkus.git;a=summary/camel-quarkus-poms/camel-quarkus-bom + + + GitHub + https://github.com/apache/camel-quarkus/issues + + + + apache.releases.https + Apache Release Distribution Repository + https://repository.apache.org/service/local/staging/deploy/maven2 + + + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots + + + + + + com.jcraft + jzlib + 1.1.3 + + + org.apache.camel + camel-activemq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.activemq + activemq-broker + + + org.apache.geronimo.specs + geronimo-jms_1.1_spec + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-ahc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + io.netty + netty-all + + + + + org.apache.camel + camel-ahc-ws + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-amqp + 3.16.0 + + + io.netty + * + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.qpid + qpid-jms-client + + + org.apache.qpid + proton-j + + + + + org.apache.camel + camel-api + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-arangodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-as2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-slf4j-impl + + + org.bouncycastle + bcprov-debug-jdk15on + + + + + org.apache.camel + camel-as2-api + 3.16.0 + + + org.apache.camel + camel-asn1 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-asterisk + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-atlasmap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-atmos + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + + + org.apache.camel + camel-atom + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-activation_1.1_spec + + + + + org.apache.camel + camel-atomix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-attachments + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc-spi + 3.16.0 + + + javax.annotation + javax.annotation-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-aws-secrets-manager + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws-xray + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws2-athena + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-cw + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ddb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ec2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ecs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eks + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eventbridge + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-iam + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kinesis + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-lambda + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-mq + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-msk + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-s3 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ses + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sns + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sqs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sts + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-translate + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-azure-cosmosdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-eventhubs + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-servicebus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-blob + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-datalake + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-queue + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-barcode + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base-engine + 3.16.0 + + + org.apache.camel + camel-base64 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + + + org.apache.camel + camel-beanio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-beanstalk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bindy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bonita + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-box + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-box-api + 3.16.0 + + + org.apache.camel + camel-braintree + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-browse + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine-lrucache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cassandraql + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cbor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chatscript + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cloud + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cluster + 3.16.0 + + + org.apache.camel + camel-cm-sms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-cmis + 3.16.0 + + + asm + asm + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-coap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cometd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-componentdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-consul + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-controlbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-corda + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.persistence + javax.persistence-api + + + org.apache.activemq + * + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.jboss.logmanager + jboss-logmanager + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-core-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-engine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-languages + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-model + 3.16.0 + + + org.apache.camel + camel-core-processor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-reifier + 3.16.0 + + + org.apache.camel + camel-couchbase + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-couchdb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-crypto + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-csv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dataformat + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-debezium-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.javassist + javassist + + + io.debezium + * + + + + + org.apache.camel + camel-debezium-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-mysql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-postgres + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-sqlserver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-digitalocean + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-direct + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-disruptor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-djl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dns + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dozer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-drill + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-dropbox + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dsl-support + 3.16.0 + + + org.apache.camel + camel-ehcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-elasticsearch-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.elasticsearch.client + * + + + + + org.apache.camel + camel-elsql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl-support + 3.16.0 + + + org.apache.camel + camel-etcd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-etcd3 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-exec + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-facebook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fastjson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fhir + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + xpp3 + xpp3 + + + + + org.apache.camel + camel-fhir-api + 3.16.0 + + + org.apache.camel + camel-file + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-file-watch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flatpack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flink + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fop + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-freemarker + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ftp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ganglia + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-geocoder + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.httpcomponents + httpclient + + + com.jayway.jsonpath + json-path + + + + + org.apache.camel + camel-git + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-github + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-bigquery + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-calendar + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-drive + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-functions + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-mail + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-pubsub + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.grpc + grpc-netty-shaded + + + io.perfmark + perfmark-api + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-secret-manager + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-sheets + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-storage + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-graphql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-grok + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl-common + 3.16.0 + + + org.apache.camel + camel-grpc + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-gson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-guava-eventbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hazelcast + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hbase + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-hdfs + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.servlet + javax.servlet-api + + + javax.ws.rs + jsr311-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-headersmap + 3.16.0 + + + ch.qos.logback + logback-classic + + + ch.qos.logback + logback-core + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-health + 3.16.0 + + + org.apache.camel + camel-hl7 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-http-base + 3.16.0 + + + org.apache.camel + camel-http-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-huaweicloud-common + 3.16.0 + + + org.apache.camel + camel-huaweicloud-smn + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hystrix + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ical + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iec60870 + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ignite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-infinispan + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.infinispan + infinispan-core + + + org.infinispan + infinispan-marshaller-protostuff + + + + + org.apache.camel + camel-infinispan-common + 3.16.0 + + + org.apache.camel + camel-influxdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iota + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-irc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-protobuf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jacksonxml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jasypt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-java-joor-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jbpm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jclouds + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + javax.ws.rs + javax.ws.rs-api + + + + + org.apache.camel + camel-jcr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jdbc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jfr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups-raft + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jira + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + com.google.j2objc + j2objc-annotations + + + com.google.code.findbugs + jsr305 + + + com.sun.jersey + * + + + commons-logging + commons-logging + + + org.apache.httpcomponents + httpclient-cache + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-johnzon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jolt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + + + org.apache.camel + camel-jooq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-joor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jpa + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-js-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-patch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonata + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jt400 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jta + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-kafka + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kamelet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kotlin-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kubernetes + 3.16.0 + + + io.fabric8 + kubernetes-client + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kudu + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-language + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldif + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-leveldb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-log + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lra + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.cxf + * + + + + + org.apache.camel + camel-lucene + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lumberjack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lzf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mail + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-main + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-headersmap + + + + + org.apache.camel + camel-management + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-management-api + 3.16.0 + + + org.apache.camel + camel-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-micrometer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-config + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-fault-tolerance + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.eclipse.microprofile.fault-tolerance + microprofile-fault-tolerance-api + + + + + org.apache.camel + camel-microprofile-health + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-metrics + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.eclipse.microprofile.metrics + microprofile-metrics-api + + + + + org.apache.camel + camel-milo + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-minio + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.minio + minio + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mllp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mock + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-mongodb-gridfs + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-msv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mustache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mvel + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mybatis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nagios + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nats + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-nitrite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-nsq + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + + + org.apache.camel + camel-oaipmh + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ognl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4-api + 3.16.0 + + + org.apache.camel + camel-openapi-java + 3.16.0 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-openstack + 3.16.0 + + + com.github.fge + * + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentelemetry + 3.16.0 + + + io.grpc + grpc-netty-shaded + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentracing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-optaplanner + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.optaplanner + optaplanner-core + + + org.optaplanner + optaplanner-persistence-common + + + + + org.apache.camel + camel-paho + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-paho-mqtt5 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pdf + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pg-replication-slot + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pgevent + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + + + org.apache.camel + camel-platform-http + 3.16.0 + + + org.apache.camel + camel-platform-http-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-printer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-protobuf + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pubnub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pulsar + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + com.google.code.findbugs + jsr305 + + + com.google.j2objc + j2objc-annotations + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-quartz + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + + + + org.apache.camel + camel-quickfix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quickfixj + quickfixj-codegenerator + + + + + org.apache.camel + camel-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-executor-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-streams + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-redis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ref + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest-openapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ribbon + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-robotframework + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rss + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saga + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-salesforce + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-sap-netweaver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-scheduler + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-schematron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-seda + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-servicenow + 3.16.0 + + + com.sun.xml.messaging.saaj + saaj-impl + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.xml.ws + jaxws-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-servlet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-shiro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sip + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms2 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-slack + 3.16.0 + + + com.googlecode.json-simple + json-simple + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-smpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snakeyaml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snmp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-soap + 3.16.0 + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-solr + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-soroush + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk-hec + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-spring-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-sql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-ssh + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-stax + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stitch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stomp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stringtemplate + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-support + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-syslog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tagsoup + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tarfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-telegram + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-threadpoolfactory-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-thrift + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-tika + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.tika + * + + + + + org.apache.camel + camel-timer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tooling-model + 3.16.0 + + + org.apache.camel + camel-tracing + 3.16.0 + + + org.apache.camel + camel-twilio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-twitter + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-univocity-parsers + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-util + 3.16.0 + + + org.apache.camel + camel-util-json + 3.16.0 + + + org.apache.camel + camel-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-velocity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-common + 3.16.0 + + + org.apache.camel + camel-vertx-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-websocket + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-weather + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-web3j + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-webhook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-wordpress + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-workday + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xchange + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-xj + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-util + 3.16.0 + + + org.apache.camel + camel-xml-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-jaxp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmlsecurity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xstream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl-common + 3.16.0 + + + org.apache.camel + camel-yaml-dsl-deserializers + 3.16.0 + + + org.apache.camel + camel-yammer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zendesk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zip-deflater + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zipfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel.quarkus + camel-quarkus-activemq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-activemq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-catalog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-component + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-beans + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-context + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master-deployment + 2.8.0-SNAPSHOT + + + ca.uhn.hapi + hapi-base + 2.3 + + + ca.uhn.hapi + hapi-structures-v21 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v22 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v23 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v231 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v24 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v25 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v251 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v26 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi.fhir + hapi-fhir-server + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-dstu2.1 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-hl7org-dstu2 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + com.fasterxml.woodstox + woodstox-core + 6.1.1 + + + com.github.java-json-tools + json-patch + 1.13 + + + com.google.code.findbugs + jsr305 + + + + + com.github.jnr + jnr-ffi + 2.1.2 + + + org.ow2.asm + asm-util + + + + + com.google.auth + google-auth-library-credentials + 1.5.3 + + + com.google.cloud + native-image-support + 0.8.0 + + + com.google.zxing + core + 3.3.3 + + + com.mchange + c3p0 + 0.9.5.5 + + + com.orbitz.consul + consul-client + 1.5.3 + + + com.google.code.findbugs + jsr305 + + + com.google.errorprone + error_prone_annotations + + + com.google.j2objc + j2objc-annotations + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + com.squareup.okio + okio + 1.17.2 + + + com.squareup.retrofit2 + converter-jackson + 2.5.0 + + + com.squareup.retrofit2 + retrofit + 2.5.0 + + + com.sun.istack + istack-commons-runtime + 3.0.10 + + + com.sun.mail + jakarta.mail + 1.6.6 + + + com.sun.activation + jakarta.activation + + + + + com.sun.xml.messaging.saaj + saaj-impl + 1.5.3 + + + com.thoughtworks.xstream + xstream + 1.4.19 + + + commons-beanutils + commons-beanutils + 1.9.4 + + + commons-logging + commons-logging + + + + + commons-cli + commons-cli + 1.4 + + + commons-collections + commons-collections + 3.2.2 + + + commons-lang + commons-lang + 2.6 + + + io.dropwizard.metrics + metrics-core + 4.1.0 + + + io.quarkiverse.freemarker + quarkus-freemarker + 0.3.0 + + + io.quarkiverse.freemarker + quarkus-freemarker-deployment + 0.3.0 + + + io.quarkiverse.jgit + quarkus-jgit + 1.2.0 + + + io.quarkiverse.jgit + quarkus-jgit-deployment + 1.2.0 + + + io.quarkiverse.jsch + quarkus-jsch + 1.0.0 + + + io.quarkiverse.jsch + quarkus-jsch-deployment + 1.0.0 + + + io.quarkiverse.minio + quarkus-minio + 2.3.0 + + + com.google.code.findbugs + jsr305 + + + + + io.quarkiverse.minio + quarkus-minio-deployment + 2.3.0 + + + io.quarkiverse.mybatis + quarkus-mybatis + 1.0.2 + + + io.quarkiverse.mybatis + quarkus-mybatis-deployment + 1.0.2 + + + io.quarkiverse.tika + quarkus-tika + 1.0.3 + + + io.quarkiverse.tika + quarkus-tika-deployment + 1.0.3 + + + io.smallrye.reactive + smallrye-reactive-messaging-camel + 3.15.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jakarta.jms + jakarta.jms-api + 2.0.3 + + + jakarta.xml.ws + jakarta.xml.ws-api + 2.3.3 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jaxen + jaxen + 1.2.0 + + + joda-time + joda-time + 2.10.6 + + + net.i2p.crypto + eddsa + 0.3.0 + + + net.minidev + json-smart + 2.4.7 + + + org.antlr + antlr-runtime + 3.5.2 + + + org.apache.avro + avro-ipc-jetty + 1.11.0 + + + org.apache.avro + avro-ipc-netty + 1.11.0 + + + javax.annotation + javax.annotation-api + + + + + org.apache.commons + commons-math3 + 3.6.1 + + + org.apache.curator + curator-client + 4.3.0 + + + org.apache.curator + curator-framework + 4.3.0 + + + org.apache.curator + curator-recipes + 4.3.0 + + + org.apache.curator + curator-x-discovery + 4.3.0 + + + org.apache.htrace + htrace-core4 + 4.2.0-incubating + + + org.apache.kafka + connect-runtime + 3.1.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + org.slf4j + slf4j-log4j12 + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + + + org.apache.kudu + kudu-client + 1.14.0 + + + org.apache.xmlgraphics + xmlgraphics-commons + 2.7 + + + org.apache.zookeeper + zookeeper + 3.6.2 + + + org.apache.zookeeper + zookeeper-jute + 3.6.2 + + + org.asynchttpclient + async-http-client + 2.12.3 + + + org.bouncycastle + bcpg-jdk15on + 1.70 + + + org.bouncycastle + bcutil-jdk15on + 1.70 + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + + + org.codehaus.jackson + jackson-jaxrs + 1.9.13 + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + org.codehaus.jackson + jackson-xc + 1.9.13 + + + org.codehaus.mojo + animal-sniffer-annotations + 1.18 + + + org.codehaus.woodstox + stax2-api + 4.2 + + + org.eclipse.jgit + org.eclipse.jgit + 6.1.0.202203080745-r + + + org.graalvm.js + js + 22.0.0.2 + + + org.infinispan + infinispan-jboss-marshalling + 13.0.6.Final + + + org.influxdb + influxdb-java + 2.22 + + + org.javassist + javassist + 3.22.0-CR2 + + + org.jetbrains.kotlin + kotlin-script-util + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm-host + 1.6.10 + + + org.jruby.jcodings + jcodings + 1.0.55 + + + org.jruby.joni + joni + 2.1.31 + + + org.mvel + mvel2 + 2.4.13.Final + + + org.optaplanner + optaplanner-quarkus + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.springframework + spring-aop + 5.3.18 + + + org.springframework + spring-beans + 5.3.18 + + + org.springframework + spring-context + 5.3.18 + + + org.springframework + spring-core + 5.3.18 + + + org.springframework + spring-jcl + + + + + org.springframework + spring-expression + 5.3.18 + + + org.springframework + spring-jdbc + 5.3.18 + + + org.springframework + spring-messaging + 5.3.18 + + + org.springframework + spring-orm + 5.3.18 + + + org.springframework + spring-tx + 5.3.18 + + + org.threeten + threetenbp + 1.4.0 + + + org.web3j + core + 3.6.0 + + + org.web3j + geth + 3.6.0 + + + org.web3j + parity + 3.6.0 + + + org.web3j + quorum + 0.8.0 + + + xalan + xalan + 2.7.2 + + + xml-apis + xml-apis + + + + + org.codehaus.groovy + groovy + 3.0.8 + + + software.amazon.awssdk + annotations + 2.17.127 + + + software.amazon.awssdk + arns + 2.17.127 + + + software.amazon.awssdk + json-utils + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-core + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-dataformat-cbor + 2.17.127 + + + software.amazon.awssdk + auth + 2.17.127 + + + software.amazon.awssdk + aws-core + 2.17.127 + + + software.amazon.awssdk + profiles + 2.17.127 + + + software.amazon.awssdk + aws-cbor-protocol + 2.17.127 + + + software.amazon.awssdk + aws-json-protocol + 2.17.127 + + + software.amazon.awssdk + aws-query-protocol + 2.17.127 + + + software.amazon.awssdk + aws-xml-protocol + 2.17.127 + + + software.amazon.awssdk + protocol-core + 2.17.127 + + + software.amazon.awssdk + regions + 2.17.127 + + + software.amazon.awssdk + sdk-core + 2.17.127 + + + software.amazon.awssdk + http-client-spi + 2.17.127 + + + software.amazon.awssdk + apache-client + 2.17.127 + + + commons-logging + commons-logging + + + + + software.amazon.awssdk + netty-nio-client + 2.17.127 + + + software.amazon.awssdk + utils + 2.17.127 + + + software.amazon.awssdk + athena + 2.17.127 + + + software.amazon.awssdk + cloudwatch + 2.17.127 + + + software.amazon.awssdk + dynamodb + 2.17.127 + + + software.amazon.awssdk + ec2 + 2.17.127 + + + software.amazon.awssdk + ecs + 2.17.127 + + + software.amazon.awssdk + eks + 2.17.127 + + + software.amazon.awssdk + firehose + 2.17.127 + + + software.amazon.awssdk + iam + 2.17.127 + + + software.amazon.awssdk + kafka + 2.17.127 + + + software.amazon.awssdk + kinesis + 2.17.127 + + + software.amazon.awssdk + kms + 2.17.127 + + + software.amazon.awssdk + lambda + 2.17.127 + + + software.amazon.awssdk + mq + 2.17.127 + + + software.amazon.awssdk + s3 + 2.17.127 + + + software.amazon.awssdk + secretsmanager + 2.17.127 + + + software.amazon.awssdk + ses + 2.17.127 + + + software.amazon.awssdk + sns + 2.17.127 + + + software.amazon.awssdk + sqs + 2.17.127 + + + software.amazon.awssdk + sts + 2.17.127 + + + software.amazon.awssdk + translate + 2.17.127 + + + software.amazon.awssdk + eventbridge + 2.17.127 + + + software.amazon.awssdk + metrics-spi + 2.17.127 + + + org.apache.qpid + qpid-jms-client + 1.6.0 + + + org.amqphub.quarkus + quarkus-qpid-jms + 0.33.0 + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + + + org.amqphub.quarkus + quarkus-qpid-jms-deployment + 0.33.0 + + + org.eclipse.jetty + jetty-alpn-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-java-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-continuation + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-http + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-client + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-common + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-hpack + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-http-client-transport + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-io + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jmx + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-security + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlet + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlets + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util-ajax + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-webapp + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-xml + 9.4.45.v20220203 + + + com.azure + azure-core + 1.21.0 + + + com.azure + azure-core-amqp + 2.3.3 + + + com.azure + azure-core-http-netty + 1.11.1 + + + com.azure + azure-cosmos + 4.20.0 + + + com.azure + azure-identity + 1.4.0 + + + com.azure + azure-messaging-eventhubs + 5.10.2 + + + com.azure + azure-messaging-eventhubs-checkpointstore-blob + 1.10.1 + + + com.azure + azure-messaging-servicebus + 7.4.2 + + + com.azure + azure-storage-blob + 12.14.1 + + + com.azure + azure-storage-common + 12.14.0 + + + com.azure + azure-storage-file-datalake + 12.7.1 + + + com.azure + azure-storage-internal-avro + 12.1.1 + + + com.azure + azure-storage-queue + 12.11.1 + + + com.microsoft.azure + msal4j + 1.11.0 + + + com.microsoft.azure + msal4j-persistence-extension + 1.1.0 + + + com.microsoft.azure + qpid-proton-j-extensions + 1.2.4 + + + net.java.dev.jna + jna-platform + 5.6.0 + + + org.hdrhistogram + HdrHistogram + 2.1.12 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + 2.12.5 + jakarta + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + io.projectreactor + reactor-core + 3.4.10 + + + io.projectreactor.netty + reactor-netty + 1.0.11 + + + io.projectreactor.netty + reactor-netty-core + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http-brave + 1.0.11 + + + com.datastax.oss + java-driver-core + 4.14.0 + + + io.dropwizard.metrics + metrics-core + + + org.hdrhistogram + HdrHistogram + + + com.google.code.findbugs + jsr305 + + + + + com.datastax.oss.quarkus + cassandra-quarkus-client + 1.1.2 + + + com.datastax.oss.quarkus + cassandra-quarkus-client-deployment + 1.1.2 + + + com.datastax.oss + java-driver-query-builder + 4.14.0 + + + com.google.code.findbugs + jsr305 + + + + + com.datastax.oss + native-protocol + 1.5.1 + + + com.datastax.oss + java-driver-shaded-guava + 25.1-jre-graal-sub-1 + + + org.apache.kafka + connect-api + 2.7.0 + + + org.apache.kafka + connect-json + 2.7.0 + + + org.apache.kafka + connect-transforms + 2.7.0 + + + com.zendesk + mysql-binlog-connector-java + 0.25.1 + + + com.google.api.grpc + proto-google-common-protos + 1.17.0 + + + com.jayway.jsonpath + json-path + 2.4.0 + + + org.reflections + reflections + 0.9.12 + + + io.debezium + debezium-api + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + + + io.debezium + debezium-embedded + 1.6.1.Final + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-postgres + 1.6.1.Final + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + + + io.debezium + debezium-ddl-parser + 1.6.1.Final + + + io.debezium + debezium-connector-mongodb + 1.6.1.Final + + + io.debezium + debezium-connector-sqlserver + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + test-jar + + + io.debezium + debezium-embedded + 1.6.1.Final + test-jar + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + test-jar + + + com.hazelcast + hazelcast + 5.0.2 + + + javax.cache + cache-api + 1.1.1 + + + com.hazelcast + quarkus-hazelcast-client + 3.0.0 + + + com.hazelcast + quarkus-hazelcast-client-deployment + 3.0.0 + + + + diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml new file mode 100644 index 000000000000..20e0d998ee48 --- /dev/null +++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml @@ -0,0 +1,10969 @@ + + + 4.0.0 + org.apache.camel.quarkus + camel-quarkus-bom + 2.8.0-SNAPSHOT + pom + Camel Quarkus :: BOM + Apache Camel extensions for Quarkus + http://camel.apache.org/camel-quarkus-poms/camel-quarkus-bom + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + The Apache Camel Team + dev@camel.apache.org + http://camel.apache.org + Apache Software Foundation + http://apache.org/ + + http://camel.apache.org/banner.data/apache-camel-7.png + + + + + scm:git:http://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + scm:git:https://gitbox.apache.org/repos/asf/camel-quarkus.git/camel-quarkus-poms/camel-quarkus-bom + https://gitbox.apache.org/repos/asf?p=camel-quarkus.git;a=summary/camel-quarkus-poms/camel-quarkus-bom + + + GitHub + https://github.com/apache/camel-quarkus/issues + + + + apache.releases.https + Apache Release Distribution Repository + https://repository.apache.org/service/local/staging/deploy/maven2 + + + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots + + + + + + com.jcraft + jzlib + 1.1.3 + + + org.apache.camel + camel-activemq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.activemq + activemq-broker + + + org.apache.geronimo.specs + geronimo-jms_1.1_spec + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-ahc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + io.netty + netty-all + + + + + org.apache.camel + camel-ahc-ws + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-amqp + 3.16.0 + + + io.netty + * + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.qpid + qpid-jms-client + + + org.apache.qpid + proton-j + + + + + org.apache.camel + camel-api + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-arangodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-as2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-slf4j-impl + + + org.bouncycastle + bcprov-debug-jdk15on + + + + + org.apache.camel + camel-as2-api + 3.16.0 + + + org.apache.camel + camel-asn1 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-asterisk + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-atlasmap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-atmos + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + + + org.apache.camel + camel-atom + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-activation_1.1_spec + + + + + org.apache.camel + camel-atomix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-attachments + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.avro + * + + + org.apache.camel + camel-avro-rpc-jetty + + + + + org.apache.camel + camel-avro-rpc-spi + 3.16.0 + + + javax.annotation + javax.annotation-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-aws-secrets-manager + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws-xray + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-aws2-athena + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-cw + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ddb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ec2 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ecs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eks + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-eventbridge + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-iam + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kinesis + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-kms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-lambda + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-mq + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-msk + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-s3 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-ses + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sns + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sqs + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-sts + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-aws2-translate + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + software.amazon.awssdk + netty-nio-client + + + + + org.apache.camel + camel-azure-cosmosdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-eventhubs + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-servicebus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-blob + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-datalake + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-azure-storage-queue + 3.16.0 + + + io.netty + netty-tcnative-boringssl-static + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-barcode + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-base-engine + 3.16.0 + + + org.apache.camel + camel-base64 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bean-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + + + org.apache.camel + camel-beanio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-beanstalk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bindy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-bonita + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-box + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-box-api + 3.16.0 + + + org.apache.camel + camel-braintree + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-browse + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-caffeine-lrucache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cassandraql + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cbor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chatscript + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-chunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cloud + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cluster + 3.16.0 + + + org.apache.camel + camel-cm-sms + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-cmis + 3.16.0 + + + asm + asm + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-coap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cometd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-componentdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-consul + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-controlbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-corda + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.persistence + javax.persistence-api + + + org.apache.activemq + * + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.jboss.logmanager + jboss-logmanager + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-core-catalog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-engine + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-languages + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-model + 3.16.0 + + + org.apache.camel + camel-core-processor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-core-reifier + 3.16.0 + + + org.apache.camel + camel-couchbase + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-couchdb + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-cron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-crypto + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-csv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dataformat + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-debezium-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.javassist + javassist + + + io.debezium + * + + + + + org.apache.camel + camel-debezium-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-mysql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-postgres + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-debezium-sqlserver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + org.apache.maven + maven-artifact + + + + + org.apache.camel + camel-digitalocean + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-direct + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-disruptor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-djl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dns + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dozer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish + javax.el + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-drill + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-dropbox + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-dsl-support + 3.16.0 + + + org.apache.camel + camel-ehcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-elasticsearch-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.elasticsearch.client + * + + + + + org.apache.camel + camel-elsql + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-endpointdsl-support + 3.16.0 + + + org.apache.camel + camel-etcd + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-etcd3 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-exec + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-facebook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fastjson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fhir + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + xpp3 + xpp3 + + + + + org.apache.camel + camel-fhir-api + 3.16.0 + + + org.apache.camel + camel-file + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-file-watch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flatpack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-flink + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-fop + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-freemarker + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ftp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ganglia + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-geocoder + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.httpcomponents + httpclient + + + com.jayway.jsonpath + json-path + + + + + org.apache.camel + camel-git + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-github + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-bigquery + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-calendar + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-drive + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-functions + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-mail + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-pubsub + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.grpc + grpc-netty-shaded + + + io.perfmark + perfmark-api + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-google-secret-manager + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-google-sheets + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-google-storage + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.checkerframework + checker-qual + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + org.apache.camel + camel-graphql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-grok + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-groovy-dsl-common + 3.16.0 + + + org.apache.camel + camel-grpc + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-gson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-guava-eventbus + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hazelcast + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hbase + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-hdfs + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.servlet + javax.servlet-api + + + javax.ws.rs + jsr311-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-headersmap + 3.16.0 + + + ch.qos.logback + logback-classic + + + ch.qos.logback + logback-core + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-health + 3.16.0 + + + org.apache.camel + camel-hl7 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + commons-logging + commons-logging + + + + + org.apache.camel + camel-http-base + 3.16.0 + + + org.apache.camel + camel-http-common + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-huaweicloud-common + 3.16.0 + + + org.apache.camel + camel-huaweicloud-smn + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-hystrix + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ical + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iec60870 + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ignite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-infinispan + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.infinispan + infinispan-core + + + org.infinispan + infinispan-marshaller-protostuff + + + + + org.apache.camel + camel-infinispan-common + 3.16.0 + + + org.apache.camel + camel-influxdb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-iota + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-irc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-avro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jackson-protobuf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jacksonxml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jasypt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-java-joor-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jbpm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jcache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jclouds + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + javax.ws.rs + javax.ws.rs-api + + + + + org.apache.camel + camel-jcr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-jdbc + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jfr + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jgroups-raft + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jira + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.ws.rs + jsr311-api + + + com.google.j2objc + j2objc-annotations + + + com.google.code.findbugs + jsr305 + + + com.sun.jersey + * + + + commons-logging + commons-logging + + + org.apache.httpcomponents + httpclient-cache + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-jms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-johnzon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jolt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.inject + javax.inject + + + + + org.apache.camel + camel-jooq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-joor + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jpa + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-spring + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-js-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-patch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-json-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonata + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jsonpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jt400 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-jta + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-kafka + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kamelet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kotlin-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kubernetes + 3.16.0 + + + io.fabric8 + kubernetes-client + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-kudu + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-language + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldap + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ldif + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-leveldb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-log + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lra + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.cxf + * + + + + + org.apache.camel + camel-lucene + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lumberjack + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-lzf + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mail + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-main + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.camel + camel-headersmap + + + + + org.apache.camel + camel-management + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-management-api + 3.16.0 + + + org.apache.camel + camel-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-micrometer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-config + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-fault-tolerance + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.eclipse.microprofile.fault-tolerance + microprofile-fault-tolerance-api + + + + + org.apache.camel + camel-microprofile-health + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-microprofile-metrics + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.eclipse.microprofile.metrics + microprofile-metrics-api + + + + + org.apache.camel + camel-milo + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-minio + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.minio + minio + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mllp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mock + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mongodb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-mongodb-gridfs + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.mongodb + * + + + + + org.apache.camel + camel-msv + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mustache + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mvel + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-mybatis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nagios + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-nats + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-netty-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.servlet + javax.servlet-api + + + + + org.apache.camel + camel-nitrite + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + javax.validation + validation-api + + + + + org.apache.camel + camel-nsq + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + io.netty + netty-all + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + + + org.apache.camel + camel-oaipmh + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ognl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4 + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-olingo4-api + 3.16.0 + + + org.apache.camel + camel-openapi-java + 3.16.0 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-openstack + 3.16.0 + + + com.github.fge + * + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentelemetry + 3.16.0 + + + io.grpc + grpc-netty-shaded + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-opentracing + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-optaplanner + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.optaplanner + optaplanner-core + + + org.optaplanner + optaplanner-persistence-common + + + + + org.apache.camel + camel-paho + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-paho-mqtt5 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pdf + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pg-replication-slot + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pgevent + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + junit + junit + + + + + org.apache.camel + camel-platform-http + 3.16.0 + + + org.apache.camel + camel-platform-http-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-printer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-protobuf + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pubnub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-pulsar + 3.16.0 + + + com.sun.activation + javax.activation + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.validation + validation-api + + + com.google.code.findbugs + jsr305 + + + com.google.j2objc + j2objc-annotations + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-quartz + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + + + + org.apache.camel + camel-quickfix + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.quickfixj + quickfixj-codegenerator + + + + + org.apache.camel + camel-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-executor-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-reactive-streams + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-redis + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ref + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rest-openapi + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-ribbon + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-robotframework + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-rss + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saga + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-salesforce + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-sap-netweaver + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-scheduler + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-schematron + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-seda + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-servicenow + 3.16.0 + + + com.sun.xml.messaging.saaj + saaj-impl + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.xml.ws + jaxws-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-servlet + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-shiro + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sip + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-sjms2 + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-slack + 3.16.0 + + + com.googlecode.json-simple + json-simple + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-smpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snakeyaml + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-snmp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-soap + 3.16.0 + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-solr + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-soroush + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-splunk-hec + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-spring-rabbitmq + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-core + + + + + org.apache.camel + camel-sql + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.springframework + spring-beans + + + org.springframework + spring-core + + + + + org.apache.camel + camel-ssh + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.slf4j + jcl-over-slf4j + + + + + org.apache.camel + camel-stax + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stitch + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stomp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stringtemplate + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-stub + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-support + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-syslog + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tagsoup + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tarfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-telegram + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-threadpoolfactory-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-thrift + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-tika + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.tika + * + + + + + org.apache.camel + camel-timer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-tooling-model + 3.16.0 + + + org.apache.camel + camel-tracing + 3.16.0 + + + org.apache.camel + camel-twilio + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + com.google.code.findbugs + jsr305 + + + commons-logging + commons-logging + + + javax.xml.bind + jaxb-api + + + + + org.apache.camel + camel-twitter + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-univocity-parsers + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-util + 3.16.0 + + + org.apache.camel + camel-util-json + 3.16.0 + + + org.apache.camel + camel-validator + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-velocity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-common + 3.16.0 + + + org.apache.camel + camel-vertx-http + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vertx-websocket + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-vm + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-weather + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-web3j + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-webhook + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-wordpress + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + + + + + org.apache.camel + camel-workday + 3.16.0 + + + commons-logging + commons-logging + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xchange + 3.16.0 + + + com.google.code.findbugs + jsr305 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.annotation + javax.annotation-api + + + + + org.apache.camel + camel-xj + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-io-util + 3.16.0 + + + org.apache.camel + camel-xml-jaxb + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xml-jaxp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmlsecurity + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xmpp + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xpath + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xslt-saxon + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-xstream + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-yaml-dsl-common + 3.16.0 + + + org.apache.camel + camel-yaml-dsl-deserializers + 3.16.0 + + + org.apache.camel + camel-yammer + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zendesk + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zip-deflater + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zipfile + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel + camel-zookeeper-master + 3.16.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.apache.camel.quarkus + camel-quarkus-activemq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-activemq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ahc-ws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-amqp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-arangodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-as2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asn1-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-asterisk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atlasmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atmos-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atom-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-atomix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-attachments-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-avro-rpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-secrets-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws-xray-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-athena-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-cw-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ddb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ec2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ecs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eks-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-eventbridge-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-iam-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kinesis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-kms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-lambda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-mq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-msk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-s3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-ses-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sqs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-sts-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-aws2-translate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-cosmosdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-eventhubs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-servicebus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-blob-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-datalake-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-azure-storage-queue-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-barcode-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-base64-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bean-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-beanstalk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bindy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-bonita-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-box-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-braintree-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-browse-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-caffeine-lrucache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cassandraql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-catalog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cbor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chatscript-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-chunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cm-sms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cmis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-coap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cometd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-consul-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-controlbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-corda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-cloud-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-couchdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-cron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-crypto-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csimple-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-csv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dataformat-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-mysql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-postgres-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-debezium-sqlserver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-digitalocean-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-direct-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-disruptor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-djl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dns-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dozer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-drill-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-dropbox-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ehcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elasticsearch-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-elsql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-etcd3-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-exec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-facebook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fastjson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fhir-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-file-watch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flatpack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-flink-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-fop-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-freemarker-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ftp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ganglia-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-geocoder-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-git-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-github-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-bigquery-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-calendar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-drive-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-functions-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-pubsub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-secret-manager-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-sheets-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-google-storage-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-graphql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grok-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-groovy-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-grpc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-gson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-guava-eventbus-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hazelcast-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hbase-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hdfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-headersmap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hl7-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-common-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-huaweicloud-smn-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-hystrix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ical-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iec60870-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ignite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-infinispan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-influxdb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-iota-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-irc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-avro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jackson-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jacksonxml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jasypt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-java-joor-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jbpm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jclouds-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jcr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jdbc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jfr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jgroups-raft-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jira-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-johnzon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jolt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jooq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-joor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jpa-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-js-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-patch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-json-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonata-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jsonpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jt400-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-jta-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kafka-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kamelet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kotlin-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kubernetes-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-kudu-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-language-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ldif-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-leveldb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-log-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lra-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lucene-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lumberjack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-lzf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-management-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-master-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-micrometer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-fault-tolerance-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-health-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-microprofile-metrics-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-milo-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-minio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mllp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mock-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mongodb-gridfs-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-msv-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mustache-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mvel-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-mybatis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nagios-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nats-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-netty-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nitrite-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-nsq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-oaipmh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ognl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-olingo4-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openapi-java-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-openstack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentelemetry-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-opentracing-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-optaplanner-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-paho-mqtt5-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pdf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pg-replication-slot-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pgevent-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-platform-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-printer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-protobuf-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pubnub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-pulsar-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quartz-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-quickfix-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-component + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-qute-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-executor-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-reactive-streams-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-redis-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ref-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rest-openapi-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ribbon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-robotframework-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-rss-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saga-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-salesforce-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sap-netweaver-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-scheduler-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-schematron-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-seda-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servicenow-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-servlet-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-shiro-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sip-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sjms2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-slack-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smallrye-reactive-messaging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-smpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snakeyaml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-snmp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soap-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-solr-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-soroush-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-splunk-hec-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-spring-rabbitmq-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-sql-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-ssh-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stitch-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stomp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stringtemplate-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-stub-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-ahc-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2 + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-aws2-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-azure-core-http-client-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-bouncycastle-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-commons-logging-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-consul-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-debezium-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-google-http-client-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-httpclient-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jackson-dataformat-xml-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-jetty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mail-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-mongodb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-reactor-netty-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-retrofit-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-beans + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-context + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-core + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-spring-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-stax-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-webhook-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xalan-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-support-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-syslog-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tagsoup-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tarfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-telegram-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-threadpoolfactory-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-thrift-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-tika-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-timer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twilio-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-twitter-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-univocity-parsers-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-validator-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-velocity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-http-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vertx-websocket-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-vm-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-weather-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-web3j-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-wordpress-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-workday-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xchange-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xj-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-io-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxb-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xml-jaxp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmlsecurity-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xmpp-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xpath-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xslt-saxon-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-xstream-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yaml-dsl-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-yammer-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zendesk-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zip-deflater-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zipfile-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-deployment + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master + 2.8.0-SNAPSHOT + + + org.apache.camel.quarkus + camel-quarkus-zookeeper-master-deployment + 2.8.0-SNAPSHOT + + + ca.uhn.hapi + hapi-base + 2.3 + + + ca.uhn.hapi + hapi-structures-v21 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v22 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v23 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v231 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v24 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v25 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v251 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi + hapi-structures-v26 + 2.3 + + + com.google.code.findbugs + jsr305 + + + + + ca.uhn.hapi.fhir + hapi-fhir-server + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-dstu2.1 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + ca.uhn.hapi.fhir + hapi-fhir-structures-hl7org-dstu2 + 4.2.0 + + + com.google.code.findbugs + jsr305 + + + org.slf4j + jcl-over-slf4j + + + + + com.fasterxml.woodstox + woodstox-core + 6.1.1 + + + com.github.java-json-tools + json-patch + 1.13 + + + com.google.code.findbugs + jsr305 + + + + + com.github.jnr + jnr-ffi + 2.1.2 + + + org.ow2.asm + asm-util + + + + + com.google.auth + google-auth-library-credentials + 1.5.3 + + + com.google.cloud + native-image-support + 0.8.0 + + + com.google.zxing + core + 3.3.3 + + + com.mchange + c3p0 + 0.9.5.5 + + + com.orbitz.consul + consul-client + 1.5.3 + + + com.google.code.findbugs + jsr305 + + + com.google.errorprone + error_prone_annotations + + + com.google.j2objc + j2objc-annotations + + + org.codehaus.mojo + animal-sniffer-annotations + + + + + com.squareup.okio + okio + 1.17.2 + + + com.squareup.retrofit2 + converter-jackson + 2.5.0 + + + com.squareup.retrofit2 + retrofit + 2.5.0 + + + com.sun.istack + istack-commons-runtime + 3.0.10 + + + com.sun.mail + jakarta.mail + 1.6.6 + + + com.sun.activation + jakarta.activation + + + + + com.sun.xml.messaging.saaj + saaj-impl + 1.5.3 + + + com.thoughtworks.xstream + xstream + 1.4.19 + + + commons-beanutils + commons-beanutils + 1.9.4 + + + commons-logging + commons-logging + + + + + commons-cli + commons-cli + 1.4 + + + commons-collections + commons-collections + 3.2.2 + + + commons-lang + commons-lang + 2.6 + + + io.dropwizard.metrics + metrics-core + 4.1.0 + + + io.quarkiverse.freemarker + quarkus-freemarker + 0.3.0 + + + io.quarkiverse.freemarker + quarkus-freemarker-deployment + 0.3.0 + + + io.quarkiverse.jgit + quarkus-jgit + 1.2.0 + + + io.quarkiverse.jgit + quarkus-jgit-deployment + 1.2.0 + + + io.quarkiverse.jsch + quarkus-jsch + 1.0.0 + + + io.quarkiverse.jsch + quarkus-jsch-deployment + 1.0.0 + + + io.quarkiverse.minio + quarkus-minio + 2.3.0 + + + com.google.code.findbugs + jsr305 + + + + + io.quarkiverse.minio + quarkus-minio-deployment + 2.3.0 + + + io.quarkiverse.mybatis + quarkus-mybatis + 1.0.2 + + + io.quarkiverse.mybatis + quarkus-mybatis-deployment + 1.0.2 + + + io.quarkiverse.tika + quarkus-tika + 1.0.3 + + + io.quarkiverse.tika + quarkus-tika-deployment + 1.0.3 + + + io.smallrye.reactive + smallrye-reactive-messaging-camel + 3.15.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jakarta.jms + jakarta.jms-api + 2.0.3 + + + jakarta.xml.ws + jakarta.xml.ws-api + 2.3.3 + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + jaxen + jaxen + 1.2.0 + + + joda-time + joda-time + 2.10.6 + + + net.i2p.crypto + eddsa + 0.3.0 + + + net.minidev + json-smart + 2.4.7 + + + org.antlr + antlr-runtime + 3.5.2 + + + org.apache.avro + avro-ipc-jetty + 1.11.0 + + + org.apache.avro + avro-ipc-netty + 1.11.0 + + + javax.annotation + javax.annotation-api + + + + + org.apache.commons + commons-math3 + 3.6.1 + + + org.apache.curator + curator-client + 4.3.0 + + + org.apache.curator + curator-framework + 4.3.0 + + + org.apache.curator + curator-recipes + 4.3.0 + + + org.apache.curator + curator-x-discovery + 4.3.0 + + + org.apache.htrace + htrace-core4 + 4.2.0-incubating + + + org.apache.kafka + connect-runtime + 3.1.0 + + + jakarta.activation + jakarta.activation-api + + + jakarta.ws.rs + jakarta.ws.rs-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + javax.activation + javax.activation-api + + + javax.ws.rs + javax.ws.rs-api + + + javax.xml.bind + jaxb-api + + + org.slf4j + slf4j-log4j12 + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + + + org.apache.kudu + kudu-client + 1.14.0 + + + org.apache.xmlgraphics + xmlgraphics-commons + 2.7 + + + org.apache.zookeeper + zookeeper + 3.6.2 + + + org.apache.zookeeper + zookeeper-jute + 3.6.2 + + + org.asynchttpclient + async-http-client + 2.12.3 + + + org.bouncycastle + bcpg-jdk15on + 1.70 + + + org.bouncycastle + bcutil-jdk15on + 1.70 + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + + + org.codehaus.jackson + jackson-jaxrs + 1.9.13 + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + org.codehaus.jackson + jackson-xc + 1.9.13 + + + org.codehaus.mojo + animal-sniffer-annotations + 1.18 + + + org.codehaus.woodstox + stax2-api + 4.2 + + + org.eclipse.jgit + org.eclipse.jgit + 6.1.0.202203080745-r + + + org.graalvm.js + js + 22.0.0.2 + + + org.infinispan + infinispan-jboss-marshalling + 13.0.6.Final + + + org.influxdb + influxdb-java + 2.22 + + + org.javassist + javassist + 3.22.0-CR2 + + + org.jetbrains.kotlin + kotlin-script-util + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm + 1.6.10 + + + org.jetbrains.kotlin + kotlin-scripting-jvm-host + 1.6.10 + + + org.jruby.jcodings + jcodings + 1.0.55 + + + org.jruby.joni + joni + 2.1.31 + + + org.mvel + mvel2 + 2.4.13.Final + + + org.optaplanner + optaplanner-quarkus + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.optaplanner + optaplanner-quarkus-jackson-deployment + 8.19.0.Final + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + org.springframework + spring-aop + 5.3.18 + + + org.springframework + spring-beans + 5.3.18 + + + org.springframework + spring-context + 5.3.18 + + + org.springframework + spring-core + 5.3.18 + + + org.springframework + spring-jcl + + + + + org.springframework + spring-expression + 5.3.18 + + + org.springframework + spring-jdbc + 5.3.18 + + + org.springframework + spring-messaging + 5.3.18 + + + org.springframework + spring-orm + 5.3.18 + + + org.springframework + spring-tx + 5.3.18 + + + org.threeten + threetenbp + 1.4.0 + + + org.web3j + core + 3.6.0 + + + org.web3j + geth + 3.6.0 + + + org.web3j + parity + 3.6.0 + + + org.web3j + quorum + 0.8.0 + + + xalan + xalan + 2.7.2 + + + xml-apis + xml-apis + + + + + org.codehaus.groovy + groovy + 3.0.8 + + + software.amazon.awssdk + annotations + 2.17.127 + + + software.amazon.awssdk + arns + 2.17.127 + + + software.amazon.awssdk + json-utils + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-core + 2.17.127 + + + software.amazon.awssdk + third-party-jackson-dataformat-cbor + 2.17.127 + + + software.amazon.awssdk + auth + 2.17.127 + + + software.amazon.awssdk + aws-core + 2.17.127 + + + software.amazon.awssdk + profiles + 2.17.127 + + + software.amazon.awssdk + aws-cbor-protocol + 2.17.127 + + + software.amazon.awssdk + aws-json-protocol + 2.17.127 + + + software.amazon.awssdk + aws-query-protocol + 2.17.127 + + + software.amazon.awssdk + aws-xml-protocol + 2.17.127 + + + software.amazon.awssdk + protocol-core + 2.17.127 + + + software.amazon.awssdk + regions + 2.17.127 + + + software.amazon.awssdk + sdk-core + 2.17.127 + + + software.amazon.awssdk + http-client-spi + 2.17.127 + + + software.amazon.awssdk + apache-client + 2.17.127 + + + commons-logging + commons-logging + + + + + software.amazon.awssdk + netty-nio-client + 2.17.127 + + + software.amazon.awssdk + utils + 2.17.127 + + + software.amazon.awssdk + athena + 2.17.127 + + + software.amazon.awssdk + cloudwatch + 2.17.127 + + + software.amazon.awssdk + dynamodb + 2.17.127 + + + software.amazon.awssdk + ec2 + 2.17.127 + + + software.amazon.awssdk + ecs + 2.17.127 + + + software.amazon.awssdk + eks + 2.17.127 + + + software.amazon.awssdk + firehose + 2.17.127 + + + software.amazon.awssdk + iam + 2.17.127 + + + software.amazon.awssdk + kafka + 2.17.127 + + + software.amazon.awssdk + kinesis + 2.17.127 + + + software.amazon.awssdk + kms + 2.17.127 + + + software.amazon.awssdk + lambda + 2.17.127 + + + software.amazon.awssdk + mq + 2.17.127 + + + software.amazon.awssdk + s3 + 2.17.127 + + + software.amazon.awssdk + secretsmanager + 2.17.127 + + + software.amazon.awssdk + ses + 2.17.127 + + + software.amazon.awssdk + sns + 2.17.127 + + + software.amazon.awssdk + sqs + 2.17.127 + + + software.amazon.awssdk + sts + 2.17.127 + + + software.amazon.awssdk + translate + 2.17.127 + + + software.amazon.awssdk + eventbridge + 2.17.127 + + + software.amazon.awssdk + metrics-spi + 2.17.127 + + + org.apache.qpid + qpid-jms-client + 1.6.0 + + + org.amqphub.quarkus + quarkus-qpid-jms + 0.33.0 + + + org.apache.geronimo.specs + geronimo-jms_2.0_spec + + + + + org.amqphub.quarkus + quarkus-qpid-jms-deployment + 0.33.0 + + + org.eclipse.jetty + jetty-alpn-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-alpn-java-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-client + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-continuation + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-http + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-client + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-common + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-hpack + 9.4.45.v20220203 + + + org.eclipse.jetty.http2 + http2-http-client-transport + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-io + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-jmx + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-security + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-server + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlet + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-servlets + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-util-ajax + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-webapp + 9.4.45.v20220203 + + + org.eclipse.jetty + jetty-xml + 9.4.45.v20220203 + + + com.azure + azure-core + 1.21.0 + + + com.azure + azure-core-amqp + 2.3.3 + + + com.azure + azure-core-http-netty + 1.11.1 + + + com.azure + azure-cosmos + 4.20.0 + + + com.azure + azure-identity + 1.4.0 + + + com.azure + azure-messaging-eventhubs + 5.10.2 + + + com.azure + azure-messaging-eventhubs-checkpointstore-blob + 1.10.1 + + + com.azure + azure-messaging-servicebus + 7.4.2 + + + com.azure + azure-storage-blob + 12.14.1 + + + com.azure + azure-storage-common + 12.14.0 + + + com.azure + azure-storage-file-datalake + 12.7.1 + + + com.azure + azure-storage-internal-avro + 12.1.1 + + + com.azure + azure-storage-queue + 12.11.1 + + + com.microsoft.azure + msal4j + 1.11.0 + + + com.microsoft.azure + msal4j-persistence-extension + 1.1.0 + + + com.microsoft.azure + qpid-proton-j-extensions + 1.2.4 + + + net.java.dev.jna + jna-platform + 5.6.0 + + + org.hdrhistogram + HdrHistogram + 2.1.12 + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + 2.12.5 + jakarta + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.12.5 + jakarta + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + 2.12.5 + jakarta + + + jakarta.activation + jakarta.activation-api + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + + io.projectreactor + reactor-core + 3.4.10 + + + io.projectreactor.netty + reactor-netty + 1.0.11 + + + io.projectreactor.netty + reactor-netty-core + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http + 1.0.11 + + + io.projectreactor.netty + reactor-netty-http-brave + 1.0.11 + + + com.datastax.oss + java-driver-core + 4.14.0 + + + io.dropwizard.metrics + metrics-core + + + org.hdrhistogram + HdrHistogram + + + com.google.code.findbugs + jsr305 + + + + + com.datastax.oss.quarkus + cassandra-quarkus-client + 1.1.2 + + + com.datastax.oss.quarkus + cassandra-quarkus-client-deployment + 1.1.2 + + + com.datastax.oss + java-driver-query-builder + 4.14.0 + + + com.google.code.findbugs + jsr305 + + + + + com.datastax.oss + native-protocol + 1.5.1 + + + com.datastax.oss + java-driver-shaded-guava + 25.1-jre-graal-sub-1 + + + org.apache.kafka + connect-api + 2.7.0 + + + org.apache.kafka + connect-json + 2.7.0 + + + org.apache.kafka + connect-transforms + 2.7.0 + + + com.zendesk + mysql-binlog-connector-java + 0.25.1 + + + com.google.api.grpc + proto-google-common-protos + 1.17.0 + + + com.jayway.jsonpath + json-path + 2.4.0 + + + org.reflections + reflections + 0.9.12 + + + io.debezium + debezium-api + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + + + io.debezium + debezium-embedded + 1.6.1.Final + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-postgres + 1.6.1.Final + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + + + io.debezium + debezium-ddl-parser + 1.6.1.Final + + + io.debezium + debezium-connector-mongodb + 1.6.1.Final + + + io.debezium + debezium-connector-sqlserver + 1.6.1.Final + + + io.debezium + debezium-core + 1.6.1.Final + test-jar + + + io.debezium + debezium-embedded + 1.6.1.Final + test-jar + + + javax.activation + activation + + + javax.servlet + javax.servlet-api + + + log4j + log4j + + + org.apache.kafka + kafka-log4j-appender + + + org.apache.kafka + connect-runtime + + + org.apache.kafka + connect-file + + + javax.ws.rs + javax.ws.rs-api + + + + + io.debezium + debezium-connector-mysql + 1.6.1.Final + test-jar + + + com.hazelcast + hazelcast + 5.0.2 + + + javax.cache + cache-api + 1.1.1 + + + com.hazelcast + quarkus-hazelcast-client + 3.0.0 + + + com.hazelcast + quarkus-hazelcast-client-deployment + 3.0.0 + + + + diff --git a/poms/build-parent/pom.xml b/poms/build-parent/pom.xml index dee891f70d5f..6651378c7565 100644 --- a/poms/build-parent/pom.xml +++ b/poms/build-parent/pom.xml @@ -37,6 +37,15 @@ false + + + + org.assertj + assertj-core + ${assertj.version} + + + diff --git a/tooling/create-extension-templates/IT.java b/tooling/create-extension-templates/IT.java index e8ebb7baac67..c9fb3c7bb26c 100644 --- a/tooling/create-extension-templates/IT.java +++ b/tooling/create-extension-templates/IT.java @@ -16,9 +16,9 @@ */ package [=javaPackageBase].it; -import io.quarkus.test.junit.NativeImageTest; +import io.quarkus.test.junit.QuarkusIntegrationTest; -@NativeImageTest +@QuarkusIntegrationTest class [=toCapCamelCase(artifactIdBase)]IT extends [=toCapCamelCase(artifactIdBase)]Test { } diff --git a/tooling/create-extension-templates/runtime-pom.xml b/tooling/create-extension-templates/runtime-pom.xml index 7c4aebb84233..4cf9e6bccd97 100644 --- a/tooling/create-extension-templates/runtime-pom.xml +++ b/tooling/create-extension-templates/runtime-pom.xml @@ -39,18 +39,6 @@ [/#if] - - - - org.apache.camel.quarkus - camel-quarkus-bom - [=r"$"]{project.version} - pom - import - - - - org.apache.camel.quarkus diff --git a/tooling/maven-plugin/pom.xml b/tooling/maven-plugin/pom.xml index e2a45cc6a32f..54c107890b44 100644 --- a/tooling/maven-plugin/pom.xml +++ b/tooling/maven-plugin/pom.xml @@ -36,6 +36,13 @@ + + io.quarkus + quarkus-bom + ${quarkus.version} + pom + import + org.apache.camel.quarkus camel-quarkus-bom diff --git a/tooling/scripts/validate-github-workflows.groovy b/tooling/scripts/validate-github-workflows.groovy index bb3816e5bc70..062e8c16da7a 100644 --- a/tooling/scripts/validate-github-workflows.groovy +++ b/tooling/scripts/validate-github-workflows.groovy @@ -30,7 +30,7 @@ final Set executedBaseNames = [] as Set // Add any ignored itest modules here. Or prefix the module name with '#' to disable it // hystrix - https://github.com/apache/camel-quarkus/issues/1146 -final List excludedModules = ['hystrix', 'messaging', 'nats', 'ipfs'] as List +final List excludedModules = ['hystrix', 'messaging', 'nats' ] as List final Yaml parser = new Yaml() def testCategoryConfig = parser.load((jobDefPath.toFile()).text)