Run native tests with GitHub Actions
diff --git a/.github/workflows/pr-build-jvm.yml b/.github/workflows/pr-build-jvm.yml
deleted file mode 100644
index a166fdc..0000000
--- a/.github/workflows/pr-build-jvm.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# 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.
-#
-
-name: Build PR in JVM mode
-
-on:
-  pull_request:
-    branches:
-      - master
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        java: [ '1.8', '11' , '12' ]
-    steps:
-    - uses: actions/checkout@v1
-    - name: Set up JDK ${{ matrix.java }}
-      uses: actions/setup-java@v1
-      with:
-        java-version: ${{ matrix.java }}
-    - name: mvn verify
-      run: export LANG=en_US && ./mvnw -V -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify
diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml
new file mode 100644
index 0000000..3782098
--- /dev/null
+++ b/.github/workflows/pr-build.yaml
@@ -0,0 +1,392 @@
+#
+# 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.
+#
+
+name: Build PR
+
+on:
+  pull_request:
+    branches:
+      - master
+
+env:
+  LANG: en_US
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Build Project
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
+            -Pno-apache-snapshots \
+            clean install
+      - name: Save Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+  build-alternative-jvm:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        java: [ '11' , '12' ]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up JDK ${{ matrix.java }}
+      uses: actions/setup-java@v1
+      with:
+        java-version: ${{ matrix.java }}
+    - name: Build on ${{ matrix.java }}
+      run: |
+        ./mvnw -V -B \
+          -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
+          -Pno-apache-snapshots \
+          clean verify
+  core:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-core \
+            -pl :camel-quarkus-integration-test-core-impl \
+            -pl :camel-quarkus-integration-test-core-main \
+            -pl :camel-quarkus-integration-test-core-main-collector \
+            -pl :camel-quarkus-integration-test-core-main-xml
+  foundation:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-bean \
+            -pl :camel-quarkus-integration-test-seda \
+            -pl :camel-quarkus-integration-test-file \
+            -pl :camel-quarkus-integration-test-scheduler \
+            -pl :camel-quarkus-integration-test-jsonpath \
+            -pl :camel-quarkus-integration-test-exec \
+            -pl :camel-quarkus-integration-test-controlbus \
+            -pl :camel-quarkus-integration-test-hystrix
+  platform:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-platform-http \
+            -pl :camel-quarkus-integration-test-platform-http-engine \
+            -pl :camel-quarkus-integration-test-microprofile \
+            -pl :camel-quarkus-integration-test-opentracing
+  messaging:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-sjms \
+            -pl :camel-quarkus-integration-test-kafka \
+            -pl :camel-quarkus-integration-test-paho
+  dataformats:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-base64 \
+            -pl :camel-quarkus-integration-test-snakeyaml \
+            -pl :camel-quarkus-integration-test-tagsoup \
+            -pl :camel-quarkus-integration-test-xslt \
+            -pl :camel-quarkus-integration-test-csv \
+            -pl :camel-quarkus-integration-test-jackson \
+            -pl :camel-quarkus-integration-test-dataformat
+  networking:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-http \
+            -pl :camel-quarkus-integration-test-netty \
+            -pl :camel-quarkus-integration-test-servlet
+  sql:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-jdbc \
+            -pl :camel-quarkus-integration-test-mongodb \
+            -pl :camel-quarkus-integration-test-sql
+  cloud:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-aws \
+            -pl :camel-quarkus-integration-test-consul
+  misc:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -Pno-apache-snapshots \
+            -pl :camel-quarkus-integration-test-bean-validator \
+            -pl :camel-quarkus-integration-test-dozer \
+            -pl :camel-quarkus-integration-test-ftp \
+            -pl :camel-quarkus-integration-test-infinispan \
+            -pl :camel-quarkus-integration-test-mail \
+            -pl :camel-quarkus-integration-test-pdf \
+            -pl :camel-quarkus-integration-test-tarfile \
+            -pl :camel-quarkus-integration-test-validator \
+            -pl :camel-quarkus-integration-test-zipfile
+  saas:
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set Up Java
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+      - name: Restore Cache
+        uses: actions/cache@v1
+        with:
+          path: ~/.m2/repository
+          key: maven-${{ github.sha }}
+          restore-keys: |
+            maven-${{ github.sha }}
+      - name: Integration Tests
+        run: |
+          ./mvnw -V -B \
+            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+            -Dnative \
+            -Ddocker \
+            -DskipTests \
+            -pl :camel-quarkus-integration-test-salesforce \
+            -pl :camel-quarkus-integration-test-slack \
+            -pl :camel-quarkus-integration-test-twitter
+  # memoryhogs:
+  #   runs-on: ubuntu-latest
+  #   needs: build
+  #   steps:
+  #     - name: Checkout
+  #       uses: actions/checkout@v2
+  #     - name: Set Up Java
+  #       uses: actions/setup-java@v1
+  #       with:
+  #         java-version: 1.8
+  #     - name: Restore Cache
+  #       uses: actions/cache@v1
+  #       with:
+  #         path: ~/.m2/repository
+  #         key: maven-${{ github.sha }}
+  #         restore-keys: |
+  #           maven-${{ github.sha }}
+  #     # run the :camel-quarkus-integration-test-fhir as standalone process
+  #     # as it building the native image including camel-fhir requires lot
+  #     # of memory this we nee to limit it to avoid the process fail for OOM.
+  #     - name: Integration Tests
+  #       run: |
+  #         ./mvnw -V -B \
+  #           -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean verify \
+  #           -Dnative \
+  #           -Ddocker \
+  #           -DskipTests \
+  #           -Dnative-image.xmx=5g \
+  #           -pl :camel-quarkus-integration-test-fhir
diff --git a/.github/workflows/pr-validate.yml b/.github/workflows/pr-validate.yml
index bbd288a..d74fa5e 100644
--- a/.github/workflows/pr-validate.yml
+++ b/.github/workflows/pr-validate.yml
@@ -17,10 +17,14 @@
 
 name: Validate PR Style
 
-on: 
+on:
   pull_request:
-    branches: 
+    branches:
       - master
+
+env:
+  LANG: en_US
+
 jobs:
   build:
     runs-on: ubuntu-latest
@@ -31,4 +35,10 @@
       with:
         java-version: 1.8
     - name: mvn package
-      run: export LANG=en_US && ./mvnw -fae -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean package -Pcheck-format -DskipTests
+      run: |
+        ./mvnw -fae -B \
+          -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
+          -DskipTests \
+          -Pcheck-format \
+          clean package
+
diff --git a/pom.xml b/pom.xml
index 16120f5..4446796 100644
--- a/pom.xml
+++ b/pom.xml
@@ -602,6 +602,38 @@
                 <native-image.container-runtime>docker</native-image.container-runtime>
             </properties>
         </profile>
+
+        <profile>
+            <id>no-apache-snapshots</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+            </activation>
+            <repositories>
+                <repository>
+                    <id>apache.snapshots</id>
+                    <url>https://repository.apache.org/snapshots/</url>
+                    <name>Apache Snapshot Repo</name>
+                    <snapshots>
+                        <enabled>false</enabled>
+                    </snapshots>
+                    <releases>
+                        <enabled>false</enabled>
+                    </releases>
+                </repository>
+            </repositories>
+            <pluginRepositories>
+                <pluginRepository>
+                    <id>apache.snapshots</id>
+                    <url>https://repository.apache.org/snapshots/</url>
+                    <snapshots>
+                        <enabled>false</enabled>
+                    </snapshots>
+                    <releases>
+                        <enabled>false</enabled>
+                    </releases>
+                </pluginRepository>
+            </pluginRepositories>
+        </profile>
     </profiles>
 
 </project>