poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dominik Stadler <dominik.stad...@gmx.at>
Subject Re: Java 6 support
Date Sun, 09 Jul 2017 14:28:52 GMT

+1 for Java 7 in POI 4 after 3.17 is out. And I for not investing too much
in backwards compatibility, people on Java 6 likely still run POI 3.9

I'm -1 on Java 8, as 7 is still needed for Android AFAIK and we get a
number of requests in that area lately.


On Jul 9, 2017 16:10, "Javen O'Neal" <onealj@apache.org> wrote:

> (writing an iterator in Java is particularly painful).
We could also leapfrog Java 7 and go straight to Java 8 with support for
streams and lambdas.

And yes, it's a can of worms to try to compile Java 7/8 source to Java 6
bytecode. It shouldn't be, as that's one of the glorious things about
intermediate code, and somehow Kotlin and other languages managed to
compile to Java 6 bytecode...

On Jul 9, 2017 15:48, "Javen O'Neal" <onealj@apache.org> wrote:


I'm in favor of dropping Java 6 support. If users still need to run new
versions of POI on old JVMs, they should be able to cross-compile, though
it may require some extra tools on their end to modify the bytecode to be
compatible with and old JVM.

If we can figure out a way to maintain binary compatibility with Java 6
while rewriting our code with features from Java 7 (diamond operator for
inferred generic type, try-with-resources, Unicode literals), then it's a

If cross compilation doesn't work, I was toying with the idea of rewriting
parts of the code in Kotlin, Scala, or other static JVM language that
maintains Java 6 compatibility while providing a less verbose language to
write code in (writing an iterator in Java is particularly painful).

If we're talking about POI 4.0, we should also think about replacing
XMLBeans, since that can't be done gradually like refactoring the code to
use Java 7 language features.

Either before or after we replace XMLBeans, it'd be worthwhile to fully
read files into POJOs so we don't have to keep an XMLDOM open. This is why
we struggle with RAM and CPU performance.

I'm not sure if it's easier to replace XMLBeans before de-XMLDOM'ing POI
(assuming we want that), but it's worth discussing as we look at the
roadmap of dependent tasks to move forward.

Of course, if we're not ready to embark on replacing XMLBeans and
de-XMLDOM, we can drop Java 6 support in POI 4 and work on removing
XMLBeans and the XMLDOM in POI 5 (or 6).

On Jul 9, 2017 14:29, "kiwiwings" <kiwiwings@apache.org> wrote:

It has been a while that we've discussed this topic ... or at least I
couldn't find another more recent/decent thread ... [1]

How about switching to Java 7 now?
If we'd do, will we change to version 4 then?


[1] http://apache-poi.1045710.n5.nabble.com/Java-6-support-td5721373.html

View this message in context: http://apache-poi.1045710.n5.n
Sent from the POI - Dev mailing list archive at Nabble.com.

To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message