This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new 64e5736 Remove quarkiverse-google-cloud-services dependencies 64e5736 is described below commit 64e573611bfb67c83b0603709d104b5470949906 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Fri Oct 15 14:56:48 2021 +0100 Remove quarkiverse-google-cloud-services dependencies --- .../reference/extensions/google-bigquery.adoc | 5 -- .../pages/reference/extensions/google-storage.adoc | 15 ----- extensions/google-bigquery/deployment/pom.xml | 4 -- .../deployment/GoogleBigqueryProcessor.java | 7 -- extensions/google-bigquery/runtime/pom.xml | 4 +- .../runtime/src/main/doc/usage.adoc | 5 -- .../GoogleBigQueryConnectionFactoryProducer.java | 40 ------------ extensions/google-pubsub/deployment/pom.xml | 4 +- extensions/google-pubsub/runtime/pom.xml | 8 ++- extensions/google-storage/deployment/pom.xml | 5 -- .../storage/deployment/GoogleStorageProcessor.java | 7 -- extensions/google-storage/runtime/pom.xml | 15 ++--- .../runtime/src/main/doc/configuration.adoc | 11 ---- .../google/storage/GoogleStorageEnforcer.java | 35 ---------- integration-tests/google-bigquery/README.adoc | 5 +- .../google/bigquery/it/GoogleBigqueryResource.java | 21 +++--- integration-tests/google-storage/README.adoc | 10 +-- .../google/storage/it/GoogleStorageResource.java | 25 +++----- .../src/main/resources/application.properties | 17 ----- pom.xml | 3 +- poms/bom/pom.xml | 75 +++++++++++++++++----- 21 files changed, 98 insertions(+), 223 deletions(-) diff --git a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc index b26a6f9..7a8cb45 100644 --- a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc @@ -42,11 +42,6 @@ Check the xref:user-guide/index.adoc[User guide] for more information about writ == Usage -This extension leverages the Quarkiverse Google Cloud Services extension. -The https://github.com/quarkiverse/quarkiverse-google-cloud-services[documentation] describes how to configure authentication for Google cloud services. - -For convenience, a `GoogleBigQueryConnectionFactory` for use by the `google-bigquery` & `google-bigquery-sql` component is automatically configured. - If you want to read SQL scripts from the classpath with `google-bigquery-sql` in native mode, then you will need to ensure that they are added to the native image via the `quarkus.native.resources.includes` configuration property. Please check https://quarkus.io/guides/building-native-image#quarkus-native-pkg-native-config_quarkus.native.resources.includes[Quarkus documentation] for more details. diff --git a/docs/modules/ROOT/pages/reference/extensions/google-storage.adoc b/docs/modules/ROOT/pages/reference/extensions/google-storage.adoc index 10c6ff0..dec18ab 100644 --- a/docs/modules/ROOT/pages/reference/extensions/google-storage.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/google-storage.adoc @@ -43,18 +43,3 @@ Check the xref:user-guide/index.adoc[User guide] for more information about writ 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]. - -== Additional Camel Quarkus configuration - -There are two different configuration approaches: - -* Google storage client can be defined via quarkus properties leveraging the Quarkiverse - Google Cloud Services - Storage (see https://github.com/quarkiverse/quarkus-google-cloud-services/blob/main/storage[extension git page]). -Camel will autowire client into the Google-storage component. -This configuration allows definition of only one storage client, therefore it isn't possible to define several different endpoints, which run together. - -* When multiple storage clients are needed, one or more storage client bean need to be registered in the registry (e.g. via a CDI bean producer). Each storage client bean could then be referenced from distinct endpoints. -[source,properties] ----- -google-storage://bucket?storageClient=#my_client ----- - diff --git a/extensions/google-bigquery/deployment/pom.xml b/extensions/google-bigquery/deployment/pom.xml index b451556..da7f135 100644 --- a/extensions/google-bigquery/deployment/pom.xml +++ b/extensions/google-bigquery/deployment/pom.xml @@ -31,10 +31,6 @@ <dependencies> <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-bigquery-deployment</artifactId> - </dependency> - <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core-deployment</artifactId> </dependency> diff --git a/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java b/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java index 91bedd1..20dd60f 100644 --- a/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java +++ b/extensions/google-bigquery/deployment/src/main/java/org/apache/camel/quarkus/component/google/bigquery/deployment/GoogleBigqueryProcessor.java @@ -16,10 +16,8 @@ */ package org.apache.camel.quarkus.component.google.bigquery.deployment; -import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.FeatureBuildItem; -import org.apache.camel.quarkus.component.google.bigquery.GoogleBigQueryConnectionFactoryProducer; class GoogleBigqueryProcessor { private static final String FEATURE = "camel-google-bigquery"; @@ -28,9 +26,4 @@ class GoogleBigqueryProcessor { FeatureBuildItem feature() { return new FeatureBuildItem(FEATURE); } - - @BuildStep - public AdditionalBeanBuildItem connectionFactoryProducerBean() { - return new AdditionalBeanBuildItem(GoogleBigQueryConnectionFactoryProducer.class); - } } diff --git a/extensions/google-bigquery/runtime/pom.xml b/extensions/google-bigquery/runtime/pom.xml index 1ff7677..47b2a38 100644 --- a/extensions/google-bigquery/runtime/pom.xml +++ b/extensions/google-bigquery/runtime/pom.xml @@ -49,8 +49,8 @@ <dependencies> <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-bigquery</artifactId> + <groupId>com.google.cloud</groupId> + <artifactId>native-image-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> diff --git a/extensions/google-bigquery/runtime/src/main/doc/usage.adoc b/extensions/google-bigquery/runtime/src/main/doc/usage.adoc index db37bbc..3f0e86a 100644 --- a/extensions/google-bigquery/runtime/src/main/doc/usage.adoc +++ b/extensions/google-bigquery/runtime/src/main/doc/usage.adoc @@ -1,8 +1,3 @@ -This extension leverages the Quarkiverse Google Cloud Services extension. -The https://github.com/quarkiverse/quarkiverse-google-cloud-services[documentation] describes how to configure authentication for Google cloud services. - -For convenience, a `GoogleBigQueryConnectionFactory` for use by the `google-bigquery` & `google-bigquery-sql` component is automatically configured. - If you want to read SQL scripts from the classpath with `google-bigquery-sql` in native mode, then you will need to ensure that they are added to the native image via the `quarkus.native.resources.includes` configuration property. Please check https://quarkus.io/guides/building-native-image#quarkus-native-pkg-native-config_quarkus.native.resources.includes[Quarkus documentation] for more details. diff --git a/extensions/google-bigquery/runtime/src/main/java/org/apache/camel/quarkus/component/google/bigquery/GoogleBigQueryConnectionFactoryProducer.java b/extensions/google-bigquery/runtime/src/main/java/org/apache/camel/quarkus/component/google/bigquery/GoogleBigQueryConnectionFactoryProducer.java deleted file mode 100644 index 887b9e6..0000000 --- a/extensions/google-bigquery/runtime/src/main/java/org/apache/camel/quarkus/component/google/bigquery/GoogleBigQueryConnectionFactoryProducer.java +++ /dev/null @@ -1,40 +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.google.bigquery; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Default; -import javax.enterprise.inject.Produces; -import javax.inject.Inject; -import javax.inject.Singleton; - -import com.google.cloud.bigquery.BigQuery; -import org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory; - -@ApplicationScoped -public class GoogleBigQueryConnectionFactoryProducer { - - @Inject - BigQuery bigQuery; - - @Produces - @Default - @Singleton - public GoogleBigQueryConnectionFactory googleBigQueryConnectionFactory() { - return new GoogleBigQueryConnectionFactory(bigQuery); - } -} diff --git a/extensions/google-pubsub/deployment/pom.xml b/extensions/google-pubsub/deployment/pom.xml index e26fffb..4dce202 100644 --- a/extensions/google-pubsub/deployment/pom.xml +++ b/extensions/google-pubsub/deployment/pom.xml @@ -35,8 +35,8 @@ <artifactId>quarkus-jackson-deployment</artifactId> </dependency> <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-pubsub-deployment</artifactId> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-grpc-common-deployment</artifactId> </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> diff --git a/extensions/google-pubsub/runtime/pom.xml b/extensions/google-pubsub/runtime/pom.xml index 49fcacf..63c2b16 100644 --- a/extensions/google-pubsub/runtime/pom.xml +++ b/extensions/google-pubsub/runtime/pom.xml @@ -63,8 +63,12 @@ <artifactId>quarkus-jackson</artifactId> </dependency> <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-pubsub</artifactId> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-grpc-common</artifactId> + </dependency> + <dependency> + <groupId>com.google.cloud</groupId> + <artifactId>native-image-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> diff --git a/extensions/google-storage/deployment/pom.xml b/extensions/google-storage/deployment/pom.xml index 7b893d1..4ad024d 100644 --- a/extensions/google-storage/deployment/pom.xml +++ b/extensions/google-storage/deployment/pom.xml @@ -38,11 +38,6 @@ <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-google-storage</artifactId> </dependency> - <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-storage-deployment</artifactId> - </dependency> - </dependencies> <build> diff --git a/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java b/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java index b2dcc29..347f9fc 100644 --- a/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java +++ b/extensions/google-storage/deployment/src/main/java/org/apache/camel/quarkus/component/google/storage/deployment/GoogleStorageProcessor.java @@ -16,11 +16,9 @@ */ package org.apache.camel.quarkus.component.google.storage.deployment; -import io.quarkus.arc.deployment.AdditionalBeanBuildItem; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; -import org.apache.camel.quarkus.component.google.storage.GoogleStorageEnforcer; class GoogleStorageProcessor { @@ -35,9 +33,4 @@ class GoogleStorageProcessor { ExtensionSslNativeSupportBuildItem activateSslNativeSupport() { return new ExtensionSslNativeSupportBuildItem(FEATURE); } - - @BuildStep - public AdditionalBeanBuildItem storageEnforcer() { - return new AdditionalBeanBuildItem(GoogleStorageEnforcer.class); - } } diff --git a/extensions/google-storage/runtime/pom.xml b/extensions/google-storage/runtime/pom.xml index 3fdf108..9f55a43 100644 --- a/extensions/google-storage/runtime/pom.xml +++ b/extensions/google-storage/runtime/pom.xml @@ -49,24 +49,17 @@ <dependencies> <dependency> + <groupId>com.google.cloud</groupId> + <artifactId>native-image-support</artifactId> + </dependency> + <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-google-storage</artifactId> - <exclusions> - <exclusion> - <artifactId>google-cloud-storage</artifactId> - <groupId>com.google.cloud</groupId> - </exclusion> - </exclusions> </dependency> - <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-storage</artifactId> - </dependency> - </dependencies> <build> diff --git a/extensions/google-storage/runtime/src/main/doc/configuration.adoc b/extensions/google-storage/runtime/src/main/doc/configuration.adoc deleted file mode 100644 index a4c6437..0000000 --- a/extensions/google-storage/runtime/src/main/doc/configuration.adoc +++ /dev/null @@ -1,11 +0,0 @@ -There are two different configuration approaches: - -* Google storage client can be defined via quarkus properties leveraging the Quarkiverse - Google Cloud Services - Storage (see https://github.com/quarkiverse/quarkus-google-cloud-services/blob/main/storage[extension git page]). -Camel will autowire client into the Google-storage component. -This configuration allows definition of only one storage client, therefore it isn't possible to define several different endpoints, which run together. - -* When multiple storage clients are needed, one or more storage client bean need to be registered in the registry (e.g. via a CDI bean producer). Each storage client bean could then be referenced from distinct endpoints. -[source,properties] ----- -google-storage://bucket?storageClient=#my_client ----- \ No newline at end of file diff --git a/extensions/google-storage/runtime/src/main/java/org/apache/camel/quarkus/component/google/storage/GoogleStorageEnforcer.java b/extensions/google-storage/runtime/src/main/java/org/apache/camel/quarkus/component/google/storage/GoogleStorageEnforcer.java deleted file mode 100644 index a937d28..0000000 --- a/extensions/google-storage/runtime/src/main/java/org/apache/camel/quarkus/component/google/storage/GoogleStorageEnforcer.java +++ /dev/null @@ -1,35 +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.google.storage; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Instance; -import javax.inject.Inject; - -import com.google.cloud.storage.Storage; - -@ApplicationScoped -public class GoogleStorageEnforcer { - - //Quarkiverse StorageProducer creates storage based on properties. - //Because of https://github.com/apache/camel-quarkus/issues/1387, storage is removed and not applied to component. - //UnremovableBeanBuildItem does not fix this. - //Injecting all storages makes Quarkiverse StorageProducer to be used. - //In case, that user defines multiple clients, all clients have to be injected, otherwise exception "Ambiguous dependencies" is thrown. - @Inject - Instance<Storage> storages; -} diff --git a/integration-tests/google-bigquery/README.adoc b/integration-tests/google-bigquery/README.adoc index d210160..36892cd 100644 --- a/integration-tests/google-bigquery/README.adoc +++ b/integration-tests/google-bigquery/README.adoc @@ -6,11 +6,10 @@ mode does not provide the required capabilities (streaming inserts & queries) th The simplest means of setting up authentication is via a https://cloud.google.com/docs/authentication/getting-started[service account]. Use the GCP UI to export a JSON representation of your credentials. -You should now set the following environment variable: +You should now set the following environment variables: [source,shell] ---- export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json +export GOOGLE_PROJECT_ID=your-gcloud-project-id ---- - -You should also modify `application.properties` so that `quarkus.google.cloud.project-id` is correct for your GCP project. diff --git a/integration-tests/google-bigquery/src/main/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryResource.java b/integration-tests/google-bigquery/src/main/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryResource.java index 8bf7af2..0d6291f 100644 --- a/integration-tests/google-bigquery/src/main/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryResource.java +++ b/integration-tests/google-bigquery/src/main/java/org/apache/camel/quarkus/component/google/bigquery/it/GoogleBigqueryResource.java @@ -32,8 +32,8 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import com.google.cloud.bigquery.BigQuery; import org.apache.camel.ProducerTemplate; +import org.eclipse.microprofile.config.inject.ConfigProperty; @Path("/google-bigquery") public class GoogleBigqueryResource { @@ -42,10 +42,11 @@ public class GoogleBigqueryResource { public static final String TABLE_NAME = "camel_quarkus_basic"; @Inject - BigQuery bigQuery; + ProducerTemplate producerTemplate; @Inject - ProducerTemplate producerTemplate; + @ConfigProperty(name = "google.project.id", defaultValue = "test") + String projectId; String tableId = DATASET_ID + "." + TABLE_NAME; @@ -53,7 +54,7 @@ public class GoogleBigqueryResource { @POST public Response createTable() { String sql = "CREATE TABLE `" + tableId + "` (id NUMERIC, col1 STRING, col2 STRING)"; - producerTemplate.requestBody("google-bigquery-sql:" + getProjectId() + ":" + sql, null, + producerTemplate.requestBody("google-bigquery-sql:" + projectId + ":" + sql, null, Long.class); return Response.created(URI.create("https://camel.apache.org")).build(); } @@ -61,7 +62,7 @@ public class GoogleBigqueryResource { @POST @Consumes(MediaType.APPLICATION_JSON) public Response insertRow(Map<String, String> tableData) { - producerTemplate.requestBody("google-bigquery:" + getProjectId() + ":" + DATASET_ID + ":" + TABLE_NAME, tableData); + producerTemplate.requestBody("google-bigquery:" + projectId + ":" + DATASET_ID + ":" + TABLE_NAME, tableData); return Response.created(URI.create("https://camel.apache.org")).build(); } @@ -70,7 +71,7 @@ public class GoogleBigqueryResource { @Produces(MediaType.APPLICATION_JSON) public Response getRow() { String sql = "SELECT * FROM `" + tableId + "`"; - Long rowCount = producerTemplate.requestBody("google-bigquery-sql:" + getProjectId() + ":" + sql, null, Long.class); + Long rowCount = producerTemplate.requestBody("google-bigquery-sql:" + projectId + ":" + sql, null, Long.class); return Response.ok(rowCount).build(); } @@ -85,7 +86,7 @@ public class GoogleBigqueryResource { Files.write(sqlFile, sql.getBytes(StandardCharsets.UTF_8)); Long rowCount = producerTemplate.requestBody( - "google-bigquery-sql:" + getProjectId() + ":file:" + sqlFile.toAbsolutePath().toString(), + "google-bigquery-sql:" + projectId + ":file:" + sqlFile.toAbsolutePath().toString(), null, Long.class); return Response.ok(rowCount).build(); } @@ -95,11 +96,7 @@ public class GoogleBigqueryResource { @Produces(MediaType.TEXT_PLAIN) public Response dropTable() { String sql = "DROP TABLE `" + tableId + "`"; - producerTemplate.requestBody("google-bigquery-sql:" + getProjectId() + ":" + sql, null, Long.class); + producerTemplate.requestBody("google-bigquery-sql:" + projectId + ":" + sql, null, Long.class); return Response.ok().build(); } - - private String getProjectId() { - return bigQuery.getOptions().getProjectId(); - } } diff --git a/integration-tests/google-storage/README.adoc b/integration-tests/google-storage/README.adoc index 2682f8b..daf60a3 100644 --- a/integration-tests/google-storage/README.adoc +++ b/integration-tests/google-storage/README.adoc @@ -14,10 +14,6 @@ You can find more info in the https://cloud.google.com/storage/docs/reference/li When you have the **service account key** you can provide authentication credentials to your application code by setting the environment variable: -`export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"` -`export GOOGLE_PROJECT_ID="#name of project"` - -or for windows: - -`$Env:GOOGLE_APPLICATION_CREDENTIALS = "/home/user/Downloads/my-key.json"` -`$Env:GOOGLE_PROJECT_ID="#name of project"` \ No newline at end of file +``` +export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json" +``` diff --git a/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java b/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java index 5f88479..81aefcd 100644 --- a/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java +++ b/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java @@ -40,11 +40,10 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.CopyWriter; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import io.quarkiverse.googlecloudservices.storage.runtime.StorageProducer; +import io.quarkus.arc.Arc; import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.ProducerTemplate; -import org.apache.camel.component.google.storage.GoogleCloudStorageComponent; import org.apache.camel.component.google.storage.GoogleCloudStorageConstants; import org.apache.camel.component.google.storage.GoogleCloudStorageOperations; import org.eclipse.microprofile.config.ConfigProvider; @@ -67,8 +66,6 @@ public class GoogleStorageResource { public static final String QUERY_BUCKET = "bucketName"; public static final String QUERY_OPERATION = "operation"; - private static final String COMPONENT_GOOGLE_STORAGE = "google-storage"; - @Inject ProducerTemplate producerTemplate; @@ -76,29 +73,23 @@ public class GoogleStorageResource { ConsumerTemplate consumerTemplate; @Inject - StorageProducer sp; - - @Inject CamelContext camelContext; - private Storage client; - - @Named(COMPONENT_GOOGLE_STORAGE) - GoogleCloudStorageComponent produceComponent() throws IOException { - GoogleCloudStorageComponent gsc = new GoogleCloudStorageComponent(); + @Named + Storage storageClient() throws IOException { + Storage storage; if (GoogleStorageHelper.usingMockBackend()) { String port = ConfigProvider.getConfig().getValue(GoogleStorageResource.PARAM_PORT, String.class); - client = StorageOptions.newBuilder() + storage = StorageOptions.newBuilder() .setHost("http://localhost:" + port) .setProjectId("dummy-project-for-testing") .build() .getService(); } else { - client = sp.storage(); + storage = StorageOptions.getDefaultInstance().getService(); } - gsc.getConfiguration().setStorageClient(client); - return gsc; + return storage; } @Path("/operation") @@ -165,7 +156,7 @@ public class GoogleStorageResource { @GET @Produces(MediaType.TEXT_PLAIN) public Response deleteBuckets() throws Exception { - + Storage client = Arc.container().instance(Storage.class).get(); List<String> buckets = new LinkedList<>(); for (Bucket bucket : client.list().iterateAll()) { buckets.add(bucket.getName()); diff --git a/integration-tests/google-storage/src/main/resources/application.properties b/integration-tests/google-storage/src/main/resources/application.properties deleted file mode 100644 index ae11b5f..0000000 --- a/integration-tests/google-storage/src/main/resources/application.properties +++ /dev/null @@ -1,17 +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. -## --------------------------------------------------------------------------- -quarkus.google.cloud.service-account-location=${GOOGLE_APPLICATION_CREDENTIALS:} diff --git a/pom.xml b/pom.xml index 1ad0ee4..7a3aa0b 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,6 @@ <quarkiverse.freemarker.version>0.3.0</quarkiverse.freemarker.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/freemarker/quarkus-freemarker-parent/ --> <quarkiverse-minio.version>2.0.0</quarkiverse-minio.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/minio/quarkus-minio-parent/ --> <quarkus.version>2.4.0.CR1</quarkus.version><!-- https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ --> - <quarkus-google-cloud.version>0.10.0</quarkus-google-cloud.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/googlecloudservices/quarkus-google-cloud-services-bom/ --> <quarkus-hazelcast-client.version>2.0.0</quarkus-hazelcast-client.version><!-- https://repo1.maven.org/maven2/com/hazelcast/quarkus-hazelcast-client-bom/ --> <quarkus-qpid-jms.version>0.28.0</quarkus-qpid-jms.version><!-- https://repo1.maven.org/maven2/org/amqphub/quarkus/quarkus-qpid-jms-bom/ --> @@ -78,6 +77,8 @@ <fommil.netlib.core.version>1.1.2</fommil.netlib.core.version><!-- Mess in Weka transitive deps --> <jodatime.version>2.10.6</jodatime.version><!-- Mess in transitive dependencies of Spark and Splunk --> <github-api.version>1.111</github-api.version><!-- Used in a Groovy script bellow --> + <google-native-image-support.version>0.8.0</google-native-image-support.version> + <google-auth-library-credentials.version>0.22.2</google-auth-library-credentials.version><!-- @sync io.grpc:grpc-auth:${grpc.version} dep:com.google.auth:google-auth-library-credentials --> <guava.version>29.0-jre</guava.version> <graalvm.version>21.2.0</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.nativeimage:svm --> <grpc.version>1.40.1</grpc.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:io.grpc:grpc-core --> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index 291c5d6..807c65f 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -92,13 +92,6 @@ <scope>import</scope> </dependency> <dependency> - <groupId>io.quarkiverse.googlecloudservices</groupId> - <artifactId>quarkus-google-cloud-services-bom</artifactId> - <version>${quarkus-google-cloud.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-bom</artifactId> <version>${debezium.version}</version> @@ -911,12 +904,20 @@ <version>${camel.version}</version> <exclusions> <exclusion> - <groupId>com.google.cloud</groupId> - <artifactId>google-cloud-bigquery</artifactId> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>javax.annotation</groupId> + <artifactId>javax.annotation-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.checkerframework</groupId> + <artifactId>checker-qual</artifactId> </exclusion> <exclusion> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> + <groupId>org.codehaus.mojo</groupId> + <artifactId>animal-sniffer-annotations</artifactId> </exclusion> </exclusions> </dependency> @@ -964,12 +965,28 @@ <version>${camel.version}</version> <exclusions> <exclusion> - <groupId>com.google.cloud</groupId> - <artifactId>google-cloud-pubsub</artifactId> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>io.grpc</groupId> + <artifactId>grpc-netty-shaded</artifactId> + </exclusion> + <exclusion> + <groupId>io.perfmark</groupId> + <artifactId>perfmark-api</artifactId> + </exclusion> + <exclusion> + <groupId>javax.annotation</groupId> + <artifactId>javax.annotation-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.checkerframework</groupId> + <artifactId>checker-qual</artifactId> </exclusion> <exclusion> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> + <groupId>org.codehaus.mojo</groupId> + <artifactId>animal-sniffer-annotations</artifactId> </exclusion> </exclusions> </dependency> @@ -988,6 +1005,24 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-google-storage</artifactId> <version>${camel.version}</version> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + <exclusion> + <groupId>javax.annotation</groupId> + <artifactId>javax.annotation-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.checkerframework</groupId> + <artifactId>checker-qual</artifactId> + </exclusion> + <exclusion> + <groupId>org.codehaus.mojo</groupId> + <artifactId>animal-sniffer-annotations</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.camel</groupId> @@ -5756,6 +5791,16 @@ </exclusions> </dependency> <dependency> + <groupId>com.google.auth</groupId> + <artifactId>google-auth-library-credentials</artifactId> + <version>${google-auth-library-credentials.version}</version> + </dependency> + <dependency> + <groupId>com.google.cloud</groupId> + <artifactId>native-image-support</artifactId> + <version>${google-native-image-support.version}</version> + </dependency> + <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>${gson.version}</version>