gnodet commented on issue #13223: URL: https://github.com/apache/maven/issues/13223#issuecomment-6165463728
_Claude Code on behalf of Guillaume Nodet_ ## Layer 0 implementation — PR stack Layer 0 (internalize plexus-classworlds) has been split into three incremental PRs: ### PR A — #13490: Internalize plexus-classworlds and expose stable API - Forks `plexus-classworlds` 2.x into `impl/maven-classworlds` - New `api/maven-api-classworlds` module with stable `ClassWorld`, `ClassRealm`, `Strategy`, exceptions under `org.apache.maven.api.classworlds` - Replaces the external `plexus-classworlds` dependency across all modules - Backward-compatible: the `org.codehaus.plexus.classworlds` package structure is preserved in `impl/maven-classworlds`, so Sisu and embedders continue to work unchanged ### PR B — #13491: Load JLine on module-path for targeted `--enable-native-access` - Builds on #13490 - Moves JLine JARs to `lib/modules/` and loads them on the JPMS module-path via `m2.conf` - Replaces the broad `--enable-native-access=ALL-UNNAMED` with targeted grants to `org.jline.terminal.ffm` and `org.jline.nativ` - Graceful fallback: JDKs that cannot read the module descriptors continue with classpath loading ### PR C — #13494: Per-plugin JPMS ModuleLayer support - Builds on #13490 (independent of #13491) - Plugins can opt in via `<modular>true</modular>` in their plugin descriptor - Plugin JARs and dependencies are resolved into an isolated per-plugin `ModuleLayer` via `Configuration.resolveAndBind()` + `defineModulesWithOneLoader()` - No fallback — a modular plugin that cannot be loaded as a module causes a hard `ModuleLayerCreationException` - `ClassRealm` gains `getModuleLayer()`, `isModular()`, `addExports()`, `addOpens()` for module access control - `PluginRealmCache` keys encode the `modular` flag All three PRs compile and the classworlds unit tests pass. CI is green on #13490. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
