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

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

commit 7ca801a652f411dadb4fd07bfd5fb96639da1bc0
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Thu Jun 25 14:53:09 2020 +0100

    Ensure Quarkus Vertx instance is set on the camel component when not using 
camel-quarkus-main
---
 .../component/vertx/deployment/VertxProcessor.java | 11 +++++---
 .../component/vertx/CamelVertxRecorder.java        | 30 ++++++++--------------
 .../quarkus/component/vertx/it/VertxResource.java  | 18 +++++++++++++
 .../quarkus/component/vertx/it/VertxTest.java      |  8 ++++++
 4 files changed, 45 insertions(+), 22 deletions(-)

diff --git 
a/extensions/vertx/deployment/src/main/java/org/apache/camel/quarkus/component/vertx/deployment/VertxProcessor.java
 
b/extensions/vertx/deployment/src/main/java/org/apache/camel/quarkus/component/vertx/deployment/VertxProcessor.java
index ef8971f..4ad69b7 100644
--- 
a/extensions/vertx/deployment/src/main/java/org/apache/camel/quarkus/component/vertx/deployment/VertxProcessor.java
+++ 
b/extensions/vertx/deployment/src/main/java/org/apache/camel/quarkus/component/vertx/deployment/VertxProcessor.java
@@ -17,9 +17,12 @@
 package org.apache.camel.quarkus.component.vertx.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.vertx.deployment.VertxBuildItem;
-import io.vertx.core.Vertx;
+import org.apache.camel.component.vertx.VertxComponent;
+import org.apache.camel.quarkus.component.vertx.CamelVertxRecorder;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeBeanBuildItem;
 
 class VertxProcessor {
@@ -31,8 +34,10 @@ class VertxProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    @Record(ExecutionTime.RUNTIME_INIT)
     @BuildStep
-    CamelRuntimeBeanBuildItem configureVertxRegistryBean(VertxBuildItem vertx) 
{
-        return new CamelRuntimeBeanBuildItem("vertx", Vertx.class.getName(), 
vertx.getVertx());
+    CamelRuntimeBeanBuildItem configureVertxRegistryBean(CamelVertxRecorder 
recorder, VertxBuildItem vertx) {
+        return new CamelRuntimeBeanBuildItem("vertx", 
VertxComponent.class.getName(),
+                recorder.createVertxComponent(vertx.getVertx()));
     }
 }
diff --git 
a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
 
b/extensions/vertx/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/CamelVertxRecorder.java
similarity index 56%
copy from 
integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
copy to 
extensions/vertx/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/CamelVertxRecorder.java
index ea284e8..d9f2c36 100644
--- 
a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
+++ 
b/extensions/vertx/runtime/src/main/java/org/apache/camel/quarkus/component/vertx/CamelVertxRecorder.java
@@ -14,27 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.vertx.it;
+package org.apache.camel.quarkus.component.vertx;
 
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import io.restassured.http.ContentType;
-import org.junit.jupiter.api.Test;
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import io.vertx.core.Vertx;
+import org.apache.camel.component.vertx.VertxComponent;
 
-import static org.hamcrest.Matchers.is;
+@Recorder
+public class CamelVertxRecorder {
 
-@QuarkusTest
-class VertxTest {
-
-    @Test
-    public void testVertxComponent() {
-        String message = "Camel Quarkus Vert.x";
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .body(message)
-                .post("/vertx/post")
-                .then()
-                .statusCode(201)
-                .body(is("Hello " + message));
+    public RuntimeValue<VertxComponent> 
createVertxComponent(RuntimeValue<Vertx> vertx) {
+        VertxComponent component = new VertxComponent();
+        component.setVertx(vertx.getValue());
+        return new RuntimeValue<>(component);
     }
 }
diff --git 
a/integration-tests/vertx/src/main/java/org/apache/camel/quarkus/component/vertx/it/VertxResource.java
 
b/integration-tests/vertx/src/main/java/org/apache/camel/quarkus/component/vertx/it/VertxResource.java
index 33507a8..4045ef3 100644
--- 
a/integration-tests/vertx/src/main/java/org/apache/camel/quarkus/component/vertx/it/VertxResource.java
+++ 
b/integration-tests/vertx/src/main/java/org/apache/camel/quarkus/component/vertx/it/VertxResource.java
@@ -20,13 +20,17 @@ import java.net.URI;
 
 import javax.inject.Inject;
 import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
+import io.vertx.core.Vertx;
+import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.vertx.VertxComponent;
 
 @Path("/vertx")
 public class VertxResource {
@@ -34,6 +38,12 @@ public class VertxResource {
     @Inject
     ProducerTemplate producerTemplate;
 
+    @Inject
+    CamelContext camelContext;
+
+    @Inject
+    Vertx vertx;
+
     @Path("/post")
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
@@ -42,4 +52,12 @@ public class VertxResource {
         String result = producerTemplate.requestBody("direct:start", message, 
String.class);
         return Response.created(new 
URI("https://camel.apache.org/";)).entity(result).build();
     }
+
+    @Path("/verify/instance")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public boolean quarkusVertxInstanceUsedInVertxComponent() {
+        VertxComponent component = camelContext.getComponent("vertx", 
VertxComponent.class);
+        return component.getVertx() == vertx;
+    }
 }
diff --git 
a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
 
b/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
index ea284e8..3e26e12 100644
--- 
a/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
+++ 
b/integration-tests/vertx/src/test/java/org/apache/camel/quarkus/component/vertx/it/VertxTest.java
@@ -28,6 +28,14 @@ class VertxTest {
 
     @Test
     public void testVertxComponent() {
+        // Verify that the Vertx instance set up by the Quarkus extension
+        // is the one used in the Camel component
+        RestAssured.given()
+                .get("/vertx/verify/instance")
+                .then()
+                .statusCode(200)
+                .body(is("true"));
+
         String message = "Camel Quarkus Vert.x";
         RestAssured.given()
                 .contentType(ContentType.TEXT)

Reply via email to