You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2021/08/06 15:00:32 UTC

[camel-quarkus] branch main updated (4350865 -> 13971d3)

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

ppalaga pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git.


    from 4350865  Updated CHANGELOG.md
     new 1ef819a  Test language() DSL method
     new e304605  Language component native support #817
     new 13971d3  Fixup cb05578 Use quarkus-grpc-common instead of quarkus-grpc in the gRPC extension

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../pages/contributor-guide/extension-testing.adoc |  3 +-
 .../ROOT/pages/reference/extensions/language.adoc  | 19 +++--
 .../partials/reference/components/language.adoc    |  6 +-
 .../language/deployment/LanguageProcessor.java     | 46 ------------
 extensions-jvm/language/integration-test/pom.xml   | 83 ----------------------
 .../component/language/it/LanguageResource.java    | 51 -------------
 .../component/language/it/LanguageTest.java        | 34 ---------
 extensions-jvm/pom.xml                             |  1 -
 .../language/deployment/pom.xml                    |  0
 .../language/deployment/LanguageProcessor.java}    |  9 ++-
 {extensions-jvm => extensions}/language/pom.xml    |  1 -
 .../language/runtime/pom.xml                       |  1 +
 .../main/resources/META-INF/quarkus-extension.yaml |  3 +-
 extensions/pom.xml                                 |  1 +
 .../quarkus/core/languages/it/SimpleRoutes.java    |  3 +
 .../quarkus/core/languages/it/SimpleTest.java      |  7 ++
 .../{core-annotations => language}/pom.xml         | 18 ++---
 .../component/language/it/LanguageResource.java    | 18 ++---
 .../component/language/it/LanguageRoutes.java      | 11 +--
 .../src/main}/resources/application.properties     |  2 +-
 .../language/src/main/resources/hello.simple.txt   |  1 +
 .../quarkus/component/language/it/LanguageIT.java} |  4 +-
 .../component/language/it/LanguageTest.java}       | 29 +++-----
 integration-test-groups/foundation/pom.xml         |  1 +
 integration-tests/foundation-grouped/pom.xml       | 17 +++++
 integration-tests/grpc/pom.xml                     | 13 ----
 tooling/scripts/group-tests.groovy                 | 17 ++++-
 27 files changed, 106 insertions(+), 293 deletions(-)
 delete mode 100644 extensions-jvm/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
 delete mode 100644 extensions-jvm/language/integration-test/pom.xml
 delete mode 100644 extensions-jvm/language/integration-test/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
 delete mode 100644 extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
 rename {extensions-jvm => extensions}/language/deployment/pom.xml (100%)
 copy extensions/{rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java => language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java} (83%)
 rename {extensions-jvm => extensions}/language/pom.xml (97%)
 rename {extensions-jvm => extensions}/language/runtime/pom.xml (98%)
 rename {extensions-jvm => extensions}/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml (97%)
 copy integration-test-groups/foundation/{core-annotations => language}/pom.xml (90%)
 copy integration-tests/validator/src/main/java/org/apache/camel/quarkus/component/validator/it/ValidatorResource.java => integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java (75%)
 copy integration-tests/base64/src/main/java/org/apache/camel/quarkus/component/base64/it/Base64RouteBuilder.java => integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageRoutes.java (72%)
 copy {extensions/kafka/deployment/src/test => integration-test-groups/foundation/language/src/main}/resources/application.properties (94%)
 create mode 100644 integration-test-groups/foundation/language/src/main/resources/hello.simple.txt
 copy integration-test-groups/{aws2/aws2-ddb/src/test/java/org/apache/camel/quarkus/component/aws2/ddb/it/Aws2DdbIT.java => foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java} (90%)
 copy integration-test-groups/foundation/{mock/src/test/java/org/apache/camel/quarkus/component/mock/it/MockTest.java => language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java} (68%)

[camel-quarkus] 03/03: Fixup cb05578 Use quarkus-grpc-common instead of quarkus-grpc in the gRPC extension

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 13971d3fc4c466fb7276ba92177cc6dbc2483226
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Fri Aug 6 08:30:08 2021 +0200

    Fixup cb05578 Use quarkus-grpc-common instead of quarkus-grpc in the gRPC extension
---
 integration-test-groups/foundation/language/pom.xml         | 13 -------------
 .../quarkus/component/language/it/LanguageResource.java     |  2 +-
 integration-tests/grpc/pom.xml                              | 13 -------------
 3 files changed, 1 insertion(+), 27 deletions(-)

diff --git a/integration-test-groups/foundation/language/pom.xml b/integration-test-groups/foundation/language/pom.xml
index 087133a..5a62050 100644
--- a/integration-test-groups/foundation/language/pom.xml
+++ b/integration-test-groups/foundation/language/pom.xml
@@ -59,19 +59,6 @@
         <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-direct</artifactId>
-            <version>${project.version}</version>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-direct-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
index 87f5b7e..d583e58 100644
--- a/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
+++ b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
@@ -38,7 +38,7 @@ public class LanguageResource {
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
     @Produces(MediaType.TEXT_PLAIN)
-    public String resource(String body, @PathParam("route") String route) {
+    public String route(String body, @PathParam("route") String route) {
         return template.requestBody("direct:" + route, body, String.class);
     }
 }
diff --git a/integration-tests/grpc/pom.xml b/integration-tests/grpc/pom.xml
index 1ef33e2..aef9126 100644
--- a/integration-tests/grpc/pom.xml
+++ b/integration-tests/grpc/pom.xml
@@ -71,19 +71,6 @@
         <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-bean-deployment</artifactId>
-            <version>${project.version}</version>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-direct-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>

[camel-quarkus] 01/03: Test language() DSL method

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1ef819ad4b4464dbef473a516c5f73c1f70e7ad2
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Aug 5 22:23:10 2021 +0200

    Test language() DSL method
---
 .../org/apache/camel/quarkus/core/languages/it/SimpleRoutes.java   | 3 +++
 .../org/apache/camel/quarkus/core/languages/it/SimpleTest.java     | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/integration-test-groups/foundation/core-languages/src/main/java/org/apache/camel/quarkus/core/languages/it/SimpleRoutes.java b/integration-test-groups/foundation/core-languages/src/main/java/org/apache/camel/quarkus/core/languages/it/SimpleRoutes.java
index ede1f2e..80675bf 100644
--- a/integration-test-groups/foundation/core-languages/src/main/java/org/apache/camel/quarkus/core/languages/it/SimpleRoutes.java
+++ b/integration-test-groups/foundation/core-languages/src/main/java/org/apache/camel/quarkus/core/languages/it/SimpleRoutes.java
@@ -33,6 +33,9 @@ public class SimpleRoutes extends RouteBuilder {
 
         from("direct:bodyIs-simple").filter().simple("${body} is 'java.nio.ByteBuffer'").setBody(constant("BYTE_BUFFER"));
 
+        from("direct:languageSimple")
+                .transform().language("simple", "Hello ${body} from language().simple()");
+
     }
 
 }
diff --git a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleTest.java b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleTest.java
index 66f8dc1..5290ce7 100644
--- a/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleTest.java
+++ b/integration-test-groups/foundation/core-languages/src/test/java/org/apache/camel/quarkus/core/languages/it/SimpleTest.java
@@ -68,4 +68,11 @@ public class SimpleTest {
                 .body(is("BYTE_BUFFER"));
     }
 
+    @Test
+    public void languageSimple() {
+        given().body("Frankenstein").when().post("/core-languages/route/languageSimple/String").then()
+                .statusCode(200)
+                .body(is("Hello Frankenstein from language().simple()"));
+    }
+
 }

[camel-quarkus] 02/03: Language component native support #817

Posted by pp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e304605fcfd6fbc986d6ccde22e399a6fd3f44c6
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Aug 5 22:35:14 2021 +0200

    Language component native support #817
---
 .../pages/contributor-guide/extension-testing.adoc |  3 +-
 .../ROOT/pages/reference/extensions/language.adoc  | 19 +++--
 .../partials/reference/components/language.adoc    |  6 +-
 extensions-jvm/pom.xml                             |  1 -
 .../language/deployment/pom.xml                    |  0
 .../language/deployment/LanguageProcessor.java     | 14 ----
 {extensions-jvm => extensions}/language/pom.xml    |  1 -
 .../language/runtime/pom.xml                       |  1 +
 .../main/resources/META-INF/quarkus-extension.yaml |  3 +-
 extensions/pom.xml                                 |  1 +
 .../foundation/language}/pom.xml                   | 80 +++++++++++++++++-----
 .../component/language/it/LanguageResource.java    | 27 +++-----
 .../component/language/it/LanguageRoutes.java      | 20 +++---
 .../src/main/resources/application.properties      | 17 +++++
 .../language/src/main/resources/hello.simple.txt   |  1 +
 .../quarkus/component/language/it/LanguageIT.java  | 16 +----
 .../component/language/it/LanguageTest.java        | 24 +++++--
 integration-test-groups/foundation/pom.xml         |  1 +
 integration-tests/foundation-grouped/pom.xml       | 17 +++++
 tooling/scripts/group-tests.groovy                 | 17 ++++-
 20 files changed, 177 insertions(+), 92 deletions(-)

diff --git a/docs/modules/ROOT/pages/contributor-guide/extension-testing.adoc b/docs/modules/ROOT/pages/contributor-guide/extension-testing.adoc
index d3fb196..080d6e2 100644
--- a/docs/modules/ROOT/pages/contributor-guide/extension-testing.adoc
+++ b/docs/modules/ROOT/pages/contributor-guide/extension-testing.adoc
@@ -67,7 +67,8 @@ The grouped module may then be preferred in a CI job that validates pull request
   E.g. for `https://github.com/apache/camel-quarkus/tree/main/integration-test-groups/azure[integration-test-groups/azure]` there is `https://github.com/apache/camel-quarkus/tree/main/integration-tests/azure-grouped[integration-tests/azure-grouped]`.
 * Grouped modules dynamically pull all sources from their associated isolated test modules to their `target/[test-]classes` directories respectively.
 * `application.properties` files and service descriptors are concatenated using a Groovy script.
-* The dependencies in the grouped `pom.xml` need to be updated manually via `mvn process-resources -Pformat -N`.
+* The dependencies in the grouped `pom.xml` need to be updated manually via `mvn process-resources -Pformat -N`
+  run from the root directory of the source tree.
 
 == Coverage
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/language.adoc b/docs/modules/ROOT/pages/reference/extensions/language.adoc
index 3f56d73..abc3322 100644
--- a/docs/modules/ROOT/pages/reference/extensions/language.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/language.adoc
@@ -3,16 +3,16 @@
 = Language
 :linkattrs:
 :cq-artifact-id: camel-quarkus-language
-:cq-native-supported: false
-:cq-status: Preview
-:cq-status-deprecation: Preview
+:cq-native-supported: true
+:cq-status: Stable
+:cq-status-deprecation: Stable
 :cq-description: Execute scripts in any of the languages supported by Camel.
 :cq-deprecated: false
 :cq-jvm-since: 1.1.0
-:cq-native-since: n/a
+:cq-native-since: 2.2.0
 
 [.badges]
-[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##2.2.0##
 
 Execute scripts in any of the languages supported by Camel.
 
@@ -24,6 +24,10 @@ Please refer to the above link for usage and configuration details.
 
 == Maven coordinates
 
+https://code.quarkus.io/?extension-search=camel-quarkus-language[Create a new project with this extension on code.quarkus.io, window="_blank"]
+
+Or add the coordinates to your existing project:
+
 [source,xml]
 ----
 <dependency>
@@ -33,3 +37,8 @@ Please refer to the above link for usage and configuration details.
 ----
 
 Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+
+== allowContextMapAll option in native mode
+
+The `allowContextMapAll` option is not supported in native mode as it requires reflective access to security sensitive camel core classes such as
+`CamelContext` & `Exchange`. This is considered a security risk and thus access to the feature is not provided by default.
diff --git a/docs/modules/ROOT/partials/reference/components/language.adoc b/docs/modules/ROOT/partials/reference/components/language.adoc
index 6bc275e..c180610 100644
--- a/docs/modules/ROOT/partials/reference/components/language.adoc
+++ b/docs/modules/ROOT/partials/reference/components/language.adoc
@@ -2,11 +2,11 @@
 // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
 :cq-artifact-id: camel-quarkus-language
 :cq-artifact-id-base: language
-:cq-native-supported: false
-:cq-status: Preview
+:cq-native-supported: true
+:cq-status: Stable
 :cq-deprecated: false
 :cq-jvm-since: 1.1.0
-:cq-native-since: n/a
+:cq-native-since: 2.2.0
 :cq-camel-part-name: language
 :cq-camel-part-title: Language
 :cq-camel-part-description: Execute scripts in any of the languages supported by Camel.
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index bc44c24..9ea63e4 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -91,7 +91,6 @@
         <module>jt400</module>
         <module>kamelet-reify</module>
         <module>kotlin-dsl</module>
-        <module>language</module>
         <module>ldap</module>
         <module>ldif</module>
         <module>lucene</module>
diff --git a/extensions-jvm/language/deployment/pom.xml b/extensions/language/deployment/pom.xml
similarity index 100%
rename from extensions-jvm/language/deployment/pom.xml
rename to extensions/language/deployment/pom.xml
diff --git a/extensions-jvm/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java b/extensions/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
similarity index 68%
rename from extensions-jvm/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
rename to extensions/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
index c1c06b7..31b4f3f 100644
--- a/extensions-jvm/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
+++ b/extensions/language/deployment/src/main/java/org/apache/camel/quarkus/component/language/deployment/LanguageProcessor.java
@@ -17,11 +17,7 @@
 package org.apache.camel.quarkus.component.language.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 io.quarkus.deployment.pkg.steps.NativeBuild;
-import org.apache.camel.quarkus.core.JvmOnlyRecorder;
 import org.jboss.logging.Logger;
 
 class LanguageProcessor {
@@ -33,14 +29,4 @@ class LanguageProcessor {
     FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
-
-    /**
-     * Remove this once this extension starts supporting the native mode.
-     */
-    @BuildStep(onlyIf = NativeBuild.class)
-    @Record(value = ExecutionTime.RUNTIME_INIT)
-    void warnJvmInNative(JvmOnlyRecorder recorder) {
-        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
-        recorder.warnJvmInNative(FEATURE); // warn at runtime
-    }
 }
diff --git a/extensions-jvm/language/pom.xml b/extensions/language/pom.xml
similarity index 97%
rename from extensions-jvm/language/pom.xml
rename to extensions/language/pom.xml
index 4366bda..2959230 100644
--- a/extensions-jvm/language/pom.xml
+++ b/extensions/language/pom.xml
@@ -33,6 +33,5 @@
     <modules>
         <module>deployment</module>
         <module>runtime</module>
-        <module>integration-test</module>
     </modules>
 </project>
diff --git a/extensions-jvm/language/runtime/pom.xml b/extensions/language/runtime/pom.xml
similarity index 98%
rename from extensions-jvm/language/runtime/pom.xml
rename to extensions/language/runtime/pom.xml
index 49dd1fc..0afa8ba 100644
--- a/extensions-jvm/language/runtime/pom.xml
+++ b/extensions/language/runtime/pom.xml
@@ -32,6 +32,7 @@
 
     <properties>
         <camel.quarkus.jvmSince>1.1.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>2.2.0</camel.quarkus.nativeSince>
     </properties>
 
     <dependencyManagement>
diff --git a/extensions-jvm/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 97%
rename from extensions-jvm/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to extensions/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 9d2e7f4..e2d1f55 100644
--- a/extensions-jvm/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/language/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -24,9 +24,8 @@
 name: "Camel Language"
 description: "Execute scripts in any of the languages supported by Camel"
 metadata:
-  unlisted: true
   guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/language.html"
   categories:
   - "integration"
   status:
-  - "preview"
+  - "stable"
diff --git a/extensions/pom.xml b/extensions/pom.xml
index f393730..6976a69 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -150,6 +150,7 @@
         <module>kotlin</module>
         <module>kubernetes</module>
         <module>kudu</module>
+        <module>language</module>
         <module>leveldb</module>
         <module>log</module>
         <module>lra</module>
diff --git a/extensions-jvm/language/integration-test/pom.xml b/integration-test-groups/foundation/language/pom.xml
similarity index 53%
rename from extensions-jvm/language/integration-test/pom.xml
rename to integration-test-groups/foundation/language/pom.xml
index 40d8384..087133a 100644
--- a/extensions-jvm/language/integration-test/pom.xml
+++ b/integration-test-groups/foundation/language/pom.xml
@@ -21,33 +21,25 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <artifactId>camel-quarkus-integration-tests-foundation</artifactId>
         <version>2.2.0-SNAPSHOT</version>
-        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-language-integration-test</artifactId>
-    <name>Camel Quarkus :: Language :: Integration Test</name>
+    <artifactId>camel-quarkus-integration-test-language</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Language</name>
     <description>Integration tests for Camel Quarkus Language extension</description>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-bom-test</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-language</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
+        <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
         </dependency>
@@ -67,6 +59,32 @@
         <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-language-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
@@ -80,4 +98,34 @@
         </dependency>
     </dependencies>
 
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
 </project>
diff --git a/extensions-jvm/language/integration-test/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
similarity index 60%
rename from extensions-jvm/language/integration-test/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
rename to integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
index 4be44f4..87f5b7e 100644
--- a/extensions-jvm/language/integration-test/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
+++ b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageResource.java
@@ -18,34 +18,27 @@ package org.apache.camel.quarkus.component.language.it;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
-import javax.ws.rs.GET;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 
-import org.apache.camel.CamelContext;
-import org.jboss.logging.Logger;
+import org.apache.camel.ProducerTemplate;
 
 @Path("/language")
 @ApplicationScoped
 public class LanguageResource {
 
-    private static final Logger LOG = Logger.getLogger(LanguageResource.class);
-
-    private static final String COMPONENT_LANGUAGE = "language";
     @Inject
-    CamelContext context;
+    ProducerTemplate template;
 
-    @Path("/load/component/language")
-    @GET
+    @Path("/route/{route}")
+    @POST
+    @Consumes(MediaType.TEXT_PLAIN)
     @Produces(MediaType.TEXT_PLAIN)
-    public Response loadComponentLanguage() throws Exception {
-        /* This is an autogenerated test */
-        if (context.getComponent(COMPONENT_LANGUAGE) != null) {
-            return Response.ok().build();
-        }
-        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_LANGUAGE);
-        return Response.status(500, COMPONENT_LANGUAGE + " could not be loaded from the Camel context").build();
+    public String resource(String body, @PathParam("route") String route) {
+        return template.requestBody("direct:" + route, body, String.class);
     }
 }
diff --git a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageRoutes.java
similarity index 68%
copy from extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
copy to integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageRoutes.java
index 4cf3425..7c9419a 100644
--- a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
+++ b/integration-test-groups/foundation/language/src/main/java/org/apache/camel/quarkus/component/language/it/LanguageRoutes.java
@@ -16,19 +16,15 @@
  */
 package org.apache.camel.quarkus.component.language.it;
 
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import org.junit.jupiter.api.Test;
+import org.apache.camel.builder.RouteBuilder;
 
-@QuarkusTest
-class LanguageTest {
+public class LanguageRoutes extends RouteBuilder {
 
-    @Test
-    public void loadComponentLanguage() {
-        /* A simple autogenerated test */
-        RestAssured.get("/language/load/component/language")
-                .then()
-                .statusCode(200);
+    @Override
+    public void configure() throws Exception {
+        from("direct:languageSimpleScript")
+                .to("language://simple:Hello ${body} from simple language script");
+        from("direct:languageSimpleResource")
+                .to("language://simple:resource:hello.simple.txt");
     }
-
 }
diff --git a/integration-test-groups/foundation/language/src/main/resources/application.properties b/integration-test-groups/foundation/language/src/main/resources/application.properties
new file mode 100644
index 0000000..f727794
--- /dev/null
+++ b/integration-test-groups/foundation/language/src/main/resources/application.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+quarkus.native.resources.includes = hello.simple.txt
diff --git a/integration-test-groups/foundation/language/src/main/resources/hello.simple.txt b/integration-test-groups/foundation/language/src/main/resources/hello.simple.txt
new file mode 100644
index 0000000..eb84cdb
--- /dev/null
+++ b/integration-test-groups/foundation/language/src/main/resources/hello.simple.txt
@@ -0,0 +1 @@
+Hello ${body} from simple language resource
\ No newline at end of file
diff --git a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java
similarity index 70%
copy from extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
copy to integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java
index 4cf3425..11c66fe 100644
--- a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
+++ b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageIT.java
@@ -16,19 +16,9 @@
  */
 package org.apache.camel.quarkus.component.language.it;
 
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import org.junit.jupiter.api.Test;
+import io.quarkus.test.junit.NativeImageTest;
 
-@QuarkusTest
-class LanguageTest {
-
-    @Test
-    public void loadComponentLanguage() {
-        /* A simple autogenerated test */
-        RestAssured.get("/language/load/component/language")
-                .then()
-                .statusCode(200);
-    }
+@NativeImageTest
+class LanguageIT extends LanguageTest {
 
 }
diff --git a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
similarity index 58%
rename from extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
rename to integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
index 4cf3425..245b70b 100644
--- a/extensions-jvm/language/integration-test/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
+++ b/integration-test-groups/foundation/language/src/test/java/org/apache/camel/quarkus/component/language/it/LanguageTest.java
@@ -18,17 +18,33 @@ package org.apache.camel.quarkus.component.language.it;
 
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
 
 @QuarkusTest
 class LanguageTest {
 
     @Test
-    public void loadComponentLanguage() {
-        /* A simple autogenerated test */
-        RestAssured.get("/language/load/component/language")
+    public void languageSimpleScript() {
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body("Dolly")
+                .post("/language/route/languageSimpleScript")
                 .then()
-                .statusCode(200);
+                .statusCode(200)
+                .body(Matchers.is("Hello Dolly from simple language script"));
+    }
+
+    @Test
+    public void languageSimpleResource() {
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body("Molly")
+                .post("/language/route/languageSimpleResource")
+                .then()
+                .statusCode(200)
+                .body(Matchers.is("Hello Molly from simple language resource"));
     }
 
 }
diff --git a/integration-test-groups/foundation/pom.xml b/integration-test-groups/foundation/pom.xml
index 13420c8..3d46e7e 100644
--- a/integration-test-groups/foundation/pom.xml
+++ b/integration-test-groups/foundation/pom.xml
@@ -45,6 +45,7 @@
         <module>customized-log-component</module>
         <module>direct</module>
         <module>eip</module>
+        <module>language</module>
         <module>log</module>
         <module>mock</module>
         <module>ref</module>
diff --git a/integration-tests/foundation-grouped/pom.xml b/integration-tests/foundation-grouped/pom.xml
index 5c3a46c..f0bbe6c 100644
--- a/integration-tests/foundation-grouped/pom.xml
+++ b/integration-tests/foundation-grouped/pom.xml
@@ -93,6 +93,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-language</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-log</artifactId>
         </dependency>
         <dependency>
@@ -221,6 +225,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-language-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-log-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/tooling/scripts/group-tests.groovy b/tooling/scripts/group-tests.groovy
index 98e34ee..02eba77 100644
--- a/tooling/scripts/group-tests.groovy
+++ b/tooling/scripts/group-tests.groovy
@@ -34,9 +34,11 @@ import groovy.ant.AntBuilder
 final Path sourceDir = Paths.get(properties['group-tests.source.dir'])
 final String[] concatRelPaths = properties['group-tests.concat.rel.paths'].split('[\\s,]+')
 final Path destinationModuleDir = Paths.get(properties['group-tests.dest.module.dir'])
+/* Property names whose values originating from distinct application.properties files can be concatenated using comma as a separator */
+final Set<String> commaConcatenatePropertyNames = ["quarkus.native.resources.includes", "quarkus.native.resources.excludes"] as Set;
 
 final Map<String, ResourceConcatenator> mergedFiles = new HashMap<>()
-concatRelPaths.each {relPath -> mergedFiles.put(relPath, new ResourceConcatenator()) }
+concatRelPaths.each {relPath -> mergedFiles.put(relPath, new ResourceConcatenator(commaConcatenatePropertyNames)) }
 
 Files.list(sourceDir)
     .filter { p -> Files.exists(p.resolve('pom.xml')) }
@@ -69,7 +71,11 @@ class ResourceConcatenator {
     private final StringBuilder sb = new StringBuilder()
     private final Properties props = new Properties()
     private final List<Path> visitedPaths = new ArrayList<>()
+    private final Set<String> commaConcatenatePropertyNames;
 
+    public ResourceConcatenator(Set<String> commaConcatenatePropertyNames) {
+        this.commaConcatenatePropertyNames = commaConcatenatePropertyNames;
+    }
     public ResourceConcatenator append(Path path) {
         if (Files.exists(path)) {
             if (path.getFileName().toString().endsWith(".properties")) {
@@ -79,10 +85,15 @@ class ResourceConcatenator {
                 }
                 newProps.each { key, val ->
                     if (props.containsKey(key) && !props.get(key).equals(val)) {
-                        throw new IllegalStateException("Conflicting property value "+ key +" = "+ val +": found in "+ path + " conflicting with some of " + visitedPaths);
+                        if (commaConcatenatePropertyNames.contains(key)) {
+                            props.put(key, props.get(key) + "," + val);
+                        } else {
+                            throw new IllegalStateException("Conflicting property value "+ key +" = "+ val +": found in "+ path + " conflicting with some of " + visitedPaths);
+                        }
+                    } else {
+                        props.put(key, val);
                     }
                 }
-                props.putAll(newProps)
             } else {
                 sb.append(path.getText('UTF-8') + '\n')
             }