Despite all the shit the Java champions talk about OSGi, Jigsaw is still a
simplified version of OSGi basically, so anything already supported via
OSGi will generally port extremely easily to Java 9 modules.

As for the optional modules, it sounds like static module imports are the
way to declare optional modules, though I don't know the details.

On 21 April 2017 at 20: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
>
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to