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 2022/04/28 10:05:54 UTC

[camel-quarkus] branch 2.7.x updated (a93570b8f9 -> 9c67714ac9)

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a change to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


    from a93570b8f9 Fix #3737 to register reflection methods of OpenAPI Schema (#3738)
     new 049bdea809 Fix MockEndpoint usage in Infinispan tests
     new ece3f3f582 Remove c3p0 from Quartz extension
     new 794fdc60d6 Minor tidy up of Quartz extension documentation
     new f6ae10dfc9 Avoid usage of com.mchange.io.FileUtils
     new f84498aa94 Fix MockEndpoint usage in gRPC tests
     new 9c67714ac9 Ignore rotated quarkus.log files

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |   2 +-
 .../ROOT/pages/reference/extensions/quartz.adoc    |   4 +-
 extensions/quartz/runtime/pom.xml                  |   9 +-
 extensions/quartz/runtime/src/main/doc/usage.adoc  |   4 +-
 .../quartz/graal/QuartzSubstitutions.java          |  62 +++++++++++
 .../quarkus/component/file/it/FileResource.java    |   3 +-
 integration-tests/grpc/pom.xml                     |   8 ++
 .../quarkus/component/grpc/it/GrpcResource.java    | 124 +++++++++++----------
 .../camel/quarkus/component/grpc/it/GrpcRoute.java |  16 ++-
 .../component/grpc/it/MessageOriginProcessor.java} |  25 +++--
 .../camel/quarkus/component/grpc/it/GrpcTest.java  |  91 ++++++++++++---
 .../component/infinispan/InfinispanResources.java  | 119 ++++++++++----------
 .../component/infinispan/InfinispanRoutes.java     |  16 +--
 .../component/infinispan/InfinispanTest.java       |  54 ++-------
 pom.xml                                            |   1 -
 poms/bom/pom.xml                                   |   5 -
 poms/bom/src/main/generated/flattened-full-pom.xml |   5 -
 .../src/main/generated/flattened-reduced-pom.xml   |   5 -
 .../generated/flattened-reduced-verbose-pom.xml    |   5 -
 19 files changed, 331 insertions(+), 227 deletions(-)
 create mode 100644 extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/graal/QuartzSubstitutions.java
 copy integration-tests/{avro-rpc/src/main/java/org/apache/camel/quarkus/component/avro/rpc/it/reflection/ReflectionProcessor.java => grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/MessageOriginProcessor.java} (64%)


[camel-quarkus] 06/06: Ignore rotated quarkus.log files

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 9c67714ac9584356f8da11eec82043cde5e6c401
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Apr 27 16:04:58 2022 +0100

    Ignore rotated quarkus.log files
---
 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 10118674a8..daf7212195 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,4 +40,4 @@ nb-configuration.xml
 *.swp
 
 # Quarkus
-quarkus.log
+quarkus.log*


[camel-quarkus] 02/06: Remove c3p0 from Quartz extension

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit ece3f3f582f649c2d5f82c49dd6c26e0ca458206
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Apr 26 09:50:47 2022 +0100

    Remove c3p0 from Quartz extension
    
    Fixes #3749
---
 extensions/quartz/runtime/pom.xml                  |  9 ++--
 .../quartz/graal/QuartzSubstitutions.java          | 62 ++++++++++++++++++++++
 pom.xml                                            |  1 -
 poms/bom/pom.xml                                   |  5 --
 poms/bom/src/main/generated/flattened-full-pom.xml |  5 --
 .../src/main/generated/flattened-reduced-pom.xml   |  5 --
 .../generated/flattened-reduced-verbose-pom.xml    |  5 --
 7 files changed, 67 insertions(+), 25 deletions(-)

diff --git a/extensions/quartz/runtime/pom.xml b/extensions/quartz/runtime/pom.xml
index e72a88b6b4..8cfcee8f62 100644
--- a/extensions/quartz/runtime/pom.xml
+++ b/extensions/quartz/runtime/pom.xml
@@ -53,14 +53,15 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-quartz</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.mchange</groupId>
-            <artifactId>c3p0</artifactId>
-        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-agroal</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.graalvm.nativeimage</groupId>
+            <artifactId>svm</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/graal/QuartzSubstitutions.java b/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/graal/QuartzSubstitutions.java
new file mode 100644
index 0000000000..5cf282f74e
--- /dev/null
+++ b/extensions/quartz/runtime/src/main/java/org/apache/camel/quarkus/component/quartz/graal/QuartzSubstitutions.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.quartz.graal;
+
+import java.io.ByteArrayOutputStream;
+import java.sql.Blob;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.function.BooleanSupplier;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.quartz.impl.jdbcjobstore.CUBRIDDelegate;
+
+public final class QuartzSubstitutions {
+}
+
+// Cuts out unwanted references to C3P0ProxyConnection if c3p0 not on the classpath
+@TargetClass(value = CUBRIDDelegate.class, onlyWith = C3p0IsAbsent.class)
+final class SubstituteCUBRIDDelegate {
+    @Substitute
+    protected void setBytes(PreparedStatement ps, int index, ByteArrayOutputStream baos)
+            throws SQLException {
+
+        byte[] byteArray;
+        if (baos == null) {
+            byteArray = new byte[0];
+        } else {
+            byteArray = baos.toByteArray();
+        }
+
+        Blob blob = ps.getConnection().createBlob();
+        blob.setBytes(1, byteArray);
+        ps.setBlob(index, blob);
+    }
+}
+
+final class C3p0IsAbsent implements BooleanSupplier {
+    @Override
+    public boolean getAsBoolean() {
+        try {
+            Thread.currentThread().getContextClassLoader().loadClass("com.mchange.v2.c3p0.C3P0ProxyConnection");
+            return false;
+        } catch (ClassNotFoundException e) {
+            return true;
+        }
+    }
+}
diff --git a/pom.xml b/pom.xml
index f96b4b1f3d..4c66387631 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,6 @@
         <aws-java-sdk.version>1.11.714</aws-java-sdk.version>
         <azure-sdk-bom.version>1.0.5</azure-sdk-bom.version><!-- Keep in sync with camel-azure component versions -->
         <bouncycastle.version>1.70</bouncycastle.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.bouncycastle:bcprov-jdk15on -->
-        <c3p0.version>${c3p0-version}</c3p0.version>
         <commons-beanutils.version>${commons-beanutils-version}</commons-beanutils.version>
         <commons-cli.version>1.4</commons-cli.version><!-- keep in sync with Quarkus, via quarkus-bootstrap-core -->
         <commons-collections.version>3.2.2</commons-collections.version><!-- used by hbase, should be pretty stable as commons-collections are not developed actively anymore -->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 6e2420801a..1426b4522f 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -9733,11 +9733,6 @@
                 <artifactId>core</artifactId>
                 <version>${zxing.version}</version>
             </dependency>
-            <dependency>
-                <groupId>com.mchange</groupId>
-                <artifactId>c3p0</artifactId>
-                <version>${c3p0.version}</version>
-            </dependency>
             <dependency>
                 <groupId>com.orbitz.consul</groupId>
                 <artifactId>consul-client</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index 17b27512a1..0cde23ceb3 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -9675,11 +9675,6 @@
         <artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.3.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
-      <dependency>
-        <groupId>com.mchange</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>c3p0</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>0.9.5.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
       <dependency>
         <groupId>com.orbitz.consul</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>consul-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 1ee823456a..a4060469f8 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -9675,11 +9675,6 @@
         <artifactId>core</artifactId>
         <version>3.3.3</version>
       </dependency>
-      <dependency>
-        <groupId>com.mchange</groupId>
-        <artifactId>c3p0</artifactId>
-        <version>0.9.5.5</version>
-      </dependency>
       <dependency>
         <groupId>com.orbitz.consul</groupId>
         <artifactId>consul-client</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index 1fd4626071..de1ae24114 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -9675,11 +9675,6 @@
         <artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.3.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
-      <dependency>
-        <groupId>com.mchange</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>c3p0</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>0.9.5.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
       <dependency>
         <groupId>com.orbitz.consul</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>consul-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->


[camel-quarkus] 05/06: Fix MockEndpoint usage in gRPC tests

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit f84498aa94f879127cef878d5713d759ee185d5d
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Apr 27 07:58:01 2022 +0100

    Fix MockEndpoint usage in gRPC tests
---
 integration-tests/grpc/pom.xml                     |   8 ++
 .../quarkus/component/grpc/it/GrpcResource.java    | 124 +++++++++++----------
 .../camel/quarkus/component/grpc/it/GrpcRoute.java |  16 ++-
 .../component/grpc/it/MessageOriginProcessor.java  |  38 +++++++
 .../camel/quarkus/component/grpc/it/GrpcTest.java  |  91 ++++++++++++---
 5 files changed, 202 insertions(+), 75 deletions(-)

diff --git a/integration-tests/grpc/pom.xml b/integration-tests/grpc/pom.xml
index 4cf066b02c..87885a21ab 100644
--- a/integration-tests/grpc/pom.xml
+++ b/integration-tests/grpc/pom.xml
@@ -55,6 +55,10 @@
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
 
         <!-- test dependencies -->
         <dependency>
@@ -78,6 +82,10 @@
             <artifactId>camel-quarkus-integration-test-support</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcResource.java b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcResource.java
index 3b14996fb8..21f91258f9 100644
--- a/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcResource.java
+++ b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcResource.java
@@ -16,7 +16,9 @@
  */
 package org.apache.camel.quarkus.component.grpc.it;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
@@ -35,11 +37,6 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.quarkus.component.grpc.it.model.PingRequest;
 import org.apache.camel.quarkus.component.grpc.it.model.PongResponse;
 
-import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_HEADER;
-import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_COMPLETED;
-import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_ERROR;
-import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_NEXT;
-import static org.apache.camel.component.grpc.GrpcConstants.GRPC_METHOD_NAME_HEADER;
 import static org.apache.camel.quarkus.component.grpc.it.GrpcRoute.PING_PONG_SERVICE;
 
 @Path("/grpc")
@@ -69,96 +66,107 @@ public class GrpcResource {
 
     @Path("/forwardOnCompleted")
     @GET
-    public void forwardOnCompleted() throws InterruptedException {
-        MockEndpoint endpoint = context.getEndpoint("mock:forwardOnCompleted", MockEndpoint.class);
-        endpoint.expectedMessageCount(1);
-        endpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_EVENT_TYPE_HEADER, GRPC_EVENT_TYPE_ON_COMPLETED);
-        endpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_METHOD_NAME_HEADER, "pingAsyncAsync");
-        endpoint.assertIsSatisfied(5000L);
+    @Produces(MediaType.APPLICATION_JSON)
+    public Map<String, Object> forwardOnCompleted() throws InterruptedException {
+        MockEndpoint mockEndpoint = context.getEndpoint("mock:forwardOnCompleted", MockEndpoint.class);
+        List<Exchange> exchanges = mockEndpoint.getExchanges();
+        if (!exchanges.isEmpty()) {
+            Exchange exchange = exchanges.get(0);
+            return exchange.getMessage().getHeaders();
+        }
+        return Collections.emptyMap();
     }
 
     @Path("/forwardOnError")
     @GET
-    public String forwardOnError() throws InterruptedException {
-        MockEndpoint endpoint = context.getEndpoint("mock:forwardOnError", MockEndpoint.class);
-        endpoint.expectedMessageCount(1);
-        endpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_EVENT_TYPE_HEADER, GRPC_EVENT_TYPE_ON_ERROR);
-        endpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_METHOD_NAME_HEADER, "pingAsyncAsync");
-        endpoint.assertIsSatisfied(5000L);
-
-        List<Exchange> exchanges = endpoint.getExchanges();
-        Exchange exchange = exchanges.get(0);
-        Throwable throwable = exchange.getMessage().getBody(Throwable.class);
-        return throwable.getClass().getName();
+    @Produces(MediaType.APPLICATION_JSON)
+    public Map<String, Object> forwardOnError() throws InterruptedException {
+        MockEndpoint mockEndpoint = context.getEndpoint("mock:forwardOnError", MockEndpoint.class);
+        List<Exchange> exchanges = mockEndpoint.getExchanges();
+        if (!exchanges.isEmpty()) {
+            Exchange exchange = exchanges.get(0);
+            Throwable throwable = exchange.getMessage().getBody(Throwable.class);
+            Map<String, Object> results = exchange.getMessage().getHeaders();
+            results.put("error", throwable.getClass().getName());
+            return results;
+        }
+        return Collections.emptyMap();
     }
 
     @Path("/grpcStreamReplies")
     @GET
     public void grpcStreamReplies() throws InterruptedException {
         int messageCount = 10;
+        MockEndpoint endpoint = context.getEndpoint("mock:grpcStreamReplies", MockEndpoint.class);
+        endpoint.expectedMessageCount(messageCount);
+
         for (int i = 1; i <= messageCount; i++) {
             PingRequest request = PingRequest.newBuilder().setPingName(String.valueOf(i)).build();
             producerTemplate.sendBody("direct:grpcStream", request);
         }
 
-        MockEndpoint endpoint = context.getEndpoint("mock:grpcStreamReplies", MockEndpoint.class);
-        endpoint.expectedMessageCount(messageCount);
         endpoint.assertIsSatisfied();
     }
 
     @Path("/tls")
     @GET
-    public void tlsConsumer() throws InterruptedException {
+    @Produces(MediaType.APPLICATION_JSON)
+    public Map<String, Object> tlsConsumer() throws InterruptedException {
         MockEndpoint mockEndpoint = context.getEndpoint("mock:tls", MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        mockEndpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_EVENT_TYPE_HEADER, GRPC_EVENT_TYPE_ON_NEXT);
-        mockEndpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_METHOD_NAME_HEADER, "pingAsyncSync");
-        mockEndpoint.assertIsSatisfied();
+        List<Exchange> exchanges = mockEndpoint.getExchanges();
+        if (!exchanges.isEmpty()) {
+            Exchange exchange = exchanges.get(0);
+            return exchange.getMessage().getHeaders();
+        }
+        return Collections.emptyMap();
     }
 
     @Path("/tls")
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     public String tlsProducer(String message) {
-        MockEndpoint mockEndpoint = context.getEndpoint("mock:tls", MockEndpoint.class);
-        try {
-            PingRequest pingRequest = PingRequest.newBuilder()
-                    .setPingName(message)
-                    .setPingId(12345)
-                    .build();
-
-            PongResponse response = producerTemplate.requestBody("direct:sendTls", pingRequest, PongResponse.class);
-            return response.getPongName();
-        } finally {
-            mockEndpoint.reset();
-        }
+        PingRequest pingRequest = PingRequest.newBuilder()
+                .setPingName(message)
+                .setPingId(12345)
+                .build();
+
+        PongResponse response = producerTemplate.requestBodyAndHeader(
+                "direct:sendTls",
+                pingRequest,
+                "origin",
+                "producer",
+                PongResponse.class);
+        return response.getPongName();
     }
 
     @Path("/jwt")
     @GET
-    public void jwtConsumer() throws InterruptedException {
+    @Produces(MediaType.APPLICATION_JSON)
+    public Map<String, Object> jwtConsumer() throws InterruptedException {
         MockEndpoint mockEndpoint = context.getEndpoint("mock:jwt", MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        mockEndpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_EVENT_TYPE_HEADER, GRPC_EVENT_TYPE_ON_NEXT);
-        mockEndpoint.expectedHeaderValuesReceivedInAnyOrder(GRPC_METHOD_NAME_HEADER, "pingAsyncSync");
-        mockEndpoint.assertIsSatisfied();
+        List<Exchange> exchanges = mockEndpoint.getExchanges();
+        if (!exchanges.isEmpty()) {
+            Exchange exchange = exchanges.get(0);
+            return exchange.getMessage().getHeaders();
+        }
+        return Collections.emptyMap();
     }
 
     @Path("/jwt")
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     public String jwtProducer(String message) {
-        MockEndpoint mockEndpoint = context.getEndpoint("mock:jwt", MockEndpoint.class);
-        try {
-            PingRequest pingRequest = PingRequest.newBuilder()
-                    .setPingName(message)
-                    .setPingId(12345)
-                    .build();
-
-            PongResponse response = producerTemplate.requestBody("direct:sendJwt", pingRequest, PongResponse.class);
-            return response.getPongName();
-        } finally {
-            mockEndpoint.reset();
-        }
+        PingRequest pingRequest = PingRequest.newBuilder()
+                .setPingName(message)
+                .setPingId(12345)
+                .build();
+
+        PongResponse response = producerTemplate.requestBodyAndHeader(
+                "direct:sendJwt",
+                pingRequest,
+                "origin",
+                "producer",
+                PongResponse.class);
+        return response.getPongName();
     }
 }
diff --git a/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcRoute.java b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcRoute.java
index c9b083813a..ace3285a62 100644
--- a/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcRoute.java
+++ b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/GrpcRoute.java
@@ -79,8 +79,14 @@ public class GrpcRoute extends RouteBuilder {
                 + "/%s?consumerStrategy=PROPAGATION&"
                 + "negotiationType=TLS&keyCertChainResource=certs/server.pem&"
                 + "keyResource=certs/server.key&trustCertCollectionResource=certs/ca.pem", PING_PONG_SERVICE)
+                        .process("messageOriginProcessor")
+                        .choice()
+                        .when(simple("${header.origin} == 'producer'"))
+                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse")
+                        .endChoice()
+                        .otherwise()
                         .to("mock:tls")
-                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse");
+                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse").endChoice();
 
         from("direct:sendTls")
                 .toF("grpc://localhost:{{camel.grpc.test.tls.server.port}}"
@@ -91,8 +97,14 @@ public class GrpcRoute extends RouteBuilder {
         fromF("grpc://localhost:{{camel.grpc.test.jwt.server.port}}"
                 + "/%s?consumerStrategy=PROPAGATION&"
                 + "authenticationType=JWT&jwtSecret=%s", PING_PONG_SERVICE, GRPC_JWT_SECRET)
+                        .process("messageOriginProcessor")
+                        .choice()
+                        .when(simple("${header.origin} == 'producer'"))
+                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse")
+                        .endChoice()
+                        .otherwise()
                         .to("mock:jwt")
-                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse");
+                        .bean(new GrpcMessageBuilder(), "buildAsyncPongResponse").endChoice();
 
         from("direct:sendJwt")
                 .toF("grpc://localhost:{{camel.grpc.test.jwt.server.port}}"
diff --git a/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/MessageOriginProcessor.java b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/MessageOriginProcessor.java
new file mode 100644
index 0000000000..47832337b5
--- /dev/null
+++ b/integration-tests/grpc/src/main/java/org/apache/camel/quarkus/component/grpc/it/MessageOriginProcessor.java
@@ -0,0 +1,38 @@
+/*
+ * 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.grpc.it;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.quarkus.component.grpc.it.model.PingRequest;
+
+@Singleton
+@Named
+public class MessageOriginProcessor implements Processor {
+    @Override
+    public void process(Exchange exchange) {
+        Message message = exchange.getMessage();
+        PingRequest request = message.getBody(PingRequest.class);
+        if (request.getPingName().endsWith("producer")) {
+            message.setHeader("origin", "producer");
+        }
+    }
+}
diff --git a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java
index 6498810bba..eaae495205 100644
--- a/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java
+++ b/integration-tests/grpc/src/test/java/org/apache/camel/quarkus/component/grpc/it/GrpcTest.java
@@ -28,6 +28,7 @@ import io.grpc.stub.StreamObserver;
 import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
+import io.restassured.path.json.JsonPath;
 import org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm;
 import org.apache.camel.component.grpc.auth.jwt.JwtCallCredentials;
 import org.apache.camel.component.grpc.auth.jwt.JwtHelper;
@@ -35,12 +36,18 @@ import org.apache.camel.quarkus.component.grpc.it.model.PingPongGrpc;
 import org.apache.camel.quarkus.component.grpc.it.model.PingPongGrpc.PingPongBlockingStub;
 import org.apache.camel.quarkus.component.grpc.it.model.PingRequest;
 import org.apache.camel.quarkus.component.grpc.it.model.PongResponse;
+import org.awaitility.Awaitility;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
+import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_HEADER;
+import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_COMPLETED;
+import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_ERROR;
+import static org.apache.camel.component.grpc.GrpcConstants.GRPC_EVENT_TYPE_ON_NEXT;
+import static org.apache.camel.component.grpc.GrpcConstants.GRPC_METHOD_NAME_HEADER;
 import static org.apache.camel.quarkus.component.grpc.it.GrpcRoute.GRPC_JWT_SECRET;
 import static org.apache.camel.quarkus.component.grpc.it.PingPongImpl.GRPC_TEST_PONG_VALUE;
 import static org.hamcrest.Matchers.equalTo;
@@ -109,9 +116,22 @@ class GrpcTest {
 
             latch.await(5, TimeUnit.SECONDS);
 
-            RestAssured.get("/grpc/forwardOnCompleted")
-                    .then()
-                    .statusCode(204);
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+                JsonPath json = RestAssured.get("/grpc/forwardOnCompleted")
+                        .then()
+                        .statusCode(200)
+                        .extract()
+                        .body()
+                        .jsonPath();
+
+                String eventType = json.getString(GRPC_EVENT_TYPE_HEADER);
+                String methodName = json.getString(GRPC_METHOD_NAME_HEADER);
+
+                return eventType != null
+                        && eventType.equals(GRPC_EVENT_TYPE_ON_COMPLETED)
+                        && methodName != null
+                        && methodName.equals("pingAsyncAsync");
+            });
         } finally {
             channel.shutdownNow();
         }
@@ -133,10 +153,25 @@ class GrpcTest {
 
             latch.await(5, TimeUnit.SECONDS);
 
-            RestAssured.get("/grpc/forwardOnError")
-                    .then()
-                    .statusCode(200)
-                    .body(is(StatusRuntimeException.class.getName()));
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+                JsonPath json = RestAssured.get("/grpc/forwardOnError")
+                        .then()
+                        .statusCode(200)
+                        .extract()
+                        .body()
+                        .jsonPath();
+
+                String eventType = json.getString(GRPC_EVENT_TYPE_HEADER);
+                String methodName = json.getString(GRPC_METHOD_NAME_HEADER);
+                String error = json.getString("error");
+
+                return error != null
+                        && error.equals(StatusRuntimeException.class.getName())
+                        && eventType != null
+                        && eventType.equals(GRPC_EVENT_TYPE_ON_ERROR)
+                        && methodName != null
+                        && methodName.equals("pingAsyncAsync");
+            });
         } finally {
             channel.shutdownNow();
         }
@@ -205,9 +240,22 @@ class GrpcTest {
             requestObserver.onNext(pingRequest);
             latch.await(5, TimeUnit.SECONDS);
 
-            RestAssured.get("/grpc/tls")
-                    .then()
-                    .statusCode(204);
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+                JsonPath json = RestAssured.get("/grpc/tls")
+                        .then()
+                        .statusCode(200)
+                        .extract()
+                        .body()
+                        .jsonPath();
+
+                String eventType = json.getString(GRPC_EVENT_TYPE_HEADER);
+                String methodName = json.getString(GRPC_METHOD_NAME_HEADER);
+
+                return eventType != null
+                        && eventType.equals(GRPC_EVENT_TYPE_ON_NEXT)
+                        && methodName != null
+                        && methodName.equals("pingAsyncSync");
+            });
 
             PongResponse pongResponse = responseObserver.getPongResponse();
             assertNotNull(pongResponse);
@@ -222,7 +270,7 @@ class GrpcTest {
 
     @Test
     public void tlsProducer() {
-        String message = GRPC_TEST_PING_VALUE + " TLS";
+        String message = GRPC_TEST_PING_VALUE + " TLS producer";
         RestAssured.given()
                 .body(message)
                 .post("/grpc/tls")
@@ -255,9 +303,22 @@ class GrpcTest {
             requestObserver.onNext(pingRequest);
             latch.await(5, TimeUnit.SECONDS);
 
-            RestAssured.get("/grpc/jwt")
-                    .then()
-                    .statusCode(204);
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+                JsonPath json = RestAssured.get("/grpc/jwt")
+                        .then()
+                        .statusCode(200)
+                        .extract()
+                        .body()
+                        .jsonPath();
+
+                String eventType = json.getString(GRPC_EVENT_TYPE_HEADER);
+                String methodName = json.getString(GRPC_METHOD_NAME_HEADER);
+
+                return eventType != null
+                        && eventType.equals(GRPC_EVENT_TYPE_ON_NEXT)
+                        && methodName != null
+                        && methodName.equals("pingAsyncSync");
+            });
 
             PongResponse pongResponse = responseObserver.getPongResponse();
             assertNotNull(pongResponse);
@@ -272,7 +333,7 @@ class GrpcTest {
 
     @Test
     public void jwtProducer() {
-        String message = GRPC_TEST_PING_VALUE + " JWT";
+        String message = GRPC_TEST_PING_VALUE + " JWT producer";
         RestAssured.given()
                 .body(message)
                 .post("/grpc/jwt")


[camel-quarkus] 01/06: Fix MockEndpoint usage in Infinispan tests

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 049bdea809b8663d53c42d2ed5c7b4c28765367c
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Apr 25 15:49:02 2022 +0100

    Fix MockEndpoint usage in Infinispan tests
---
 .../component/infinispan/InfinispanResources.java  | 119 +++++++++++----------
 .../component/infinispan/InfinispanRoutes.java     |  16 +--
 .../component/infinispan/InfinispanTest.java       |  54 +++-------
 3 files changed, 81 insertions(+), 108 deletions(-)

diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
index d852091953..8ffc16dee1 100644
--- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
+++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
@@ -20,10 +20,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
@@ -82,13 +85,25 @@ public class InfinispanResources {
     }
 
     @Path("/aggregate")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public void aggregate(@QueryParam("component") String component, String content) {
-        String uri = component.equals("infinispan") ? "direct:camelAggregation" : "direct:quarkusAggregation";
-        Map<String, Object> headers = getCommonHeaders(component);
-        headers.put(CORRELATOR_HEADER, CORRELATOR_HEADER);
-        template.sendBodyAndHeaders(uri, content, headers);
+    @GET
+    public void aggregate(@QueryParam("component") String component) throws InterruptedException {
+        String mockEndpointUri = component.equals("infinispan") ? "mock:camelAggregationResult"
+                : "mock:quarkusAggregationResult";
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(2);
+        mockEndpoint.expectedBodiesReceived(1 + 3 + 4 + 5, 6 + 7 + 20 + 21);
+
+        try {
+            String uri = component.equals("infinispan") ? "direct:camelAggregation" : "direct:quarkusAggregation";
+            Map<String, Object> headers = getCommonHeaders(component);
+            headers.put(CORRELATOR_HEADER, CORRELATOR_HEADER);
+
+            Stream.of(1, 3, 4, 5, 6, 7, 20, 21).forEach(value -> template.sendBodyAndHeaders(uri, value, headers));
+
+            mockEndpoint.assertIsSatisfied(15000);
+        } finally {
+            mockEndpoint.reset();
+        }
     }
 
     @Path("/clear")
@@ -141,6 +156,27 @@ public class InfinispanResources {
         return template.requestBodyAndHeaders("direct:containsValue", value, headers, Boolean.class);
     }
 
+    @Path("/event/verify")
+    @GET
+    public void listener(
+            @QueryParam("component") String component,
+            @QueryParam("mockEndpointUri") String mockEndpointUri,
+            String content) throws InterruptedException {
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(1);
+        mockEndpoint.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CLIENT_CACHE_ENTRY_CREATED");
+        mockEndpoint.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
+        mockEndpoint.message(0).header(InfinispanConstants.KEY).isEqualTo("the-key");
+
+        try {
+            Map<String, Object> headers = getCommonHeaders(component);
+            template.sendBodyAndHeaders("direct:put", content, headers);
+            mockEndpoint.assertIsSatisfied(5000);
+        } finally {
+            mockEndpoint.reset();
+        }
+    }
+
     @Path("/get")
     @GET
     @Produces(MediaType.TEXT_PLAIN)
@@ -198,16 +234,25 @@ public class InfinispanResources {
     }
 
     @Path("/putIdempotent")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public void putIdempotent(
-            @QueryParam("component") String component,
-            @QueryParam("messageId") String messageId,
-            String content) {
+    @GET
+    public void putIdempotent(@QueryParam("component") String component) throws InterruptedException {
+        String mockEndpointUri = component.equals("infinispan") ? "mock:camelResultIdempotent" : "mock:quarkusResultIdempotent";
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(1);
+
+        String messageId = UUID.randomUUID().toString();
         String uri = component.equals("infinispan") ? "direct:camelIdempotent" : "direct:quarkusIdempotent";
-        Map<String, Object> headers = getCommonHeaders(component);
-        headers.put("MessageId", messageId);
-        template.sendBodyAndHeaders(uri, content, headers);
+        try {
+            IntStream.of(1, 10).forEach(value -> {
+                Map<String, Object> headers = getCommonHeaders(component);
+                headers.put("MessageId", messageId);
+                template.sendBodyAndHeaders(uri, "Message " + value, headers);
+            });
+
+            mockEndpoint.assertIsSatisfied(5000);
+        } finally {
+            mockEndpoint.reset();
+        }
     }
 
     @Path("/putIfAbsent")
@@ -305,48 +350,6 @@ public class InfinispanResources {
         return statistics.getIntStatistic(ServerStatistics.CURRENT_NR_OF_ENTRIES);
     }
 
-    @Path("/mock/aggregation/results")
-    @GET
-    public void assertMockEndpointAggregationResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(2);
-        mockEndpoint.expectedBodiesReceived(1 + 3 + 4 + 5, 6 + 7 + 20 + 21);
-
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
-    @Path("/mock/event/results")
-    @GET
-    public void assertMockEndpointEventResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        mockEndpoint.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CLIENT_CACHE_ENTRY_CREATED");
-        mockEndpoint.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        mockEndpoint.message(0).header(InfinispanConstants.KEY).isEqualTo("test-key");
-
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
-    @Path("/mock/idempotent/results")
-    @GET
-    public void assertMockEndpointIdempotentResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
     @POST
     @Path("consumer/{routeId}/{enabled}")
     public void manageRoute(
diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
index e9476d72b3..7a172a153e 100644
--- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
+++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
@@ -164,7 +164,7 @@ public class InfinispanRoutes extends RouteBuilder {
         from("infinispan:camel?eventTypes=CLIENT_CACHE_ENTRY_CREATED")
                 .id("infinispan-events")
                 .autoStartup(false)
-                .to("mock:resultCreated");
+                .to("mock:camelResultCreated");
 
         // Only start aggregation repository routes in JVM mode
         if (!"executable".equals(System.getProperty("org.graalvm.nativeimage.kind"))) {
@@ -173,38 +173,38 @@ public class InfinispanRoutes extends RouteBuilder {
                     .aggregationRepository(createAggregationRepository("infinispan"))
                     .aggregationStrategy(createAggregationStrategy())
                     .completionSize(COMPLETION_SIZE)
-                    .to("mock:aggregationResult");
+                    .to("mock:camelAggregationResult");
 
             from("direct:quarkusAggregation")
                     .aggregate(header(CORRELATOR_HEADER))
                     .aggregationRepository(createAggregationRepository("infinispan-quarkus"))
                     .aggregationStrategy(createAggregationStrategy())
                     .completionSize(COMPLETION_SIZE)
-                    .to("mock:aggregationResult");
+                    .to("mock:quarkusAggregationResult");
         }
 
         from("direct:camelIdempotent")
                 .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan"))
-                .to("mock:resultIdempotent");
+                .to("mock:camelResultIdempotent");
 
         from("direct:quarkusIdempotent")
                 .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan-quarkus"))
-                .to("mock:resultIdempotent");
+                .to("mock:quarkusResultIdempotent");
 
         from("infinispan-quarkus:quarkus?eventTypes=CLIENT_CACHE_ENTRY_CREATED")
                 .id("infinispan-quarkus-events")
                 .autoStartup(false)
-                .to("mock:resultCreated");
+                .to("mock:quarkusResultCreated");
 
         from("infinispan:camel?customListener=#customListener")
                 .id("infinispan-custom-listener")
                 .autoStartup(false)
-                .to("mock:resultCustomListener");
+                .to("mock:camelResultCustomListener");
 
         from("infinispan-quarkus:quarkus?customListener=#customListener")
                 .id("infinispan-quarkus-custom-listener")
                 .autoStartup(false)
-                .to("mock:resultCustomListener");
+                .to("mock:quarkusResultCustomListener");
     }
 
     @Named("infinispan-quarkus")
diff --git a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
index c39731c5e7..50f95f9633 100644
--- a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
+++ b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.quarkus.component.infinispan;
 
-import java.util.UUID;
-import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import io.quarkus.test.common.QuarkusTestResource;
@@ -68,19 +66,9 @@ public class InfinispanTest {
         // the default configured ProtoStreamMarshaller, thus we avoid doing it in this test suite
         Assumptions.assumeTrue(componentName.equals("infinispan"));
 
-        Stream.of(1, 3, 4, 5, 6, 7, 20, 21)
-                .forEach(value -> {
-                    RestAssured.with()
-                            .queryParam("component", componentName)
-                            .body(value)
-                            .post("/infinispan/aggregate")
-                            .then()
-                            .statusCode(204);
-                });
-
         RestAssured.with()
-                .queryParam("uri", "mock:aggregationResult")
-                .get("/infinispan/mock/aggregation/results")
+                .queryParam("component", componentName)
+                .get("/infinispan/aggregate")
                 .then()
                 .statusCode(204);
     }
@@ -203,16 +191,13 @@ public class InfinispanTest {
                 .statusCode(204);
 
         try {
+            String mockEndpointUri = componentName.equals("infinispan") ? "mock:camelResultCustomListener"
+                    : "mock:quarkusResultCustomListener";
             RestAssured.with()
                     .queryParam("component", componentName)
+                    .queryParam("mockEndpointUri", mockEndpointUri)
                     .body("Hello " + componentName)
-                    .post("/infinispan/put")
-                    .then()
-                    .statusCode(204);
-
-            RestAssured.with()
-                    .queryParam("uri", "mock:resultCustomListener")
-                    .get("/infinispan/mock/event/results")
+                    .get("/infinispan/event/verify")
                     .then()
                     .statusCode(204);
         } finally {
@@ -234,16 +219,13 @@ public class InfinispanTest {
                 .statusCode(204);
 
         try {
+            String mockEndpointUri = componentName.equals("infinispan") ? "mock:camelResultCreated"
+                    : "mock:quarkusResultCreated";
             RestAssured.with()
                     .queryParam("component", componentName)
+                    .queryParam("mockEndpointUri", mockEndpointUri)
                     .body("Hello " + componentName)
-                    .post("/infinispan/put")
-                    .then()
-                    .statusCode(204);
-
-            RestAssured.with()
-                    .queryParam("uri", "mock:resultCreated")
-                    .get("/infinispan/mock/event/results")
+                    .get("/infinispan/event/verify")
                     .then()
                     .statusCode(204);
         } finally {
@@ -283,21 +265,9 @@ public class InfinispanTest {
     @ParameterizedTest
     @MethodSource("componentNames")
     public void idempotent(String componentName) {
-        String messageId = UUID.randomUUID().toString();
-
-        IntStream.of(1, 10).forEach(value -> {
-            RestAssured.with()
-                    .queryParam("component", componentName)
-                    .queryParam("messageId", messageId)
-                    .body("Message " + value)
-                    .post("/infinispan/putIdempotent")
-                    .then()
-                    .statusCode(204);
-        });
-
         RestAssured.with()
-                .queryParam("uri", "mock:resultIdempotent")
-                .get("/infinispan/mock/idempotent/results")
+                .queryParam("component", componentName)
+                .get("/infinispan/putIdempotent")
                 .then()
                 .statusCode(204);
     }


[camel-quarkus] 03/06: Minor tidy up of Quartz extension documentation

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 794fdc60d67d79293e2e5d9edfc12f039682bdc6
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Apr 26 09:51:41 2022 +0100

    Minor tidy up of Quartz extension documentation
---
 docs/modules/ROOT/pages/reference/extensions/quartz.adoc | 4 ++--
 extensions/quartz/runtime/src/main/doc/usage.adoc        | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/quartz.adoc b/docs/modules/ROOT/pages/reference/extensions/quartz.adoc
index 196d77f330..d067263645 100644
--- a/docs/modules/ROOT/pages/reference/extensions/quartz.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/quartz.adoc
@@ -56,8 +56,8 @@ This is the preferred option. Follow the https://quarkus.io/guides/quartz[schedu
 
 Follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] with different DS configuration:
 
-- Use `quartz.properties` to configure `JobStore`.
-- Define datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as `ConnectionProvider` in `quartz.properties`:
+- Use `quartz.properties` to configure the `JobStore`.
+- Define a datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as the `ConnectionProvider` in `quartz.properties`:
 
 ```
 ...
diff --git a/extensions/quartz/runtime/src/main/doc/usage.adoc b/extensions/quartz/runtime/src/main/doc/usage.adoc
index 0d34bbf5d3..9f88f6dbe3 100644
--- a/extensions/quartz/runtime/src/main/doc/usage.adoc
+++ b/extensions/quartz/runtime/src/main/doc/usage.adoc
@@ -13,8 +13,8 @@ This is the preferred option. Follow the https://quarkus.io/guides/quartz[schedu
 
 Follow the http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html#configure-clustering-with-jdbc-jobstore[Configure Clustering with JDBC-JobStore Guide] with different DS configuration:
 
-- Use `quartz.properties` to configure `JobStore`.
-- Define datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as `ConnectionProvider` in `quartz.properties`:
+- Use `quartz.properties` to configure the `JobStore`.
+- Define a datasource via quarkus (see the https://quarkus.io/guides/datasource[Quarkus datasource documentation)] and use `CamelQuarkusQuartzConnectionProvider` as the `ConnectionProvider` in `quartz.properties`:
 
 ```
 ...


[camel-quarkus] 04/06: Avoid usage of com.mchange.io.FileUtils

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.7.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit f6ae10dfc91ab6cacb777455262234e13f4c5049
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Apr 26 11:13:02 2022 +0100

    Avoid usage of com.mchange.io.FileUtils
---
 .../java/org/apache/camel/quarkus/component/file/it/FileResource.java  | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
index 3f2ee8739c..ce7586f0c2 100644
--- a/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
+++ b/integration-tests/file/src/main/java/org/apache/camel/quarkus/component/file/it/FileResource.java
@@ -39,7 +39,6 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.mchange.io.FileUtils;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.Exchange;
@@ -166,7 +165,7 @@ public class FileResource {
         });
         Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> {
             File file = new File("target/charsetIsoWrite/charsetEncodedFile.txt");
-            return Arrays.equals(encodedContent, FileUtils.getBytes(file));
+            return Arrays.equals(encodedContent, Files.readAllBytes(file.toPath()));
         });
 
         // Move the encoded file to the read folder