You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2023/03/20 16:32:22 UTC

[camel-quarkus] 04/07: Register atlasmap.properties as a native image resource

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 2.13.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit a80fe32857b0368411238d385ee085e6dc82413b
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Mar 14 07:43:00 2023 +0000

    Register atlasmap.properties as a native image resource
    
    Fixes #4633
---
 .../atlasmap/deployment/AtlasmapProcessor.java          |  5 +++--
 .../quarkus/component/atlasmap/it/AtlasmapResource.java | 13 +++++++++++++
 .../quarkus/component/atlasmap/it/AtlasmapTest.java     | 17 +++++++++++++++++
 3 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/extensions/atlasmap/deployment/src/main/java/org/apache/camel/quarkus/component/atlasmap/deployment/AtlasmapProcessor.java b/extensions/atlasmap/deployment/src/main/java/org/apache/camel/quarkus/component/atlasmap/deployment/AtlasmapProcessor.java
index 5dd694968d..cb326c327f 100644
--- a/extensions/atlasmap/deployment/src/main/java/org/apache/camel/quarkus/component/atlasmap/deployment/AtlasmapProcessor.java
+++ b/extensions/atlasmap/deployment/src/main/java/org/apache/camel/quarkus/component/atlasmap/deployment/AtlasmapProcessor.java
@@ -70,8 +70,9 @@ class AtlasmapProcessor {
     }
 
     @BuildStep
-    NativeImageResourceBuildItem resource() {
-        return new NativeImageResourceBuildItem("META-INF/services/atlas/module/atlas.module");
+    void nativeImageResources(BuildProducer<NativeImageResourceBuildItem> nativeImageResource) {
+        nativeImageResource.produce(new NativeImageResourceBuildItem("META-INF/services/atlas/module/atlas.module"));
+        nativeImageResource.produce(new NativeImageResourceBuildItem("atlasmap.properties"));
     }
 
     @BuildStep
diff --git a/integration-tests/atlasmap/src/main/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapResource.java b/integration-tests/atlasmap/src/main/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapResource.java
index 18109ccf9e..f6ddf40a9d 100644
--- a/integration-tests/atlasmap/src/main/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapResource.java
+++ b/integration-tests/atlasmap/src/main/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapResource.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.quarkus.component.atlasmap.it;
 
+import java.util.Map;
+
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 import javax.ws.rs.Consumes;
@@ -24,9 +26,12 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
+import io.atlasmap.core.DefaultAtlasContextFactory;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.quarkus.component.atlasmap.it.model.Person;
 
+import static io.atlasmap.api.AtlasContextFactory.PROPERTY_ATLASMAP_CORE_VERSION;
+
 @Path("/atlasmap")
 @ApplicationScoped
 @Produces(MediaType.APPLICATION_JSON)
@@ -132,4 +137,12 @@ public class AtlasmapResource {
         return producerTemplate.requestBody("atlasmap:mapping/json/atlasmapping-xml-to-csv.json", xml, String.class);
     }
 
+    @GET
+    @Path("version")
+    @Produces(MediaType.TEXT_PLAIN)
+    public String version() {
+        DefaultAtlasContextFactory factory = DefaultAtlasContextFactory.getInstance();
+        Map<String, String> properties = factory.getProperties();
+        return properties.get(PROPERTY_ATLASMAP_CORE_VERSION);
+    }
 }
diff --git a/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapTest.java b/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapTest.java
index 1a1e11508b..a0a930be33 100644
--- a/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapTest.java
+++ b/integration-tests/atlasmap/src/test/java/org/apache/camel/quarkus/component/atlasmap/it/AtlasmapTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.camel.quarkus.component.atlasmap.it;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
 import io.quarkus.test.common.http.TestHTTPEndpoint;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.http.ContentType;
@@ -23,6 +27,7 @@ import org.apache.camel.quarkus.component.atlasmap.it.model.Account;
 import org.apache.camel.quarkus.component.atlasmap.it.model.Person;
 import org.junit.jupiter.api.Test;
 
+import static io.atlasmap.api.AtlasContextFactory.PROPERTY_ATLASMAP_CORE_VERSION;
 import static io.restassured.RestAssured.given;
 import static org.hamcrest.Matchers.equalTo;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -275,4 +280,16 @@ class AtlasmapTest {
                 .body(equalTo(expectedResult));
     }
 
+    @Test
+    void testGetAtlasMapVersion() throws IOException {
+        try (InputStream stream = getClass().getResourceAsStream("/atlasmap.properties")) {
+            Properties properties = new Properties();
+            properties.load(stream);
+            String version = properties.getProperty(PROPERTY_ATLASMAP_CORE_VERSION);
+
+            given().get("/version")
+                    .then()
+                    .body(equalTo(version));
+        }
+    }
 }