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 2021/05/26 06:37:48 UTC
[camel-quarkus] branch main updated: Fix #2604 to add a camel-sql
case in jta integration tests
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new bd760b3 Fix #2604 to add a camel-sql case in jta integration tests
bd760b3 is described below
commit bd760b38f985cd85962ffd1687db22841f65835c
Author: Amos Feng <zf...@redhat.com>
AuthorDate: Tue May 25 00:18:50 2021 +0800
Fix #2604 to add a camel-sql case in jta integration tests
---
integration-tests/jta/pom.xml | 4 +++
.../quarkus/component/jta/it/JtaResource.java | 30 +++++++++++++++++-----
.../camel/quarkus/component/jta/it/JtaRoutes.java | 17 +++++++++++-
.../camel/quarkus/component/jta/it/JtaTest.java | 13 ++++++++--
4 files changed, 55 insertions(+), 9 deletions(-)
diff --git a/integration-tests/jta/pom.xml b/integration-tests/jta/pom.xml
index a6c0db7..813f7b9 100644
--- a/integration-tests/jta/pom.xml
+++ b/integration-tests/jta/pom.xml
@@ -64,6 +64,10 @@
<artifactId>camel-quarkus-jdbc</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-sql</artifactId>
+ </dependency>
+ <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
diff --git a/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaResource.java b/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaResource.java
index e73a658..7fc6035 100644
--- a/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaResource.java
+++ b/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaResource.java
@@ -100,6 +100,28 @@ public class JtaResource {
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public Response jdbc(String message) throws Exception {
+ String response = request("direct:jdbc", message);
+ LOG.infof("Got response from jdbc: %s", response);
+ return Response
+ .created(new URI("https://camel.apache.org/"))
+ .entity(response)
+ .build();
+ }
+
+ @Path("/sqltx")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response sqltx(String message) throws Exception {
+ String response = request("direct:sqltx", message);
+ LOG.infof("Got response from sqltx: %s", response);
+ return Response
+ .created(new URI("https://camel.apache.org/"))
+ .entity(response)
+ .build();
+ }
+
+ private String request(String endpoint, String message) throws Exception {
LOG.infof("message is %s", message);
MockEndpoint mockEndpoint = context.getEndpoint("mock:txResult", MockEndpoint.class);
mockEndpoint.reset();
@@ -107,14 +129,10 @@ public class JtaResource {
mockEndpoint.expectedMessageCount(1);
mockEndpoint.message(0).body().isEqualTo(message);
}
- final String response = producerTemplate.requestBody("direct:transaction", message, String.class);
+ final String response = producerTemplate.requestBody(endpoint, message, String.class);
mockEndpoint.assertIsSatisfied(15000);
- LOG.infof("Got response from jta: %s", response);
- return Response
- .created(new URI("https://camel.apache.org/"))
- .entity(response)
- .build();
+ return response;
}
@Path("/mock")
diff --git a/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaRoutes.java b/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaRoutes.java
index bb6b277..a39d446 100644
--- a/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaRoutes.java
+++ b/integration-tests/jta/src/main/java/org/apache/camel/quarkus/component/jta/it/JtaRoutes.java
@@ -48,7 +48,7 @@ public class JtaRoutes extends RouteBuilder {
from("direct:not_supported")
.transacted("PROPAGATION_NOT_SUPPORTED").transform().constant("not_supported");
- from("direct:transaction")
+ from("direct:jdbc")
.transacted()
.setHeader("message", body())
.to("jms:queue:txTest?connectionFactory=#xaConnectionFactory&disableReplyTo=true")
@@ -64,6 +64,21 @@ public class JtaRoutes extends RouteBuilder {
.transform().simple("${header.message} added")
.endChoice();
+ from("direct:sqltx")
+ .transacted()
+ .setHeader("message", body())
+ .to("jms:queue:txTest?connectionFactory=#xaConnectionFactory&disableReplyTo=true")
+ .to("sql:insert into example(message) values (:#message)")
+ .choice()
+ .when(header("message").startsWith("fail"))
+ .log("Failing forever with exception")
+ .process(x -> {
+ throw new RuntimeException("Fail");
+ })
+ .otherwise()
+ .transform().simple("${header.message} added")
+ .endChoice();
+
from("jms:queue:txTest?connectionFactory=#xaConnectionFactory")
.to("mock:txResult");
}
diff --git a/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaTest.java b/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaTest.java
index 95dcd1c..b518438 100644
--- a/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaTest.java
+++ b/integration-tests/jta/src/test/java/org/apache/camel/quarkus/component/jta/it/JtaTest.java
@@ -138,12 +138,21 @@ class JtaTest {
@Test
public void testJdbcInTx() {
+ testTx("/jta/jdbc");
+ }
+
+ @Test
+ public void testSqlInTx() {
+ testTx("/jta/sqltx");
+ }
+
+ private void testTx(String url) {
final String msg = java.util.UUID.randomUUID().toString().replace("-", "");
RestAssured.given()
.contentType(ContentType.TEXT)
.body(msg)
- .post("/jta/jdbc")
+ .post(url)
.then()
.statusCode(201)
.body(is(msg + " added"));
@@ -151,7 +160,7 @@ class JtaTest {
RestAssured.given()
.contentType(ContentType.TEXT)
.body("fail")
- .post("/jta/jdbc")
+ .post(url)
.then()
.statusCode(500);