As I read through this again it seems that perhaps the usage of Jackson could be specified as “requires static” so it is an optional dependency. However, I am getting the feeling that we are going to have a clash between log4j-api and log4j-core as log4j-api would export org.apache.logging.log4j which precludes log4j-core from exporting org.apache.logging.log4j.core.
I am also not clear on how log4j can create module-info files that reference other projects that haven’t yet created modules. Ralph > On Apr 21, 2017, at 12:40 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > I have not started work on this yet, but from looking at > http://blog.joda.org/2017/04/java-9-modules-jpms-basics.html > <http://blog.joda.org/2017/04/java-9-modules-jpms-basics.html> it seems we > are going to have problems with a) plugins that are in different jars > (modules) that use the same namespace and b) log4j-core as it currently > exists. > > Item b is a problem because the module-info for log4j-core should have a > requires ONLY for log4j-api. For example, I’m not sure how we can have an > optional dependency on Jackson. > > Item a is a problem if we create multiple jars (modules) for different > network components but try to place them all under > org.apache.logging.log4j.net <http://org.apache.logging.log4j.net/>. > > Thoughts? > > Ralph