Hi all, Sanne kindly pointed out to me the latest proposal by the OpenJDK team around JDK 9 module and how they would handle frameworks needing access to non exported types (Hibernate, dependency injection, etc).
If you are remotely into JDK9, please read it and provide feedback. http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-September/000390.html It's better than before for sure. It feels to me that most applications (the core of it) will end up being a weak module for this to work though. I'm not sure whether it is good or bad, at least a isolation concious person has the choice. export private some.package; Is essentially equivalent to what you can do for a given package in Java 8. What I am less clear about is what relation Hibernate * projects really need with a module containing the entities. Do we still this proposal still mandates to use requires hibernate.entitymanager; requires hibernate.core; in the targeted module? Or would this be a usable module module foo.bar { exports private com.foo.bar.model; requires javax.jpa; // requires hibernate.entitymanager/core; no longer needed thanks to export private? } Mark proposes that in a container (EE or anything controlling module loading really), the container adds dynamically the addExports to the relevant framework. But that looks like a solution to limit exports private implications. Comments? Emmanuel _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev