You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2021/06/04 17:28:27 UTC

[camel-quarkus] 01/03: Add a test for Jackson JsonNode unmarshal

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

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

commit e27337abd3fe95837c16fef0fb6357fe5c50fb2c
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Jun 4 14:26:24 2021 +0100

    Add a test for Jackson JsonNode unmarshal
---
 .../component/jackson/JacksonProcessor.java        |  5 ++--
 .../jackson/json/JacksonJsonResource.java          | 12 ++++++++-
 .../dataformats/jackson/json/JacksonJsonRoute.java |  4 +++
 .../dataformats/jackson/json/JacksonJsonTest.java  | 29 ++++++----------------
 4 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java b/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
index f4c4382..4789246 100644
--- a/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
+++ b/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
@@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.jackson;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
@@ -34,9 +35,9 @@ public class JacksonProcessor {
 
     @BuildStep
     List<ReflectiveClassBuildItem> registerReflectiveClasses() {
-        List<ReflectiveClassBuildItem> items = new ArrayList<ReflectiveClassBuildItem>();
+        List<ReflectiveClassBuildItem> items = new ArrayList<>();
         items.add(new ReflectiveClassBuildItem(false, true, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule"));
+        items.add(new ReflectiveClassBuildItem(false, false, JsonNode.class));
         return items;
     }
-
 }
diff --git a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonResource.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonResource.java
index a556d88..7d7c079 100644
--- a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonResource.java
+++ b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonResource.java
@@ -34,6 +34,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
@@ -513,7 +514,7 @@ public class JacksonJsonResource {
 
             json = (String) producerTemplate.requestBody("direct:jackson-conversion-pojo-test", order);
             /*
-             * somehow jaxb annotation @XmlAttribute(name = "customer_name") can't be taken into accout so the
+             * somehow jaxb annotation @XmlAttribute(name = "customer_name") can't be taken into account so the
              * following asserts failed, need to investigate more
              * assertEquals("{\"id\":0,\"partName\":\"Camel\",\"amount\":1,\"customer_name\":\"Acme\"}",
              * json);
@@ -666,6 +667,15 @@ public class JacksonJsonResource {
 
     }
 
+    @Path("jackson/json-node")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public String testJacksonUnmarshalJsonNode() {
+        String json = "{\"name\":\"Camel\"}";
+        JsonNode result = producerTemplate.requestBody("direct:unmarshal-jackson-json-node", json, JsonNode.class);
+        return result.at("/name").asText();
+    }
+
     private void doSendMessages(int files, int poolSize) throws Exception {
         MockEndpoint mock = context.getEndpoint("mock:jackson-concurrent-result", MockEndpoint.class);
         mock.expectedMessageCount(files);
diff --git a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
index 4b3848a..60a091f 100644
--- a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
+++ b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
@@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.dataformats.jackson.json;
 
 import java.util.TimeZone;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
 import org.apache.camel.builder.RouteBuilder;
@@ -171,6 +172,9 @@ public class JacksonJsonRoute extends RouteBuilder {
         TimeZone timeZone = TimeZone.getTimeZone("Africa/Ouagadougou");
         jacksonTimeZone.setTimezone(timeZone);
         from("direct:jackson-timezone-in").marshal(jacksonTimeZone).to("mock:jackson-timezone-result");
+
+        from("direct:unmarshal-jackson-json-node")
+                .unmarshal().json(JsonLibrary.Jackson, JsonNode.class);
     }
 
 }
diff --git a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
index b5f5f45..7180544 100644
--- a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
+++ b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
@@ -40,7 +40,6 @@ public class JacksonJsonTest {
 
     @Test
     void jacksonUnmarshalListSplit() {
-
         RestAssured.get("/dataformats-json/jackson/unmarshal-listsplit")
                 .then()
                 .statusCode(204);
@@ -56,7 +55,6 @@ public class JacksonJsonTest {
 
     @Test
     void jacksonUnmarshalArray() {
-
         RestAssured.get("/dataformats-json/jackson/unmarshal-array")
                 .then()
                 .statusCode(204);
@@ -67,7 +65,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/marshal-contenttype-header")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -75,7 +72,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/marshal-general")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -83,7 +79,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/object-mapper-noreg")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -91,7 +86,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/allowjmstype")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -99,7 +93,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/marshal-module")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -107,7 +100,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/not-use-default-mapper")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -115,7 +107,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/unmarshal-list-xml-configure")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -123,7 +114,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/object-mapper")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -131,7 +121,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/pojo-array")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -139,7 +128,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/enablefeature")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -147,7 +135,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/concurrent")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -155,7 +142,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/unmarshal-listjackson")
                 .then()
                 .statusCode(204);
-
     }
 
     //@Test
@@ -163,7 +149,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/conversion-pojo")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -171,7 +156,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/conversion")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -179,7 +163,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/conversion-simple")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -187,7 +170,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/jaxb-annotation")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -195,7 +177,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/view")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -203,7 +184,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/moduleref")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -211,7 +191,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/include-no-null")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -219,7 +198,6 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/typeheader-not-allowed")
                 .then()
                 .statusCode(204);
-
     }
 
     @Test
@@ -227,7 +205,14 @@ public class JacksonJsonTest {
         RestAssured.get("/dataformats-json/jackson/datetimezone")
                 .then()
                 .statusCode(204);
+    }
 
+    @Test
+    void jacksonUnmarshalJsonNode() {
+        RestAssured.get("/dataformats-json/jackson/json-node")
+                .then()
+                .statusCode(200)
+                .body(equalTo("Camel"));
     }
 
 }