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"));
}
}