perf(build): pin target-platform executionEnvironment to JavaSE-21#1462
Draft
joaodinissf wants to merge 1 commit into
Draft
perf(build): pin target-platform executionEnvironment to JavaSE-21#1462joaodinissf wants to merge 1 commit into
joaodinissf wants to merge 1 commit into
Conversation
Without an explicit <executionEnvironment>, Tycho adds the profile of the JDK running Maven (e.g. JavaSE-26) alongside the bundles' BREE (JavaSE-21, declared by all 60 plugins), causing the target definition to be resolved once per profile on every build. Profiling attributed ~1.5s of each warm build to the redundant second resolution. Pinning to the BREE removes it. Assisted by Claude.
rubenporras
reviewed
Jul 13, 2026
| <arch>${osgi.arch}</arch> | ||
| </environment> | ||
| </environments> | ||
| <executionEnvironment>JavaSE-21</executionEnvironment> |
Member
There was a problem hiding this comment.
Should we not do this rather in the target file, see https://github.com/eclipse-lsp4e/lsp4e/blob/main/target-platforms/target-platform-latest/target-platform-latest.target, line 41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
target-platform-configurationinddk-parent/pom.xmldeclares no<executionEnvironment>. Tycho then adds the profile of the JDK running Maven (e.g. JavaSE-26) alongside the bundles' BREE — all 60 plugins declareJavaSE-21— and resolves the target definition once per profile, on every build:The resolution result (and therefore the build) also silently varies with whichever JDK happens to run Maven.
Change
Pin
<executionEnvironment>JavaSE-21</executionEnvironment>, matching the BREE all bundles declare.Measured (local, macOS aarch64, JDK 26 running Maven)
mvn clean packagegreen; compiled class-file major version unchanged (65 / Java 21).CI numbers (added after workflow runs)
verifyworkflow, ubuntu runner: 13m16s (green, first run) vs recent master runs median ~13m25s (n=8, range 11m49s–18m34s) — parity, as expected: the pin removes a redundant resolution whose marginal cost is sub-second; its value is determinism, not CI wall time.Assisted by Claude.