Le mer. 7 août 2024 à 15:30, Martin Desruisseaux < martin.desruisse...@geomatys.com> a écrit :
> Le 2024-08-07 à 14 h 21, Guillaume Nodet a écrit : > > > > Why do we care ? If we provide a well defined API (with a known set of > > jars), people should be aware if they use maven-core jar directly…. > > > It is a matter of reputation for the Maven project. A Murphy law is that > given a sufficiently large amount of users, everything accessible will > be depended upon by someone somewhere, no matter the warnings that we > provide. Sun Microsystems and Oracle suffered from that Murphy law with > libraries depending on Java implementation details, and developers > blaming Sun or Oracle when those details changed. It forced Oracle to > handle some of Java internal almost as if they were public API (e.g., > the Unsafe class). I think that it is one of the motivations for > blocking accesses to internal packages in JPMS. Another reason is > probably security. > > Maven does not have as many users as Java, so its exposition to above > Murphy law may be lower, but I have the impression that Maven has a > better compatibility record than Gradle (i.e., better chances that a > plugin working with a Maven version continues to work with the next > version). Reducing the visibility of implementation classes increases > the chances to keep a plugin ecosystem that way. > > > > Right, but I would think a follow-up PR would allow importing > > additional packages from the maven realm (or even hide some). Hiding > > may be needed in some very specific cases (I’ m thinking mainly about > > hiding slf4j in case the plugin embeds a library which relies on a > > specific logging provider). > > > Side note: those goals with Realm look very similar to JPMS… For > example, the use case with SLF4J is a non-transitive dependency in JPMS > ("transitive" here does not have the same meaning as in Maven). I was > thinking, after completion of all the work for improving JPMS support in > Maven, to try on a branch to modularize Maven itself just for checking > if it is possible. If the latter case appears feasible, it is not clear > to me why using Realm? Did I miss something ? We need to load plugins at runtime, I thought JPMS was static… > > Martin > >