Le dim. 1 mars 2020 à 18:00, John Patrick <nhoj.patr...@gmail.com> a écrit :

> Romain, The 4 commons projects I'm referring to already have
> Automatic-Module-Name in the Manifest, if that is what you mean by
> "explicit module name in the manifest".
>
> I've been playing around with jdk 1.8, 9, 10, 11, 12, 13 and 14, for
> about 18 months and not seen the issue you described about needing
> module-info being in the jar root.
>
> Regarding jpms classifier, I don't think that will help transitive
> dependency, so A project depending upon collections which depends upon
> codec. So will collections depend upon codec or codec-jpms. From what
> I've got working I can add module-info without breaking pre java 11
> users.
>

Test in j8 apps which didnt upgrade their scanner (spring, xbean,
reflections, asm and friends, all have version limited to java 8 and not
multirelease friendly), all are broken and it is one reason why adding
.class with bytecode version > java 8 is very risky while java 8 apps are
maintained (and we are still at ~50% of java 8 apps in prod today).
Best case it requires to upgrade these libs...so all the stack too which is
not always desired to upgrade a commons dep, worse case there is to upgrade
possible so dep is forked or dropped.
Indeed you dont see it in plain javase but commons being "commons", we must
consider this common case too IMHO.


> Peter, I'm trying to do as smaller change as possible to add
> module-info, and also only using core maven plugins
>
> Commons Developers, I'll start raising jira tickets per project, per step.
>
> John
>
>
>
> John
>
> On Sun, 1 Mar 2020 at 11:44, Peter Verhas <pe...@verhas.com> wrote:
> >
> > I used Jabel, and Maven profiles to generate jvm8 and also jvm11 jars in
> > the Java::Geci project.
> >
> > I also wrote a document about what, why, and how I did it:
> >
> >
> > https://javax0.wordpress.com/2019/11/06/supporting-java-8/
> >
> > It may help.
> >
> > Peter
> >
> >
> > On Sun, 1 Mar 2020 at 12:38, Romain Manni-Bucau <rmannibu...@gmail.com>
> > wrote:
> >
> > > Hi John,
> > >
> > > Didnt check on java 11 ga but in early versions module-info was
> required to
> > > be at the root of the jar even if overriden for some version (
> > > http://openjdk.java.net/jeps/238) so it ends up in the fact that some
> java
> > > 8 apps will be broken by this addition and that only doing it in a mjar
> > > will lead to the same kind of issues + will be likely ignored for other
> > > apps.
> > >
> > > What about doing classified jar "jpms" at the same time than current
> > > default jar to propose jpms integration early (worse case)?
> > >
> > > Alternative to just have an explicit module name in the manifest but no
> > > module-info also sounds safer to me and still enables to use jpms.
> > >
> > > Hope it makes sense.
> > >
> > > Le dim. 1 mars 2020 à 12:08, John Patrick <nhoj.patr...@gmail.com> a
> > > écrit :
> > >
> > > > I'm wanting to correctly use Collections and Lang as Java Modules.
> > > >
> > > > Looking at the dependencies, I'll need to tackle all four projects.
> > > >
> > > > I'm planning on doing the following as if I'm touching the projects I
> > > > might as well help out;
> > > > 1) spring clean .gitignore, each project has different list, some
> > > > documented others not
> > > > 2) update to hamcrest v2.2
> > > > 3) update to junit v5.6 (jupiter and vintage)
> > > > 4) tackle low hanging fruit tests that can quickly be moved to
> jupiter
> > > > 5) update maven-dependencies to latest for compiler, jar, install
> > > > 6) discuss how toolchain should be setup for build tools have access
> > > > to jdk 1.8 and jdk 11, ideally the same pattern/approach for all
> > > > commons projects
> > > > 7) add src/main/java11/module-info.java
> > > > 8) add toolchain plugin and update compiler plugin to make Multi
> Release
> > > > jar
> > > >
> > > > my questions are;
> > > > a) how many jira tickets? one pre project? one per task/pr?
> > > > b) prepare into new release i.e. commons-collection5
> > > > c) should i do all my pom changes to a parent pom?
> > > > d) toolchains developers, how should I document the requirement for
> > > > developers want to build locally, give example which they need to
> > > > complete
> > > > e) toolchains cicd, how should i set that up? i'm use to jenkins and
> > > > circle ci, not travis or gitflow?
> > > >
> > > > I'm doing this for other open source projects and work projects, but
> > > > can't finish the open source or work projects until the open source
> > > > dependency projects get fixed. Updating these 4 commons project will
> > > > unblock about 10 downstream pr's i'm working on.
> > > >
> > > > I don't want to break backwards compatibility so don't want to just
> > > > update to jdk 11, that is why I'm suggesting to use multi release
> > > > jars, so module-info.java is in META-INF/versions/11/module-info.jar.
> > > > I don't want to add new features, I just want the module-info so if
> > > > you are using a newer jdk you can use modules.
> > > >
> > > > John
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > > > For additional commands, e-mail: dev-h...@commons.apache.org
> > > >
> > > >
> > >
> > --
> > Peter Verhas
> > pe...@verhas.com
> > t: +41791542095
> > skype: verhas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

Reply via email to