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?

On 9/23/19 11:51 PM, Werner Keil wrote:
So which in your experience did it better?

JSONP and JSONB also demonstrate the reuse of a module defined by JSONP in JSONB.

at the very beginning of this thread I mentioned "All JAXB/JAXWS related projects are somehow dealing with ...[JPMS]", for simplicity I've chosen 2-3 small and simple ones showing solutions to Bill's question given his concrete requirements, so it is easy for him to try more options and see what works the best for his use-case.

Should you be looking for more complex sample, take ie jaxws-api which depends on saaj-api, jws-api and jaxb-api with additional transitive dependency on activation-api (which is just automatic module). This is probably typical use-case for most implementation projects and what I would use as a reference going forward.

To see what exactly is hidden behind "All JAXB/JAXWS related projects" I mentioned, see https://github.com/eclipse-ee4j/metro-wsit/blob/master/etc/metro-dependencies.md where some 70%+ of binary content produced by what can be seen in the graph are JPMS modules (with appropriate dependencenies) and some 15-20% are also multi release jars. And that is only the most visible part of it as the graph itself does not show everything. It shows only the most visible parts.

thanks,
--lukas



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 <mailto: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>
    <mailto: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>
     >     <mailto: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> <mailto: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>>
     >              > <mailto: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>>
     >             <mailto: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>>
     >              >         <mailto: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>>
     >              >         <mailto: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>>
     >              >         <mailto: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>>
     >              >         <mailto: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>>
     >              >     <mailto: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
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