Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakarta.ee-community] targeting JDK 8 *and* JDK 11?

It would be good to have some sort of blueprint or best-practice for this, both a multi-release compatible use of module-info as well as one for a multi-release-jar where that comes into play.

Werner




On Mon, Sep 23, 2019 at 11:51 PM Werner Keil <werner.keil@xxxxxxxxx> wrote:
So which in your experience did it better?

JSONP and JSONB also demonstrate the reuse of a module defined by JSONP in JSONB.
I could not find a single MicroProfile repository that does that including the mentioned ones for failsafe, so thanks again Carlos for the input, but MicroProfile is at least two generations behind when it comes to the dependencies. CDI 1.2 was part of Java EE 7, so MP Fault-Tolerance may have a "minimal CDI version" in place, but no module dependencies are defined between any of the other parts either.

Werner 




On Mon, Sep 23, 2019 at 11:27 PM Lukas Jungmann <lukas.jungmann@xxxxxxxxxx> wrote:
On 9/23/19 11:09 PM, Werner Keil wrote:
> so there is a bit of
> similarity to JSONP:
> https://github.com/eclipse-ee4j/jsonp/blob/master/pom.xml  but it seems
> the JSONP and JSONB projects already apply something similar for the
> Jakarta EE platform.

I would not be using jsonp as a good example to follow. There are many
profiles and one needs to know how to combine them on which environment
to produce something useful, like a release. It did the job. Now it
deserves some care and cleanup...

--lukas

>
> Werner Keil
>
>
>
>
> On Mon, Sep 23, 2019 at 10:45 PM carlos andres de la rosa
> <kusanagi12002@xxxxxxxxx <mailto:kusanagi12002@xxxxxxxxx>> wrote:
>
>     Hello werner
>
>     With the changes in the pull request that sent you in the
>     previous email, I was able to compile the micro profile fault
>     tolerance tcks with java 11 and also run this tck against a
>     container that supports java 11 in this case open liberty, to allow
>     define 2 different Jenkins jobs I create a maven profile for java 11
>     and the default compilation will be with java8 that is also working
>     in a container that supports java 8 please check this PR
>
>     https://github.com/eclipse/microprofile-fault-tolerance/pull/443/commits/aee19a8d548d506a5a3416404494ba5ea1982624
>
>     But in the mp fault tolerance case, we are not using multi-release-jars
>
>     Thanks
>
>     On Mon, Sep 23, 2019 at 9:25 PM Werner Keil <werner.keil@xxxxxxxxx
>     <mailto:werner.keil@xxxxxxxxx>> wrote:
>
>         Lukas,
>
>         While Carlos tried to provide some input from the MicroProfile
>         toolchains, Mike Milinkovich also just confirmed in a different
>         thread, that compatibility needs for Jakarta EE and MicroProfile
>         are often quite different, so it could be fine for MicroProfile
>         3 or 4 to drop Java 8 or 9 support and require Java 11 or 12 as
>         the minimum version, Jakarta EE has to support Java 8 at least
>         until Jakarta EE 9 as a minimum version I am pretty sure.
>
>         It would also be beneficial for individual Jakarta EE specs and
>         their teams if one or two working solutions were available that
>         could act as a blueprint for "Jigsaw" modularity and where that
>         became relevant also multi-release-jars.
>
>         Werner
>
>
>
>
>
>         On Mon, Sep 23, 2019 at 3:13 PM Lukas Jungmann
>         <lukas.jungmann@xxxxxxxxxx <mailto:lukas.jungmann@xxxxxxxxxx>>
>         wrote:
>
>             If dropping support for JDK 8 is the goal of your project,
>             then I'd
>             consider replacing source/target properties with
>             'maven.compiler.release' property. Switching over to
>             maven-compiler-plugin:3.8.1 to enjoy benefits of
>             https://issues.apache.org/jira/browse/MCOMPILER-322 may be
>             another thing
>             you want to consider.
>
>             ...but back to the point - the problem is not in getting
>             'mvn clean
>             install javadoc:jar' or alternatives to work on JDK 11
>             properly. Problem
>             is to make just 'mvn javadoc:javadoc' or 'mvn javadoc:jar'
>             working.
>
>             thanks,
>             --lukas
>
>             On 9/23/19 2:46 PM, Werner Keil wrote:
>              > Carlos,
>              >
>              > You replaced Java 8 with 11 in your MP tool chain, I
>             cannot see any
>              > double execution of Maven Compiler, so you may have fixed
>             the Javadoc
>              > issue at the cost of no longer working with Java 8.
>              >
>              > The Moneta RI builds against Java 9 to 11 without
>             problems, but we also
>              > use the dual compile option of Maven Compiler and both
>             API and RI work
>              > with Java 8 demos.
>              >
>              > Werner
>              >
>              > carlos andres de la rosa <kusanagi12002@xxxxxxxxx
>             <mailto:kusanagi12002@xxxxxxxxx>
>              > <mailto:kusanagi12002@xxxxxxxxx
>             <mailto:kusanagi12002@xxxxxxxxx>>> schrieb am Mo., 23. Sep.
>             2019, 14:04:
>              >
>              >     Hello folks
>              >
>              >     I already pass for this javadoc plugin issue with
>             java 11 on mp
>              >     fault tolerance spec if you wanna check below is a
>             pull request that
>              >     is compiling with java 11
>              >
>             https://github.com/eclipse/microprofile-fault-tolerance/pull/443
>              >
>              >     I hope that maybe can help you
>              >
>              >     Thank you
>              >
>              >     Best
>              >
>              >
>              >     On Mon, Sep 23, 2019 at 1:28 PM Lukas Jungmann
>              >     <lukas.jungmann@xxxxxxxxxx
>             <mailto:lukas.jungmann@xxxxxxxxxx>
>             <mailto:lukas.jungmann@xxxxxxxxxx
>             <mailto:lukas.jungmann@xxxxxxxxxx>>> wrote:
>              >
>              >         On 9/21/19 1:13 AM, Bill Shannon wrote:
>              >          > Thanks for the pointers, Lukas.  The jaxb-api
>             approach seems
>              >         to work
>              >          > pretty well.
>              >
>              >         the drawback of this particular solution is that
>             the correctness of
>              >         module descriptor is not being checked at compile
>             time by javac
>              >         - ie if
>              >         ServiceLoader is used by the code being compiled,
>             javac can detect
>              >         missing 'use' declaration in module-info and fail
>             eventually; in
>              >         the
>              >         setup used by jaxb-api, module-info is compiled
>             against class
>              >         files, so
>              >         no such check is being done.
>              >
>              >         This as such may or may not be a problem
>             depending on the
>              >         complexity of
>              >         the project in question and personal knowledge of
>             its internals.
>              >
>              >          >
>              >          > However, javadoc isn't working:
>              >          >
>              >          > [ERROR] Failed to execute goal
>              >          >
>             org.apache.maven.plugins:maven-javadoc-plugin:3.1.1:javadoc
>              >         (default) on project
>              >          > jakarta.activation: An error has occurred in
>             Javadoc report
>              >         generation:
>              >          > [ERROR] javadoc: error - No source files for
>             package
>              >         javax.activation
>              >          >
>              >          > I even tried "mvn javadoc:javadoc" on the
>             jaxb-api project
>              >         and it fails
>              >          > for a different reason:
>              >
>              >         blame buggy maven-javadoc-plugin here[1]; what
>             must work for me
>              >         is 'mvn
>              >         clean install' and 'mvn clean install
>             -Poss-release' (with
>              >         -Dgpg.skip=true eventually). I treat
>             'javadoc:javadoc' as nice
>              >         to have
>              >         thing, so unless there is a strong wish and
>             demand for that, it is
>              >         unlikely that I'll be putting in some solution
>             for it (read as
>              >         "IMHO too
>              >         much work for a little gain")
>              >
>              >          >
>              >          > [ERROR] Failed to execute goal
>              >          >
>             org.apache.maven.plugins:maven-javadoc-plugin:3.1.1:javadoc
>              >         (default-cli) on
>              >          > project jakarta.xml.bind-api: An error has
>             occurred in
>              >         Javadoc report generation:
>              >          > [ERROR] Exit code: 1 - error: module not
>             found: java.xml.bind
>              >          >
>              >          > I played around with the javadoc tool by hand,
>             using the
>              >         options the
>              >          > maven-javadoc-plugin generates, and I can't
>             figure out how to
>              >         generate
>              >          > the javadocs for a module.  Have you made this
>             work?
>              >
>              >         yes, I made that work - removing lines related to
>              >         '--patch-module' and
>              >         '--module-source-path' options and explicitly adding
>              >         '--source-path'
>              >         pointing to the main source roots (src/main/java
>             etc) helped
>              >
>              >         thanks,
>              >         --lukas
>              >
>              >         [1]:
>             https://issues.apache.org/jira/browse/MJAVADOC-622
>              >
>              >          >
>              >          >
>              >          > Bill Shannon wrote on 9/19/19 11:01 AM:
>              >          >> Lukas Jungmann wrote on 9/19/19 5:12 AM:
>              >          >>> Hi Bill,
>              >          >>>
>              >          >>> On 9/19/19 2:29 AM, Bill Shannon wrote:
>              >          >>>> What's the state of the art for building a
>             jar file that
>              >         contains class
>              >          >>>> files that will work on JDK 8, and a
>             module-info.class
>              >         that will work
>              >          >>>> on JDK 11?
>              >          >>>
>              >          >>> Are you looking just for this or also for
>             ability to have
>              >         multi-release jars?
>              >          >>
>              >          >> I don't need a multi-release jar file.
>              >          >>
>              >          >>> Are you looking for slightly more advanced
>             things like
>              >         module-info being altered
>              >          >>> by the build as needed - ie because you have
>             a main-class
>              >         in one of the projects
>              >          >>> (maven-jar-plugin:3.1.2+ is required), or
>             you want to
>              >         include project version in
>              >          >>> module info (maven-compiler-plugin:3.8.1+ is
>             required) etc?
>              >          >>
>              >          >> I don't think I need that.
>              >          >>
>              >          >>> All JAXB/JAXWS related projects are somehow
>             dealing with
>              >         this as all of them are
>              >          >>> java modules for some time already and some
>             of them are
>              >         also multi-release jars;
>              >          >>> jsonp/yasson are another projects to look at
>             eventually -
>              >         should I pick up some
>              >          >>> examples, jaxb-api can be one of them - it
>             is small project
>              >         with module-info, a
>              >          >>> multi-release jar and compiles everything
>             exactly ones[1],
>              >         a project which is
>              >          >>> not MR jar but contains "old" tests which
>             are now being run
>              >         within JPMS can be
>              >          >>> metro-policy[2] (its double-compilation is
>             going to be
>              >         fixed in the (near)
>              >          >>> future). Old JAXB/SAAJ/JAXWS 'RI's are
>             another examples
>              >         should you be looking
>              >          >>> for bigger projects - note that I'm updating
>             them these
>              >         days to adopt recent
>              >          >>> changes in maven plugins, so what is there
>             today, may be
>              >         different tomorrow (or
>              >          >>> day after :-))...
>              >          >>>
>              >          >>>   Based on my experience, if you get on this
>             path, my
>              >         recommendation is to use
>              >          >>> Maven 3.6.0. 3.6.1 is safe if you don't need
>             to use Eclipse
>              >         Tycho, with 3.6.2,
>              >          >>> the copyright plugin does not work[3]. If
>             there is a need
>              >         for Ant, make sure
>              >          >>> 1.10.6+ is used because older versions do
>             not work
>              >         correctly out-of-the-box if
>              >          >>> the build uses a task from a library which is a
>              >         multi-release jar[4].
>              >          >>>   As for what maven build plugins to use -
>             general advice
>              >         is to always use the
>              >          >>> latest versions.
>              >          >>
>              >          >> Thanks for the pointers, I'll look at those
>             projects.
>              >          >>
>              >          >>> thanks,
>              >          >>> --luksa
>              >          >>>
>              >          >>> [1]:
>              >
>             https://github.com/eclipse-ee4j/jaxb-api/blob/master/jaxb-api/pom.xml
>              >          >>> [2]:
>              >
>             https://github.com/eclipse-ee4j/metro-policy/blob/master/policy/pom.xml
>              >          >>> [3]:
>              >
>             https://github.com/eclipse-ee4j/glassfish-copyright-plugin/issues/7
>              >          >>> [4]:
>             https://bz.apache.org/bugzilla/show_bug.cgi?id=62952
>              >          >>>
>              >          >>>    The last time I looked at this all I
>             found were kludges
>              >          >>>> that resulted in compiling everything
>             twice, or very
>              >         complex Maven
>              >          >>>> configurations that depended on using
>             multiple versions of
>              >         the JDK
>              >          >>>> to compile.  Is there a better way?  Is
>             there an existing
>              >         project
>              >          >>>> that would be a good example?
>              >          >>>> _______________________________________________
>              >          >>>> jakarta.ee-community mailing list
>              >          >>>> jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              >         <mailto:jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>>
>              >          >>>> To change your delivery options, retrieve
>             your password,
>              >         or unsubscribe from
>              >          >>>> this list, visit
>              >          >>>>
>             https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >          >>>>
>              >          >>> _______________________________________________
>              >          >>> jakarta.ee-community mailing list
>              >          >>> jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              >         <mailto:jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>>
>              >          >>> To change your delivery options, retrieve
>             your password, or
>              >         unsubscribe from
>              >          >>> this list, visit
>              >          >>>
>             https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >          >> _______________________________________________
>              >          >> jakarta.ee-community mailing list
>              >          >> jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              >         <mailto:jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>>
>              >          >> To change your delivery options, retrieve
>             your password, or
>              >         unsubscribe from this list, visit
>              >          >>
>             https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >          >>
>              >         _______________________________________________
>              >         jakarta.ee-community mailing list
>              > jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              >         <mailto:jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>>
>              >         To change your delivery options, retrieve your
>             password, or
>              >         unsubscribe from this list, visit
>              > https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >
>              >
>              >
>              >     --
>              >
>              >     *Carlos Andres De La Rosa | Software Architect*
>              >
>              >     Mobile: + <tel:%2B57-3163226522>32465445631
>              >
>              >     Skype: carlosa.dlr
>              >
>              >     _______________________________________________
>              >     jakarta.ee-community mailing list
>              > jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              >     <mailto:jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>>
>              >     To change your delivery options, retrieve your
>             password, or
>              >     unsubscribe from this list, visit
>              > https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >
>              >
>              > _______________________________________________
>              > jakarta.ee-community mailing list
>              > jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>              > To change your delivery options, retrieve your password,
>             or unsubscribe from this list, visit
>              > https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>              >
>             _______________________________________________
>             jakarta.ee-community mailing list
>             jakarta.ee-community@xxxxxxxxxxx
>             <mailto:jakarta.ee-community@xxxxxxxxxxx>
>             To change your delivery options, retrieve your password, or
>             unsubscribe from this list, visit
>             https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>
>         _______________________________________________
>         jakarta.ee-community mailing list
>         jakarta.ee-community@xxxxxxxxxxx
>         <mailto:jakarta.ee-community@xxxxxxxxxxx>
>         To change your delivery options, retrieve your password, or
>         unsubscribe from this list, visit
>         https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>
>
>
>     --
>
>     *Carlos Andres De La Rosa | Software Architect*
>
>     Mobile: + <tel:%2B57-3163226522>32465445631
>
>     Skype: carlosa.dlr
>
>     _______________________________________________
>     jakarta.ee-community mailing list
>     jakarta.ee-community@xxxxxxxxxxx
>     <mailto:jakarta.ee-community@xxxxxxxxxxx>
>     To change your delivery options, retrieve your password, or
>     unsubscribe from this list, visit
>     https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>
>
> _______________________________________________
> jakarta.ee-community mailing list
> jakarta.ee-community@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
>
_______________________________________________
jakarta.ee-community mailing list
jakarta.ee-community@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jakarta.ee-community

Back to the top