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/10/31 19:00:34 UTC
[camel-quarkus] 03/19: controlbus: Added action option tests (fixes #4009)
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch 2.13.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit a424a2b118cc4b19071eba1c958e1a845bd5affd
Author: Darren Coleman <dc...@redhat.com>
AuthorDate: Mon Oct 10 11:22:29 2022 +0100
controlbus: Added action option tests (fixes #4009)
---
.../pages/reference/extensions/controlbus.adoc | 25 +++++++
.../runtime/src/main/doc/limitations.adoc | 3 +
.../controlbus/runtime/src/main/doc/usage.adoc | 11 +++
.../foundation/controlbus/pom.xml | 21 ++++++
.../controlbus/it/ControlbusResource.java | 47 +++++++++++--
.../component/controlbus/it/ControlbusRoute.java | 22 +++++-
.../controlbus/it/RestartRoutePolicy.java} | 52 +++++++++------
.../component/controlbus/it/RouteStats.java} | 27 ++------
.../component/controlbus/it/ControlbusTest.java | 78 +++++++++++++++++++++-
.../controlbus-statistics}/pom.xml | 52 ++++++---------
.../controlbus/it/ControlbusResource.java | 17 ++---
.../component/controlbus/it/ControlbusRoute.java | 10 +--
.../component/controlbus/it/ControlbusTest.java | 15 ++---
integration-tests-jvm/pom.xml | 1 +
14 files changed, 271 insertions(+), 110 deletions(-)
diff --git a/docs/modules/ROOT/pages/reference/extensions/controlbus.adoc b/docs/modules/ROOT/pages/reference/extensions/controlbus.adoc
index 6e9bf5ed28..2791345494 100644
--- a/docs/modules/ROOT/pages/reference/extensions/controlbus.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/controlbus.adoc
@@ -44,3 +44,28 @@ Or add the coordinates to your existing project:
ifeval::[{doc-show-user-guide-link} == true]
Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
endif::[]
+
+[id="extensions-controlbus-usage"]
+== Usage
+[id="extensions-controlbus-usage-statistics"]
+=== Statistics
+
+When using the `stats` command endpoint, the `camel-quarkus-management` extension must be added as a project dependency to enable JMX. Maven users will have to add the following to their `pom.xml`:
+
+[source,xml]
+----
+<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-management</artifactId>
+</dependency>
+----
+
+
+[id="extensions-controlbus-camel-quarkus-limitations"]
+== Camel Quarkus limitations
+
+[id="extensions-controlbus-limitations-statistics"]
+=== Statistics
+
+The `stats` action is not available in native mode as JMX is not supported in the Graal VM. Therefore, attempting to build a native image with the `camel-quarkus-management` extension on the classpath will result in a build failure.
+
diff --git a/extensions/controlbus/runtime/src/main/doc/limitations.adoc b/extensions/controlbus/runtime/src/main/doc/limitations.adoc
new file mode 100644
index 0000000000..f168db0742
--- /dev/null
+++ b/extensions/controlbus/runtime/src/main/doc/limitations.adoc
@@ -0,0 +1,3 @@
+=== Statistics
+
+The `stats` action is not available in native mode as JMX is not supported in the Graal VM. Therefore, attempting to build a native image with the `camel-quarkus-management` extension on the classpath will result in a build failure.
\ No newline at end of file
diff --git a/extensions/controlbus/runtime/src/main/doc/usage.adoc b/extensions/controlbus/runtime/src/main/doc/usage.adoc
new file mode 100644
index 0000000000..cbe7cdd4c9
--- /dev/null
+++ b/extensions/controlbus/runtime/src/main/doc/usage.adoc
@@ -0,0 +1,11 @@
+=== Statistics
+
+When using the `stats` command endpoint, the `camel-quarkus-management` extension must be added as a project dependency to enable JMX. Maven users will have to add the following to their `pom.xml`:
+
+[source,xml]
+----
+<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-management</artifactId>
+</dependency>
+----
\ No newline at end of file
diff --git a/integration-test-groups/foundation/controlbus/pom.xml b/integration-test-groups/foundation/controlbus/pom.xml
index 3ae0a4cf11..e41d9db706 100644
--- a/integration-test-groups/foundation/controlbus/pom.xml
+++ b/integration-test-groups/foundation/controlbus/pom.xml
@@ -39,10 +39,18 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-log</artifactId>
+ </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy-jsonb</artifactId>
+ </dependency>
<!-- test dependencies -->
<dependency>
@@ -120,6 +128,19 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-log-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
</profile>
</profiles>
diff --git a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
index c806f16618..82c4ba0638 100644
--- a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
+++ b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
@@ -35,29 +35,62 @@ public class ControlbusResource {
@Inject
ProducerTemplate producerTemplate;
+ @Inject
+ RestartRoutePolicy restartRoutePolicy;
+
@Path("/status")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String status() throws Exception {
- final String message = producerTemplate.requestBody("direct:status", "", String.class);
- LOG.infof("Received from controlbus: %s", message);
- return message;
+ return this.process("status");
}
@Path("/start")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String start() throws Exception {
- final String message = producerTemplate.requestBody("direct:startRoute", "", String.class);
- LOG.infof("Received from controlbus: %s", message);
- return message;
+ return this.process("startRoute");
}
@Path("/stop")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String stop() throws Exception {
- final String message = producerTemplate.requestBody("direct:stopRoute", "", String.class);
+ return this.process("stopRoute");
+ }
+
+ @Path("/suspend")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String suspend() throws Exception {
+ return this.process("suspendRoute");
+ }
+
+ @Path("/resume")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String resume() throws Exception {
+ return this.process("resumeRoute");
+ }
+
+ @Path("/fail")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String fail() throws Exception {
+ return this.process("failRoute");
+ }
+
+ @Path("/restart")
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public RouteStats restart() throws Exception {
+ restartRoutePolicy.reset();
+ this.process("restartRoute");
+ return new RouteStats(restartRoutePolicy.getStart(), restartRoutePolicy.getStop());
+ }
+
+ private String process(String endpointName) throws Exception {
+ final String message = producerTemplate.requestBody("direct:" + endpointName, "", String.class);
LOG.infof("Received from controlbus: %s", message);
return message;
}
diff --git a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
index ce0565222a..364b631910 100644
--- a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
+++ b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
@@ -16,18 +16,26 @@
*/
package org.apache.camel.quarkus.component.controlbus.it;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
import org.apache.camel.builder.RouteBuilder;
import org.jboss.logging.Logger;
+@ApplicationScoped
public class ControlbusRoute extends RouteBuilder {
private static final Logger LOG = Logger.getLogger(ControlbusResource.class);
+ @Inject
+ RestartRoutePolicy routePolicy;
+
@Override
public void configure() throws Exception {
from("direct:control")
.routeId("control")
- .process(e -> LOG.info("control:" + e.getMessage().getBody(String.class)));
+ .routePolicy(routePolicy)
+ .log("control: ${body}");
from("direct:status")
.transform()
@@ -38,5 +46,17 @@ public class ControlbusRoute extends RouteBuilder {
from("direct:startRoute")
.to("controlbus:route?routeId=control&action=start");
+
+ from("direct:suspendRoute")
+ .to("controlbus:route?routeId=control&action=suspend");
+
+ from("direct:resumeRoute")
+ .to("controlbus:route?routeId=control&action=resume");
+
+ from("direct:failRoute")
+ .to("controlbus:route?routeId=control&action=fail");
+
+ from("direct:restartRoute")
+ .to("controlbus:route?routeId=control&action=restart");
}
}
diff --git a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RestartRoutePolicy.java
similarity index 54%
copy from integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
copy to integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RestartRoutePolicy.java
index af190f34a0..1577fe038a 100644
--- a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
+++ b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RestartRoutePolicy.java
@@ -16,27 +16,37 @@
*/
package org.apache.camel.quarkus.component.controlbus.it;
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import io.restassured.http.ContentType;
-import org.junit.jupiter.api.Test;
-
-@QuarkusTest
-class ControlbusTest {
-
- @Test
- public void test() {
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Started"));
-
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/stop")
- .then().statusCode(200);
-
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Stopped"));
+import javax.inject.Singleton;
+
+import org.apache.camel.Route;
+import org.apache.camel.support.RoutePolicySupport;
+
+@Singleton
+public class RestartRoutePolicy extends RoutePolicySupport {
+
+ private int startCount = 0;
+ private int stopCount = 0;
+
+ @Override
+ public void onStart(Route route) {
+ this.startCount++;
+ }
+
+ @Override
+ public void onStop(Route route) {
+ this.stopCount++;
}
+ public int getStart() {
+ return this.startCount;
+ }
+
+ public int getStop() {
+ return this.stopCount;
+ }
+
+ public void reset() {
+ this.startCount = 0;
+ this.stopCount = 0;
+ }
}
diff --git a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RouteStats.java
similarity index 54%
copy from integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
copy to integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RouteStats.java
index af190f34a0..4b5dddccd3 100644
--- a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
+++ b/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/RouteStats.java
@@ -16,27 +16,12 @@
*/
package org.apache.camel.quarkus.component.controlbus.it;
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import io.restassured.http.ContentType;
-import org.junit.jupiter.api.Test;
+public class RouteStats {
+ public int startCount;
+ public int stopCount;
-@QuarkusTest
-class ControlbusTest {
-
- @Test
- public void test() {
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Started"));
-
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/stop")
- .then().statusCode(200);
-
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Stopped"));
+ public RouteStats(int startCount, int stopCount) {
+ this.startCount = startCount;
+ this.stopCount = stopCount;
}
-
}
diff --git a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java b/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
index af190f34a0..ddd18d28ea 100644
--- a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
+++ b/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
@@ -19,16 +19,27 @@ package org.apache.camel.quarkus.component.controlbus.it;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import static org.hamcrest.CoreMatchers.equalTo;
+
@QuarkusTest
class ControlbusTest {
+ @BeforeEach
+ public void startRoute() {
+ String status = RestAssured.get("/controlbus/status").asString();
+ if ("Stopped".equals(status)) {
+ RestAssured.get("/controlbus/start");
+ }
+ }
+
@Test
- public void test() {
+ public void testStopStart() {
RestAssured.given()
.contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Started"));
+ .then().body(equalTo("Started"));
RestAssured.given()
.contentType(ContentType.TEXT).get("/controlbus/stop")
@@ -36,7 +47,68 @@ class ControlbusTest {
RestAssured.given()
.contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Stopped"));
+ .then().body(equalTo("Stopped"));
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/start")
+ .then().statusCode(200);
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
+ }
+
+ @Test
+ public void testSuspendResume() {
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/suspend")
+ .then().statusCode(200);
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Suspended"));
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/resume")
+ .then().statusCode(200);
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
}
+ @Test
+ public void testFail() {
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/fail")
+ .then().statusCode(200);
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Stopped"));
+ }
+
+ @Test
+ public void testRestart() {
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
+
+ RestAssured.given()
+ .get("/controlbus/restart")
+ .then().body("startCount", equalTo(1))
+ .body("stopCount", equalTo(1));
+
+ RestAssured.given()
+ .contentType(ContentType.TEXT).get("/controlbus/status")
+ .then().body(equalTo("Started"));
+ }
}
diff --git a/integration-test-groups/foundation/controlbus/pom.xml b/integration-tests-jvm/controlbus-statistics/pom.xml
similarity index 75%
copy from integration-test-groups/foundation/controlbus/pom.xml
copy to integration-tests-jvm/controlbus-statistics/pom.xml
index 3ae0a4cf11..385772615b 100644
--- a/integration-test-groups/foundation/controlbus/pom.xml
+++ b/integration-tests-jvm/controlbus-statistics/pom.xml
@@ -23,12 +23,12 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-build-parent-it</artifactId>
<version>2.13.1-SNAPSHOT</version>
- <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+ <relativePath>../../poms/build-parent-it/pom.xml</relativePath>
</parent>
- <artifactId>camel-quarkus-integration-test-controlbus</artifactId>
- <name>Camel Quarkus :: Integration Tests :: Control Bus</name>
- <description>Integration tests for Camel Quarkus Control Bus extension</description>
+ <artifactId>camel-quarkus-integration-test-controlbus-statistics</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: Controlbus Statistics</name>
+ <description>Integration tests for Camel Quarkus Controlbus Statistics extension</description>
<dependencies>
<dependency>
@@ -39,6 +39,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-direct</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-management</artifactId>
+ </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
@@ -58,33 +62,6 @@
</dependencies>
<profiles>
- <profile>
- <id>native</id>
- <activation>
- <property>
- <name>native</name>
- </property>
- </activation>
- <properties>
- <quarkus.package.type>native</quarkus.package.type>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
<profile>
<id>virtualDependencies</id>
<activation>
@@ -120,6 +97,19 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-management-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
</profile>
</profiles>
diff --git a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java b/integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
similarity index 80%
copy from integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
copy to integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
index c806f16618..4eaecc9aa3 100644
--- a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
+++ b/integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusResource.java
@@ -44,20 +44,11 @@ public class ControlbusResource {
return message;
}
- @Path("/start")
+ @Path("/stats")
@GET
- @Produces(MediaType.TEXT_PLAIN)
- public String start() throws Exception {
- final String message = producerTemplate.requestBody("direct:startRoute", "", String.class);
- LOG.infof("Received from controlbus: %s", message);
- return message;
- }
-
- @Path("/stop")
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String stop() throws Exception {
- final String message = producerTemplate.requestBody("direct:stopRoute", "", String.class);
+ @Produces(MediaType.APPLICATION_XML)
+ public String stats() throws Exception {
+ final String message = producerTemplate.requestBody("direct:statsRoute", "", String.class);
LOG.infof("Received from controlbus: %s", message);
return message;
}
diff --git a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java b/integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
similarity index 91%
copy from integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
copy to integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
index ce0565222a..879c95c554 100644
--- a/integration-test-groups/foundation/controlbus/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
+++ b/integration-tests-jvm/controlbus-statistics/src/main/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusRoute.java
@@ -16,9 +16,12 @@
*/
package org.apache.camel.quarkus.component.controlbus.it;
+import javax.enterprise.context.ApplicationScoped;
+
import org.apache.camel.builder.RouteBuilder;
import org.jboss.logging.Logger;
+@ApplicationScoped
public class ControlbusRoute extends RouteBuilder {
private static final Logger LOG = Logger.getLogger(ControlbusResource.class);
@@ -33,10 +36,7 @@ public class ControlbusRoute extends RouteBuilder {
.transform()
.exchange(e -> e.getContext().getRouteController().getRouteStatus("control").name());
- from("direct:stopRoute")
- .to("controlbus:route?routeId=control&action=stop");
-
- from("direct:startRoute")
- .to("controlbus:route?routeId=control&action=start");
+ from("direct:statsRoute")
+ .to("controlbus:route?routeId=control&action=stats");
}
}
diff --git a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java b/integration-tests-jvm/controlbus-statistics/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
similarity index 75%
copy from integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
copy to integration-tests-jvm/controlbus-statistics/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
index af190f34a0..172d718113 100644
--- a/integration-test-groups/foundation/controlbus/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
+++ b/integration-tests-jvm/controlbus-statistics/src/test/java/org/apache/camel/quarkus/component/controlbus/it/ControlbusTest.java
@@ -21,22 +21,21 @@ import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import org.junit.jupiter.api.Test;
+import static org.hamcrest.CoreMatchers.equalTo;
+
@QuarkusTest
class ControlbusTest {
@Test
- public void test() {
+ public void testStats() {
RestAssured.given()
.contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Started"));
-
- RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/stop")
- .then().statusCode(200);
+ .then().body(equalTo("Started"));
RestAssured.given()
- .contentType(ContentType.TEXT).get("/controlbus/status")
- .then().body(org.hamcrest.CoreMatchers.equalTo("Stopped"));
+ .get("controlbus/stats")
+ .then().body("routeStat.@id", equalTo("control"))
+ .body("routeStat.@state", equalTo("Started"));
}
}
diff --git a/integration-tests-jvm/pom.xml b/integration-tests-jvm/pom.xml
index ab91c08165..ea0a53c641 100644
--- a/integration-tests-jvm/pom.xml
+++ b/integration-tests-jvm/pom.xml
@@ -50,6 +50,7 @@
<module>cmis</module>
<module>coap</module>
<module>cometd</module>
+ <module>controlbus-statistics</module>
<module>corda</module>
<module>couchbase</module>
<module>debug</module>