This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch camel-3.9.0-upgrade in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 9b9626773b1ee5a54274ce61c7a3252dfa8a25ee Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Mon Feb 22 08:01:13 2021 +0000 Upgrade to Camel 3.9.0 --- catalog/pom.xml | 26 ----- docs/antora-playbook-dev.yml | 2 +- docs/antora-playbook.yml | 2 +- docs/antora.yml | 2 +- docs/modules/ROOT/nav.adoc | 4 +- .../ROOT/pages/reference/extensions/azure.adoc | 41 ------- .../ROOT/pages/reference/extensions/couchbase.adoc | 2 +- .../reference/extensions/google-bigquery.adoc | 2 +- .../ROOT/pages/reference/extensions/http.adoc | 4 +- .../ROOT/pages/reference/extensions/jfr.adoc | 4 +- .../pages/reference/extensions/netty-http.adoc | 2 +- .../ROOT/pages/reference/extensions/netty.adoc | 2 +- .../ROOT/partials/reference/components/aws-cw.adoc | 1 - .../partials/reference/components/aws-ddb.adoc | 1 - .../reference/components/aws-ddbstream.adoc | 1 - .../partials/reference/components/aws-ec2.adoc | 1 - .../partials/reference/components/aws-ecs.adoc | 1 - .../partials/reference/components/aws-eks.adoc | 1 - .../partials/reference/components/aws-iam.adoc | 1 - .../reference/components/aws-kinesis-firehose.adoc | 1 - .../partials/reference/components/aws-kinesis.adoc | 1 - .../partials/reference/components/aws-kms.adoc | 1 - .../partials/reference/components/aws-lambda.adoc | 1 - .../ROOT/partials/reference/components/aws-mq.adoc | 1 - .../partials/reference/components/aws-msk.adoc | 1 - .../ROOT/partials/reference/components/aws-s3.adoc | 1 - .../partials/reference/components/aws-sdb.adoc | 1 - .../aws-secrets-manager.adoc} | 0 .../partials/reference/components/aws-ses.adoc | 1 - .../partials/reference/components/aws-sns.adoc | 1 - .../partials/reference/components/azure-blob.adoc | 13 --- .../partials/reference/components/azure-queue.adoc | 13 --- .../{aws-translate.adoc => google-functions.adoc} | 0 .../{aws-swf.adoc => google-storage.adoc} | 0 .../aws-sqs.adoc => others/spring-xml.adoc} | 0 .../camel/quarkus/core/FastCamelContext.java | 26 +++++ .../camel/quarkus/core/NoShutdownStrategy.java | 3 +- .../quarkus/component/jfr/it/JfrTestResource.java | 6 +- .../quarkus/component/jfr/CamelJfrConfig.java | 4 +- extensions-jvm/pom.xml | 1 - extensions/azure/deployment/pom.xml | 65 ----------- .../component/azure/deployment/AzureProcessor.java | 36 ------ extensions/azure/pom.xml | 37 ------ extensions/azure/runtime/pom.xml | 114 ------------------ .../main/resources/META-INF/quarkus-extension.yaml | 32 ----- extensions/pom.xml | 1 - extensions/slack/deployment/pom.xml | 8 -- .../component/slack/deployment/SlackProcessor.java | 23 ++++ extensions/slack/runtime/pom.xml | 14 --- integration-tests/azure/README.adoc | 16 --- integration-tests/azure/pom.xml | 112 ------------------ .../component/azure/it/AzureBlobResource.java | 117 ------------------- .../component/azure/it/AzureQueueResource.java | 111 ------------------ .../src/main/resources/application.properties | 25 ---- .../camel/quarkus/component/azure/it/AzureIT.java | 24 ---- .../quarkus/component/azure/it/AzureTest.java | 98 ---------------- .../component/azure/it/AzureTestResource.java | 129 --------------------- integration-tests/pom.xml | 1 - .../quarkus/component/slack/it/SlackResource.java | 6 +- .../component/slack/it/SlackTestResource.java | 2 +- .../src/test/resources/mappings/slackAuthTest.json | 37 ++++++ .../resources/mappings/slackChatPostMessage.json | 42 +++++++ .../test/resources/mappings/slackGetChannels.json | 37 ------ .../mappings/slackGetConversationHistory.json | 25 ++-- .../mappings/slackGetConversationsList.json | 42 +++++++ .../resources/mappings/slackWebhookMesagePost.json | 30 ----- pom.xml | 4 +- poms/bom/pom.xml | 15 --- tooling/scripts/test-categories.yaml | 1 - 69 files changed, 212 insertions(+), 1168 deletions(-) diff --git a/catalog/pom.xml b/catalog/pom.xml index 54913c9..d8b04d5 100644 --- a/catalog/pom.xml +++ b/catalog/pom.xml @@ -270,19 +270,6 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-aws-xray</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>*</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-aws2-athena</artifactId> <version>${project.version}</version> <type>pom</type> @@ -530,19 +517,6 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>*</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-azure-eventhubs</artifactId> <version>${project.version}</version> <type>pom</type> diff --git a/docs/antora-playbook-dev.yml b/docs/antora-playbook-dev.yml index 51f733e..1665c4e 100644 --- a/docs/antora-playbook-dev.yml +++ b/docs/antora-playbook-dev.yml @@ -26,7 +26,7 @@ content: start_path: docs - url: g...@github.com:apache/camel.git branches: - - camel-3.8.x # replace ${camel.docs.branch} + - camel-3.9.x # replace ${camel.docs.branch} start_paths: - docs/components - url: g...@github.com:apache/camel.git diff --git a/docs/antora-playbook.yml b/docs/antora-playbook.yml index 0ceede0..aa3da35 100644 --- a/docs/antora-playbook.yml +++ b/docs/antora-playbook.yml @@ -26,7 +26,7 @@ content: start_path: docs - url: g...@github.com:apache/camel.git branches: - - camel-3.8.x # replace ${camel.docs.branch} + - camel-3.9.x # replace ${camel.docs.branch} start_paths: - docs/components - url: g...@github.com:apache/camel.git diff --git a/docs/antora.yml b/docs/antora.yml index 00fdb1b..675c9e7 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -22,4 +22,4 @@ nav: - modules/ROOT/nav.adoc asciidoc: attributes: - cq-camel-components: 3.8.x@components # replace ${camel.docs.components.xref} + cq-camel-components: 3.9.x@components # replace ${camel.docs.components.xref} diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 8c42b81..ce4544f 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -53,7 +53,6 @@ *** xref:reference/extensions/attachments.adoc[Attachments] *** xref:reference/extensions/avro.adoc[Avro] *** xref:reference/extensions/avro-rpc.adoc[Avro RPC] -*** xref:reference/extensions/azure.adoc[Azure] *** xref:reference/extensions/azure-eventhubs.adoc[Azure Event Hubs] *** xref:reference/extensions/azure-storage-blob.adoc[Azure Storage Blob Service] *** xref:reference/extensions/azure-storage-queue.adoc[Azure Storage Queue Service] @@ -172,6 +171,7 @@ *** xref:reference/extensions/jackson.adoc[Jackson] *** xref:reference/extensions/jacksonxml.adoc[JacksonXML] *** xref:reference/extensions/jasypt.adoc[Jasypt] +*** xref:reference/extensions/java-joor-dsl.adoc[Java jOOR DSL] *** xref:reference/extensions/jfr.adoc[Jfr] *** xref:reference/extensions/jing.adoc[Jing] *** xref:reference/extensions/jira.adoc[Jira] @@ -303,6 +303,7 @@ *** xref:reference/extensions/xchange.adoc[XChange] *** xref:reference/extensions/xj.adoc[XJ] *** xref:reference/extensions/xml-io.adoc[XML IO] +*** xref:reference/extensions/xml-io-dsl.adoc[XML IO DSL] *** xref:reference/extensions/xml-jaxb.adoc[XML JAXB] *** xref:reference/extensions/xml-jaxp.adoc[XML JAXP] *** xref:reference/extensions/xmlsecurity.adoc[XML Security Sign] @@ -312,6 +313,7 @@ *** xref:reference/extensions/xslt.adoc[XSLT] *** xref:reference/extensions/xslt-saxon.adoc[XSLT Saxon] *** xref:reference/extensions/xstream.adoc[XStream] +*** xref:reference/extensions/yaml-dsl.adoc[YAML DSL] *** xref:reference/extensions/yammer.adoc[Yammer] *** xref:reference/extensions/zendesk.adoc[Zendesk] *** xref:reference/extensions/zip-deflater.adoc[Zip Deflate Compression] diff --git a/docs/modules/ROOT/pages/reference/extensions/azure.adoc b/docs/modules/ROOT/pages/reference/extensions/azure.adoc deleted file mode 100644 index 005116a..0000000 --- a/docs/modules/ROOT/pages/reference/extensions/azure.adoc +++ /dev/null @@ -1,41 +0,0 @@ -// Do not edit directly! -// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page -= Azure -:page-aliases: extensions/azure.adoc -:cq-artifact-id: camel-quarkus-azure -:cq-native-supported: true -:cq-status: Stable -:cq-description: Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service -: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## - -Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service - -== What's inside - -* xref:{cq-camel-components}::azure-blob-component.adoc[Azure Storage Blob Service (Deprecated) component], URI syntax: `azure-blob:containerOrBlobUri` -* xref:{cq-camel-components}::azure-queue-component.adoc[Azure Storage Queue Service (Deprecated) component], URI syntax: `azure-queue:containerAndQueueUri` - -Please refer to the above links for usage and configuration details. - -== Maven coordinates - -[source,xml] ----- -<dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure</artifactId> -</dependency> ----- - -Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications. - -== SSL in native mode - -This extension auto-enables SSL support in native mode. Hence you do not need to add -`quarkus.ssl.native=true` to your `application.properties` yourself. See also -https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide]. diff --git a/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc b/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc index 7022227..2cd6625 100644 --- a/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc @@ -17,7 +17,7 @@ Query Couchbase Views with a poll strategy and/or perform various operations aga == What's inside -* xref:{cq-camel-components}::couchbase-component.adoc[Couchbase component], URI syntax: `couchbase:protocol:hostname:port` +* xref:{cq-camel-components}::couchbase-component.adoc[Couchbase component], URI syntax: `couchbase:protocol://hostname:port` Please refer to the above link for usage and configuration details. diff --git a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc index ed15bbf..7bd55ac 100644 --- a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc @@ -18,7 +18,7 @@ Access Google Cloud BigQuery service using SQL queries or Google Client Services == What's inside * xref:{cq-camel-components}::google-bigquery-component.adoc[Google BigQuery component], URI syntax: `google-bigquery:projectId:datasetId:tableId` -* xref:{cq-camel-components}::google-bigquery-sql-component.adoc[Google BigQuery Standard SQL component], URI syntax: `google-bigquery-sql:projectId:query` +* xref:{cq-camel-components}::google-bigquery-sql-component.adoc[Google BigQuery Standard SQL component], URI syntax: `google-bigquery-sql:projectId:queryString` Please refer to the above links for usage and configuration details. diff --git a/docs/modules/ROOT/pages/reference/extensions/http.adoc b/docs/modules/ROOT/pages/reference/extensions/http.adoc index 0198b11..2db27cc 100644 --- a/docs/modules/ROOT/pages/reference/extensions/http.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/http.adoc @@ -17,8 +17,8 @@ Send requests to external HTTP servers using Apache HTTP Client 4.x. == What's inside -* xref:{cq-camel-components}::http-component.adoc[HTTP component], URI syntax: `http:httpUri` -* xref:{cq-camel-components}::http-component.adoc[HTTPS (Secure) component], URI syntax: `https:httpUri` +* xref:{cq-camel-components}::http-component.adoc[HTTP component], URI syntax: `http://httpUri` +* xref:{cq-camel-components}::http-component.adoc[HTTPS (Secure) component], URI syntax: `https://httpUri` Please refer to the above links for usage and configuration details. diff --git a/docs/modules/ROOT/pages/reference/extensions/jfr.adoc b/docs/modules/ROOT/pages/reference/extensions/jfr.adoc index 130e9b5..3aa9615 100644 --- a/docs/modules/ROOT/pages/reference/extensions/jfr.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/jfr.adoc @@ -41,7 +41,7 @@ Check the xref:user-guide/index.adoc[User guide] for more information about writ |icon:lock[title=Fixed at build time] [[quarkus.camel.jfr.startup-recorder-dir]]`link:#quarkus.camel.jfr.startup-recorder-dir[quarkus.camel.jfr.startup-recorder-dir]` -Directory to store the recording. By default the user home directory will be used. Use false to turn off saving the recording to disk. +Directory to store the recording. By default the current directory will be used. Use false to turn off saving the recording to disk. | `string` | @@ -65,7 +65,7 @@ To use a specific Java Flight Recorder profile configuration, such as default or |icon:lock[title=Fixed at build time] [[quarkus.camel.jfr.startup-recorder-recording]]`link:#quarkus.camel.jfr.startup-recorder-recording[quarkus.camel.jfr.startup-recorder-recording]` -To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is complete. This requires that camel-jfr is on the classpath. The default is true. +To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is complete. This requires that camel-jfr is on the classpath. The default is false. | `java.lang.Boolean` | |=== diff --git a/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc b/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc index 5705c45..7a8b61a 100644 --- a/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc @@ -18,7 +18,7 @@ The Netty HTTP extension provides HTTP transport on top of the xref:reference/ex == What's inside -* xref:{cq-camel-components}::netty-http-component.adoc[Netty HTTP component], URI syntax: `netty-http:protocol:host:port/path` +* xref:{cq-camel-components}::netty-http-component.adoc[Netty HTTP component], URI syntax: `netty-http:protocol://host:port/path` Please refer to the above link for usage and configuration details. diff --git a/docs/modules/ROOT/pages/reference/extensions/netty.adoc b/docs/modules/ROOT/pages/reference/extensions/netty.adoc index 367add1..9b6f5d2 100644 --- a/docs/modules/ROOT/pages/reference/extensions/netty.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/netty.adoc @@ -17,7 +17,7 @@ Socket level networking using TCP or UDP with the Netty 4.x. == What's inside -* xref:{cq-camel-components}::netty-component.adoc[Netty component], URI syntax: `netty:protocol:host:port` +* xref:{cq-camel-components}::netty-component.adoc[Netty component], URI syntax: `netty:protocol://host:port` Please refer to the above link for usage and configuration details. diff --git a/docs/modules/ROOT/partials/reference/components/aws-cw.adoc b/docs/modules/ROOT/partials/reference/components/aws-cw.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-cw.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc b/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc b/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc b/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc b/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-eks.adoc b/docs/modules/ROOT/partials/reference/components/aws-eks.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-eks.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-iam.adoc b/docs/modules/ROOT/partials/reference/components/aws-iam.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-iam.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc b/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc b/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-kms.adoc b/docs/modules/ROOT/partials/reference/components/aws-kms.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-kms.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc b/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-mq.adoc b/docs/modules/ROOT/partials/reference/components/aws-mq.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-mq.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-msk.adoc b/docs/modules/ROOT/partials/reference/components/aws-msk.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-msk.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-s3.adoc b/docs/modules/ROOT/partials/reference/components/aws-s3.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-s3.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc b/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/others/test.adoc b/docs/modules/ROOT/partials/reference/components/aws-secrets-manager.adoc similarity index 100% rename from docs/modules/ROOT/partials/reference/others/test.adoc rename to docs/modules/ROOT/partials/reference/components/aws-secrets-manager.adoc diff --git a/docs/modules/ROOT/partials/reference/components/aws-ses.adoc b/docs/modules/ROOT/partials/reference/components/aws-ses.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-ses.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/aws-sns.adoc b/docs/modules/ROOT/partials/reference/components/aws-sns.adoc deleted file mode 100644 index a509c1d..0000000 --- a/docs/modules/ROOT/partials/reference/components/aws-sns.adoc +++ /dev/null @@ -1 +0,0 @@ -// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page diff --git a/docs/modules/ROOT/partials/reference/components/azure-blob.adoc b/docs/modules/ROOT/partials/reference/components/azure-blob.adoc deleted file mode 100644 index 3533347..0000000 --- a/docs/modules/ROOT/partials/reference/components/azure-blob.adoc +++ /dev/null @@ -1,13 +0,0 @@ -// Do not edit directly! -// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page -:cq-artifact-id: camel-quarkus-azure -:cq-artifact-id-base: azure -:cq-native-supported: true -:cq-status: Stable -:cq-deprecated: true -:cq-jvm-since: 1.0.0 -:cq-native-since: 1.0.0 -:cq-camel-part-name: azure-blob -:cq-camel-part-title: Azure Storage Blob Service (Deprecated) -:cq-camel-part-description: Store and retrieve blobs from Azure Storage Blob Service. -:cq-extension-page-title: Azure diff --git a/docs/modules/ROOT/partials/reference/components/azure-queue.adoc b/docs/modules/ROOT/partials/reference/components/azure-queue.adoc deleted file mode 100644 index f0b6958..0000000 --- a/docs/modules/ROOT/partials/reference/components/azure-queue.adoc +++ /dev/null @@ -1,13 +0,0 @@ -// Do not edit directly! -// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page -:cq-artifact-id: camel-quarkus-azure -:cq-artifact-id-base: azure -:cq-native-supported: true -:cq-status: Stable -:cq-deprecated: true -:cq-jvm-since: 1.0.0 -:cq-native-since: 1.0.0 -:cq-camel-part-name: azure-queue -:cq-camel-part-title: Azure Storage Queue Service (Deprecated) -:cq-camel-part-description: Store and retrieve messages from Azure Storage Queue Service. -:cq-extension-page-title: Azure diff --git a/docs/modules/ROOT/partials/reference/components/aws-translate.adoc b/docs/modules/ROOT/partials/reference/components/google-functions.adoc similarity index 100% rename from docs/modules/ROOT/partials/reference/components/aws-translate.adoc rename to docs/modules/ROOT/partials/reference/components/google-functions.adoc diff --git a/docs/modules/ROOT/partials/reference/components/aws-swf.adoc b/docs/modules/ROOT/partials/reference/components/google-storage.adoc similarity index 100% rename from docs/modules/ROOT/partials/reference/components/aws-swf.adoc rename to docs/modules/ROOT/partials/reference/components/google-storage.adoc diff --git a/docs/modules/ROOT/partials/reference/components/aws-sqs.adoc b/docs/modules/ROOT/partials/reference/others/spring-xml.adoc similarity index 100% rename from docs/modules/ROOT/partials/reference/components/aws-sqs.adoc rename to docs/modules/ROOT/partials/reference/others/spring-xml.adoc 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 43ed897..a035c07 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java @@ -21,6 +21,7 @@ import java.io.InputStream; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Properties; import java.util.function.Function; @@ -51,6 +52,7 @@ import org.apache.camel.impl.engine.DefaultComponentResolver; import org.apache.camel.impl.engine.DefaultConfigurerResolver; import org.apache.camel.impl.engine.DefaultDataFormatResolver; import org.apache.camel.impl.engine.DefaultEndpointRegistry; +import org.apache.camel.impl.engine.DefaultExchangeFactoryManager; import org.apache.camel.impl.engine.DefaultExecutorServiceManager; import org.apache.camel.impl.engine.DefaultHeadersMapFactory; import org.apache.camel.impl.engine.DefaultInflightRepository; @@ -72,6 +74,7 @@ import org.apache.camel.impl.engine.DefaultUnitOfWorkFactory; import org.apache.camel.impl.engine.DefaultUriFactoryResolver; import org.apache.camel.impl.engine.DefaultValidatorRegistry; import org.apache.camel.impl.engine.EndpointKey; +import org.apache.camel.impl.engine.PrototypeExchangeFactory; import org.apache.camel.impl.engine.RouteService; import org.apache.camel.impl.engine.TransformerKey; import org.apache.camel.impl.engine.ValidatorKey; @@ -116,6 +119,8 @@ import org.apache.camel.spi.DataFormatResolver; import org.apache.camel.spi.DataType; import org.apache.camel.spi.DeferServiceFactory; import org.apache.camel.spi.EndpointRegistry; +import org.apache.camel.spi.ExchangeFactory; +import org.apache.camel.spi.ExchangeFactoryManager; import org.apache.camel.spi.ExecutorServiceManager; import org.apache.camel.spi.FactoryFinderResolver; import org.apache.camel.spi.HeadersMapFactory; @@ -650,6 +655,11 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam } @Override + public String getTestExcludeRoutes() { + throw new UnsupportedOperationException(); + } + + @Override public void startRouteDefinitions() throws Exception { List<RouteDefinition> routeDefinitions = model.getRouteDefinitions(); if (routeDefinitions != null) { @@ -658,6 +668,22 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam } @Override + protected ExchangeFactory createExchangeFactory() { + Optional<ExchangeFactory> result = ResolverHelper.resolveService( + getCamelContextReference(), + getBootstrapFactoryFinder(), + ExchangeFactory.FACTORY, + ExchangeFactory.class); + + return result.orElseGet(PrototypeExchangeFactory::new); + } + + @Override + protected ExchangeFactoryManager createExchangeFactoryManager() { + return new DefaultExchangeFactoryManager(); + } + + @Override public List<RouteDefinition> getRouteDefinitions() { return model.getRouteDefinitions(); } diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java index d48fe02..3d6a39a 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java @@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; import org.apache.camel.LoggingLevel; -import org.apache.camel.Service; import org.apache.camel.spi.RouteStartupOrder; import org.apache.camel.spi.ShutdownStrategy; @@ -121,7 +120,7 @@ public class NoShutdownStrategy implements ShutdownStrategy { } @Override - public boolean forceShutdown(Service service) { + public boolean isForceShutdown() { return false; } diff --git a/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java b/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java index 6ebb231..7f6e601 100644 --- a/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java +++ b/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java @@ -19,10 +19,10 @@ package org.apache.camel.quarkus.component.jfr.it; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.Map; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; +import org.apache.camel.util.CollectionHelper; public class JfrTestResource implements QuarkusTestResourceLifecycleManager { @@ -38,7 +38,9 @@ public class JfrTestResource implements QuarkusTestResourceLifecycleManager { @Override public Map<String, String> start() { - return Collections.singletonMap("quarkus.camel.jfr.startup-recorder-dir", JFR_RECORDINGS_DIR.toString()); + return CollectionHelper.mapOf( + "quarkus.camel.jfr.startup-recorder-dir", JFR_RECORDINGS_DIR.toString(), + "quarkus.camel.jfr.startup-recorder-recording", "true"); } @Override diff --git a/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java b/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java index 93a07d6..2e27c9e 100644 --- a/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java +++ b/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java @@ -26,7 +26,7 @@ import io.quarkus.runtime.annotations.ConfigRoot; public class CamelJfrConfig { /** - * Directory to store the recording. By default the user home directory will be used. Use false to turn off saving the + * Directory to store the recording. By default the current directory will be used. Use false to turn off saving the * recording to disk. */ @ConfigItem @@ -59,7 +59,7 @@ public class CamelJfrConfig { /** * To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is - * complete. This requires that camel-jfr is on the classpath. The default is true. + * complete. This requires that camel-jfr is on the classpath. The default is false. */ @ConfigItem Optional<Boolean> startupRecorderRecording; diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml index ec38785..97e7661 100644 --- a/extensions-jvm/pom.xml +++ b/extensions-jvm/pom.xml @@ -39,7 +39,6 @@ <module>asterisk</module> <module>atmos</module> <module>atomix</module> - <module>aws-xray</module> <module>azure-storage-datalake</module> <module>barcode</module> <module>beanio</module> diff --git a/extensions/azure/deployment/pom.xml b/extensions/azure/deployment/pom.xml deleted file mode 100644 index a851b84..0000000 --- a/extensions/azure/deployment/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure-parent</artifactId> - <version>1.8.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <artifactId>camel-quarkus-azure-deployment</artifactId> - <name>Camel Quarkus :: Azure :: Deployment</name> - - <dependencies> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-core-deployment</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-jaxp-deployment</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure</artifactId> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-extension-processor</artifactId> - <version>${quarkus.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> - </plugins> - </build> - -</project> diff --git a/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java b/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java deleted file mode 100644 index 8901259..0000000 --- a/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java +++ /dev/null @@ -1,36 +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.azure.deployment; - -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem; -import io.quarkus.deployment.builditem.FeatureBuildItem; - -class AzureProcessor { - - private static final String FEATURE = "camel-azure"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); - } - - @BuildStep - ExtensionSslNativeSupportBuildItem activateSslNativeSupport() { - return new ExtensionSslNativeSupportBuildItem(FEATURE); - } -} diff --git a/extensions/azure/pom.xml b/extensions/azure/pom.xml deleted file mode 100644 index b559ecb..0000000 --- a/extensions/azure/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-build-parent</artifactId> - <version>1.8.0-SNAPSHOT</version> - <relativePath>../../poms/build-parent/pom.xml</relativePath> - </parent> - - <artifactId>camel-quarkus-azure-parent</artifactId> - <name>Camel Quarkus :: Azure</name> - <packaging>pom</packaging> - - <modules> - <module>deployment</module> - <module>runtime</module> - </modules> -</project> diff --git a/extensions/azure/runtime/pom.xml b/extensions/azure/runtime/pom.xml deleted file mode 100644 index 57f8b5d..0000000 --- a/extensions/azure/runtime/pom.xml +++ /dev/null @@ -1,114 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure-parent</artifactId> - <version>1.8.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <artifactId>camel-quarkus-azure</artifactId> - <name>Camel Quarkus :: Azure :: Runtime</name> - <description>Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service</description> - - <properties> - <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince> - <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-bom</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-core</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-jaxp</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-azure</artifactId> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-bootstrap-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-extension-processor</artifactId> - <version>${quarkus.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> - </plugins> - </build> - - <profiles> - <profile> - <id>full</id> - <activation> - <property> - <name>!quickly</name> - </property> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-maven-plugin</artifactId> - <executions> - <execution> - <id>update-extension-doc-page</id> - <goals> - <goal>update-extension-doc-page</goal> - </goals> - <phase>process-classes</phase> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> diff --git a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml deleted file mode 100644 index 38a099a..0000000 --- a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ /dev/null @@ -1,32 +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. -# - -# 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 Azure" -description: "Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service" -metadata: - guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/azure.html" - categories: - - "integration" - status: - - "stable" - - "deprecated" \ No newline at end of file diff --git a/extensions/pom.xml b/extensions/pom.xml index 0041223..f83d486 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -63,7 +63,6 @@ <module>aws2-sqs</module> <module>aws2-sts</module> <module>aws2-translate</module> - <module>azure</module> <module>azure-eventhubs</module> <module>azure-storage-blob</module> <module>azure-storage-queue</module> diff --git a/extensions/slack/deployment/pom.xml b/extensions/slack/deployment/pom.xml index edabb01..f5e9b98 100644 --- a/extensions/slack/deployment/pom.xml +++ b/extensions/slack/deployment/pom.xml @@ -36,14 +36,6 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-httpclient-deployment</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-slack</artifactId> </dependency> </dependencies> diff --git a/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java b/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java index fbc8054..b8af065 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 @@ -16,9 +16,14 @@ */ package org.apache.camel.quarkus.component.slack.deployment; +import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; +import io.quarkus.deployment.builditem.IndexDependencyBuildItem; +import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.jboss.jandex.IndexView; class SlackProcessor { @@ -33,4 +38,22 @@ class SlackProcessor { ExtensionSslNativeSupportBuildItem activateSslNativeSupport() { return new ExtensionSslNativeSupportBuildItem(FEATURE); } + + @BuildStep + void indexDependencies(BuildProducer<IndexDependencyBuildItem> indexedDependencies) { + indexedDependencies.produce(new IndexDependencyBuildItem("com.slack.api", "slack-api-client")); + indexedDependencies.produce(new IndexDependencyBuildItem("com.slack.api", "slack-api-model")); + } + + @BuildStep + ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIndex) { + IndexView index = combinedIndex.getIndex(); + String[] slackApiClasses = index.getKnownClasses() + .stream() + .map(classInfo -> classInfo.name().toString()) + .filter(className -> className.startsWith("com.slack.api.model") + || className.startsWith("com.slack.api.methods.response")) + .toArray(String[]::new); + return new ReflectiveClassBuildItem(false, true, slackApiClasses); + } } diff --git a/extensions/slack/runtime/pom.xml b/extensions/slack/runtime/pom.xml index f8eb9fd..fee323e 100644 --- a/extensions/slack/runtime/pom.xml +++ b/extensions/slack/runtime/pom.xml @@ -52,22 +52,8 @@ <artifactId>camel-quarkus-core</artifactId> </dependency> <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-commons-logging</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-httpclient</artifactId> - </dependency> - <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-slack</artifactId> - <exclusions> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> </dependency> </dependencies> diff --git a/integration-tests/azure/README.adoc b/integration-tests/azure/README.adoc deleted file mode 100644 index d8f2f82..0000000 --- a/integration-tests/azure/README.adoc +++ /dev/null @@ -1,16 +0,0 @@ -== Camel Quarkus Azure (deprecated client v8) integration tests - -By default the integration tests run against a local https://github.com/Azure/Azurite[Azurite] container. - -To run the tests against the real remote Azure API, you need the following: - -* A https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&tabs=azure-portal[general-purpose v2 Azure storage account] -* View the https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys[account keys] and set the following environment variables: -+ -[source,shell] ----- -export AZURE_STORAGE_ACCOUNT_NAME=my-account-name -export AZURE_STORAGE_ACCOUNT_KEY=my-account-key ----- - -You may want to `export CAMEL_QUARKUS_START_MOCK_BACKEND=false` to avoid starting he the local Azurite container and make sure that you test against the real remote Azure API. diff --git a/integration-tests/azure/pom.xml b/integration-tests/azure/pom.xml deleted file mode 100644 index c0a5c40..0000000 --- a/integration-tests/azure/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-integration-tests</artifactId> - <version>1.8.0-SNAPSHOT</version> - </parent> - - <artifactId>camel-quarkus-integration-test-azure</artifactId> - <name>Camel Quarkus :: Integration Tests :: Azure</name> - <description>Integration tests for Camel Quarkus Azure extension</description> - - <dependencies> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure</artifactId> - </dependency> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-resteasy</artifactId> - </dependency> - - <!-- test dependencies --> - <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-junit5</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>io.rest-assured</groupId> - <artifactId>rest-assured</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-integration-testcontainers-support</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-integration-test-support-mock-backend</artifactId> - <scope>test</scope> - </dependency> - - <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory --> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure-deployment</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>*</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> - - - <profiles> - <profile> - <id>native</id> - <activation> - <property> - <name>native</name> - </property> - </activation> - <properties> - <quarkus.package.type>native</quarkus.package.type> - <quarkus.native.enable-https-url-handler>true</quarkus.native.enable-https-url-handler> - </properties> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-failsafe-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>integration-test</goal> - <goal>verify</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> - -</project> diff --git a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java b/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java deleted file mode 100644 index 0a2529e..0000000 --- a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java +++ /dev/null @@ -1,117 +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.azure.it; - -import java.io.ByteArrayInputStream; -import java.net.URI; -import java.nio.charset.StandardCharsets; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PATCH; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import com.microsoft.azure.storage.StorageCredentials; -import com.microsoft.azure.storage.StorageCredentialsAccountAndKey; -import com.microsoft.azure.storage.blob.CloudBlob; -import com.microsoft.azure.storage.blob.CloudBlockBlob; -import org.apache.camel.Exchange; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.azure.blob.BlobBlock; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -@Path("/azure") -@ApplicationScoped -public class AzureBlobResource { - private static final String BLOB_NAME = "test"; - - @Inject - ProducerTemplate producerTemplate; - - @ConfigProperty(name = "azure.storage.account-name") - String azureStorageAccountName; - - @ConfigProperty(name = "azure.storage.account-key") - String azureStorageAccountKey; - - @ConfigProperty(name = "azure.blob.service.url") - String azureBlobServiceUrl; - - @ConfigProperty(name = "azure.blob.container.name") - String azureBlobContainerName; - - @javax.enterprise.inject.Produces - @Named("azureBlobClient") - public CloudBlob createBlobClient() throws Exception { - URI uri = new URI(azureBlobServiceUrl + "/" + BLOB_NAME); - StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName, azureStorageAccountKey); - CloudBlockBlob cloudBlockBlob = new CloudBlockBlob(uri, credentials); - return cloudBlockBlob; - } - - @Path("/blob/create") - @POST - @Consumes(MediaType.TEXT_PLAIN) - public Response createBlob(String message) throws Exception { - BlobBlock blob = new BlobBlock(new ByteArrayInputStream(message.getBytes(StandardCharsets.UTF_8))); - producerTemplate.sendBody( - "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME - + "?operation=uploadBlobBlocks&azureBlobClient=#azureBlobClient&validateClientURI=false", - blob); - return Response.created(new URI("https://camel.apache.org/")).build(); - } - - @Path("/blob/read") - @GET - @Produces(MediaType.TEXT_PLAIN) - public String readBlob() throws Exception { - return producerTemplate.requestBodyAndHeader( - "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME - + "?operation=getBlob&azureBlobClient=#azureBlobClient&validateClientURI=false", - null, Exchange.CHARSET_NAME, StandardCharsets.UTF_8.name(), String.class); - } - - @Path("/blob/update") - @PATCH - @Consumes(MediaType.TEXT_PLAIN) - public Response updateBlob(String message) throws Exception { - producerTemplate.sendBody( - "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME - + "?operation=updateBlockBlob&azureBlobClient=#azureBlobClient&validateClientURI=false", - message); - return Response.ok().build(); - } - - @Path("/blob/delete") - @DELETE - public Response deleteBlob() throws Exception { - producerTemplate.sendBody( - "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME - + "?operation=deleteBlob&azureBlobClient=#azureBlobClient&validateClientURI=false", - null); - return Response.noContent().build(); - } - -} diff --git a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java b/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java deleted file mode 100644 index 511ace3..0000000 --- a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java +++ /dev/null @@ -1,111 +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.azure.it; - -import java.net.URI; -import java.util.UUID; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import com.microsoft.azure.storage.StorageCredentials; -import com.microsoft.azure.storage.StorageCredentialsAccountAndKey; -import com.microsoft.azure.storage.queue.CloudQueue; -import com.microsoft.azure.storage.queue.CloudQueueMessage; -import io.quarkus.arc.Unremovable; -import org.apache.camel.ProducerTemplate; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -@Path("/azure") -@ApplicationScoped -public class AzureQueueResource { - - private static final String QUEUE_NAME = "camel-quarkus-" + UUID.randomUUID().toString(); - - @Inject - ProducerTemplate producerTemplate; - - @ConfigProperty(name = "azure.storage.account-name") - String azureStorageAccountName; - - @ConfigProperty(name = "azure.storage.account-key") - String azureStorageAccountKey; - - @ConfigProperty(name = "azure.queue.service.url") - String azureQueueServiceUrl; - - @javax.enterprise.inject.Produces - @Named("azureQueueClient") - @Unremovable - public CloudQueue createQueueClient() throws Exception { - URI uri = new URI(azureQueueServiceUrl + "/" + QUEUE_NAME); - StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName, azureStorageAccountKey); - return new CloudQueue(uri, credentials); - } - - @Path("/queue/create") - @POST - public Response createQueue() throws Exception { - producerTemplate.sendBody( - "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME - + "?operation=createQueue&azureQueueClient=#azureQueueClient&validateClientURI=false", - null); - return Response.created(new URI("https://camel.apache.org/")).build(); - } - - @Path("/queue/read") - @GET - @Produces(MediaType.TEXT_PLAIN) - public String retrieveMessage() throws Exception { - CloudQueueMessage message = producerTemplate.requestBody( - "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME - + "?operation=retrieveMessage&azureQueueClient=#azureQueueClient&validateClientURI=false", - null, CloudQueueMessage.class); - return message.getMessageContentAsString(); - } - - @Path("/queue/message") - @POST - @Consumes(MediaType.TEXT_PLAIN) - public Response addMessage(String message) throws Exception { - producerTemplate.sendBody( - "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME - + "?operation=addMessage&azureQueueClient=#azureQueueClient&validateClientURI=false", - message); - return Response.created(new URI("https://camel.apache.org/")).build(); - } - - @Path("/queue/delete") - @DELETE - public Response deleteQueue() throws Exception { - producerTemplate.sendBody( - "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME - + "?operation=deleteQueue&azureQueueClient=#azureQueueClient&validateClientURI=false", - null); - return Response.noContent().build(); - } - -} diff --git a/integration-tests/azure/src/main/resources/application.properties b/integration-tests/azure/src/main/resources/application.properties deleted file mode 100644 index 23c1c40..0000000 --- a/integration-tests/azure/src/main/resources/application.properties +++ /dev/null @@ -1,25 +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. -## --------------------------------------------------------------------------- -# - - -# Azurite test account credentials -azurite.storage.account.name = devstoreaccount1 -azurite.storage.account.key = Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== - -azure.storage.account-name = ${AZURE_STORAGE_ACCOUNT_NAME:${azurite.storage.account.name}} -azure.storage.account-key = ${AZURE_STORAGE_ACCOUNT_KEY:${azurite.storage.account.key}} diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java deleted file mode 100644 index 5c0d3e1..0000000 --- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java +++ /dev/null @@ -1,24 +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.azure.it; - -import io.quarkus.test.junit.NativeImageTest; - -@NativeImageTest -class AzureIT extends AzureTest { - -} diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java deleted file mode 100644 index d27ffab..0000000 --- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java +++ /dev/null @@ -1,98 +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.azure.it; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; -import io.restassured.http.ContentType; -import org.junit.jupiter.api.Test; - -import static org.hamcrest.core.Is.is; - -@QuarkusTest -@QuarkusTestResource(AzureTestResource.class) -class AzureTest { - - @Test - public void testAzureBlobComponent() { - String blobContent = "Hello Camel Quarkus Azure Blob"; - - // Create - RestAssured.given() - .contentType(ContentType.TEXT) - .body(blobContent) - .post("/azure/blob/create") - .then() - .statusCode(201); - - // Read - RestAssured.get("/azure/blob/read") - .then() - .statusCode(200) - .body(is(blobContent)); - - // Update - String updatedContent = blobContent + " updated"; - RestAssured.given() - .contentType(ContentType.TEXT) - .body(updatedContent) - .patch("/azure/blob/update") - .then() - .statusCode(200); - - RestAssured.get("/azure/blob/read") - .then() - .statusCode(200) - .body(is(updatedContent)); - - // Delete - RestAssured.delete("/azure/blob/delete") - .then() - .statusCode(204); - } - - @Test - public void testAzureQueueComponent() { - String message = "Hello Camel Quarkus Azure Queue"; - - // Create - RestAssured.given() - .contentType(ContentType.TEXT) - .post("/azure/queue/create") - .then() - .statusCode(201); - - RestAssured.given() - .contentType(ContentType.TEXT) - .body(message) - .post("/azure/queue/message") - .then() - .statusCode(201); - - // Read - RestAssured.get("/azure/queue/read") - .then() - .statusCode(200) - .body(is(message)); - - // Delete - RestAssured.delete("/azure/queue/delete") - .then() - .statusCode(204); - } -} diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java deleted file mode 100644 index 992c6b1..0000000 --- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java +++ /dev/null @@ -1,129 +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.azure.it; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Map; -import java.util.UUID; - -import com.microsoft.azure.storage.StorageCredentials; -import com.microsoft.azure.storage.StorageCredentialsAccountAndKey; -import com.microsoft.azure.storage.StorageException; -import com.microsoft.azure.storage.blob.CloudBlobContainer; -import io.quarkus.runtime.configuration.ConfigUtils; -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; -import io.smallrye.config.SmallRyeConfig; -import org.apache.camel.quarkus.test.mock.backend.MockBackendUtils; -import org.apache.camel.util.CollectionHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.output.Slf4jLogConsumer; -import org.testcontainers.containers.wait.strategy.Wait; - -public class AzureTestResource implements QuarkusTestResourceLifecycleManager { - private static final Logger LOGGER = LoggerFactory.getLogger(AzureTestResource.class); - private static final String AZURITE_IMAGE = "mcr.microsoft.com/azure-storage/azurite:3.9.0"; - private static final int BLOB_SERVICE_PORT = 10000; - private static final int QUEUE_SERVICE_PORT = 10001; - - private GenericContainer<?> container; - private CloudBlobContainer blobContainer; - - @Override - public Map<String, String> start() { - - final SmallRyeConfig config = ConfigUtils.configBuilder(true).build(); - - final String realAzureStorageAccountName = System.getenv("AZURE_STORAGE_ACCOUNT_NAME"); - final boolean realCredentialsProvided = realAzureStorageAccountName != null - && System.getenv("AZURE_STORAGE_ACCOUNT_KEY") != null; - - final String azureBlobContainername = "camel-quarkus-" + UUID.randomUUID().toString(); - - final String azureStorageAccountName = config - .getValue("azure.storage.account-name", String.class); - final String azureStorageAccountKey = config - .getValue("azure.storage.account-key", String.class); - final Map<String, String> result; - final boolean startMockBackend = MockBackendUtils.startMockBackend(false); - if (startMockBackend && !realCredentialsProvided) { - MockBackendUtils.logMockBackendUsed(); - try { - container = new GenericContainer<>(AZURITE_IMAGE) - .withExposedPorts(BLOB_SERVICE_PORT, QUEUE_SERVICE_PORT) - .withLogConsumer(new Slf4jLogConsumer(LOGGER)) - .waitingFor(Wait.forListeningPort()); - container.start(); - - final String blobServiceUrl = "http://" + container.getContainerIpAddress() + ":" - + container.getMappedPort(BLOB_SERVICE_PORT) + "/" + azureStorageAccountName + "/" - + azureBlobContainername; - final String queueServiceUrl = "http://" + container.getContainerIpAddress() + ":" - + container.getMappedPort(QUEUE_SERVICE_PORT) + "/" + azureStorageAccountName; - - result = CollectionHelper.mapOf( - "azure.blob.container.name", azureBlobContainername, - "azure.blob.service.url", blobServiceUrl, - "azure.queue.service.url", queueServiceUrl); - } catch (Exception e) { - throw new RuntimeException(e); - } - } else { - if (!startMockBackend && !realCredentialsProvided) { - throw new IllegalStateException( - "Set AZURE_STORAGE_ACCOUNT_NAME and AZURE_STORAGE_ACCOUNT_KEY env vars if you set CAMEL_QUARKUS_START_MOCK_BACKEND=false"); - } - MockBackendUtils.logRealBackendUsed(); - result = CollectionHelper.mapOf( - "azure.blob.container.name", azureBlobContainername, - "azure.blob.service.url", - "https://" + realAzureStorageAccountName + ".blob.core.windows.net/" + azureBlobContainername, - "azure.queue.service.url", "https://" + realAzureStorageAccountName + ".queue.core.windows.net"); - } - - final StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName, - azureStorageAccountKey); - try { - blobContainer = new CloudBlobContainer(new URI(result.get("azure.blob.service.url")), credentials); - blobContainer.create(); - } catch (StorageException | URISyntaxException e) { - throw new RuntimeException(e); - } - return result; - } - - @Override - public void stop() { - if (blobContainer != null) { - try { - blobContainer.delete(); - } catch (StorageException e) { - throw new RuntimeException(e); - } - } - try { - if (container != null) { - container.stop(); - } - } catch (Exception e) { - // ignored - } - } -} diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 30ea475..98c3c8f 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -69,7 +69,6 @@ <module>avro-rpc</module> <module>aws2</module> <module>aws2-grouped</module> - <module>azure</module> <module>azure-eventhubs</module> <module>azure-storage-blob</module> <module>azure-storage-queue</module> 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 a8a1556..2d1ed53 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 @@ -28,9 +28,9 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import com.slack.api.model.Message; import org.apache.camel.ConsumerTemplate; import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.slack.helper.SlackMessage; @Path("/slack") @ApplicationScoped @@ -48,8 +48,8 @@ public class SlackResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getSlackMessages() throws Exception { - SlackMessage message = consumerTemplate.receiveBody("slack://general?maxResults=1&" + SLACK_AUTH_PARAMS, - SlackMessage.class); + Message message = consumerTemplate.receiveBody("slack://general?maxResults=1&" + SLACK_AUTH_PARAMS, + 5000L, Message.class); return message.getText(); } 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 1ce4ffc..711362f 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 @@ -23,7 +23,7 @@ import org.apache.camel.util.CollectionHelper; public class SlackTestResource extends WireMockTestResourceLifecycleManager { - private static final String SLACK_API_BASE_URL = "https://api.slack.com/"; + private static final String SLACK_API_BASE_URL = "https://slack.com"; private static final String SLACK_ENV_WEBHOOK_URL = "SLACK_WEBHOOK_URL"; private static final String SLACK_ENV_SERVER_URL = "SLACK_SERVER_URL"; private static final String SLACK_ENV_TOKEN = "SLACK_TOKEN"; diff --git a/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json b/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json new file mode 100644 index 0000000..b6aba8c --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json @@ -0,0 +1,37 @@ +{ + "id" : "7dacd03f-aef6-43c6-8496-2e21b22eac15", + "name" : "authtest", + "request" : { + "url" : "/api/auth.test", + "method" : "POST" + }, + "response" : { + "status" : 200, + "body" : "{\"ok\":true,\"url\":\"https:\\/\\/camel-testing-6y19658.slack.com\\/\",\"team\":\"camel testing\",\"user\":\"api_test\",\"team_id\":\"test\",\"user_id\":\"test\",\"bot_id\":\"test\",\"is_enterprise_install\":false}", + "headers" : { + "date" : "Wed, 10 Mar 2021 12:02:58 GMT", + "server" : "Apache", + "x-xss-protection" : "0", + "pragma" : "no-cache", + "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history", + "cache-control" : "private, no-cache, no-store, must-revalidate", + "x-slack-backend" : "r", + "x-slack-req-id" : "d4bee45f319100a5614104963576aff2", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "referrer-policy" : "no-referrer", + "x-content-type-options" : "nosniff", + "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", + "vary" : "Accept-Encoding", + "content-type" : "application/json; charset=utf-8", + "x-envoy-upstream-service-time" : "8", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-wti4", + "x-via" : "envoy-www-iad-vpez, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-vpez" + } + }, + "uuid" : "7dacd03f-aef6-43c6-8496-2e21b22eac15", + "persistent" : true, + "insertionIndex" : 1 +} \ 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/slackChatPostMessage.json new file mode 100644 index 0000000..825527a --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json @@ -0,0 +1,42 @@ +{ + "id" : "c86380a0-2c6e-41ec-8183-467013109f96", + "name" : "chatpostmessage", + "request" : { + "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", + "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.c [...] + "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/slackGetChannels.json b/integration-tests/slack/src/test/resources/mappings/slackGetChannels.json deleted file mode 100644 index ec06cbd..0000000 --- a/integration-tests/slack/src/test/resources/mappings/slackGetChannels.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id" : "2a011f82-a594-4f21-91f6-7be02c035fa5", - "name" : "api_conversationslist", - "request" : { - "url" : "/api/conversations.list", - "method" : "POST", - "bodyPatterns" : [ { - "equalTo" : "token=test-token", - "caseInsensitive" : false - } ] - }, - "response" : { - "status" : 200, - "body" : "{\"ok\":true,\"channels\":[{\"id\":\"CPT2U8YSK\",\"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\":\"UPJPHCRUH\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"TPR71CS7J\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":f [...] - "headers" : { - "date" : "Mon, 02 Nov 2020 09:53:19 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" : "8500fbbc3969104df3a1a00fcf57ca3c", - "x-content-type-options" : "nosniff", - "referrer-policy" : "no-referrer", - "x-slack-backend" : "r", - "x-oauth-scopes" : "read,client,admin,identify,post,apps", - "x-accepted-oauth-scopes" : "channels:read,groups:read,mpim:read,im:read,read", - "expires" : "Mon, 26 Jul 1997 05:00:00 GMT", - "vary" : "Accept-Encoding", - "content-type" : "application/json; charset=utf-8", - "x-via" : "haproxy-www-0tj6,haproxy-edge-lhr-fchm" - } - }, - "uuid" : "2a011f82-a594-4f21-91f6-7be02c035fa5", - "persistent" : true, - "insertionIndex" : 2 -} \ 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/slackGetConversationHistory.json index 1d9fbff..5dba994 100644 --- a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json @@ -1,37 +1,42 @@ { - "id" : "6e638406-ee78-4a8d-baff-bf20096039ca", - "name" : "api_conversationshistory", + "id" : "e4c0ada4-54e1-45fa-b15a-d186df310279", + "name" : "conversationshistory", "request" : { "url" : "/api/conversations.history", "method" : "POST", "bodyPatterns" : [ { - "equalTo" : "channel=CPTD6F086&count=1&token=test-token", + "equalTo" : "channel=test&limit=1&inclusive=0", "caseInsensitive" : false } ] }, "response" : { "status" : 200, - "body" : "{\"ok\":true,\"messages\":[{\"type\":\"message\",\"subtype\":\"bot_message\",\"text\":\"Hello Camel Quarkus Slack\",\"ts\":\"1604310723.000600\",\"bot_id\":\"BTWSZ6PGX\"}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjA0MzEwNDg4MDAwNTAw\"}}", + "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\", [...] "headers" : { - "date" : "Mon, 02 Nov 2020 09:53:20 GMT", + "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" : "4c02fef93a98415344290ac4dbc10bde", + "x-slack-req-id" : "259fe0f01847f6464ccf232065351a82", "x-content-type-options" : "nosniff", "referrer-policy" : "no-referrer", "x-slack-backend" : "r", - "x-oauth-scopes" : "read,client,admin,identify,post,apps", + "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-via" : "haproxy-www-6ya7,haproxy-edge-lhr-fchm" + "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" : "6e638406-ee78-4a8d-baff-bf20096039ca", + "uuid" : "e4c0ada4-54e1-45fa-b15a-d186df310279", "persistent" : true, - "insertionIndex" : 3 + "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 new file mode 100644 index 0000000..2de6764 --- /dev/null +++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json @@ -0,0 +1,42 @@ +{ + "id" : "ed5eb739-40b2-4108-be76-e33a6954996c", + "name" : "conversationslist", + "request" : { + "url" : "/api/conversations.list", + "method" : "POST", + "bodyPatterns" : [ { + "equalTo" : "exclude_archived=0&limit=200&types=public_channel", + "caseInsensitive" : false + } ] + }, + "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_share [...] + "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" : "596bc3c69ead61583e4eaa1b72645d97", + "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:read,groups:read,mpim:read,im:read,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" : "28", + "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow", + "x-server" : "slack-www-hhvm-main-iad-dzkj", + "x-via" : "envoy-www-iad-6h61, haproxy-edge-lhr-ubwz", + "x-slack-shared-secret-outcome" : "shared-secret", + "via" : "envoy-www-iad-6h61" + } + }, + "uuid" : "ed5eb739-40b2-4108-be76-e33a6954996c", + "persistent" : true, + "insertionIndex" : 3 +} \ No newline at end of file diff --git a/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json b/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json deleted file mode 100644 index 621acc3..0000000 --- a/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id" : "b83207ea-d573-449e-bf3f-6e55660166bd", - "name" : "services_webhook", - "request" : { - "url" : "/services/webhook", - "method" : "POST", - "bodyPatterns" : [ { - "equalTo" : "{\"icon_url\":null,\"icon_emoji\":null,\"channel\":\"general\",\"text\":\"Hello Camel Quarkus Slack\",\"username\":null}", - "caseInsensitive" : false - } ] - }, - "response" : { - "status" : 200, - "body" : "ok", - "headers" : { - "date" : "Mon, 02 Nov 2020 09:52:03 GMT", - "server" : "Apache", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "x-slack-backend" : "r", - "x-frame-options" : "SAMEORIGIN", - "vary" : "Accept-Encoding", - "referrer-policy" : "no-referrer", - "content-type" : "text/html", - "x-via" : "haproxy-www-plhy,haproxy-edge-lhr-s8de" - } - }, - "uuid" : "b83207ea-d573-449e-bf3f-6e55660166bd", - "persistent" : true, - "insertionIndex" : 1 -} \ No newline at end of file diff --git a/pom.xml b/pom.xml index abe2830..4e965e4 100644 --- a/pom.xml +++ b/pom.xml @@ -49,8 +49,8 @@ <bouncycastle.version>${bouncycastle-version}</bouncycastle.version><!-- keep in sync with Camel --> - <camel.major.minor>3.8</camel.major.minor> <!-- run after each change: cd docs && mvndev validate --> - <camel.version>${camel.major.minor}.0</camel.version> + <camel.major.minor>3.9</camel.major.minor> <!-- run after each change: cd docs && mvndev validate --> + <camel.version>${camel.major.minor}.0</camel.version> <camel.docs.components.xref>${camel.major.minor}.x@components</camel.docs.components.xref><!-- the version in Camel's docs/components/antora.yml --> <camel.docs.branch>camel-${camel.major.minor}.x</camel.docs.branch><!-- The stable branch on which our Antora docs depends --> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index 938e62c..893e8da 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -429,11 +429,6 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-azure</artifactId> - <version>${camel.version}</version> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> <artifactId>camel-azure-eventhubs</artifactId> <version>${camel.version}</version> <exclusions> @@ -2491,16 +2486,6 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure</artifactId> - <version>${camel-quarkus.version}</version> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-azure-deployment</artifactId> - <version>${camel-quarkus.version}</version> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-azure-eventhubs</artifactId> <version>${camel-quarkus.version}</version> </dependency> diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml index 8f861cd..89e8007 100644 --- a/tooling/scripts/test-categories.yaml +++ b/tooling/scripts/test-categories.yaml @@ -29,7 +29,6 @@ cache-networking3: cloud: - solr - aws2 - - azure - consul - elasticsearch-rest - google-bigquery