Hi Currently our Java policy [1] mandates a baseline of Java 5, which was released in 2004, and was EOL from 2008; even paid Oracle customers stopped getting updates in 2015 [2].
There are many language and class library improvements in later versions of Java that we would benefit from in AOO, and if there are no objections, I would like to increase the minimum version to 7, if not 8. Java 7 would give us the badly needed try-with-resources feature, better type inference for generics, and Java 8: lambdas and method references, better java.util collections and lambda-based APIs for them, unsigned integer arithmetic, etc. The only possible downside I see is that the few alternative JVMs that do exist, tend to only work with older version of Java, for example, the Apache Harmony class library used in earlier versions of Android only supported Java 5, GNU Classpath also 5, CacaoVM only supports 6 [3]. Alternative Java implementation aren't relevant to desktop users (x86/amd64/sparc) any more, since OpenJDK provides free/open-source JVMs for those, but other platforms and more exotic use cases do need them, eg. the ARM JVM is only available from Oracle as a commercial product, and the BugVM project that compiles Java to native code for the iPhone, uses the Harmony-based Android library. Having said that, there are ways to compile most Java 7 code into Java 5 classes. For example try-with-resources compiles into a normal try-catch-finally, with calls to the Exception.addSuppressed() API that only exists on Java 7, but the class file can be changed to eliminate them; I already have a tool that does this. So I guess it's only 8 that's controversial, as it's lambdas compile into "invokevirtual" instructions, which didn't exist prior to Java 7. Anyway I am proceeding with (uncommitted) development under the assumption at least 7 is ok, and will revisit with 8 if possible. Please object soon if you do :-). Damjan References: [1] https://wiki.openoffice.org/wiki/Policies/Java_Usage [2] https://en.wikipedia.org/wiki/Java_version_history [3] https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines