You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by "gnodet (via GitHub)" <gi...@apache.org> on 2026/09/04 14:09:55 UTC

[PR] CAMEL-24616: Build and test with JDK 27 [camel]

gnodet opened a new pull request, #26133:
URL: https://github.com/apache/camel/pull/26133

   ## What
   
   Add CI infrastructure to build and test Camel with JDK 27 (EA), as a checkpoint toward the next LTS (JDK 29, September 2027).
   
   ### Changes
   
   1. **`Jenkinsfile.jdk27`** — Weekly Jenkins CI build on JDK 27 EA, modeled on the existing `Jenkinsfile.jdk26`. Runs the full build+test matrix on `ppc64le`, `s390x`, and `ubuntu-avx` platforms using the `jdk_27_latest` tool.
   
   2. **GitHub Actions PR build** (`.github/workflows/pr-build-main.yml`) — Added JDK `27-ea` as an experimental matrix entry with `continue-on-error: true`. This gives early visibility into JDK 27 compatibility on every PR without blocking merges.
   
   ### Notes
   
   - JDK 27 GA is planned for September 2026. The reporter confirmed that `mvn clean install -DskipTests` succeeds with JDK 27 EA.
   - The Jenkins `jdk_27_latest` tool must be configured on the ASF Jenkins infrastructure for the Jenkinsfile to work (similar to how `jdk_26_latest` was set up for CAMEL-23660).
   - The GHA experimental entry uses `actions/setup-java` with `java-version: 27-ea` and `distribution: temurin`, which is supported per the [setup-java docs](https://github.com/actions/setup-java#supported-version-syntax).
   
   Fixes: https://issues.apache.org/jira/browse/CAMEL-24616
   
   _AI agent (Hermes on behalf of gnodet)_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "apupier (via GitHub)" <gi...@apache.org>.
apupier commented on code in PR #26133:
URL: https://github.com/apache/camel/pull/26133#discussion_r3935268460


##########
.github/workflows/pr-build-main.yml:
##########
@@ -78,6 +78,10 @@ jobs:
             # JDK 17 is kept for runtime compatibility testing.
             # Skip the enforcer which requires JDK 21+ (needed to compile JDK 21-specific classes).
             maven_extra_args: '-Denforcer.phase=none'
+          - java: '27-ea'
+            # JDK 27 EA: early-access build to catch compatibility issues ahead of the Sep 2026 GA.
+            # Experimental — failures do not block PR merges.
+            experimental: true

Review Comment:
   given that we are lacking GitHub resources, we took the option to not add the jdk 27 on GitHub side



##########
Jenkinsfile.jdk27:
##########
@@ -0,0 +1,157 @@
+/*
+ * 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.
+ */
+def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dsurefire.rerunFailingTestsCount=2 -Dfailsafe.rerunFailingTestsCount=1"
+def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?: "-Dci.env.name=apache.org"
+def MAVEN_TEST_PARAMS_UBUNTU = env.MAVEN_TEST_PARAMS ?: "-Dci.env.name=apache.org"
+
+/*
+Below parameters are required for camel/core/camel-core module's test cases to pass on ppc64 and s390x
+- xpathExprGrpLimit: limits the number of groups an Xpath expression can contain
+- xpathExprOpLimit: limits the number of operators an Xpath expression can contain
+The Kafka parameter is because the apache/kafka image is not working on alternative OSes
+*/
+def MAVEN_TEST_PARAMS_ALT_ARCHS = "-Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000 -Dkafka.instance.type=local-strimzi-container"
+
+pipeline {
+
+    triggers {
+        // weekly
+        cron('H H * * H')
+    }
+
+    environment {
+        MAVEN_SKIP_RC = true
+        DEVELOCITY_ACCESS_KEY = credentials('CAMEL_DEVELOCITY_ACCESS_KEY')
+    }
+
+    options {
+        buildDiscarder(
+            logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
+        )
+        disableConcurrentBuilds()
+        throttleJobProperty(
+          categories: ['camel'],
+          throttleEnabled: true,
+          throttleOption: 'category',
+          maxConcurrentPerNode: 1
+      )
+
+        // This is required if you want to clean before build
+        skipDefaultCheckout(true)
+    }
+
+    parameters {
+        booleanParam(name: 'VIRTUAL_THREAD', defaultValue: false, description: 'Perform the build using virtual threads')
+        choice(name: 'PLATFORM_FILTER', choices: ['all', 'ppc64le', 's390x', 'ubuntu-avx'], description: 'Run on specific platform')
+        choice(name: 'JDK_FILTER', choices: ['jdk_27_latest'], description: 'Run on specific jdk')
+    }
+    agent none
+    stages {
+        stage('BuildAndTest') {
+            matrix {
+                agent {
+                    label "${PLATFORM}"
+                }
+                options {
+                    throttle(['camel'])
+                }
+                when { allOf {
+                    anyOf {
+                        expression { params.PLATFORM_FILTER == 'all' }
+                        expression { params.PLATFORM_FILTER == env.PLATFORM }
+                    }
+                    anyOf {
+                        expression { params.JDK_FILTER == 'all' }
+                        expression { params.JDK_FILTER == env.JDK_NAME }
+                    }
+                } }
+                axes {
+                    axis {
+                        name 'JDK_NAME'
+                        values 'jdk_27_latest'

Review Comment:
   not yet available on the Apaceh jenkins



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "gnodet (via GitHub)" <gi...@apache.org>.
gnodet closed pull request #26133: CAMEL-24616: Build and test with JDK 27
URL: https://github.com/apache/camel/pull/26133


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "apupier (via GitHub)" <gi...@apache.org>.
apupier commented on PR #26133:
URL: https://github.com/apache/camel/pull/26133#issuecomment-5949428902

   other PR proposal: https://github.com/apache/camel/pull/27272


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "gnodet (via GitHub)" <gi...@apache.org>.
gnodet commented on PR #26133:
URL: https://github.com/apache/camel/pull/26133#issuecomment-6012125526

   Closing in favor of #27272 which was merged on 2026-10-02 and covers the same CAMEL-24616 objective (JDK 27 Jenkins job, now using the GA Temurin build via `jdk_27_latest`).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #26133:
URL: https://github.com/apache/camel/pull/26133#issuecomment-5541694954

   :star2: Thank you for your contribution to the Apache Camel project! :star2:
     :robot: CI automation will test this PR automatically.
   
     :camel: Apache Camel Committers, please review the following items:
   
     * First-time contributors **require MANUAL approval** for the GitHub Actions to run
     * You can use the command `/component-test (camel-)component-name1 (camel-)component-name2..` to request a test from the test bot although they are normally detected and executed by CI.
     * You can label PRs using `skip-tests` and `test-dependents` to fine-tune the checks executed by this PR.
     * Build and test logs are available in the summary page. **Only** [Apache Camel committers](https://camel.apache.org/community/team/#committers) have access to the summary.
     
     :warning: Be careful when sharing logs. Review their contents before sharing them publicly.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] CAMEL-24616: Build and test with JDK 27 [camel]

Posted by "gnodet-bot (via GitHub)" <gi...@apache.org>.
gnodet-bot commented on code in PR #26133:
URL: https://github.com/apache/camel/pull/26133#discussion_r4062788940


##########
Jenkinsfile.jdk27:
##########
@@ -0,0 +1,157 @@
+/*
+ * 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.
+ */
+def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dsurefire.rerunFailingTestsCount=2 -Dfailsafe.rerunFailingTestsCount=1"
+def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?: "-Dci.env.name=apache.org"
+def MAVEN_TEST_PARAMS_UBUNTU = env.MAVEN_TEST_PARAMS ?: "-Dci.env.name=apache.org"
+
+/*
+Below parameters are required for camel/core/camel-core module's test cases to pass on ppc64 and s390x
+- xpathExprGrpLimit: limits the number of groups an Xpath expression can contain
+- xpathExprOpLimit: limits the number of operators an Xpath expression can contain
+The Kafka parameter is because the apache/kafka image is not working on alternative OSes
+*/
+def MAVEN_TEST_PARAMS_ALT_ARCHS = "-Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000 -Dkafka.instance.type=local-strimzi-container"
+
+pipeline {
+
+    triggers {
+        // weekly
+        cron('H H * * H')
+    }
+
+    environment {
+        MAVEN_SKIP_RC = true
+        DEVELOCITY_ACCESS_KEY = credentials('CAMEL_DEVELOCITY_ACCESS_KEY')
+    }
+
+    options {
+        buildDiscarder(
+            logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
+        )
+        disableConcurrentBuilds()
+        throttleJobProperty(
+          categories: ['camel'],
+          throttleEnabled: true,
+          throttleOption: 'category',
+          maxConcurrentPerNode: 1
+      )
+
+        // This is required if you want to clean before build
+        skipDefaultCheckout(true)
+    }
+
+    parameters {
+        booleanParam(name: 'VIRTUAL_THREAD', defaultValue: false, description: 'Perform the build using virtual threads')
+        choice(name: 'PLATFORM_FILTER', choices: ['all', 'ppc64le', 's390x', 'ubuntu-avx'], description: 'Run on specific platform')
+        choice(name: 'JDK_FILTER', choices: ['jdk_27_latest'], description: 'Run on specific jdk')
+    }
+    agent none
+    stages {
+        stage('BuildAndTest') {
+            matrix {
+                agent {
+                    label "${PLATFORM}"
+                }
+                options {
+                    throttle(['camel'])
+                }
+                when { allOf {
+                    anyOf {
+                        expression { params.PLATFORM_FILTER == 'all' }
+                        expression { params.PLATFORM_FILTER == env.PLATFORM }
+                    }
+                    anyOf {
+                        expression { params.JDK_FILTER == 'all' }
+                        expression { params.JDK_FILTER == env.JDK_NAME }
+                    }
+                } }
+                axes {
+                    axis {
+                        name 'JDK_NAME'
+                        values 'jdk_27_latest'

Review Comment:
   ⚠️ **Infrastructure pre-condition:** The Jenkins tool `jdk_27_latest` must be provisioned on the Apache Jenkins agents (`ppc64le`, `s390x`, `ubuntu-avx`) before this Jenkinsfile is usable. @apupier flagged this as not yet available. Triggering a build with a missing tool name causes an immediate pipeline failure at agent allocation. Consider adding a comment here documenting this dependency, or track the provisioning in the linked JIRA.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org