This is an automated email from the ASF dual-hosted git repository. aldettinger pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new 2aa2c66 Test setting the kamelet from an external file provided at runtime #3025 2aa2c66 is described below commit 2aa2c661681b46a0615ac01a2047ee523e295062 Author: aldettinger <aldettin...@gmail.com> AuthorDate: Mon Aug 23 13:11:22 2021 +0200 Test setting the kamelet from an external file provided at runtime #3025 --- integration-tests/kamelet/pom.xml | 17 ++++++++++++++ .../component/kamelet/it/KameletResource.java | 8 +++++++ .../component/kamelet/it/KameletRoutes.java | 7 ++++++ .../src/main/resources/application.properties | 4 +++- .../resources/kamelets-runtime/upper-kamelet.xml | 27 ++++++++++++++++++++++ .../quarkus/component/kamelet/it/KameletTest.java | 9 ++++++++ 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/integration-tests/kamelet/pom.xml b/integration-tests/kamelet/pom.xml index 2290e42..8adbc4c 100644 --- a/integration-tests/kamelet/pom.xml +++ b/integration-tests/kamelet/pom.xml @@ -60,6 +60,10 @@ <artifactId>camel-quarkus-bean</artifactId> </dependency> <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-xml-io-dsl</artifactId> + </dependency> + <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency> @@ -133,6 +137,19 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <profiles> diff --git a/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletResource.java b/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletResource.java index d899853..090f8c4 100644 --- a/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletResource.java +++ b/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletResource.java @@ -96,4 +96,12 @@ public class KameletResource { return builder.build(); } + + @Path("/locationAtRuntime/{name}") + @POST + @Produces(MediaType.TEXT_PLAIN) + public String kameletLocationAtRuntime(@PathParam("name") String name) { + return fluentProducerTemplate.to("direct:kamelet-location-at-runtime").withBody(name).request(String.class); + } + } diff --git a/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletRoutes.java b/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletRoutes.java index 7cbc140..80f48b1 100644 --- a/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletRoutes.java +++ b/integration-tests/kamelet/src/main/java/org/apache/camel/quarkus/component/kamelet/it/KameletRoutes.java @@ -62,6 +62,9 @@ public class KameletRoutes extends RouteBuilder { from("direct:chain") .to("kamelet:echo/1?prefix=Camel Quarkus&suffix=Chained") .to("kamelet:echo/2?prefix=Hello&suffix=Route"); + + from("direct:kamelet-location-at-runtime") + .kamelet("upper?location=classpath:kamelets-runtime/upper-kamelet.xml"); } @RegisterForReflection @@ -71,4 +74,8 @@ public class KameletRoutes extends RouteBuilder { exchange.getMessage().setBody(exchange.getMessage().getBody(String.class) + "-suffix"); } } + + @RegisterForReflection(fields = false, targets = { String.class }) + public static class StringUpperCaseReflectionForUpperKamelet { + } } diff --git a/integration-tests/kamelet/src/main/resources/application.properties b/integration-tests/kamelet/src/main/resources/application.properties index dd2333e..cff0cd1 100644 --- a/integration-tests/kamelet/src/main/resources/application.properties +++ b/integration-tests/kamelet/src/main/resources/application.properties @@ -19,4 +19,6 @@ camel.kamelet.setBodyFromProperties.bodyValueFromProperty=Camel Quarkus Kamelet quarkus.camel.kamelet.identifiers = injector,logger # this is needed to actually test that kamelet are preloaded at build time: -camel.component.kamelet.location = file:/invalid \ No newline at end of file +camel.component.kamelet.location = file:/invalid + +quarkus.native.resources.includes=kamelets-runtime/*.xml \ No newline at end of file diff --git a/integration-tests/kamelet/src/main/resources/kamelets-runtime/upper-kamelet.xml b/integration-tests/kamelet/src/main/resources/kamelets-runtime/upper-kamelet.xml new file mode 100644 index 0000000..be105f1 --- /dev/null +++ b/integration-tests/kamelet/src/main/resources/kamelets-runtime/upper-kamelet.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<routeTemplate id="upper"> + <route> + <from uri="kamelet:source"/> + <transform> + <simple>${body.toUpperCase()}</simple> + </transform> + </route> +</routeTemplate> \ No newline at end of file diff --git a/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletTest.java b/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletTest.java index 7beefc3..58dd488 100644 --- a/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletTest.java +++ b/integration-tests/kamelet/src/test/java/org/apache/camel/quarkus/component/kamelet/it/KameletTest.java @@ -102,4 +102,13 @@ class KameletTest { assertTrue(jsonAsArrayList.contains("injector")); assertTrue(jsonAsArrayList.contains("logger")); } + + @Test + public void testKameletLocationAtRuntime() { + RestAssured.given() + .post("/kamelet/locationAtRuntime/Hello") + .then() + .statusCode(200) + .body(is("HELLO")); + } }