Doing things for Java 9 modules that are beneficial also in Java 7/8 is
good.

Using Java ServiceLoader seems like a good idea, and we should definitely
do it if required to support latest SLF4J.

I am not so sure about refactoring package the structure though. Especially
not if doing so will break BC.

On Mon, Apr 24, 2017 at 4:00 PM, Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> It is and it isn’t.  I’ve been working on module support all weekend.
> There are a couple of changes that must be made before modules can be
> effectively implemented and IMO it is worth doing them whether we support
> modules or not. Note that none of these changes require Java 9.
>
> 1. Modify the API provider mechanism to use Java ServiceLoader. Modules
> require that the kind of mechanism we are using be implemented with
> ServiceLoader. However, our current implementation makes this easy and
> creating a binding for for an implementation is dirt simple.  I will be
> checking something in for this in the next few days.
> 2. Refactor our existing package structures. Modules essentially make
> everything in a package public. We currently have a mixture of public and
> private classes in both our API and in core.  We need to go through all
> these classes and determine which are really public and move the private
> ones to a different package.  This isn’t trivial. I think there is benefit
> in doing this whether we support modules or not. Right now many methods
> have “consider this private” in the header. But some classes in API that
> are marked this way are used by Core, which means they are required to be
> public to an implementation. These kinds of classes should be in the spi
> package.
>
> I should also note that SLF4J now supports Java modules in the 1.8.0 alpha
> releases. I tried integrating with that, and was somewhat successful, but
> since Logback isn’t modularized our build fails in the various points where
> we have tests that use it.  SLF4J also changed its binding mechanism to use
> SeviceLoader and it will ignore implementations that use the current
> binding mechanism. I have implemented support for that and will be
> committing that in the next few days as well.
>
> Ralph
>
> > On Apr 24, 2017, at 3:15 AM, Mikael Ståldal <mikael.stal...@magine.com>
> wrote:
> >
> > I think that it might be a bit early for us to do too much work for
> > supporting Java 9 modules.
> >
> > On Mon, Apr 24, 2017 at 12:03 PM, Mikael Ståldal <
> mikael.stal...@magine.com>
> > wrote:
> >
> >> This option will only be supported in JDK 9.
> >>        It will be removed in JDK 10.
> >>
> >>
> >> On Sun, Apr 23, 2017 at 6:51 PM, Gary Gregory <garydgreg...@gmail.com>
> >> wrote:
> >>
> >>> The "big kill switch" straight from the source:
> >>> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2017-
> March/011763.html
> >>>
> >>> --permit-illegal-access
> >>>
> >>> Gary
> >>>
> >>> On Apr 23, 2017 9:44 AM, "Matt Sicker" <boa...@gmail.com> wrote:
> >>>
> >>>> “I have too often seen APIs that seemed like a good idea at the time
> but
> >>>> were, in fact, woefully deficient, baked into the Java Platform where
> >>> they
> >>>> fester for ages, cause pain to all who use it, and torment those who
> >>>> maintain it.  I will not let that happen
> >>>> Here“ - Mark Reinhold
> >>>>
> >>>> That sounds like JPMS in general to be honest, but I'm just being
> >>> cynical.
> >>>> ;)
> >>>>
> >>>> On 23 April 2017 at 11:34, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >>>>
> >>>>> On Apr 23, 2017 9:19 AM, "Matt Sicker" <boa...@gmail.com> wrote:
> >>>>>
> >>>>> One potential scenario I see is that many users may just end up
> >>> disabling
> >>>>> JPMS in all their applications to the point that it's significantly
> >>>> revised
> >>>>> or scaled back for Java 10 or later.
> >>>>>
> >>>>>
> >>>>> That's my plan the first time I see an IllegalAccessError :-( what is
> >>> the
> >>>>> command line kill switch called?
> >>>>>
> >>>>> Gary
> >>>>>
> >>>>>
> >>>>> On 23 April 2017 at 11:04, Gary Gregory <garydgreg...@gmail.com>
> >>> wrote:
> >>>>>
> >>>>>> Worse: Are Java 9 modules its Titanic?
> >>>>>> https://developer.jboss.org/blogs/scott.stark/2017/04/14/
> >>>>>> critical-deficiencies-in-jigsawjsr-376-java-platform-
> >>>>>> module-system-ec-member-concerns
> >>>>>>
> >>>>>>
> >>>>>> Gary
> >>>>>>
> >>>>>> On Apr 22, 2017 5:02 PM, "Ralph Goers" <ralph.go...@dslextreme.com>
> >>>>> wrote:
> >>>>>>
> >>>>>>> This is an interesting look at the problems faced in getting
> >>>> Hibernate
> >>>>> to
> >>>>>>> work. http://stackoverflow.com/questions/43258796/hibernate-
> >>>>>>> support-for-java-9 <http://stackoverflow.com/
> >>>>>> questions/43258796/hibernate-
> >>>>>>> support-for-java-9>.
> >>>>>>>
> >>>>>>> The issue with the compile problem with javax.xml are familiar to
> >>> me
> >>>> -
> >>>>> I
> >>>>>>> had to modify some Log4j code to not use the DataType converter
> >>> as it
> >>>>>> isn’t
> >>>>>>> present in the java.base module.
> >>>>>>>
> >>>>>>> Ralph
> >>>>>>>
> >>>>>>>> On Apr 22, 2017, at 4:40 PM, Ralph Goers <
> >>>> ralph.go...@dslextreme.com
> >>>>>>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Oh - I just reread this. S far as I know Java 9 has a scheduled
> >>>>> release
> >>>>>>> date. It is July 27.
> >>>>>>>>
> >>>>>>>> BTW - here is the complete set of features -
> >>>>> https://docs.oracle.com/
> >>>>>>> javase/9/whatsnew/toc.htm#JSNEW-GUID-BA9D8AF6-E706-4327-
> >>>>>> 8909-F6747B8F35C5
> >>>>>>> <https://docs.oracle.com/javase/9/whatsnew/toc.htm#
> >>>>>>> JSNEW-GUID-BA9D8AF6-E706-4327-8909-F6747B8F35C5>.
> >>>>>>>>
> >>>>>>>> Ralph
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On Apr 22, 2017, at 10:45 AM, Gary Gregory <
> >>>> garydgreg...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Let me play devil's advocate here for a sec...
> >>>>>>>>>
> >>>>>>>>> Java 9 modules and this auto naming business sounds painful. Is
> >>>>> there
> >>>>>>> any
> >>>>>>>>> chance that this feature will be ignored like
> >>> java.util.logging is
> >>>>> or
> >>>>>>>>> should be?
> >>>>>>>>>
> >>>>>>>>> Can we stop tying ourselves into unreleased pretzels over a
> >>> moving
> >>>>>>> target
> >>>>>>>>> since we do not know when Java 9 will be out.
> >>>>>>>>>
> >>>>>>>>> Can't we refocus this energy on getting the best out of Java 8?
> >>>>>>>>>
> >>>>>>>>> Ducking from incoming tomatoes,
> >>>>>>>>> Gary
> >>>>>>>>>
> >>>>>>>>> On Fri, Apr 21, 2017 at 8:48 PM, Matt Sicker <boa...@gmail.com
> >>>>
> >>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> I'm a fan of splitting packages up better due to OSGi support
> >>> in
> >>>>> the
> >>>>>>> first
> >>>>>>>>>> place. Hierarchical packaging is definitely something new
> >>> (OSGi
> >>>>>> doesn't
> >>>>>>>>>> care about that; each package is considered separately), and
> >>> it
> >>>>> could
> >>>>>>> help
> >>>>>>>>>> in making some classes more organized.
> >>>>>>>>>>
> >>>>>>>>>> On 21 April 2017 at 14:55, Stefan Bodewig <bode...@apache.org
> >>>>
> >>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> On 2017-04-21, Ralph Goers wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> I have not started work on this yet, but from looking at
> >>>>>>>>>>>> http://blog.joda.org/2017/04/j
> >>> ava-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.
> >>>>>>>>>>>
> >>>>>>>>>>> requires static module-name-of-jackson;
> >>>>>>>>>>>
> >>>>>>>>>>> http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html
> >>> section
> >>>>>> 1.1.1
> >>>>>>>>>>>
> >>>>>>>>>>>  The requires keyword may be followed by the modifier
> >>> static.
> >>>>> This
> >>>>>>>>>>>  specifies that the dependence, while mandatory at compile
> >>>> time,
> >>>>> is
> >>>>>>>>>>>  optional at run time.
> >>>>>>>>>>>
> >>>>>>>>>>> Of course "requires static" captures this way more clearly
> >>> than
> >>>>>>> "require
> >>>>>>>>>>> optional" which was proposed intially
> >>>>>>>>>>> http://openjdk.java.net/projects/jigsaw/doc/topics/
> >>>> optional.html
> >>>>>>>>>>>
> >>>>>>>>>>> :-)
> >>>>>>>>>>>
> >>>>>>>>>>> Without knowing the structure of log4j too well I agree the
> >>>> strict
> >>>>>>>>>>> package hierarchies mandated by JPMS will be a problem.
> >>> Probably
> >>>>> for
> >>>>>>>>>>> many other projects with more than one artifact as well.
> >>>>>>>>>>>
> >>>>>>>>>>> Stefan
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Matt Sicker <boa...@gmail.com>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> >>>>>>>>> Java Persistence with Hibernate, Second Edition
> >>>>>>>>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> >>>>>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> >>>>>>> linkCode=as2&tag=garygregory-20&linkId=
> >>>> cadb800f39946ec62ea2b1af9fe6a2
> >>>>> b8>
> >>>>>>>>>
> >>>>>>>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >>>>>> garygregory-20&l=am2&o=1&a=
> >>>>>>> 1617290459>
> >>>>>>>>> JUnit in Action, Second Edition
> >>>>>>>>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> >>>>>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> >>>>>>> linkCode=as2&tag=garygregory-20&linkId=
> >>>> 31ecd1f6b6d1eaf8886ac902a24de4
> >>>>>> 18%22
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >>>>>> garygregory-20&l=am2&o=1&a=
> >>>>>>> 1935182021>
> >>>>>>>>> Spring Batch in Action
> >>>>>>>>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> >>>>>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> >>>>>>> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> >>>>>>> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> >>>>>>>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >>>>>> garygregory-20&l=am2&o=1&a=
> >>>>>>> 1935182951>
> >>>>>>>>> Blog: http://garygregory.wordpress.com
> >>>>>>>>> Home: http://garygregory.com/
> >>>>>>>>> Tweet! http://twitter.com/GaryGregory
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Matt Sicker <boa...@gmail.com>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Matt Sicker <boa...@gmail.com>
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >> [image: MagineTV]
> >>
> >> *Mikael Ståldal*
> >> Senior software developer
> >>
> >> *Magine TV*
> >> mikael.stal...@magine.com
> >> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
> >>
> >> Privileged and/or Confidential Information may be contained in this
> >> message. If you are not the addressee indicated in this message
> >> (or responsible for delivery of the message to such a person), you may
> not
> >> copy or deliver this message to anyone. In such case,
> >> you should destroy this message and kindly notify the sender by reply
> >> email.
> >>
> >
> >
> >
> > --
> > [image: MagineTV]
> >
> > *Mikael Ståldal*
> > Senior software developer
> >
> > *Magine TV*
> > mikael.stal...@magine.com
> > Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
> >
> > Privileged and/or Confidential Information may be contained in this
> > message. If you are not the addressee indicated in this message
> > (or responsible for delivery of the message to such a person), you may
> not
> > copy or deliver this message to anyone. In such case,
> > you should destroy this message and kindly notify the sender by reply
> > email.
>
>
>


-- 
[image: MagineTV]

*Mikael Ståldal*
Senior software developer

*Magine TV*
mikael.stal...@magine.com
Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com

Privileged and/or Confidential Information may be contained in this
message. If you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not
copy or deliver this message to anyone. In such case,
you should destroy this message and kindly notify the sender by reply
email.

Reply via email to