You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/03/18 18:10:27 UTC
[camel-quarkus] branch master updated: Add Google Mail extension
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new 4a58281 Add Google Mail extension
4a58281 is described below
commit 4a58281b4816c155f9f1c5ea8504324081172243
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Mar 18 13:59:07 2020 +0000
Add Google Mail extension
Fixes #807
---
.github/workflows/pr-build.yaml | 1 +
.../pages/list-of-camel-quarkus-extensions.adoc | 8 +-
.../google-http-client}/deployment/pom.xml | 8 +-
.../SupportGoogleHTTPClientProcessor.java | 56 ++++----
.../{ => google-http-client}/pom.xml | 28 +---
.../google-http-client/runtime}/pom.xml | 23 ++--
.../main/resources/META-INF/quarkus-extension.yaml | 27 ++++
.../mail/deployment/pom.xml | 12 +-
.../mail/deployment/SupportMailProcessor.java | 24 +---
extensions-support/{ => mail}/pom.xml | 28 +---
.../mail/runtime}/pom.xml | 25 ++--
.../main/resources/META-INF/quarkus-extension.yaml | 27 ++++
extensions-support/pom.xml | 2 +
.../{jira => google-mail}/deployment/pom.xml | 18 ++-
.../mail/deployment/GoogleMailProcessor.java | 66 ++++++++++
.../google-mail}/pom.xml | 32 ++---
extensions/{mail => google-mail}/runtime/pom.xml | 40 +++---
.../main/resources/META-INF/quarkus-extension.yaml | 31 +++++
extensions/jira/deployment/pom.xml | 4 +
.../component/jira/deployment/JiraProcessor.java | 6 -
extensions/jira/runtime/pom.xml | 4 +
extensions/mail/deployment/pom.xml | 4 +
.../component/mail/deployment/MailProcessor.java | 143 ---------------------
extensions/mail/runtime/pom.xml | 23 +---
extensions/pom.xml | 1 +
extensions/readme.adoc | 8 +-
integration-tests/google/README.adoc | 13 ++
integration-tests/google/pom.xml | 113 ++++++++++++++++
.../component/google/it/GoogleMailResource.java | 129 +++++++++++++++++++
.../src/main/resources/application.properties | 22 ++++
.../component/google/it/GoogleComponentsIT.java | 29 +++++
.../component/google/it/GoogleComponentsTest.java | 70 ++++++++++
integration-tests/pom.xml | 1 +
pom.xml | 1 +
poms/bom-deployment/pom.xml | 15 +++
poms/bom/pom.xml | 37 ++++++
36 files changed, 736 insertions(+), 343 deletions(-)
diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index f422a60..12bf179 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -176,6 +176,7 @@ jobs:
- category: SAAS
test-modules: >
box
+ google
jira
salesforce
slack
diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index e564565..f2ae067 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
== Camel Components
// components: START
-Number of Camel components: 76 in 66 JAR artifacts (0 deprecated)
+Number of Camel components: 78 in 67 JAR artifacts (0 deprecated)
[width="100%",cols="4,1,5",options="header"]
|===
@@ -123,6 +123,12 @@ Number of Camel components: 76 in 66 JAR artifacts (0 deprecated)
| link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
`ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.
+| link:https://camel.apache.org/components/latest/google-mail-component.html[Google Mail] (camel-quarkus-google-mail) +
+`google-mail:apiName/methodName` | 1.0.0-M6 | The google-mail component provides access to Google Mail.
+
+| link:https://camel.apache.org/components/latest/google-mail-stream-component.html[Google Mail Stream] (camel-quarkus-google-mail) +
+`google-mail-stream:index` | 1.0.0-M6 | The google-mail component provides access to Google Mail.
+
| xref:extensions/graphql.adoc[GraphQL] (camel-quarkus-graphql) +
`graphql:httpUri` | 1.0.0-M5 | A Camel GraphQL Component
diff --git a/extensions/mail/deployment/pom.xml b/extensions-support/google-http-client/deployment/pom.xml
similarity index 89%
copy from extensions/mail/deployment/pom.xml
copy to extensions-support/google-http-client/deployment/pom.xml
index 084cc84..f3e6a9b 100644
--- a/extensions/mail/deployment/pom.xml
+++ b/extensions-support/google-http-client/deployment/pom.xml
@@ -21,13 +21,13 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail-parent</artifactId>
+ <artifactId>camel-quarkus-support-google-http-client-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-mail-deployment</artifactId>
- <name>Camel Quarkus :: Mail :: Deployment</name>
+ <artifactId>camel-quarkus-support-google-http-client-deployment</artifactId>
+ <name>Camel Quarkus :: Support :: Google HTTP Client :: Deployment</name>
<dependencyManagement>
<dependencies>
@@ -48,7 +48,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail</artifactId>
+ <artifactId>camel-quarkus-support-google-http-client</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java b/extensions-support/google-http-client/deployment/src/main/java/org/apache/camel/quarkus/support/google/http/client/deployment/SupportGoogleHTTPClientProcessor.java
similarity index 52%
copy from extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
copy to extensions-support/google-http-client/deployment/src/main/java/org/apache/camel/quarkus/support/google/http/client/deployment/SupportGoogleHTTPClientProcessor.java
index b791417..513cb49 100644
--- a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
+++ b/extensions-support/google-http-client/deployment/src/main/java/org/apache/camel/quarkus/support/google/http/client/deployment/SupportGoogleHTTPClientProcessor.java
@@ -14,60 +14,54 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.component.jira.deployment;
-
-import java.util.ArrayList;
-import java.util.List;
+package org.apache.camel.quarkus.support.google.http.client.deployment;
+import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
-import org.apache.camel.component.jira.JiraConfiguration;
-import org.apache.camel.quarkus.core.deployment.UnbannedReflectiveBuildItem;
-import org.joda.time.DateTimeZone;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
-class JiraProcessor {
+class SupportGoogleHTTPClientProcessor {
- private static final String FEATURE = "camel-jira";
+ private static final String FEATURE = "camel-support-google-http-client";
@BuildStep
- ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
- return new ExtensionSslNativeSupportBuildItem(FEATURE);
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
}
@BuildStep
- FeatureBuildItem feature() {
- return new FeatureBuildItem(FEATURE);
+ AdditionalApplicationArchiveMarkerBuildItem applicationArchiveMarkers(
+ BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
+ return new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/client");
}
@BuildStep
- RuntimeInitializedClassBuildItem configureRuntimeInitializedClasses() {
+ RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
return new RuntimeInitializedClassBuildItem("com.google.api.client.auth.oauth.OAuthParameters");
}
@BuildStep
- ReflectiveClassBuildItem registerForReflection() {
- return new ReflectiveClassBuildItem(true, true, JiraConfiguration.class);
- }
+ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass, CombinedIndexBuildItem combinedIndex) {
+ IndexView index = combinedIndex.getIndex();
+
+ // Google client API class reflection for JSON serialization / deserialization
+ String[] googleApis = index.getAllKnownSubclasses(DotName.createSimple("com.google.api.client.util.GenericData"))
+ .stream()
+ .map(classInfo -> classInfo.name().toString())
+ .toArray(String[]::new);
- @BuildStep()
- UnbannedReflectiveBuildItem unbannedReflectiveItems() {
- return new UnbannedReflectiveBuildItem(JiraConfiguration.class.getName());
+ reflectiveClass.produce(new ReflectiveClassBuildItem(false, true, googleApis));
}
@BuildStep
- NativeImageResourceBuildItem nativeImageResources() {
- // Add Joda timezone resources into the native image as it is required by com.atlassian.jira.rest.client.internal.json.JsonParseUtil
- List<String> timezones = new ArrayList<>();
- for (String timezone : DateTimeZone.getAvailableIDs()) {
- String[] zoneParts = timezone.split("/");
- if (zoneParts.length == 2) {
- timezones.add(String.format("org/joda/time/tz/data/%s/%s", zoneParts[0], zoneParts[1]));
- }
- }
- return new NativeImageResourceBuildItem(timezones);
+ ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+ return new ExtensionSslNativeSupportBuildItem(FEATURE);
}
}
diff --git a/extensions-support/pom.xml b/extensions-support/google-http-client/pom.xml
similarity index 62%
copy from extensions-support/pom.xml
copy to extensions-support/google-http-client/pom.xml
index 1f74b06..1837e8a 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/google-http-client/pom.xml
@@ -18,34 +18,20 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-parent</artifactId>
+ <artifactId>camel-quarkus-build-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent/pom.xml</relativePath>
</parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>camel-quarkus-extensions-support</artifactId>
- <name>Camel Quarkus :: Extensions :: Support</name>
+ <artifactId>camel-quarkus-support-google-http-client-parent</artifactId>
+ <name>Camel Quarkus :: Support :: Google HTTP Client</name>
<packaging>pom</packaging>
<modules>
- <!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat -->
- <module>ahc</module>
- <module>aws</module>
- <module>common</module>
- <module>commons-logging</module>
- <module>consul-client</module>
- <module>httpclient</module>
- <module>jackson-dataformat-xml</module>
- <module>jetty</module>
- <module>policy</module>
- <module>retrofit</module>
- <module>spring</module>
- <module>xstream</module>
- <module>xml</module>
- <module>xalan</module>
+ <module>deployment</module>
+ <module>runtime</module>
</modules>
</project>
diff --git a/extensions/mail/deployment/pom.xml b/extensions-support/google-http-client/runtime/pom.xml
similarity index 78%
copy from extensions/mail/deployment/pom.xml
copy to extensions-support/google-http-client/runtime/pom.xml
index 084cc84..344a40f 100644
--- a/extensions/mail/deployment/pom.xml
+++ b/extensions-support/google-http-client/runtime/pom.xml
@@ -21,19 +21,23 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail-parent</artifactId>
+ <artifactId>camel-quarkus-support-google-http-client-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-mail-deployment</artifactId>
- <name>Camel Quarkus :: Mail :: Deployment</name>
+ <artifactId>camel-quarkus-support-google-http-client</artifactId>
+ <name>Camel Quarkus :: Support :: Google HTTP Client :: Runtime</name>
+
+ <properties>
+ <firstVersion>1.0.0-M6</firstVersion>
+ </properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-bom-deployment</artifactId>
+ <artifactId>camel-quarkus-bom</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
@@ -44,17 +48,21 @@
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core-deployment</artifactId>
+ <artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail</artifactId>
+ <groupId>com.google.http-client</groupId>
+ <artifactId>google-http-client</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>
@@ -69,5 +77,4 @@
</plugin>
</plugins>
</build>
-
</project>
diff --git a/extensions-support/google-http-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/google-http-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..c3eb0c3
--- /dev/null
+++ b/extensions-support/google-http-client/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Camel Quarkus Support Google HTTP Client"
+description: "Camel Quarkus Support Google HTTP Client"
+metadata:
+ unlisted: true
+ keywords:
+ - "camel"
+ guide: "https://quarkus.io/guides/camel"
+ categories:
+ - "integration"
diff --git a/extensions/mail/deployment/pom.xml b/extensions-support/mail/deployment/pom.xml
similarity index 87%
copy from extensions/mail/deployment/pom.xml
copy to extensions-support/mail/deployment/pom.xml
index 084cc84..22ea9ff 100644
--- a/extensions/mail/deployment/pom.xml
+++ b/extensions-support/mail/deployment/pom.xml
@@ -21,13 +21,13 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail-parent</artifactId>
+ <artifactId>camel-quarkus-support-mail-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-mail-deployment</artifactId>
- <name>Camel Quarkus :: Mail :: Deployment</name>
+ <artifactId>camel-quarkus-support-mail-deployment</artifactId>
+ <name>Camel Quarkus :: Support :: Mail :: Deployment</name>
<dependencyManagement>
<dependencies>
@@ -43,12 +43,12 @@
<dependencies>
<dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core-deployment</artifactId>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-core-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail</artifactId>
+ <artifactId>camel-quarkus-support-mail</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java b/extensions-support/mail/deployment/src/main/java/org/apache/camel/quarkus/support/mail/deployment/SupportMailProcessor.java
similarity index 89%
copy from extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java
copy to extensions-support/mail/deployment/src/main/java/org/apache/camel/quarkus/support/mail/deployment/SupportMailProcessor.java
index b708764..a30a023 100644
--- a/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java
+++ b/extensions-support/mail/deployment/src/main/java/org/apache/camel/quarkus/support/mail/deployment/SupportMailProcessor.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.mail.deployment;
+package org.apache.camel.quarkus.support.mail.deployment;
import java.io.BufferedReader;
import java.io.IOException;
@@ -22,8 +22,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UncheckedIOException;
import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
@@ -38,15 +36,13 @@ import javax.mail.Provider;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
-class MailProcessor {
+class SupportMailProcessor {
- private static final String FEATURE = "camel-mail";
+ private static final String FEATURE = "camel-support-mail";
@Inject
BuildProducer<ReflectiveClassBuildItem> reflectiveClass;
@@ -54,12 +50,6 @@ class MailProcessor {
@Inject
BuildProducer<NativeImageResourceBuildItem> resource;
- @Inject
- BuildProducer<ServiceProviderBuildItem> services;
-
- @Inject
- ApplicationArchivesBuildItem applicationArchivesBuildItem;
-
@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
@@ -137,14 +127,6 @@ class MailProcessor {
}
}
- private Stream<String> lines(Path path) {
- try {
- return Files.lines(path);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
private Stream<String> lines(URL url) {
try (InputStream is = url.openStream()) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) {
diff --git a/extensions-support/pom.xml b/extensions-support/mail/pom.xml
similarity index 62%
copy from extensions-support/pom.xml
copy to extensions-support/mail/pom.xml
index 1f74b06..8d7d063 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/mail/pom.xml
@@ -18,34 +18,20 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-parent</artifactId>
+ <artifactId>camel-quarkus-build-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent/pom.xml</relativePath>
</parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>camel-quarkus-extensions-support</artifactId>
- <name>Camel Quarkus :: Extensions :: Support</name>
+ <artifactId>camel-quarkus-support-mail-parent</artifactId>
+ <name>Camel Quarkus :: Support :: Mail</name>
<packaging>pom</packaging>
<modules>
- <!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat -->
- <module>ahc</module>
- <module>aws</module>
- <module>common</module>
- <module>commons-logging</module>
- <module>consul-client</module>
- <module>httpclient</module>
- <module>jackson-dataformat-xml</module>
- <module>jetty</module>
- <module>policy</module>
- <module>retrofit</module>
- <module>spring</module>
- <module>xstream</module>
- <module>xml</module>
- <module>xalan</module>
+ <module>deployment</module>
+ <module>runtime</module>
</modules>
</project>
diff --git a/extensions/mail/deployment/pom.xml b/extensions-support/mail/runtime/pom.xml
similarity index 78%
copy from extensions/mail/deployment/pom.xml
copy to extensions-support/mail/runtime/pom.xml
index 084cc84..300749c 100644
--- a/extensions/mail/deployment/pom.xml
+++ b/extensions-support/mail/runtime/pom.xml
@@ -21,19 +21,23 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail-parent</artifactId>
+ <artifactId>camel-quarkus-support-mail-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-mail-deployment</artifactId>
- <name>Camel Quarkus :: Mail :: Deployment</name>
+ <artifactId>camel-quarkus-support-mail</artifactId>
+ <name>Camel Quarkus :: Support :: Mail :: Runtime</name>
+
+ <properties>
+ <firstVersion>1.0.0-M6</firstVersion>
+ </properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-bom-deployment</artifactId>
+ <artifactId>camel-quarkus-bom</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
@@ -43,18 +47,22 @@
<dependencies>
<dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core-deployment</artifactId>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail</artifactId>
+ <groupId>com.sun.mail</groupId>
+ <artifactId>jakarta.mail</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>
@@ -69,5 +77,4 @@
</plugin>
</plugins>
</build>
-
</project>
diff --git a/extensions-support/mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..3701dd0
--- /dev/null
+++ b/extensions-support/mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Camel Quarkus Support Mail"
+description: "Camel Quarkus Support Mail"
+metadata:
+ unlisted: true
+ keywords:
+ - "camel"
+ guide: "https://quarkus.io/guides/camel"
+ categories:
+ - "integration"
diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml
index 1f74b06..e6fc68f 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/pom.xml
@@ -38,9 +38,11 @@
<module>common</module>
<module>commons-logging</module>
<module>consul-client</module>
+ <module>google-http-client</module>
<module>httpclient</module>
<module>jackson-dataformat-xml</module>
<module>jetty</module>
+ <module>mail</module>
<module>policy</module>
<module>retrofit</module>
<module>spring</module>
diff --git a/extensions/jira/deployment/pom.xml b/extensions/google-mail/deployment/pom.xml
similarity index 77%
copy from extensions/jira/deployment/pom.xml
copy to extensions/google-mail/deployment/pom.xml
index 85190b0..8a96e21 100644
--- a/extensions/jira/deployment/pom.xml
+++ b/extensions/google-mail/deployment/pom.xml
@@ -17,17 +17,19 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-jira-parent</artifactId>
+ <artifactId>camel-quarkus-google-mail-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-jira-deployment</artifactId>
- <name>Camel Quarkus :: Jira :: Deployment</name>
+ <artifactId>camel-quarkus-google-mail-deployment</artifactId>
+ <name>Camel Quarkus :: Google Mail :: Deployment</name>
<dependencyManagement>
<dependencies>
@@ -48,11 +50,15 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-jira</artifactId>
+ <artifactId>camel-quarkus-support-google-http-client-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
+ <artifactId>camel-quarkus-support-mail-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-google-mail</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java b/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.java
new file mode 100644
index 0000000..5046dcf
--- /dev/null
+++ b/extensions/google-mail/deployment/src/main/java/org/apache/camel/quarkus/component/google/mail/deployment/GoogleMailProcessor.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.google.mail.deployment;
+
+import java.util.Collection;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.AdditionalApplicationArchiveMarkerBuildItem;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.quarkus.core.deployment.UnbannedReflectiveBuildItem;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationTarget;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
+
+class GoogleMailProcessor {
+
+ private static final String FEATURE = "camel-google-mail";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+
+ @BuildStep
+ void applicationArchiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> applicationArchiveMarker) {
+ applicationArchiveMarker.produce(new AdditionalApplicationArchiveMarkerBuildItem("com/google/api/services/gmail"));
+ }
+
+ @BuildStep
+ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
+ BuildProducer<UnbannedReflectiveBuildItem> unbannedClass, CombinedIndexBuildItem combinedIndex) {
+ IndexView index = combinedIndex.getIndex();
+
+ // Google mail component configuration class reflection
+ Collection<AnnotationInstance> uriParams = index
+ .getAnnotations(DotName.createSimple("org.apache.camel.spi.UriParams"));
+
+ String[] googleMailConfigClasses = uriParams.stream()
+ .map(annotation -> annotation.target())
+ .filter(annotationTarget -> annotationTarget.kind().equals(AnnotationTarget.Kind.CLASS))
+ .map(annotationTarget -> annotationTarget.asClass().name().toString())
+ .filter(className -> className.startsWith("org.apache.camel.component.google.mail"))
+ .toArray(String[]::new);
+
+ reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, googleMailConfigClasses));
+ unbannedClass.produce(new UnbannedReflectiveBuildItem(googleMailConfigClasses));
+ }
+}
diff --git a/extensions-support/pom.xml b/extensions/google-mail/pom.xml
similarity index 52%
copy from extensions-support/pom.xml
copy to extensions/google-mail/pom.xml
index 1f74b06..49afb66 100644
--- a/extensions-support/pom.xml
+++ b/extensions/google-mail/pom.xml
@@ -17,35 +17,23 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-parent</artifactId>
+ <artifactId>camel-quarkus-build-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../poms/build-parent/pom.xml</relativePath>
</parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>camel-quarkus-extensions-support</artifactId>
- <name>Camel Quarkus :: Extensions :: Support</name>
+ <artifactId>camel-quarkus-google-mail-parent</artifactId>
+ <name>Camel Quarkus :: Google Mail</name>
<packaging>pom</packaging>
<modules>
- <!-- extensions a..z; do not remove this comment, it is important when sorting via mvn process-resources -Pformat -->
- <module>ahc</module>
- <module>aws</module>
- <module>common</module>
- <module>commons-logging</module>
- <module>consul-client</module>
- <module>httpclient</module>
- <module>jackson-dataformat-xml</module>
- <module>jetty</module>
- <module>policy</module>
- <module>retrofit</module>
- <module>spring</module>
- <module>xstream</module>
- <module>xml</module>
- <module>xalan</module>
+ <module>deployment</module>
+ <module>runtime</module>
</modules>
</project>
diff --git a/extensions/mail/runtime/pom.xml b/extensions/google-mail/runtime/pom.xml
similarity index 69%
copy from extensions/mail/runtime/pom.xml
copy to extensions/google-mail/runtime/pom.xml
index 7f9ab56..c390dae 100644
--- a/extensions/mail/runtime/pom.xml
+++ b/extensions/google-mail/runtime/pom.xml
@@ -17,21 +17,23 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-mail-parent</artifactId>
+ <artifactId>camel-quarkus-google-mail-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-mail</artifactId>
- <name>Camel Quarkus :: Mail :: Runtime</name>
+ <artifactId>camel-quarkus-google-mail</artifactId>
+ <name>Camel Quarkus :: Google Mail :: Runtime</name>
+ <description>The google-mail component provides access to Google Mail.</description>
<properties>
- <jakarta-mail-version>1.6.4</jakarta-mail-version>
- <firstVersion>0.2.0</firstVersion>
+ <firstVersion>1.0.0-M6</firstVersion>
</properties>
<dependencyManagement>
@@ -43,18 +45,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>jakarta.mail</artifactId>
- <version>${jakarta-mail-version}</version>
- <exclusions>
- <!-- javax activation is part of the JDK now -->
- <exclusion>
- <groupId>com.sun.activation</groupId>
- <artifactId>jakarta.activation</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
</dependencies>
</dependencyManagement>
@@ -63,15 +53,17 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
-
- <!-- camel -->
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-mail</artifactId>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-google-http-client</artifactId>
</dependency>
<dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>jakarta.mail</artifactId>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-google-mail</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/google-mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/google-mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..e03e462
--- /dev/null
+++ b/extensions/google-mail/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,31 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Google Mail"
+description: "The google-mail component provides access to Google Mail."
+metadata:
+ keywords:
+ - "api"
+ - "camel"
+ - "cloud"
+ - "google"
+ - "mail"
+ guide: "https://quarkus.io/guides/camel"
+ categories:
+ - "integration"
+ status: "stable"
diff --git a/extensions/jira/deployment/pom.xml b/extensions/jira/deployment/pom.xml
index 85190b0..bbb7b21 100644
--- a/extensions/jira/deployment/pom.xml
+++ b/extensions/jira/deployment/pom.xml
@@ -48,6 +48,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-google-http-client-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jira</artifactId>
</dependency>
<dependency>
diff --git a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
index b791417..f1634f3 100644
--- a/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
+++ b/extensions/jira/deployment/src/main/java/org/apache/camel/quarkus/component/jira/deployment/JiraProcessor.java
@@ -24,7 +24,6 @@ import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.apache.camel.component.jira.JiraConfiguration;
import org.apache.camel.quarkus.core.deployment.UnbannedReflectiveBuildItem;
import org.joda.time.DateTimeZone;
@@ -44,11 +43,6 @@ class JiraProcessor {
}
@BuildStep
- RuntimeInitializedClassBuildItem configureRuntimeInitializedClasses() {
- return new RuntimeInitializedClassBuildItem("com.google.api.client.auth.oauth.OAuthParameters");
- }
-
- @BuildStep
ReflectiveClassBuildItem registerForReflection() {
return new ReflectiveClassBuildItem(true, true, JiraConfiguration.class);
}
diff --git a/extensions/jira/runtime/pom.xml b/extensions/jira/runtime/pom.xml
index 347a5af..02b64d0 100644
--- a/extensions/jira/runtime/pom.xml
+++ b/extensions/jira/runtime/pom.xml
@@ -76,6 +76,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-google-http-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-commons-logging</artifactId>
</dependency>
<dependency>
diff --git a/extensions/mail/deployment/pom.xml b/extensions/mail/deployment/pom.xml
index 084cc84..51cc86d 100644
--- a/extensions/mail/deployment/pom.xml
+++ b/extensions/mail/deployment/pom.xml
@@ -48,6 +48,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-mail-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-mail</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java b/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java
index b708764..071c2ec 100644
--- a/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java
+++ b/extensions/mail/deployment/src/main/java/org/apache/camel/quarkus/component/mail/deployment/MailProcessor.java
@@ -16,158 +16,15 @@
*/
package org.apache.camel.quarkus.component.mail.deployment;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UncheckedIOException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
-
-import javax.inject.Inject;
-import javax.mail.Provider;
-
-import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
class MailProcessor {
private static final String FEATURE = "camel-mail";
- @Inject
- BuildProducer<ReflectiveClassBuildItem> reflectiveClass;
-
- @Inject
- BuildProducer<NativeImageResourceBuildItem> resource;
-
- @Inject
- BuildProducer<ServiceProviderBuildItem> services;
-
- @Inject
- ApplicationArchivesBuildItem applicationArchivesBuildItem;
-
@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}
-
- @BuildStep
- void process() throws IOException {
- List<String> providers = resources("META-INF/services/javax.mail.Provider")
- .flatMap(this::lines)
- .filter(s -> !s.startsWith("#"))
- .collect(Collectors.toList());
-
- List<String> imp1 = providers.stream()
- .map(this::loadClass)
- .map(this::instantiate)
- .map(Provider.class::cast)
- .map(Provider::getClassName)
- .collect(Collectors.toList());
-
- List<String> imp2 = Stream.of("META-INF/javamail.default.providers", "META-INF/javamail.providers")
- .flatMap(this::resources)
- .flatMap(this::lines)
- .filter(s -> !s.startsWith("#"))
- .flatMap(s -> Stream.of(s.split(";")))
- .map(String::trim)
- .filter(s -> s.startsWith("class="))
- .map(s -> s.substring("class=".length()))
- .collect(Collectors.toList());
-
- List<String> imp3 = resources("META-INF/mailcap")
- .flatMap(this::lines)
- .filter(s -> !s.startsWith("#"))
- .flatMap(s -> Stream.of(s.split(";")))
- .map(String::trim)
- .filter(s -> s.startsWith("x-java-content-handler="))
- .map(s -> s.substring("x-java-content-handler=".length()))
- .collect(Collectors.toList());
-
- reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, false,
- Stream.concat(providers.stream(), Stream.concat(imp1.stream(), Stream.concat(imp2.stream(), imp3.stream())))
- .distinct()
- .toArray(String[]::new)));
-
- resource.produce(new NativeImageResourceBuildItem(
- "META-INF/services/javax.mail.Provider",
- "META-INF/javamail.charset.map",
- "META-INF/javamail.default.address.map",
- "META-INF/javamail.default.providers",
- "META-INF/javamail.address.map",
- "META-INF/javamail.providers",
- "META-INF/mailcap"));
- }
-
- private Stream<URL> resources(String path) {
- try {
- return enumerationAsStream(getClass().getClassLoader().getResources(path));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- private Class<?> loadClass(String name) {
- try {
- return getClass().getClassLoader().loadClass(name);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
-
- private <T> T instantiate(Class<T> clazz) {
- try {
- return clazz.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- private Stream<String> lines(Path path) {
- try {
- return Files.lines(path);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- private Stream<String> lines(URL url) {
- try (InputStream is = url.openStream()) {
- try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) {
- return br.lines().collect(Collectors.toList()).stream();
- }
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
- }
-
- private <T> Stream<T> enumerationAsStream(Enumeration<T> e) {
- return StreamSupport.stream(
- Spliterators.spliteratorUnknownSize(
- new Iterator<T>() {
- public T next() {
- return e.nextElement();
- }
-
- public boolean hasNext() {
- return e.hasMoreElements();
- }
- },
- Spliterator.ORDERED),
- false);
- }
}
diff --git a/extensions/mail/runtime/pom.xml b/extensions/mail/runtime/pom.xml
index 7f9ab56..20e543a 100644
--- a/extensions/mail/runtime/pom.xml
+++ b/extensions/mail/runtime/pom.xml
@@ -30,7 +30,6 @@
<name>Camel Quarkus :: Mail :: Runtime</name>
<properties>
- <jakarta-mail-version>1.6.4</jakarta-mail-version>
<firstVersion>0.2.0</firstVersion>
</properties>
@@ -43,18 +42,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>jakarta.mail</artifactId>
- <version>${jakarta-mail-version}</version>
- <exclusions>
- <!-- javax activation is part of the JDK now -->
- <exclusion>
- <groupId>com.sun.activation</groupId>
- <artifactId>jakarta.activation</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
</dependencies>
</dependencyManagement>
@@ -63,15 +50,13 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
-
- <!-- camel -->
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-mail</artifactId>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-mail</artifactId>
</dependency>
<dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>jakarta.mail</artifactId>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-mail</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/pom.xml b/extensions/pom.xml
index a42483d..d63a617 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -67,6 +67,7 @@
<module>file</module>
<module>file-watch</module>
<module>ftp</module>
+ <module>google-mail</module>
<module>graphql</module>
<module>gson</module>
<module>http</module>
diff --git a/extensions/readme.adoc b/extensions/readme.adoc
index a1b1b04..a01ca12 100644
--- a/extensions/readme.adoc
+++ b/extensions/readme.adoc
@@ -5,7 +5,7 @@ Apache Camel Quarkus supports the following Camel artifacts as Quarkus Extension
== Camel Components
// components: START
-Number of Camel components: 76 in 66 JAR artifacts (0 deprecated)
+Number of Camel components: 78 in 67 JAR artifacts (0 deprecated)
[width="100%",cols="4,1,5",options="header"]
|===
@@ -110,6 +110,12 @@ Number of Camel components: 76 in 66 JAR artifacts (0 deprecated)
| link:https://camel.apache.org/components/latest/ftps-component.html[FTPS] (camel-quarkus-ftp) +
`ftps:host:port/directoryName` | 1.0.0-M1 | The \ftps (FTP secure SSL/TLS) component is used for uploading or downloading files from FTP servers.
+| link:https://camel.apache.org/components/latest/google-mail-component.html[Google Mail] (camel-quarkus-google-mail) +
+`google-mail:apiName/methodName` | 1.0.0-M6 | The google-mail component provides access to Google Mail.
+
+| link:https://camel.apache.org/components/latest/google-mail-stream-component.html[Google Mail Stream] (camel-quarkus-google-mail) +
+`google-mail-stream:index` | 1.0.0-M6 | The google-mail component provides access to Google Mail.
+
| xref:extensions/graphql.adoc[GraphQL] (camel-quarkus-graphql) +
`graphql:httpUri` | 1.0.0-M5 | A Camel GraphQL Component
diff --git a/integration-tests/google/README.adoc b/integration-tests/google/README.adoc
new file mode 100644
index 0000000..85285a7
--- /dev/null
+++ b/integration-tests/google/README.adoc
@@ -0,0 +1,13 @@
+== Camel Quarkus Google API Integration Tests
+
+To run the set of Camel Google API component integration tests, you need a valid Google account and https://developers.google.com/identity/protocols/oauth2[OAuth credentials].
+
+Once obtained, set the following environment variables:
+
+[source,shell]
+----
+export GOOGLE_API_APPLICATION_NAME=your-application-name
+export GOOGLE_API_CLIENT_ID=your-client-id
+export GOOGLE_API_CLIENT_SECRET=your-client-secret
+export GOOGLE_API_REFRESH_TOKEN=your-api-refresh-token
+----
diff --git a/integration-tests/google/pom.xml b/integration-tests/google/pom.xml
new file mode 100644
index 0000000..e2af1ca
--- /dev/null
+++ b/integration-tests/google/pom.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-integration-tests</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-quarkus-integration-test-google</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: Google APIs</name>
+ <description>Integration tests for Camel Quarkus Google APIs</description>
+
+ <properties>
+ <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+ <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+ <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+ <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+ <!-- Please update rule whenever you change the dependencies of this module by running -->
+ <!-- mvn process-resources -Pformat from the root directory -->
+ <mvnd.builder.rule>camel-quarkus-google-mail-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-google-mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.package.type>native</quarkus.package.type>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git a/integration-tests/google/src/main/java/org/apache/camel/quarkus/component/google/it/GoogleMailResource.java b/integration-tests/google/src/main/java/org/apache/camel/quarkus/component/google/it/GoogleMailResource.java
new file mode 100644
index 0000000..bb6f8d6
--- /dev/null
+++ b/integration-tests/google/src/main/java/org/apache/camel/quarkus/component/google/it/GoogleMailResource.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.it;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.inject.Inject;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.MimeMessage;
+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.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import com.google.api.client.googleapis.json.GoogleJsonResponseException;
+import com.google.api.services.gmail.model.Message;
+import com.google.api.services.gmail.model.Profile;
+import org.apache.camel.CamelExecutionException;
+import org.apache.camel.ProducerTemplate;
+
+import static javax.mail.Message.RecipientType.TO;
+
+@Path("/google-mail")
+public class GoogleMailResource {
+
+ private static final String EMAIL_SUBJECT = "Camel Quarkus Google Mail Test";
+ private static final String USER_ID = "me";
+
+ @Inject
+ ProducerTemplate producerTemplate;
+
+ @Path("/create")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response createMail(String message) throws Exception {
+ Message email = createMessage(message);
+ Map<String, Object> headers = new HashMap<>();
+ headers.put("CamelGoogleMail.userId", USER_ID);
+ headers.put("CamelGoogleMail.content", email);
+ final Message response = producerTemplate.requestBodyAndHeaders("google-mail://messages/send", null, headers,
+ Message.class);
+ return Response
+ .created(new URI("https://camel.apache.org/"))
+ .entity(response.getId())
+ .build();
+ }
+
+ @Path("/read")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response readMail(@QueryParam("messageId") String messageId) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put("CamelGoogleMail.userId", USER_ID);
+ headers.put("CamelGoogleMail.id", messageId);
+
+ try {
+ Message response = producerTemplate.requestBodyAndHeaders("google-mail://messages/get", null, headers,
+ Message.class);
+ if (response != null && response.getPayload() != null) {
+ String body = new String(response.getPayload().getBody().decodeData(), StandardCharsets.UTF_8);
+ return Response.ok(body).build();
+ } else {
+ return Response.status(Response.Status.NOT_FOUND).build();
+ }
+ } catch (CamelExecutionException e) {
+ Exception exchangeException = e.getExchange().getException();
+ if (exchangeException != null && exchangeException.getCause() instanceof GoogleJsonResponseException) {
+ GoogleJsonResponseException originalException = (GoogleJsonResponseException) exchangeException.getCause();
+ return Response.status(originalException.getStatusCode()).build();
+ }
+ throw e;
+ }
+ }
+
+ @Path("/delete")
+ @DELETE
+ public Response deleteMail(@QueryParam("messageId") String messageId, String message) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put("CamelGoogleMail.userId", USER_ID);
+ headers.put("CamelGoogleMail.id", messageId);
+ producerTemplate.requestBodyAndHeaders("google-mail://messages/delete", message, headers);
+ return Response.status(Response.Status.NO_CONTENT).build();
+ }
+
+ private Message createMessage(String body) throws MessagingException, IOException {
+ Session session = Session.getDefaultInstance(new Properties(), null);
+
+ Profile profile = producerTemplate.requestBody("google-mail://users/getProfile?inBody=userId", USER_ID, Profile.class);
+ MimeMessage mm = new MimeMessage(session);
+ mm.addRecipients(TO, profile.getEmailAddress());
+ mm.setSubject(EMAIL_SUBJECT);
+ mm.setContent(body, "text/plain");
+
+ Message message = new Message();
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
+ mm.writeTo(baos);
+ message.setRaw(Base64.getUrlEncoder().encodeToString(baos.toByteArray()));
+ }
+ return message;
+ }
+}
diff --git a/integration-tests/google/src/main/resources/application.properties b/integration-tests/google/src/main/resources/application.properties
new file mode 100644
index 0000000..1a9b4af
--- /dev/null
+++ b/integration-tests/google/src/main/resources/application.properties
@@ -0,0 +1,22 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT 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 Google Mail
+camel.component.google-mail.configuration.application-name={{env:GOOGLE_API_APPLICATION_NAME}}
+camel.component.google-mail.configuration.client-id={{env:GOOGLE_API_CLIENT_ID}}
+camel.component.google-mail.configuration.client-secret={{env:GOOGLE_API_CLIENT_SECRET}}
+camel.component.google-mail.configuration.refresh-token={{env:GOOGLE_API_REFRESH_TOKEN}}
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
new file mode 100644
index 0000000..6729ae0
--- /dev/null
+++ b/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsIT.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.google.it;
+
+import io.quarkus.test.junit.NativeImageTest;
+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
+class GoogleComponentsIT extends GoogleComponentsTest {
+
+}
diff --git a/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsTest.java b/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsTest.java
new file mode 100644
index 0000000..4e58da3
--- /dev/null
+++ b/integration-tests/google/src/test/java/org/apache/camel/quarkus/component/google/it/GoogleComponentsTest.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
+
+import static org.hamcrest.Matchers.is;
+
+@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 = ".+")
+@QuarkusTest
+class GoogleComponentsTest {
+
+ @Test
+ public void testGoogleMailComponent() {
+ String message = "Hello Camel Quarkus Google Mail";
+
+ // Create
+ String messageId = RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .body(message)
+ .post("/google-mail/create")
+ .then()
+ .statusCode(201)
+ .extract()
+ .body()
+ .asString();
+
+ // Read
+ RestAssured.given()
+ .queryParam("messageId", messageId)
+ .get("/google-mail/read")
+ .then()
+ .statusCode(200)
+ .body(is(message));
+
+ // Delete
+ RestAssured.given()
+ .queryParam("messageId", messageId)
+ .delete("/google-mail/delete")
+ .then()
+ .statusCode(204);
+
+ RestAssured.given()
+ .queryParam("messageId", messageId)
+ .get("/google-mail/read")
+ .then()
+ .statusCode(404);
+ }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index f6ad9e0..6a21f75 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -177,6 +177,7 @@
<module>fhir</module>
<module>file</module>
<module>ftp</module>
+ <module>google</module>
<module>graphql</module>
<module>http</module>
<module>hystrix</module>
diff --git a/pom.xml b/pom.xml
index a10dd2f..06a708a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,6 +61,7 @@
<retrofit.version>2.5.0</retrofit.version>
<consul-client.version>1.3.3</consul-client.version>
<stax2.version>4.2</stax2.version>
+ <jakarta.mail.version>1.6.5</jakarta.mail.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<maven.compiler.target>1.8</maven.compiler.target>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 3429198..adf1cc2 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -256,6 +256,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-google-mail-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-graphql-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -511,6 +516,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-google-http-client-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -526,6 +536,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-mail-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-policy-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 294bd0e..a13bdfc 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -299,6 +299,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-google-mail</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-graphql</artifactId>
<version>${camel.version}</version>
</dependency>
@@ -917,6 +922,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-google-mail</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-graphql</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -1182,6 +1192,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-google-http-client</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -1197,6 +1212,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-mail</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-policy</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -1326,6 +1346,12 @@
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>${google-http-client.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>com.orbitz.consul</groupId>
@@ -1343,6 +1369,17 @@
<version>${retrofit.version}</version>
</dependency>
<dependency>
+ <groupId>com.sun.mail</groupId>
+ <artifactId>jakarta.mail</artifactId>
+ <version>${jakarta.mail.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.activation</groupId>
+ <artifactId>jakarta.activation</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>${xstream.version}</version>