hi Aled, sure, I'll have a look at that.
cheers Geoff On Mon, 6 Mar 2017 at 18:26 Aled Sage <[email protected]> wrote: > Hi all, > > There have been six +1s (including myself) and no negatives, so let's do > this. > > --- > > For Robert's question, I did some investigation for use of lambdas as > config key values. They don't persist correctly unfortunately [1], so we > shouldn't use them anywhere that could end up in persisted state. > > --- > > I suggest we separate this into multiple stages (and ensure that > discussion of later stages does not block the earlier stages): > > * Stage one: switch to Java 8 as "official target" > 1. Update our jenkins etc to always build/run with Java 8. > 2. All developers/testers switch to Java 8 locally. > 3. Add to the next release notes that Java 7 is no longer supported. > * Stage two: update our poms so they don't compile/check for Java 7 > compatibility [2,3,4]. > * Stage three: update our docs to say not to use lambdas for config > keys (similar to what we already say for anonyous inner classes [5]) > * Stage four: developers free to use Java 8 language features *where > it does not affect APIs or end up in persisted state* > * Stage five: discuss/improve use of Java 8 (e.g. perhaps fix [1]; > should we keep using guava classes that are now in Java 8's > java.util.function.* ?) > > --- > > Geoff: if you're volunteering, it would be awesome if you could pick up > stage 1.1 (and then stage 2). > > Aled > > [1] https://issues.apache.org/jira/browse/BROOKLYN-448 > [2] https://github.com/apache/brooklyn-server/blob/master/pom.xml#L91 > [3] > > https://github.com/apache/brooklyn-server/blob/master/parent/pom.xml#L557-L558 > [4] > https://github.com/apache/brooklyn-server/blob/master/parent/pom.xml#L950 > [5] > > https://brooklyn.apache.org/v/latest/ops/persistence/index.html#writing-persistable-code > > > On 06/03/2017 14:35, Geoff Macartney wrote: > > hi all, > > > > any more thoughts on this? What concrete steps do we want to take, and > > when? What can I do to help out? > > > > Plus, has anyone any views on Robert's question? > > > > cheers > > Geoff > > > > > > > > > > On Mon, 27 Feb 2017 at 14:21 Robert Moss <[email protected]> > wrote: > > > >> 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 > >>> > >>> > >
