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

Reply via email to