This is an automated email from the ASF dual-hosted git repository. ppalaga pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 39d404d5acd5b894c93977950fb6bb1d77760922 Author: Peter Palaga <[email protected]> AuthorDate: Wed Sep 9 09:46:35 2020 +0200 Test for #1497 xml-io should pass namespace info to NamespaceAware elements --- integration-tests/main-xml-io/pom.xml | 17 +++++++++++++++++ .../camel/quarkus/main/CoreMainXmlIoResource.java | 14 ++++++++++++++ .../main-xml-io/src/main/resources/routes/my-routes.xml | 10 ++++++++++ .../apache/camel/quarkus/main/CoreMainXmlIoTest.java | 17 +++++++++++++++++ 4 files changed, 58 insertions(+) diff --git a/integration-tests/main-xml-io/pom.xml b/integration-tests/main-xml-io/pom.xml index 1071ff1..bba1792 100644 --- a/integration-tests/main-xml-io/pom.xml +++ b/integration-tests/main-xml-io/pom.xml @@ -59,6 +59,10 @@ <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-jsonb</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-xpath</artifactId> + </dependency> <!-- test dependencies --> <dependency> @@ -143,6 +147,19 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-xpath-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> diff --git a/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java b/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java index e1e0bf9..52d8574 100644 --- a/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java +++ b/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java @@ -22,12 +22,15 @@ import javax.json.Json; import javax.json.JsonArrayBuilder; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; +import javax.ws.rs.Consumes; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.apache.camel.ExtendedCamelContext; +import org.apache.camel.ProducerTemplate; @Path("/test") @ApplicationScoped @@ -35,6 +38,9 @@ public class CoreMainXmlIoResource { @Inject CamelMain main; + @Inject + ProducerTemplate template; + @Path("/main/describe") @GET @Produces(MediaType.APPLICATION_JSON) @@ -69,4 +75,12 @@ public class CoreMainXmlIoResource { .add("autoConfigurationLogSummary", main.getMainConfigurationProperties().isAutoConfigurationLogSummary()) .build(); } + + @Path("/xml-io/namespace-aware") + @POST + @Produces(MediaType.TEXT_PLAIN) + @Consumes(MediaType.APPLICATION_XML) + public String namespaceAware(String body) { + return template.requestBody("direct:namespace-aware", body, String.class); + } } diff --git a/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml b/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml index e491c29..48feb17 100644 --- a/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml +++ b/integration-tests/main-xml-io/src/main/resources/routes/my-routes.xml @@ -19,6 +19,7 @@ --> <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://camel.apache.org/schema/spring" + xmlns:foo="http://camel.apache.org/foo" xsi:schemaLocation=" http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> @@ -31,4 +32,13 @@ <to uri="log:from-xml"/> </route> + <route id="namespace-aware-route"> + <from uri="direct:namespace-aware"/> + <setBody> + <xpath resultType="java.lang.String"> + /foo:foo-text/text() + </xpath> + </setBody> + </route> + </routes> \ No newline at end of file diff --git a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java index 47af09c..e773e6c 100644 --- a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java +++ b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java @@ -20,6 +20,7 @@ import javax.ws.rs.core.MediaType; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; +import io.restassured.http.ContentType; import io.restassured.path.json.JsonPath; import org.apache.camel.quarkus.core.DisabledModelJAXBContextFactory; import org.apache.camel.quarkus.core.DisabledModelToXMLDumper; @@ -27,6 +28,7 @@ import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.core.Is.is; @QuarkusTest public class CoreMainXmlIoTest { @@ -50,4 +52,19 @@ public class CoreMainXmlIoTest { assertThat(p.getList("routes", String.class)) .contains("my-xml-route"); } + + @Test + public void namespaceAware() { + String message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<foo:foo-text xmlns:foo=\"http://camel.apache.org/foo\">bar</foo:foo-text>"; + + RestAssured.given() + .contentType(ContentType.XML) + .body(message) + .post("/test/xml-io/namespace-aware") + .then() + .statusCode(200) + .body(is("bar")); + + } }
