gnodet commented on PR #12135: URL: https://github.com/apache/maven/pull/12135#issuecomment-4506767102
_Claude Code on behalf of Guillaume Nodet_ Good point. None of the `org.apache.maven.impl.*` packages are public API — only `org.apache.maven.api.*` is. I've pushed a commit (252ab5e) that addresses this: **maven-impl:** - `exports org.apache.maven.api.services.model` — kept unqualified (it's an API package) - `exports org.apache.maven.impl.model.profile` — removed entirely (not used by any external module) - All 14 other `org.apache.maven.impl.*` exports — now qualified `to org.apache.maven.core, org.apache.maven.cling, org.apache.maven.testing, org.apache.maven.compat, org.apache.maven.embedder` **Other impl modules:** - `maven-di`: qualified `org.apache.maven.di.impl` to the same 5 internal consumers (kept `org.apache.maven.di` unqualified as it's the DI API) - `maven-logging`: qualified `org.apache.maven.slf4j` to `maven-cling`, `maven-embedder`, `maven-core` - `maven-jline`: qualified `org.apache.maven.jline` to `maven-logging`, `maven-cling`, `maven-embedder` **Left unchanged:** - API modules (11): all exports are `org.apache.maven.api.*` — they are the public API - `maven-xml`: single package, used by 5+ modules - `maven-support`: 6 generated-model packages used by 15+ modules — qualifying would be very verbose and fragile Since all consumers currently use `Automatic-Module-Name` (no `module-info.java`), they compile in classpath mode where JPMS boundaries aren't enforced. The qualified exports serve as documentation of intent and will be enforced if/when those modules gain their own `module-info.java`. -- 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]
