Yes, I know it doesn't replace Maven, but in this case I have a dependency that 
is not required to compile but is required to run. It appears I have to convert 
my runtime scopes to compile in order to get the module to compile and build 
properly. 

That sucks.

Sent from my iPhone

> On Apr 23, 2017, at 7:43 AM, Stephen Colebourne <scolebou...@joda.org> wrote:
> 
> I've never used that myself, but  don't see anything similar.
> Remember though that JPMS isn't trying to replace Maven. It just
> intends there to be a reliable set of modules when running in the
> platform.
> Stephen
> 
> 
>> On 23 April 2017 at 08:57, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>> How does the module system support Maven’s runtime scope?
>> 
>> Ralph
>> 
>>> On Apr 21, 2017, at 10:48 PM, Stephen Colebourne <scolebou...@joda.org> 
>>> wrote:
>>> 
>>> See http://blog.joda.org/2017/04/java-9-modules-jpms-basics.html and
>>> https://www.slideshare.net/scolebourne/java-se-9-modules-jpms-an-introduction
>>> 
>>> Basically, you need "requires static" for optional dependencies. The
>>> exception if for a module where the dependency is an annotation where
>>> you don't need the annotation to be present at runtime. eg. @NonNull
>>> from FindBugs
>>> 
>>> Depending on things that haven't been modularized yet is risky. It is
>>> allowed however, and its known as "automatic modules". Basically, it
>>> looks exactly like a normal "requires" clause, its just that you are
>>> _guessing_ what the module name of the dependency will be!
>>> 
>>> This is why I started this thread. By saying _now_what the module name
>>> will be, you greatly reduce the chance of people guessing wrongly.
>>> Getting everyone to usesuper-package reverse DNS naming helps too.
>>> 
>>> Stephen
>>> 
>>> 
>>>> On 22 April 2017 at 02:11, Ralph Goers <ralph.go...@dslextreme.com> wrote:
>>>> On to the next question - which I apologize for asking as it may not apply 
>>>> to Commons.  Log4j has lots of optional components to support lots of 
>>>> third party stuff (some ASF projects and some not). How do we handle 
>>>> things that haven’t yet been modularized? Normally I would expect to have 
>>>> requires directives.
>>>> 
>>>> Ralph
>>>> 
>>>>> On Apr 21, 2017, at 6:04 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>>>>> wrote:
>>>>> 
>>>>> Thanks for taking a look Stephen. I appreciate the guidance. I will be 
>>>>> sure to submit a PR when I get something going with Log4j 2.
>>>>> 
>>>>> Ralph
>>>>> 
>>>>>> On Apr 21, 2017, at 3:01 PM, Stephen Colebourne <scolebou...@joda.org> 
>>>>>> wrote:
>>>>>> 
>>>>>> Some rules:
>>>>>> - Each module contains a set of packages, each of which must be
>>>>>> specified explicitly.
>>>>>> - Modules depend on other modules, but must not form a cycle of 
>>>>>> dependencies.
>>>>>> - No package can be in two modules
>>>>>> 
>>>>>> Looking at the Javadoc here -
>>>>>> https://logging.apache.org/log4j/2.x/javadoc.html - it seems like each
>>>>>> jar file has a separate set of packages it contains, with an obvious
>>>>>> super-package for each jar file*. Furthermore, the super-packages of
>>>>>> the jar files do not clash, so I think you are fine in naming terms.
>>>>>> What I can't be sure from the Javadoc is whether there is a cycle of
>>>>>> dependencies.
>>>>>> 
>>>>>> Possible modules:
>>>>>> - org.apache.logging.log4j
>>>>>> - org.apache.logging.log4j.core
>>>>>> - org.apache.logging.log4j.io
>>>>>> - org.apache.logging.log4j.taglib
>>>>>> - org.apache.logging.log4j.jcl
>>>>>> - org.apache.logging.log4j.jul
>>>>>> - org.apache.logging.log4j.flume.appender
>>>>>> - org.apache.logging.log4j.jmx.gui
>>>>>> - org.apache.logging.log4j.web
>>>>>> - org.apache.logging.log4j.nosql.appender
>>>>>> 
>>>>>> * the slf4j bridge is problematic, but is being addressed by changes in 
>>>>>> slf4j.
>>>>>> * the logf4 v1 bridge probably can't be modularized
>>>>>> 
>>>>>> Bernd has addressed the point about the need to export all packages
>>>>>> individually, allowing the modules above.
>>>>>> 
>>>>>> Stephen
>>>>>> 
>>>>>>> On 21 April 2017 at 21:34, Ralph Goers <ralph.go...@dslextreme.com> 
>>>>>>> wrote:
>>>>>>> I am having a hard time figuring out how Log4j is going to be able to 
>>>>>>> support this.  The API itself is in org.apache.logging.log4j and some 
>>>>>>> packages under that.  All the main implementation is under 
>>>>>>> org.apache.logging.log4j.core.  These obviously overlap.  Most of our 
>>>>>>> other jars have packages that are in org.apache.logging.log4j.xxx where 
>>>>>>> xxx matches the jar name.  We aren’t going to change the API to support 
>>>>>>> modules.
>>>>>>> 
>>>>>>> Is there some reasonable way around this?
>>>>>>> 
>>>>>>> Ralph
>>>>>>> 
>>>>>>>> On Apr 21, 2017, at 6:16 AM, Stephen Colebourne <scolebou...@joda.org> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> On 21 April 2017 at 13:59, sebb <seb...@gmail.com> wrote:
>>>>>>>>> What happens when there is a API break which necessitates a package 
>>>>>>>>> name change?
>>>>>>>>> I assume that the module name will also need to change to the new 
>>>>>>>>> super-package.
>>>>>>>>> e.g.
>>>>>>>>> 
>>>>>>>>> Commons-Lang4
>>>>>>>>> -> super-package org.apache.commons.lang4
>>>>>>>>> -> module org.apache.commons.lang4
>>>>>>>> 
>>>>>>>> Yes, thats right.
>>>>>>>> 
>>>>>>>>> AFAICT Commons generally has obvious and unique super-packages for
>>>>>>>>> each component.
>>>>>>>>> This should make it easier than for larger projects with lots of jars
>>>>>>>>> and potentially overlapping package names.
>>>>>>>>> 
>>>>>>>>> However even Commons has some code that uses a different package 
>>>>>>>>> structure.
>>>>>>>>> e.g. NET uses examples as the super-package.
>>>>>>>>> This includes working examples that are included in the release.
>>>>>>>>> I guess that will have to change (which is probably a good idea 
>>>>>>>>> anyway).
>>>>>>>> 
>>>>>>>> Yes, as it stands, [net] would be a bad modular citizen, because it
>>>>>>>> exposes the "examples" package, and thus prevents any other module
>>>>>>>> from using that package. Just move it to
>>>>>>>> org.apache.commons.net.examples.
>>>>>>>> 
>>>>>>>> Stephen
>>>>>>>> 
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>> 
>>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to