Le samedi 11 avril 2015 15:35:02 Kristian Rosenvold a écrit :
> Technically we support "main" scoped sources in java6 and "test"
> scoped sources in java7 today, but the feature is largely unusable
> since IDE support is totally missing. Even IntelliJ does not support
> it (https://youtrack.jetbrains.com/issue/IDEA-85478 and other issues)
> 
> :(
> 
> There might be some hope of gaining some kind of traction to both
> source and main-level support of multi-language-level modules. Maybe
> something like (src/main/java and src/test/java = "default language"
> level) while src/[main|test]/java-8 would be a specific language
> level. This sounds infinitely cool,
yes, that's what I did in plexus-utils jdep-238 branch
https://github.com/codehaus-plexus/plexus-utils/tree/jep-238/src/main

> but also like a great can of worms
> 
> :)
yes, I fear it's not so easy for IDEs...

> I assume minimum compiler requirement would be java-8 for a project
> 
> with src/main/java-8 ?
yes, I think that's what makes such support hard at the moment: require the 
highest JDK, and signature for every lower JDK to avoid newer APIs
unless JDK 9 can safely compile for any older target, checking the API 
(without having to run Animal Sniffer after that)

Regards,

Hervé

> 
> K
> 
> 2015-04-11 15:11 GMT+02:00 Hervé BOUTEMY <herve.bout...@free.fr>:
> > Le samedi 11 avril 2015 10:54:34 Kristian Rosenvold a écrit :
> >> IDE support for multiple source trees seems quite far off ?
> > 
> > IDE support for current situation, where we mix multiple Java API versions
> > in one single source tree, is even more far off!
> > 
> > With separate source trees, IDE support starts like we are at the moment =
> > no IDE support
> > 
> > but IDEs that want to do something about it have a chance: that's the big
> > difference IMHO
> > 
> > Regards,
> > 
> > Hervé
> > 
> >> Kristian
> >> 
> >> 2015-04-11 8:51 GMT+02:00 Hervé BOUTEMY <herve.bout...@free.fr>:
> >> > Hi,
> >> > 
> >> > Yesterday at DevoxxFR, Carlos Sanchez, Arnaud Héritier, Nicolas de Loof
> >> > and me met Brian Goetz and discussed about the objective of JEP 238 and
> >> > what we could get from such a feature.
> >> > 
> >> > Having a face to face explanation in front of a white board gave
> >> > interesting ideas: then, *as library maintainer*, I tried to modifiy
> >> > plexus-utils code to use MVJAR for Java 7 enhancement that are
> >> > currently
> >> > triggerred through reflection
> >> > 
> >> > 
> >> > Here is the result [1]:
> >> > 
> >> > I extracted 2 little xxxMv classes containing only the few methods that
> >> > had to be enhanced when runing on Java 7, replacing the
> >> > 
> >> >     if (Java7Detector.isJava7()) {
> >> >     
> >> >       // java 7
> >> >     
> >> >     } else {
> >> >     
> >> >      // Java 5
> >> >     
> >> >     }
> >> > 
> >> > stanza with the default Java 5 code in the main src/main/java source
> >> > tree
> >> > and Java 7 reimplementation in src/main/java-7 source tree
> >> > 
> >> > and I did cleanup: removed Java7Detector and moved NioFiles to this
> >> > java-7
> >> > specific source tree
> >> > 
> >> > 
> >> > the result is a main src/main/java source tree that can be compiled
> >> > with
> >> > JDK 5 and a src/main/java-7 source tree that is minimal to be compiled
> >> > with JDK 7
> >> > 
> >> > 
> >> > I still didn't try to update pom.xml to see what maven-compiler-plugin
> >> > and
> >> > maven-jar-plugin configurations could look like.
> >> > 
> >> > and I don't know if javac will be enhanced to do the 2 compilations in
> >> > 1
> >> > command like "javac -target 1.5 src/main/java -target 1.7
> >> > src/main/java-7"
> >> > or if it'l have to launch 2 javac one after the other
> >> > 
> >> > I didn't look at maven-jar-plugin to see if it uses "jar" command that
> >> > will be enhanced to mix multiple target/classes or if it uses JarFile
> >> > class then will need to code the mix
> >> > 
> >> > and I don't know if javac will have tru crossplatform compilation
> >> > option,
> >> > to avoid using 2 JDKs (ie JDK 5 for compiling java 5 code and being
> >> > sure
> >> > there is no Java 7 API reference, and JDK 7 for the java 7 part)
> >> > 
> >> > 
> >> > I see there will be impact on tooling, and if javac does a part of the
> >> > job,
> >> > this will be a lot easier to implement at Maven level
> >> > 
> >> > 
> >> > But at the moment, my objective was not from Maven point of view but
> >> > library developper point of view: show a real world case of how an
> >> > existing library could be refactored to use the feature, expecting that
> >> > the new source code would be easier to maintain
> >> > 
> >> > 
> >> > WDYT?
> >> > 
> >> > Regards,
> >> > 
> >> > Hervé
> >> > 
> >> > 
> >> > 
> >> > 
> >> > [1]
> >> > https://github.com/codehaus-plexus/plexus-utils/tree/jep-238/src/main/j
> >> > av
> >> > a-7/org/codehaus/plexus/util>
> >> > 
> >> > Le jeudi 19 mars 2015 23:38:32 Robert Scholte a écrit :
> >> >> Hi,
> >> >> 
> >> >> we've been asked to give our opinion on the JEP 238: Multi-Version JAR
> >> >> Files
> >> >> 
> >> >> Here's a quote from Rory O'Donnels e-mail:
> >> >> ---
> >> >> 
> >> >>   It's goal is to extend the JAR file format to allow multiple, JDK
> >> >> 
> >> >> release-specific versions of class
> >> >> 
> >> >>   files to coexist in a single file. An additional goal is to backport
> >> >>   the
> >> >> 
> >> >> run-time changes to
> >> >> 
> >> >>   JDK 8u60, thereby enabling JDK 8 to consume multi-version JARs. For
> >> >>   a
> >> >> 
> >> >> detailed discussion,
> >> >> 
> >> >>   please see the corresponding thread on the core-libs-dev mailing
> >> >>   list.
> >> >>   [1]
> >> >>   
> >> >>   Please keep in mind that a JEP in the Candidate state is merely an
> >> >>   idea
> >> >> 
> >> >> worthy of consideration
> >> >> 
> >> >>   by JDK Release Projects and related efforts; there is no commitment
> >> >>   that
> >> >> 
> >> >> it will be delivered in
> >> >> 
> >> >>   any particular release.
> >> >>   
> >> >>   Comments, questions, and suggestions are welcome on the corelibs-dev
> >> >> 
> >> >> mailing list. (If you
> >> >> 
> >> >>   haven’t already subscribed to that list then please do so first,
> >> >> 
> >> >> otherwise your message will be
> >> >> 
> >> >>   discarded as spam.)
> >> >>   
> >> >>   [0] http://openjdk.java.net/jeps/238
> >> >>   [1]
> >> >> 
> >> >> http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-February/031
> >> >> 461
> >> >> .ht ml
> >> >> 
> >> >> ---
> >> >> 
> >> >> IIUC the original request was to have different version of the same
> >> >> class
> >> >> within the same artifact. On the mailinglist I noticed a more
> >> >> interesting
> >> >> idea: you need a mechanism to map Classes, Methods or Fields from one
> >> >> version to the other.
> >> >> 
> >> >>  From a Maven perspective I don't see that much issues with the
> >> >>  original
> >> >> 
> >> >> idea. You should already be able to do it right now with a lot of
> >> >> execution-blocks.
> >> >> However, I don't see how users would maintain different version of the
> >> >> same class (within an IDE).
> >> >> To me this all looks quite complex for rare cases.
> >> >> If you really want multiple JDK versions of the same artifact, I would
> >> >> probably split them into classified artifacts.
> >> >> 
> >> >> Any other comments?
> >> >> 
> >> >> thanks,
> >> >> Robert
> >> >> 
> >> >> ---------------------------------------------------------------------
> >> >> 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
> >> 
> >> ---------------------------------------------------------------------
> >> 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
> 
> ---------------------------------------------------------------------
> 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

Reply via email to