Hello Enrico,

I fixed SUREFIRE-1403 and now Surefire works with Java 9.
I need an approval for the Jira SUREFIRE-1403 for you and Robert. Thx in
advance.

I have added integration tests for Failsafe plugin, added documentation "
java9.md" and removed JAXB which is located in module *javax.xml.binding*.

*Here is a clarification on why I was unhappy with Java status and why
Surefire project could not run with Java 9 and how it was fixed:*

Because of I used *javax.xml.binding*, plugin Failsafe did not run in Java9.
Reason is that module *javax.xml.binding* is however in Java API but not
propagated on classpath when running Maven process (different situation in
forked JVM in Surefire which is here fixed by SUREFIRE-1403).
This is strange and will be strange for most people, for instance in our *Java
EE project using REST* the WildFly server has to use *"--add-modules
ALL-SYSTEM"* in *jboss.sh* to make our applications working again.
As a solution in Surefire project I removed JAXB which was simple XML in my
case but not simple in general.

Someone may say that "do not use Java 9 if you do not use Jigsaw
modularity".
But there are reasons where you will use it.
For instance new API in Java or Java EE 9 in the future.

I do not think that using *"--add-modules ALL-SYSTEM"* is good principle.
As a workaround to this in Maven would be to develop *smart
maven-compiler-plugin* which automatically generates *module-info.class*
upon import sections in Java classes and Maven dependencies.
Not easy I guess.


On Mon, Aug 14, 2017 at 10:57 AM, Enrico Olivelli <eolive...@gmail.com>
wrote:

> Il dom 13 ago 2017, 17:31 Tibor Digana <tibor.dig...@googlemail.com> ha
> scritto:
>
> > I found an issue. JDK printed this on std/out:
> > WARNING: Using incubator modules: jdk.incubator.httpclient
> >
> > It hapens after my test:
> >
> > import org.junit.Test;
> >
> > public class J9Test
> > {
> >     @Test
> >     public void testMiscellaneousAPI() throws java.sql.SQLException
> >     {
> >         System.out.println( "loaded class " +
> > java.sql.SQLException.class.getName() );
> >         System.out.println( "loaded class " +
> > javax.xml.ws.Holder.class.getName() );
> >         System.out.println( "loaded class " +
> > javax.xml.bind.JAXBException.class.getName() );
> >         System.out.println( "loaded class " +
> > org.omg.CORBA.BAD_INV_ORDER.class.getName() );
> >         System.out.println( "loaded class " +
> > javax.xml.xpath.XPath.class.getName() );
> >         System.out.println( "java.specification.version=" +
> > System.getProperty( "java.specification.version" ) );
> >     }
> >
> >     @Test
> >     public void test_corba_mod() throws org.omg.CORBA.BAD_INV_ORDER
> >     {
> >     }
> > }
> >
> >
> > On Sun, Aug 13, 2017 at 5:29 PM, Tibor Digana <
> tibor.dig...@googlemail.com
> > >
> > wrote:
> >
> > > But why to add it? It's a hack. I do not use module-info.java and so
> > there
> > > is no reason to break the backwards compatibility.
> > >
> > > This is no more about Maven. It is about entire Java world.
> > > If we in Maven do it then everybody has to.
> > > And I am sure that the voices says that Kotlin is better and Scala is
> > > better would make sense. Why to help these attempts to happen? No
> reason!
> > >
> > > On Sun, Aug 13, 2017 at 5:11 PM, Gary Gregory <garydgreg...@gmail.com>
> > > wrote:
> > >
> > >> Is there a Maven way to add ALL-SYSTEM to everything? Using plugin
> > >> specific
> > >> tags like below is going to be painful.
> > >>
> > >> Gary
> > >>
> > >> On Aug 13, 2017 07:30, "Tibor Digana" <tibordig...@apache.org> wrote:
> > >>
> > >> > Hi @Enrico,
> > >> >
> > >> > I am very unhappy with Java 9 status and very afraid.
> >
>
> Tibor, thank you very much for your time and your effort.
> I think that we should have chimed in long time before the approval of
> those decisions on the jre. Now the game is over, we can only decide how
> maven users will deal with running classpath based applications on java9.
> I see two approaches:
> 1) add a lot of tricks in every base maven plugin and make it very easy to
> transition
> 2) leave the complexity to developers who will add a lot of profiles and
> hacks to detect java9
>
> My personal feeling is that I am very disappointed by the fact the few
> developers diffs not report this issues to the maven community long time
> ago. I think that the java9 adoption has not been taken into account by
> most developers and this will be an huge pain for the java community.
> I hope that Maven will help the java world to go on and to step over this
> painful transition
>
> I will test your patch as soon as I can
> Cheers
> Enrico
>
> >> > I do not like the style how Oracle has changed Java to Java 9 and
> > forced
> > >> > all the world to use additional effort to adapt to Oracle
> activities.
> > >> >
> > >> > I am facing more unhappy Java development teams with Java 9 in the
> > >> future.
> > >> > For instance as I have tried to implement users wish in Maven
> Surefire
> > >> > project and invested my personal time and effort to adapt to Oracle
> > >> > requirements, this still does not convince me to say that Java 9 is
> > >> ready
> > >> > to go.
> > >> >
> > >> > This is my comment from Jira:
> > >> >
> > >> > "This is not nice on Java 9 that they broke backwards compatibility
> > and
> > >> > force the world to use the switch to use --add-modules ALL-SYSTEM
> > >> instead
> > >> > of providing all modules installed in JRE. For instance, small JRE
> > >> having
> > >> > {{java.base}} has advantage on embedded systems and the only should
> be
> > >> > propagated. Big scope JRE should propagate all installed modules.
> > >> > But for me it does not make security sense and common sense to force
> > >> JRE to
> > >> > provide modules. It should be opposite and the admin/Jenkins should
> > >> > configure big scope JRE with selected modules propagated to Java
> > runtime
> > >> > applications.
> > >> > If this admin does not do that then all modules should be available
> by
> > >> > default which is backwards compatibility for me and we do not have
> to
> > to
> > >> > implement these stupid tricks."
> > >> >
> > >> > As far as we remember Java Security, the policies can be configured.
> > >> > I can imaging same paradigm in Jigsaw/Java 9 and then the admin who
> > has
> > >> > installed JDK or JRE would "switch off" some modules. But opposite,
> > that
> > >> > means the script which starts Java app currently enables "all"
> modules
> > >> is
> > >> > against security and against the principle of modular system because
> > the
> > >> > modules do not make sense then.
> > >> >
> > >> > What makes sense to me is to enable "all java/javax" modules except
> > for
> > >> the
> > >> > "com.sun" proprietary ones by default.
> > >> > So yes enable them by default and please release specific JRE
> > >> installations
> > >> > with specific bunch of Java modules for specific use cases.
> > >> > This means those modules in that particular release are all enabled
> by
> > >> > default if not configured otherwise by admin, e.g. Jenkins,
> operation
> > >> > staff, etc. (do NOT mean Sun packages - never visible).
> > >> >
> > >> > Here it comes. The idea that we can install small 5MB/JRE on small
> > Linux
> > >> > device would be possible because Oracle would release such tiny JRE
> > >> using
> > >> > only "java.lang" and then another JRE installation using java.lang
> and
> > >> > java.utils, and later NIO and later "java.desktop", etc.
> > >> >
> > >> > Then vendors of web browsers and Linux dist would be happy to
> > integrate
> > >> > small JRE into and use JavaFX.
> > >> >
> > >> > But now it is not possible because the modules are basically three:
> > >> >
> > >> > java.base == 37MB
> > >> > java.desktop == 36MB
> > >> > java.xml ==20MB
> > >> >
> > >> > All the other modules are pretty small but these three seen in
> > "src.zip"
> > >> > make the modular system unbalanced in size and nobody would ever
> wish
> > to
> > >> > integrate them because they are still big. That means the problem
> that
> > >> > Oracle has with NIO implementation in com.sun package propagated to
> > >> > "java.util", nobody in the world care and nobody should see as a
> > >> problem to
> > >> > split "java.base" much more.
> > >> >
> > >> > If splitting "java.base" happened then not certified JVMs developed
> at
> > >> > Universities would for instance implement only "java.lang" and embed
> > it
> > >> in
> > >> > to JVM and develop a new programming language on the top of Java.
> But
> > >> > implementing 10 packages in java.base is an effort again.
> > >> >
> > >> >
> > >> >
> > >> > One more thing is regarding the size of the modules.
> > >> > You really did not help embedded systems and installations of
> > browsers.
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > On Thu, May 18, 2017 at 8:51 AM, Enrico Olivelli <
> eolive...@gmail.com
> > >
> > >> > wrote:
> > >> >
> > >> > > I would like to share my current pom configuration which lets me
> to
> > >> > > build and test java8 apps on latest and greatest jdk9
> > >> > >
> > >> > > This profile is activated when using jdk9.
> > >> > >
> > >> > > This is based on a suggestion of Robert, its suggestion for the
> > >> > > javadoc plugin is working great with surefire too
> > >> > >
> > >> > > <profile>
> > >> > >             <id>jdk9</id>
> > >> > >             <activation>
> > >> > >                 <jdk>[9,)</jdk>
> > >> > >             </activation>
> > >> > >             <build>
> > >> > >                 <plugins>
> > >> > >                     <plugin>
> > >> > >                         <groupId>org.apache.maven.
> plugins</groupId>
> > >> > >
> >  <artifactId>maven-javadoc-plugin</artifactId>
> > >> > >                         <configuration>
> > >> > >                             <additionalparam>--add-modules
> > >> > > ALL-SYSTEM</additionalparam>
> > >> > >                         </configuration>
> > >> > >                     </plugin>
> > >> > >                     <plugin>
> > >> > >                         <groupId>org.apache.maven.
> plugins</groupId>
> > >> > >                         <artifactId>maven-surefire-pl
> > >> ugin</artifactId>
> > >> > >                         <version>2.20</version>
> > >> > >                         <configuration>
> > >> > >                             <argLine>--add-modules
> > >> ALL-SYSTEM</argLine>
> > >> > >                         </configuration>
> > >> > >                     </plugin>
> > >> > >                 </plugins>
> > >> > >             </build>
> > >> > >         </profile>
> > >> > >
> > >> > >
> > >> > > -- Enrico
> > >> > >
> > >> > >
> > >> > >
> > >> > > 2017-04-24 19:08 GMT+02:00 Karl Heinz Marbaise <khmarba...@gmx.de
> >:
> > >> > > > Hi,
> > >> > > >
> > >> > > > yes I will do within this week...
> > >> > > >
> > >> > > > Kind regards
> > >> > > > Karl Heinz Marbaise
> > >> > > > On 23/04/17 21:37, Enrico Olivelli wrote:
> > >> > > >>
> > >> > > >> Thank you Robert,
> > >> > > >> I saw that you have merged my patch.
> > >> > > >>
> > >> > > >> Is there any plan to release the new version of the war plugin?
> > >> > > >>
> > >> > > >> Enrico
> > >> > > >>
> > >> > > >>
> > >> > > >> Il gio 13 apr 2017, 12:21 Paul Hammant <p...@hammant.org> ha
> > >> scritto:
> > >> > > >>
> > >> > > >>>>
> > >> > > >>>>
> > >> > > >>>>> I don't see any activity either, so my idea is to replace
> > >> XStream,
> > >> > > see
> > >> > > >>>>
> > >> > > >>>> MWAR-397[1]
> > >> > > >>>>
> > >> > > >>>
> > >> > > >>> Just for the record, Jörg is working through the Java9 issues
> > for
> > >> > > XStream
> > >> > > >>> presently - https://github.com/x-stream/
> xstream/commits/master
> > >> > > >>>
> > >> > > >>> - Paul
> > >> > > >
> > >> > > >
> > >> > > > ------------------------------------------------------------
> > >> ---------
> > >> > > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > >> > > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >> > > >
> > >> > >
> > >> > >
> > ---------------------------------------------------------------------
> > >> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > >> > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >> > >
> > >> > >
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Cheers
> > > Tibor
> > >
> >
> >
> >
> > --
> > Cheers
> > Tibor
> >
> --
>
>
> -- Enrico Olivelli
>



-- 
Cheers
Tibor

Reply via email to