Deps: Bump to Eclipse Sisu 1.1.0 - #12551
Conversation
CI Failure AnalysisAll 18 downstream checks (
Confirmed this is Sisu-specific — PR #12538 (no Sisu change) passes on the same CI infra. Looks like the version bump needs companion changes — e.g. configuring |
Update: TCCL + Realm Visibility Root CauseDug deeper — the issue is the interaction between The chain:
Why Maven 3 / Sisu 1.0.1 works: In 1.0.1, Extension realm setup: Mimir uses the default Possible fix directions:
|
|
Correction on the fix directions — options 2 and 3 from my previous comment collapse into one: ensure core beans are visible when a lifecycle participant triggers lazy resolution. Whether that's done by adjusting the TCCL or the realm imports is the same fix from different ends — the extension realm already has |
Reproduced LocallySetup: Built Maven from master with Sisu 1.1.0, extracted the distribution, tested with/without Mimir extension. Without Mimir → ✅ BUILD SUCCESS. NameMapper discovery works fine. With Mimir, daemon JAR cached → ✅ BUILD SUCCESS, but the warning appears: (Build passes only because Mimir skips resolution when the daemon JAR already exists on disk.) With Mimir, daemon JAR removed (= CI's fresh runner state) → ❌ Exact CI error reproduced: Same test with Sisu 1.0.1 → ✅ Resolves daemon JAR, starts daemon, BUILD SUCCESS. Why Maven 3.10.x passesSisu 1.1.0 was merged to Debug output reveals the mechanismWith Phase 1 (initial container, TCCL = container realm): Phase 2 (Mimir lifecycle, TCCL = extension realm via The |
Correction: Maven 3.10.x + Sisu 1.1.0 + Mimir WORKSI was wrong — the code IS different between Maven 3 and Maven 4. Retested properly with Mimir enabled on both:
Same machine, same Mimir 0.12.0, same clean state (daemon JAR + socket removed). The difference: eager vs lazy Map resolutionMaven 3: Guice/Sisu resolves Maven 4: return () -> {
// ...
for (var bean : locator.get().locate(toGuiceKey(valueType))) { // <-- deferred!
// ...
}
};This lambda is first invoked during Root causeThe Maven 4 DI bridge defers Sisu bean iteration to first access. When that first access happens inside an extension's lifecycle callback (with TCCL scoped to the extension's ClassRealm), Sisu 1.1.0's new realm filtering hides all core beans. |
|
Closing in favor of #12554 (master) and #12556 (4.0.x), which fix the root cause properly. The original approach of just bumping Sisu to 1.1.0 exposed a realm visibility issue: extension realms (parent= |
Release notes:
https://github.com/eclipse-sisu/sisu-project/releases/tag/releases%2F1.1.0
Fixes #12522