This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit e911310ae8fe3ca012a60969bc3640d3d5b0dbb9 Author: Adriano Machado <60320+ammach...@users.noreply.github.com> AuthorDate: Mon Apr 8 10:09:33 2024 -0400 Use `xml-io-dsl` instead of `xml-jaxb` when using the `management` extension. --- .../dsl/xml/io/deployment/XmlIoDslProcessor.java | 10 ++++++++++ .../camel/quarkus/dsl/xml/XmlIoDslRecorder.java} | 18 +++++++++--------- extensions/management/deployment/pom.xml | 2 +- extensions/management/runtime/pom.xml | 2 +- integration-tests/main-xml-io/pom.xml | 6 +++++- .../src/main/resources/application.properties | 4 ++++ .../camel/quarkus/main/CoreMainXmlIoTest.java | 22 ++++++++++++++++++++-- 7 files changed, 50 insertions(+), 14 deletions(-) diff --git a/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java b/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java index 1ef7a72f5d..8dc3382ee5 100644 --- a/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java +++ b/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java @@ -18,7 +18,11 @@ package org.apache.camel.quarkus.dsl.xml.io.deployment; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.annotations.ExecutionTime; +import io.quarkus.deployment.annotations.Record; import io.quarkus.deployment.builditem.FeatureBuildItem; +import org.apache.camel.quarkus.core.deployment.spi.CamelModelToXMLDumperBuildItem; +import org.apache.camel.quarkus.dsl.xml.XmlIoDslRecorder; public class XmlIoDslProcessor { private static final String FEATURE = "camel-xml-io-dsl"; @@ -27,4 +31,10 @@ public class XmlIoDslProcessor { FeatureBuildItem feature() { return new FeatureBuildItem(FEATURE); } + + @BuildStep + @Record(value = ExecutionTime.STATIC_INIT, optional = true) + CamelModelToXMLDumperBuildItem xmlModelDumper(XmlIoDslRecorder recorder) { + return new CamelModelToXMLDumperBuildItem(recorder.newXmlIoModelToXMLDumper()); + } } diff --git a/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java b/extensions-core/xml-io-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/xml/XmlIoDslRecorder.java similarity index 67% copy from extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java copy to extensions-core/xml-io-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/xml/XmlIoDslRecorder.java index 1ef7a72f5d..1f0319a9e4 100644 --- a/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java +++ b/extensions-core/xml-io-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/xml/XmlIoDslRecorder.java @@ -14,17 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package org.apache.camel.quarkus.dsl.xml; -package org.apache.camel.quarkus.dsl.xml.io.deployment; +import io.quarkus.runtime.RuntimeValue; +import io.quarkus.runtime.annotations.Recorder; +import org.apache.camel.spi.ModelToXMLDumper; +import org.apache.camel.xml.LwModelToXMLDumper; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; +@Recorder +public class XmlIoDslRecorder { -public class XmlIoDslProcessor { - private static final String FEATURE = "camel-xml-io-dsl"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); + public RuntimeValue<ModelToXMLDumper> newXmlIoModelToXMLDumper() { + return new RuntimeValue<>(new LwModelToXMLDumper()); } } diff --git a/extensions/management/deployment/pom.xml b/extensions/management/deployment/pom.xml index 2f57ee9c89..b1c4517415 100644 --- a/extensions/management/deployment/pom.xml +++ b/extensions/management/deployment/pom.xml @@ -36,7 +36,7 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-xml-jaxb-deployment</artifactId> + <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId> </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> diff --git a/extensions/management/runtime/pom.xml b/extensions/management/runtime/pom.xml index ac0066e888..013e126c03 100644 --- a/extensions/management/runtime/pom.xml +++ b/extensions/management/runtime/pom.xml @@ -42,7 +42,7 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-xml-jaxb</artifactId> + <artifactId>camel-quarkus-xml-io-dsl</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/integration-tests/main-xml-io/pom.xml b/integration-tests/main-xml-io/pom.xml index a9145bc8dd..cb6205226c 100644 --- a/integration-tests/main-xml-io/pom.xml +++ b/integration-tests/main-xml-io/pom.xml @@ -85,7 +85,11 @@ <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> - + <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <scope>test</scope> + </dependency> </dependencies> diff --git a/integration-tests/main-xml-io/src/main/resources/application.properties b/integration-tests/main-xml-io/src/main/resources/application.properties index 58f52b443c..4191fae9fa 100644 --- a/integration-tests/main-xml-io/src/main/resources/application.properties +++ b/integration-tests/main-xml-io/src/main/resources/application.properties @@ -19,14 +19,18 @@ # Quarkus # quarkus.native.add-all-charsets = true +quarkus.log.file.enable = true +quarkus.log.file.path = target/quarkus.log # # Camel # camel.context.name=quarkus-camel-example camel.rest.component = platform-http +camel.main.dumpRoutesInclude = all # # Main # camel.main.routes-include-pattern = routes/my-routes.xml,routes/my-routes-iso_8859_15.xml,classpath:rests/my-rests.xml,classpath:templates/my-templates.xml,classpath:routes/my-templated.xml,routes/my-route-with-beanType.xml +camel.main.dump-routes = xml 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 f575a55670..ae63f16560 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 @@ -16,7 +16,10 @@ */ package org.apache.camel.quarkus.main; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.List; +import java.util.concurrent.TimeUnit; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; @@ -25,11 +28,12 @@ import io.restassured.path.json.JsonPath; import jakarta.ws.rs.core.MediaType; import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader; import org.apache.camel.quarkus.core.DisabledModelJAXBContextFactory; -import org.apache.camel.quarkus.core.DisabledModelToXMLDumper; +import org.apache.camel.xml.LwModelToXMLDumper; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; import static org.hamcrest.Matchers.is; @QuarkusTest @@ -45,7 +49,7 @@ public class CoreMainXmlIoTest { .body() .jsonPath(); - assertThat(p.getString("xml-model-dumper")).isEqualTo(DisabledModelToXMLDumper.class.getName()); + assertThat(p.getString("xml-model-dumper")).isEqualTo(LwModelToXMLDumper.class.getName()); assertThat(p.getString("xml-model-factory")).isEqualTo(DisabledModelJAXBContextFactory.class.getName()); assertThat(p.getString("xml-routes-builder-loader")) @@ -118,4 +122,18 @@ public class CoreMainXmlIoTest { .statusCode(200) .body(Matchers.is("beanTypeShouldSucceed-handled-by-MyBean")); } + + @Test + public void testDumpRoutes() { + await().atMost(10L, TimeUnit.SECONDS).pollDelay(100, TimeUnit.MILLISECONDS).until(() -> { + String log = Files.readString(Paths.get("target/quarkus.log")); + return logContainsDumpedRoutes(log); + }); + } + + private boolean logContainsDumpedRoutes(String log) { + return log.contains("<route id=\"my-xml-route\">") && + log.contains("<rest id=\"greet\" path=\"/greeting\">") && + log.contains("<routeTemplate id=\"myTemplate\">"); + } }