You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/01/25 10:46:43 UTC
[camel-quarkus] branch master updated: Add integration test for
Jackson unmarshalling with different POJOs
This is an automated email from the ASF dual-hosted git repository.
acosentino 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 06e5fce Add integration test for Jackson unmarshalling with different POJOs
new b2d8823 Merge pull request #663 from philschaller/i637
06e5fce is described below
commit 06e5fcef93d7478f5447da8107542fc6a9a1b865
Author: Philippe Schaller <ph...@gmail.com>
AuthorDate: Sat Jan 25 09:32:04 2020 +0100
Add integration test for Jackson unmarshalling with different POJOs
---
.../quarkus/component/jackson/CamelResource.java | 30 ++++++++++++++++++++
.../quarkus/component/jackson/CamelRoute.java | 22 ++++++++++++++-
.../jackson/{CamelRoute.java => model/PojoA.java} | 32 +++++++++-------------
.../jackson/{CamelRoute.java => model/PojoB.java} | 32 +++++++++-------------
.../quarkus/component/jackson/JacksonTest.java | 19 +++++++++++++
5 files changed, 96 insertions(+), 39 deletions(-)
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java
index 48734d3..60da4be 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java
+++ b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelResource.java
@@ -55,6 +55,36 @@ public class CamelResource {
return consumer.receive("vm: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);
+ }
+
+ @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);
+ }
+
+ @Path("/out-a")
+ @POST
+ @Produces(MediaType.TEXT_PLAIN)
+ public String testPojoA() {
+ return consumer.receive("vm: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();
+ }
+
@Path("/unmarshal/{direct-id}")
@POST
@Consumes(MediaType.TEXT_PLAIN)
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
index 5ac49f8..9b5fd74 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
+++ b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
@@ -18,7 +18,10 @@ package org.apache.camel.quarkus.component.jackson;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.model.dataformat.JsonLibrary;
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 {
@@ -37,6 +40,23 @@ public class CamelRoute extends RouteBuilder {
.marshal(format)
.convertBodyTo(String.class)
.to("vm:out");
+ from("direct:in-a")
+ .wireTap("direct:tap-a")
+ .setBody(constant("ok"));
+ from("direct:tap-a")
+ .unmarshal().json(JsonLibrary.Jackson, PojoA.class)
+ .to("log:out")
+ .marshal(new JacksonDataFormat(PojoA.class))
+ .convertBodyTo(String.class)
+ .to("vm:out-a");
+ from("direct:in-b")
+ .wireTap("direct:tap-b")
+ .setBody(constant("ok"));
+ from("direct:tap-b")
+ .unmarshal().json(JsonLibrary.Jackson, PojoB.class)
+ .to("log:out")
+ .marshal(new JacksonDataFormat(PojoB.class))
+ .convertBodyTo(String.class)
+ .to("vm:out-b");
}
-
}
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
similarity index 51%
copy from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
copy to integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
index 5ac49f8..712bbb0 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
+++ b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoA.java
@@ -14,29 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.component.jackson;
+package org.apache.camel.quarkus.component.jackson.model;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jackson.JacksonDataFormat;
-import org.apache.camel.quarkus.component.jackson.model.DummyObject;
+import io.quarkus.runtime.annotations.RegisterForReflection;
-public class CamelRoute extends RouteBuilder {
+@RegisterForReflection
+public class PojoA {
- @Override
- public void configure() {
- JacksonDataFormat format = new JacksonDataFormat(DummyObject.class);
- format.useList();
+ private String name;
- from("direct:in")
- .wireTap("direct:tap")
- .setBody(constant("ok"));
- from("direct:tap")
- .unmarshal(format)
- .to("log:out")
- .split(body())
- .marshal(format)
- .convertBodyTo(String.class)
- .to("vm:out");
+ public PojoA() {
}
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
}
diff --git a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
similarity index 51%
copy from integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
copy to integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
index 5ac49f8..1430da7 100644
--- a/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/CamelRoute.java
+++ b/integration-tests/jackson/src/main/java/org/apache/camel/quarkus/component/jackson/model/PojoB.java
@@ -14,29 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.component.jackson;
+package org.apache.camel.quarkus.component.jackson.model;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jackson.JacksonDataFormat;
-import org.apache.camel.quarkus.component.jackson.model.DummyObject;
+import io.quarkus.runtime.annotations.RegisterForReflection;
-public class CamelRoute extends RouteBuilder {
+@RegisterForReflection
+public class PojoB {
- @Override
- public void configure() {
- JacksonDataFormat format = new JacksonDataFormat(DummyObject.class);
- format.useList();
+ private Double value;
- from("direct:in")
- .wireTap("direct:tap")
- .setBody(constant("ok"));
- from("direct:tap")
- .unmarshal(format)
- .to("log:out")
- .split(body())
- .marshal(format)
- .convertBodyTo(String.class)
- .to("vm:out");
+ public PojoB() {
}
+ public Double getValue() {
+ return value;
+ }
+
+ public void setString(Double string) {
+ this.value = string;
+ }
}
diff --git a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java b/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java
index 606344d..f0cd06c 100644
--- a/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java
+++ b/integration-tests/jackson/src/test/java/org/apache/camel/quarkus/component/jackson/JacksonTest.java
@@ -46,6 +46,25 @@ public class JacksonTest {
.body(equalTo("{\"dummy\":\"value2\"}"));
}
+ @Test
+ public void testUnmarshallingDifferentPojos() {
+ String bodyA = "{\"name\":\"name A\"}";
+ String bodyB = "{\"value\":1.0}";
+
+ RestAssured.given().contentType(ContentType.TEXT)
+ .body(bodyA)
+ .post("/jackson/in-a");
+ RestAssured.given().contentType(ContentType.TEXT)
+ .body(bodyB)
+ .post("/jackson/in-b");
+ RestAssured.post("/jackson/out-a")
+ .then()
+ .body(equalTo(bodyA));
+ RestAssured.post("/jackson/out-b")
+ .then()
+ .body(equalTo(bodyB));
+ }
+
@ParameterizedTest
@ValueSource(strings = { "type-as-attribute", "type-as-header" })
public void testUnmarshal(String directId) {