You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2020/02/18 17:57:46 UTC
[camel-quarkus] branch master updated: CAMEL-QUARKUS-729:
Centralized JSON dataformats related itests in dataformats-json
This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new 5de6a12 CAMEL-QUARKUS-729: Centralized JSON dataformats related itests in dataformats-json
5de6a12 is described below
commit 5de6a12a2e459fb83fee62a99ed6801c988b8148
Author: aldettinger <al...@gmail.com>
AuthorDate: Tue Feb 18 17:00:51 2020 +0100
CAMEL-QUARKUS-729: Centralized JSON dataformats related itests in dataformats-json
---
.github/workflows/pr-build.yaml | 2 +-
.../{jackson => dataformats-json}/pom.xml | 6 +--
.../jackson/JsonDataformatsResource.java} | 46 ++++++++++-------
.../component/jackson/JsonDataformatsRoute.java} | 32 ++++++------
.../component/jackson/model/DummyObject.java | 0
.../quarkus/component/jackson/model/PojoA.java | 0
.../quarkus/component/jackson/model/PojoB.java | 0
.../src/main/resources/application.properties | 6 +--
.../resources/routes/json-dataformats-routes.xml} | 4 +-
.../component/jackson/JsonComponentsIT.java} | 2 +-
.../component/jackson/JsonComponentsTest.java} | 57 +++++++++++++++-------
integration-tests/pom.xml | 2 +-
12 files changed, 95 insertions(+), 62 deletions(-)
diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
index 50e96ee..f13b36f 100644
--- a/.github/workflows/pr-build.yaml
+++ b/.github/workflows/pr-build.yaml
@@ -243,11 +243,11 @@ jobs:
-DskipTests \
-pl :camel-quarkus-integration-test-base64 \
-pl :camel-quarkus-integration-test-bindy \
+ -pl :camel-quarkus-integration-test-dataformats-json \
-pl :camel-quarkus-integration-test-snakeyaml \
-pl :camel-quarkus-integration-test-tagsoup \
-pl :camel-quarkus-integration-test-xslt \
-pl :camel-quarkus-integration-test-csv \
- -pl :camel-quarkus-integration-test-jackson \
-pl :camel-quarkus-integration-test-dataformat
networking:
runs-on: ubuntu-latest
diff --git a/integration-tests/jackson/pom.xml b/integration-tests/dataformats-json/pom.xml
similarity index 95%
rename from integration-tests/jackson/pom.xml
rename to integration-tests/dataformats-json/pom.xml
index 5acfe68..3994a91 100644
--- a/integration-tests/jackson/pom.xml
+++ b/integration-tests/dataformats-json/pom.xml
@@ -25,9 +25,9 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>camel-quarkus-integration-test-jackson</artifactId>
- <name>Camel Quarkus :: Integration Tests :: Jackson</name>
- <description>Integration tests for Camel Jackson extension</description>
+ <artifactId>camel-quarkus-integration-test-dataformats-json</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: DataFormats JSON</name>
+ <description>Integration tests for Camel Quarkus extension providing JSON related data formats</description>
<properties>
<!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsResource.java
similarity index 51%
rename from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java
rename to integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsResource.java
index 60da4be..b1a09b4 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java
+++ b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsResource.java
@@ -24,19 +24,24 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.ProducerTemplate;
+import org.jboss.logging.Logger;
-@Path("/jackson")
+@Path("/dataformats-json")
@ApplicationScoped
-public class CamelResource {
+public class JsonDataformatsResource {
+
+ private static final Logger LOG = Logger.getLogger(JsonDataformatsResource.class);
+
@Inject
- ProducerTemplate template;
+ ProducerTemplate producerTemplate;
@Inject
- ConsumerTemplate consumer;
+ ConsumerTemplate consumerTemplate;
@Inject
CamelContext context;
@@ -44,45 +49,51 @@ public class CamelResource {
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
- public String processOrder(String statement) {
- return template.requestBody("direct:in", statement, String.class);
+ public String processOrder(@QueryParam("json-component") String jsonComponent, String statement) {
+ LOG.infof("Invoking processOrder(%s)", jsonComponent, statement);
+ return producerTemplate.requestBody("direct:" + jsonComponent + "-in", statement, String.class);
}
@Path("/out")
@POST
@Produces(MediaType.TEXT_PLAIN)
- public String testOrder() {
- return consumer.receive("vm:out").getMessage().getBody().toString();
+ public String testOrder(@QueryParam("json-component") String jsonComponent) {
+ LOG.infof("Invoking testOrder(%s)", jsonComponent);
+ return consumerTemplate.receive("vm:" + jsonComponent + "-out").getMessage().getBody().toString();
}
@Path("/in-a")
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
- public String processPojoA(String statement) {
- return template.requestBody("direct:in-a", statement, String.class);
+ public String processPojoA(@QueryParam("json-component") String jsonComponent, String statement) {
+ LOG.infof("Invoking processPojoA(%s, %s)", jsonComponent, statement);
+ return producerTemplate.requestBody("direct:" + jsonComponent + "-in-a", statement, String.class);
}
@Path("/in-b")
@POST
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
- public String processPojoB(String statement) {
- return template.requestBody("direct:in-b", statement, String.class);
+ public String processPojoB(@QueryParam("json-component") String jsonComponent, String statement) {
+ LOG.infof("Invoking processPojoB(%s, %s)", jsonComponent, statement);
+ return producerTemplate.requestBody("direct:" + jsonComponent + "-in-b", statement, String.class);
}
@Path("/out-a")
@POST
@Produces(MediaType.TEXT_PLAIN)
- public String testPojoA() {
- return consumer.receive("vm:out-a").getMessage().getBody().toString();
+ public String testPojoA(@QueryParam("json-component") String jsonComponent) {
+ LOG.infof("Invoking testPojoA(%s)", jsonComponent);
+ return consumerTemplate.receive("vm:" + jsonComponent + "-out-a").getMessage().getBody().toString();
}
@Path("/out-b")
@POST
@Produces(MediaType.TEXT_PLAIN)
- public String testPojoB() {
- return consumer.receive("vm:out-b").getMessage().getBody().toString();
+ public String testPojoB(@QueryParam("json-component") String jsonComponent) {
+ LOG.infof("Invoking testPojoB(%s)", jsonComponent);
+ return consumerTemplate.receive("vm:" + jsonComponent + "-out-b").getMessage().getBody().toString();
}
@Path("/unmarshal/{direct-id}")
@@ -90,7 +101,8 @@ public class CamelResource {
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.APPLICATION_JSON)
public String testXmlUnmarshalDefinition(@PathParam("direct-id") String directId, String statement) {
- Object object = template.requestBody("direct:" + directId, statement);
+ LOG.infof("Invoking testXmlUnmarshalDefinition(%s, %s)", directId, statement);
+ Object object = producerTemplate.requestBody("direct:" + directId, statement);
String answer = JsonbBuilder.create().toJson(object);
return answer;
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsRoute.java
similarity index 75%
rename from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
rename to integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsRoute.java
index 9b5fd74..3e2cb94 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
+++ b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/JsonDataformatsRoute.java
@@ -23,40 +23,40 @@ import org.apache.camel.quarkus.component.jackson.model.DummyObject;
import org.apache.camel.quarkus.component.jackson.model.PojoA;
import org.apache.camel.quarkus.component.jackson.model.PojoB;
-public class CamelRoute extends RouteBuilder {
+public class JsonDataformatsRoute extends RouteBuilder {
@Override
public void configure() {
JacksonDataFormat format = new JacksonDataFormat(DummyObject.class);
format.useList();
- from("direct:in")
- .wireTap("direct:tap")
+ from("direct:jackson-in")
+ .wireTap("direct:jackson-tap")
.setBody(constant("ok"));
- from("direct:tap")
+ from("direct:jackson-tap")
.unmarshal(format)
- .to("log:out")
+ .to("log:jackson-out")
.split(body())
.marshal(format)
.convertBodyTo(String.class)
- .to("vm:out");
- from("direct:in-a")
- .wireTap("direct:tap-a")
+ .to("vm:jackson-out");
+ from("direct:jackson-in-a")
+ .wireTap("direct:jackson-tap-a")
.setBody(constant("ok"));
- from("direct:tap-a")
+ from("direct:jackson-tap-a")
.unmarshal().json(JsonLibrary.Jackson, PojoA.class)
- .to("log:out")
+ .to("log:jackson-out")
.marshal(new JacksonDataFormat(PojoA.class))
.convertBodyTo(String.class)
- .to("vm:out-a");
- from("direct:in-b")
- .wireTap("direct:tap-b")
+ .to("vm:jackson-out-a");
+ from("direct:jackson-in-b")
+ .wireTap("direct:jackson-tap-b")
.setBody(constant("ok"));
- from("direct:tap-b")
+ from("direct:jackson-tap-b")
.unmarshal().json(JsonLibrary.Jackson, PojoB.class)
- .to("log:out")
+ .to("log:jackson-out")
.marshal(new JacksonDataFormat(PojoB.class))
.convertBodyTo(String.class)
- .to("vm:out-b");
+ .to("vm:jackson-out-b");
}
}
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/DummyObject.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/DummyObject.java
similarity index 100%
rename from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/DummyObject.java
rename to integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/DummyObject.java
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
similarity index 100%
rename from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
rename to integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
similarity index 100%
rename from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
rename to integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
diff --git a/integration-tests/jackson/src/main/resources/application.properties b/integration-tests/dataformats-json/src/main/resources/application.properties
similarity index 87%
rename from integration-tests/jackson/src/main/resources/application.properties
rename to integration-tests/dataformats-json/src/main/resources/application.properties
index 20d3577..4cc94ff 100644
--- a/integration-tests/jackson/src/main/resources/application.properties
+++ b/integration-tests/dataformats-json/src/main/resources/application.properties
@@ -21,14 +21,14 @@ quarkus.ssl.native=true
quarkus.log.file.enable = false
# include xml routes in native image
-quarkus.native.additional-build-args = -H:IncludeResources=routes/my-routes.xml
+quarkus.native.additional-build-args = -H:IncludeResources=routes/json-dataformats-routes.xml
#
# Camel
#
-camel.context.name = quarkus-camel-example
+camel.context.name = camel-quarkus-integration-tests-dataformats-json
#
# Main
#
-camel.main.xml-routes = classpath:routes/my-routes.xml
\ No newline at end of file
+camel.main.xml-routes = classpath:routes/json-dataformats-routes.xml
diff --git a/integration-tests/jackson/src/main/resources/routes/my-routes.xml b/integration-tests/dataformats-json/src/main/resources/routes/json-dataformats-routes.xml
similarity index 93%
rename from integration-tests/jackson/src/main/resources/routes/my-routes.xml
rename to integration-tests/dataformats-json/src/main/resources/routes/json-dataformats-routes.xml
index 6592d59..6c521e9 100644
--- a/integration-tests/jackson/src/main/resources/routes/my-routes.xml
+++ b/integration-tests/dataformats-json/src/main/resources/routes/json-dataformats-routes.xml
@@ -24,14 +24,14 @@
http://camel.apache.org/schema/spring/camel-spring.xsd">
<route>
- <from uri="direct:type-as-attribute"/>
+ <from uri="direct:jackson-type-as-attribute"/>
<unmarshal>
<json library="Jackson" unmarshalTypeName="org.apache.camel.quarkus.component.jackson.model.DummyObject"/>
</unmarshal>
</route>
<route>
- <from uri="direct:type-as-header"/>
+ <from uri="direct:jackson-type-as-header"/>
<setHeader name="CamelJacksonUnmarshalType">
<constant>org.apache.camel.quarkus.component.jackson.model.DummyObject</constant>
</setHeader>
diff --git a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonITCase.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsIT.java
similarity index 93%
rename from integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonITCase.java
rename to integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsIT.java
index b5d50fc..68ae6c5 100644
--- a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonITCase.java
+++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsIT.java
@@ -19,5 +19,5 @@ package org.apache.camel.quarkus.component.jackson;
import io.quarkus.test.junit.NativeImageTest;
@NativeImageTest
-public class JacksonITCase extends JacksonTest {
+public class JsonComponentsIT extends JsonComponentsTest {
}
diff --git a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsTest.java
similarity index 56%
rename from integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java
rename to integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsTest.java
index f0cd06c..c801a43 100644
--- a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java
+++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/jackson/JsonComponentsTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.camel.quarkus.component.jackson;
-import java.util.UUID;
+import java.util.stream.Stream;
import javax.json.bind.JsonbBuilder;
@@ -24,57 +24,78 @@ import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import org.apache.camel.quarkus.component.jackson.model.DummyObject;
-import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
+import org.junit.jupiter.params.provider.MethodSource;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
@QuarkusTest
-public class JacksonTest {
- @Test
- public void testRoutes() {
+public class JsonComponentsTest {
+
+ private static Stream<String> listJsonDataFormatsToBeTested() {
+ return Stream.of("jackson");
+ }
+
+ @ParameterizedTest
+ @MethodSource("listJsonDataFormatsToBeTested")
+ public void testRoutes(String jsonComponent) {
RestAssured.given().contentType(ContentType.TEXT)
+ .queryParam("json-component", jsonComponent)
.body("[{\"dummy\": \"value1\"}, {\"dummy\": \"value2\"}]")
- .post("/jackson/in");
- RestAssured.post("/jackson/out")
+ .post("/dataformats-json/in");
+ RestAssured.given()
+ .queryParam("json-component", jsonComponent)
+ .post("/dataformats-json/out")
.then()
.body(equalTo("{\"dummy\":\"value1\"}"));
- RestAssured.post("/jackson/out")
+ RestAssured.given()
+ .queryParam("json-component", jsonComponent)
+ .post("/dataformats-json/out")
.then()
.body(equalTo("{\"dummy\":\"value2\"}"));
}
- @Test
- public void testUnmarshallingDifferentPojos() {
+ @ParameterizedTest
+ @MethodSource("listJsonDataFormatsToBeTested")
+ public void testUnmarshallingDifferentPojos(String jsonComponent) {
String bodyA = "{\"name\":\"name A\"}";
String bodyB = "{\"value\":1.0}";
RestAssured.given().contentType(ContentType.TEXT)
+ .queryParam("json-component", jsonComponent)
.body(bodyA)
- .post("/jackson/in-a");
+ .post("/dataformats-json/in-a");
RestAssured.given().contentType(ContentType.TEXT)
+ .queryParam("json-component", jsonComponent)
.body(bodyB)
- .post("/jackson/in-b");
- RestAssured.post("/jackson/out-a")
+ .post("/dataformats-json/in-b");
+ RestAssured.given()
+ .queryParam("json-component", jsonComponent)
+ .post("/dataformats-json/out-a")
.then()
.body(equalTo(bodyA));
- RestAssured.post("/jackson/out-b")
+ RestAssured.given()
+ .queryParam("json-component", jsonComponent)
+ .post("/dataformats-json/out-b")
.then()
.body(equalTo(bodyB));
}
+ private static Stream<String> listDirectUrisFromXmlRoutesToBeTested() {
+ return listJsonDataFormatsToBeTested().flatMap(s -> Stream.of(s + "-type-as-attribute", s + "-type-as-header"));
+ }
+
@ParameterizedTest
- @ValueSource(strings = { "type-as-attribute", "type-as-header" })
+ @MethodSource("listDirectUrisFromXmlRoutesToBeTested")
public void testUnmarshal(String directId) {
DummyObject object = new DummyObject();
- object.setDummy(UUID.randomUUID().toString());
+ object.setDummy("95f669ce-d287-4519-b212-4450bc791867");
RestAssured.given()
.contentType(ContentType.TEXT)
.body(JsonbBuilder.create().toJson(object))
- .post("/jackson/unmarshal/{direct-id}", directId)
+ .post("/dataformats-json/unmarshal/{direct-id}", directId)
.then()
.body("dummy", is(object.getDummy()));
}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 6a9aa99..c52fdf6 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -179,6 +179,7 @@
<module>controlbus</module>
<module>csv</module>
<module>dataformat</module>
+ <module>dataformats-json</module>
<module>dozer</module>
<module>exec</module>
<module>fhir</module>
@@ -187,7 +188,6 @@
<module>http</module>
<module>hystrix</module>
<module>infinispan</module>
- <module>jackson</module>
<module>jdbc</module>
<module>jira</module>
<module>jsonpath</module>