You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by GitBox <gi...@apache.org> on 2021/01/07 15:28:14 UTC

[GitHub] [camel-quarkus] JiriOndrusek opened a new pull request #2116: Minio native support #2040

JiriOndrusek opened a new pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116


   fixes https://github.com/apache/camel-quarkus/issues/2040
   
   supersedes https://github.com/apache/camel-quarkus/pull/2102
   
   Extension leverages quarkiverse-minio. There are several problems/limitations:
   
   - It seems that there is a bug in quarkiverse-minio - it misses some reflection registrations (which are probably not needed in simpler scenario) - I'll try to report/fix it in quarkiverse-minio extension and then remove registration from camel-quarkus extension.
   - There is a limitation because of quiarkiverse-minio which prevents to use more different minio endpoint at once. (minio client has to be defined in application.properties). Limitation is described in doc. I see an option in update of camel-minio component to allow overriding of autowired client by endpoint's configuration. @jamesnetherton , @ppalaga WDYT? Should I prepare an upgrade in camel-minio component?
   
    ] An issue should be filed for the change unless this is a trivial change (fixing a typo or similar). One issue should ideally be fixed by not more than one commit and the other way round, each commit should fix just one issue, without pulling in other changes.
   [ ] Each commit in the pull request should have a meaningful and properly spelled subject line and body. Copying the title of the associated issue is typically enough. Please include the issue number in the commit message prefixed by #.
   [ ] The pull request description should explain what the pull request does, how, and why. If the info is available in the associated issue or some other external document, a link is enough.
   [ ] Phrases like Fix #<issueNumber> or Fixes #<issueNumber> will auto-close the named issue upon merging the pull request. Using them is typically a good idea.
   [ ] Please run mvn process-resources -Pformat (and amend the changes if necessary) before sending the pull request.
   [ ] Contributor guide is your good friend: https://camel.apache.org/camel-quarkus/latest/contributor-guide.html


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r554882369



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTest.java
##########
@@ -0,0 +1,183 @@
+/*
+ * 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.minio.it;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+import io.restassured.specification.RequestSpecification;
+import org.apache.camel.component.minio.MinioConstants;
+import org.apache.camel.component.minio.MinioOperations;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+
+@QuarkusTest
+@QuarkusTestResource(MinioTestResource.class)
+class MinioTest {
+
+    private final String BUCKET_NAME = "mycamel";
+
+    @Test
+    public void testConsumer() throws Exception {
+        initClient();
+
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+
+        Future<String> fr1 = executor.submit(
+                () -> RestAssured.get("/minio/consumer")
+                        .then()
+                        .extract().asString());

Review comment:
       done




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-758719200


   @jamesnetherton  done


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553804428



##########
File path: docs/modules/ROOT/pages/reference/extensions/minio.adoc
##########
@@ -31,3 +31,11 @@ Please refer to the above link for usage and configuration details.
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+
+== Camel Quarkus limitations
+
+This extension leverages the Quarkiverse Minio. Standard application.properties mechanism is used to define connection (see http://github.com/quarkiverse/quarkiverse-minio#configuration-reference[documentation]).
+
+It is mandatory to configure the Minio client in properties and Camel will autowire client into the Mino component.

Review comment:
       fixed




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-756691974


   Failed build is not linked to minio extension.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] aldettinger commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
aldettinger commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553497247



##########
File path: docs/modules/ROOT/pages/reference/extensions/minio.adoc
##########
@@ -31,3 +31,11 @@ Please refer to the above link for usage and configuration details.
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+
+== Camel Quarkus limitations
+
+This extension leverages the Quarkiverse Minio. Standard application.properties mechanism is used to define connection (see http://github.com/quarkiverse/quarkiverse-minio#configuration-reference[documentation]).
+
+It is mandatory to configure the Minio client in properties and Camel will autowire client into the Mino component.

Review comment:
       Small typo here Mino => Minio ?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] ppalaga commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
ppalaga commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553890159



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTest.java
##########
@@ -0,0 +1,183 @@
+/*
+ * 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.minio.it;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+import io.restassured.specification.RequestSpecification;
+import org.apache.camel.component.minio.MinioConstants;
+import org.apache.camel.component.minio.MinioOperations;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+
+@QuarkusTest
+@QuarkusTestResource(MinioTestResource.class)
+class MinioTest {
+
+    private final String BUCKET_NAME = "mycamel";
+
+    @Test
+    public void testConsumer() throws Exception {
+        initClient();
+
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+
+        Future<String> fr1 = executor.submit(
+                () -> RestAssured.get("/minio/consumer")
+                        .then()
+                        .extract().asString());

Review comment:
       Do we really need the Executor? `consumerTemplate.receiveBody(String endpointUri, long timeout, Class<T> type)` is blocking so I guess you can put `RestAssured.get("/minio/consumer")` directly to the `untilAsserted()` block below.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-759306138


   Issue https://github.com/quarkiverse/quarkiverse-minio/issues/21 is fixed and incorporated into this PR
   
   Unfortunately issue https://github.com/quarkiverse/quarkiverse-minio/issues/22 still causes problems, so limitation with configuration is still valid.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-756691974


   Failed build is not linked to minio extension.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553804283



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTestResource.java
##########
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.minio.it;
+
+import java.time.Duration;
+import java.util.Map;
+
+import org.apache.camel.quarkus.testcontainers.ContainerResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
+
+public class MinioTestResource implements ContainerResourceLifecycleManager {
+
+    public static final String CONTAINER_ACCESS_KEY = "MINIO_ACCESS_KEY";
+    public static final String CONTAINER_SECRET_KEY = "MINIO_SECRET_KEY";
+    private final String CONTAINER_IMAGE = "minio/minio:latest";

Review comment:
       I've replaced latest with the current tag.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553895444



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTest.java
##########
@@ -0,0 +1,183 @@
+/*
+ * 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.minio.it;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+import io.restassured.specification.RequestSpecification;
+import org.apache.camel.component.minio.MinioConstants;
+import org.apache.camel.component.minio.MinioOperations;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+
+@QuarkusTest
+@QuarkusTestResource(MinioTestResource.class)
+class MinioTest {
+
+    private final String BUCKET_NAME = "mycamel";
+
+    @Test
+    public void testConsumer() throws Exception {
+        initClient();
+
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+
+        Future<String> fr1 = executor.submit(
+                () -> RestAssured.get("/minio/consumer")
+                        .then()
+                        .extract().asString());

Review comment:
       thanks for the advice, I'll try it that way.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] ppalaga commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
ppalaga commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-756698063


   > There is a limitation because of quiarkiverse-minio which prevents to use more different minio endpoint at once. (minio client has to be defined in application.properties). Limitation is described in doc. I see an option in update of camel-minio component to allow overriding of autowired client by endpoint's configuration.
   
   Sounds like a potentially important limitation. I think we should at least file a feature request on Quarkiverse, link the issue in our docs and advise users to upvote it if they need it. In that way we can see whether it is worth to invest our time into fixing it.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jtama-op commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
jtama-op commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-758745079


   Fixes released in 0.2.0.
   
   Warning, as per convention artifact will be prefixed with `quarkiverse-` from 0.3.0.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553804283



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTestResource.java
##########
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.minio.it;
+
+import java.time.Duration;
+import java.util.Map;
+
+import org.apache.camel.quarkus.testcontainers.ContainerResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
+
+public class MinioTestResource implements ContainerResourceLifecycleManager {
+
+    public static final String CONTAINER_ACCESS_KEY = "MINIO_ACCESS_KEY";
+    public static final String CONTAINER_SECRET_KEY = "MINIO_SECRET_KEY";
+    private final String CONTAINER_IMAGE = "minio/minio:latest";

Review comment:
       I've replaced latest with the current tag.

##########
File path: docs/modules/ROOT/pages/reference/extensions/minio.adoc
##########
@@ -31,3 +31,11 @@ Please refer to the above link for usage and configuration details.
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+
+== Camel Quarkus limitations
+
+This extension leverages the Quarkiverse Minio. Standard application.properties mechanism is used to define connection (see http://github.com/quarkiverse/quarkiverse-minio#configuration-reference[documentation]).
+
+It is mandatory to configure the Minio client in properties and Camel will autowire client into the Mino component.

Review comment:
       fixed

##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTest.java
##########
@@ -0,0 +1,183 @@
+/*
+ * 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.minio.it;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+import io.restassured.specification.RequestSpecification;
+import org.apache.camel.component.minio.MinioConstants;
+import org.apache.camel.component.minio.MinioOperations;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+
+@QuarkusTest
+@QuarkusTestResource(MinioTestResource.class)
+class MinioTest {
+
+    private final String BUCKET_NAME = "mycamel";
+
+    @Test
+    public void testConsumer() throws Exception {
+        initClient();
+
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+
+        Future<String> fr1 = executor.submit(
+                () -> RestAssured.get("/minio/consumer")
+                        .then()
+                        .extract().asString());

Review comment:
       thanks for the advice, I'll try it that way.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] ppalaga commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
ppalaga commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-756698063


   > There is a limitation because of quiarkiverse-minio which prevents to use more different minio endpoint at once. (minio client has to be defined in application.properties). Limitation is described in doc. I see an option in update of camel-minio component to allow overriding of autowired client by endpoint's configuration.
   
   Sounds like a potentially important limitation. I think we should at least file a feature request on Quarkiverse, link the issue in our docs and advise users to upvote it if they need it. In that way we can see whether it is worth to invest our time into fixing it.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jamesnetherton commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
jamesnetherton commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-758709499


   @JiriOndrusek can you fix up conflicts and we can merge.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jamesnetherton commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
jamesnetherton commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553785888



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTestResource.java
##########
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.minio.it;
+
+import java.time.Duration;
+import java.util.Map;
+
+import org.apache.camel.quarkus.testcontainers.ContainerResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
+
+public class MinioTestResource implements ContainerResourceLifecycleManager {
+
+    public static final String CONTAINER_ACCESS_KEY = "MINIO_ACCESS_KEY";
+    public static final String CONTAINER_SECRET_KEY = "MINIO_SECRET_KEY";
+    private final String CONTAINER_IMAGE = "minio/minio:latest";

Review comment:
       Can we avoid the `latest` tag and pin to something else?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-758715287


   I'll fix it


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jamesnetherton merged pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
jamesnetherton merged pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
JiriOndrusek commented on pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#issuecomment-757744361


   @ppalaga I've created an [issue](https://github.com/quarkiverse/quarkiverse-minio/issues/22) about optional configuration of minio client in quarkiverse-minio and added to the doc how to upvote the issue if needed.
   
   I've also created https://github.com/quarkiverse/quarkiverse-minio/issues/21 about missing registration for reflection and then I've created https://github.com/apache/camel-quarkus/issues/2120 to observe the issue.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] ppalaga commented on a change in pull request #2116: Minio native support #2040

Posted by GitBox <gi...@apache.org>.
ppalaga commented on a change in pull request #2116:
URL: https://github.com/apache/camel-quarkus/pull/2116#discussion_r553890159



##########
File path: integration-tests/minio/src/test/java/org/apache/camel/quarkus/component/minio/it/MinioTest.java
##########
@@ -0,0 +1,183 @@
+/*
+ * 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.minio.it;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import io.restassured.response.ValidatableResponse;
+import io.restassured.specification.RequestSpecification;
+import org.apache.camel.component.minio.MinioConstants;
+import org.apache.camel.component.minio.MinioOperations;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+
+@QuarkusTest
+@QuarkusTestResource(MinioTestResource.class)
+class MinioTest {
+
+    private final String BUCKET_NAME = "mycamel";
+
+    @Test
+    public void testConsumer() throws Exception {
+        initClient();
+
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+
+        Future<String> fr1 = executor.submit(
+                () -> RestAssured.get("/minio/consumer")
+                        .then()
+                        .extract().asString());

Review comment:
       Do we really need the Executor? `consumerTemplate.receiveBody(String endpointUri, long timeout, Class<T> type)` is blocking so I guess you can put `RestAssured.get("/minio/consumer")` directly to the `untilAsserted()` block below.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org