There is a fine line between stability and missing out on good, newer features. IMHO, requiring Maven to use code/language features no newer than those of a JDK twice deprecated by Oracle lands on the "missing out on good newer features".
Without listing any nice-to-have features in more recent languages, I would argue that Maven's implementation would benefit from a policy along the lines of "Maven should support the current Oracle JDK major version and the major previous version" (although better phrased by Stephen earlier in this thread). Having said that ... The other option is to infer modularization on the classloading level today, which is a nice (although potentially rather complex) structural exercise that prepares us for JDK modularity released in what is now believed to be JDK 9. Classloading-level modularity could enable us to develop and load only JDK X-compliant modules at runtime, permitting folks that would like to support elder JDK versions to implement parts of Maven in elder Java versions. Java Modularity today is more or less synonymous with OSGi or JBoss Modules, both of which would infer some rather strict technical structural demands into Maven's codebase - so that path may should not be one taken lightly. 2014/1/13 Stephen Connolly <[email protected]> > yes I know... but that doesn't get the full Java 8 API... which brings the > fun of animal sniffer back in play... I'd rather be able to just rely on > Java 8 the full shebang! That ain't happening before Java 8 is released... > if we'd rather a policy of "1 and 0 back" I'd be happy with that too! > > > On 13 January 2014 12:07, Kristian Rosenvold > <[email protected]>wrote: > > > https://github.com/orfjackal/retrolambda > > > > > > 2014/1/13 Stephen Connolly <[email protected]> > > > > > We are gearing up for the release of Maven 3.2.0... wherein we will > drop > > > support for Java 1.5 as the runtime that Maven requires (we will still > > > support compiling and running tests with older JVMs via toolchains > > though) > > > > > > This means we will effectively enter a realm of "1 and 1 back" > > > > > > Do we want to switch to this as a policy? > > > > > > i.e. something like: "When a new Major/Minor line is released, the JVM > > > requirements for running Maven will be the latest current Oracle JVM > > > version and the previous Oracle JVM version or any JVM version > compatible > > > with such" > > > > > > Which could mean that Maven 4.0 would be Java 7 as a minimum > requirement > > > (assuming Java 8 were released before we get to our 4.0) > > > > > > (I know Chris is going to chime in and point out that IBM is still > > > supporting various versions of Java on different platforms... and > RedHat > > > has pledged to support OpenJDK 6 as long as its customers want/pay it > to) > > > > > > Anyway... just some thoughts > > > > > > P.S. > > > I would really love to be able to use the Java 8 features in Maven > > > core... "1 and 1 back" still leaves us until Java 9 before we can do > > > that... which is a good 2-3 years away from now... unless somebody > > > implements a retroweaver to Java 7 (which at least stands a good > chance), > > > hence why I would like to drive us to Java 7 as a minimum once Java 8 > is > > > released. > > > > > > -- -- +==============================+ | Bästa hälsningar, | [sw. "Best regards"] | | Lennart Jörelid | EAI Architect & Integrator | | jGuru Europe AB | Mölnlycke - Kista | | Email: [email protected] | URL: www.jguru.se | Phone | (skype): jgurueurope | (intl): +46 708 507 603 | (domestic): 0708 - 507 603 +==============================+
