Aled, WRT Java 8 features. Is it still recommended to use named inner classes over anonymous inner classes? Can we now simplify those areas to use lambdas? There are a number of classes now built into Java that were previously provided by Guava etc. e.g. Optional, Predicate - should we start using the Java 8 classes instead where possible?
Robert On 27 February 2017 at 13:08, Aled Sage <[email protected]> wrote: > Hi all, > > I propose we switch to Java 8 for Apache Brooklyn (i.e. require Java 8; > remove support for using Java 7 when running Brooklyn). > > This will make our testing simpler, improving coverage (e.g. we don't > currently test everything with Brooklyn running both on Java 7 and Java 8). > It will make our lives easier as developers (e.g. don't need to worry about > Java 7 versus Java 8 when compiling, running tests and manually testing > Brooklyn; and we can use Java 8 features). > > Java 7 reached end of life in April 2015 [1]; Java 8 was released March > 2014. > > We can do this in three stages: > > * Switch to Java 8 as "official target" > o Update our jenkins etc to always build/run with Java 8. > o All developers/testers switch to Java 8 locally. > o Add to the next release notes that Java 7 is no longer supported. > * Update our poms so they don't compile/check for Java 7 compatibility > [3,4,5]. > * Developers free to start using Java 8 language features! > > Stage 1 would be the bare minimum for the next release; I think we should > do all three stages before the 0.11.0 release. > > Aled > > [1] https://java.com/en/download/faq/java_7.xml > [2] https://www.infoq.com/news/2015/05/Oracle-Ends-Java-7Public-Updates > [3] https://github.com/apache/brooklyn-server/blob/master/pom.xml#L91 > [4] https://github.com/apache/brooklyn-server/blob/master/parent > /pom.xml#L557-L558 > [5] https://github.com/apache/brooklyn-server/blob/master/parent > /pom.xml#L950 > >
