Flink can be built with Java 11 since 1.10. If I recall correctly we
solved the tools.jar issue, which Hadoop depends on, by excluding that
dependency. As far as we could tell it's not actually required.
On 01/12/2021 19:56, Nicolás Ferrario wrote:
Hi all, this would be awesome, I'm so tired of seeing Java 8
everywhere (reminds me of Python 2.7).
We're currently building our code against Java 11 because that's the
latest version of Java available as a Flink Docker image, but it'd be
great to use newer versions. I think it would also help to clean up
dependencies and hopefully no longer have incompatibility issues.
For example, right now it's not possible to build Flink with Java 9+
because of a Maven dependency. Using JDK 8 or copying "tools.jar" to
any newer JDK version fixes it (see more:
https://stackoverflow.com/questions/53707666/how-to-get-tools-jar-for-openjdk-11-on-windows).
Official support for Java 17 would be great.
Greetings!
On Wed, Dec 1, 2021 at 7:51 AM Chesnay Schepler <ches...@apache.org>
wrote:
Hello Gavin,
If you run into any issues with Java 17, please report them in
FLINK-15736 <https://issues.apache.org/jira/browse/FLINK-15736>.
I recently did some experiments with Java 17 myself; I would think
that you will run into some blockers (like ASM requiring an
upgrade <https://issues.apache.org/jira/browse/FLINK-24978>, or
missing --add-opens/--add-exports
<https://issues.apache.org/jira/browse/FLINK-25002>).
On 01/12/2021 11:12, Gavin Lee wrote:
Thanks for sharing this info with us Chesnay.
We've been using Flink for 5 years, and upgraded to 1.13.2
months ago. The java version is still 8.
Currently we're testing with java 17 in our staging environment.
There are no special concerns.
Will update when tests complete.
On Tue, Nov 30, 2021 at 1:18 AM Chesnay Schepler
<ches...@apache.org> wrote:
Hello,
we recently had a discussion on the dev mailing list for
deprecating support for Java 8 in 1.15, with a general
consensus in favor of it.
I now wanted to check in with you, our users, to see what you
have got to say about that.
Why are we interested in deprecating Java 8 support
now (and in eventually removing it)?
The main reason is that supporting the recently released Java
17 (and subsequent versions), while maintaining Java 8 support,
will be more complicated than if Java 11 were the oldest
release version. Essentially because Java 11/17 have both
crossed the Java 9 chasm.
We will still have to bite this bullet in any case (because
Java 17 is out /now /but we are /not /dropping Java 8 /now/),
but we would still
like to signal that users should upgrade to Java 11 so that
we can /eventually/ clean this up.
Furthermore, it is currently hard to justify investing time
into benchmarks/performance improvements that are specific to
Java 11+, because
they provide no benefit to Java 8.
What does the deprecation mean exactly?
It will primarily mean that a warning will be logged when you
run Flink on Java 8.
We /may/ change the default Java version of the Docker images
to Java 11 (the java8 tags will remain),
and we will put a larger emphasis on Flink's performance on
Java 11.
Does that mean that Java 8 support will be removed in
1.16/1.17?
No. We are not putting a hard-date on the removal of Java 8
support at this time.
Will this mean that at some point we'll surprise you
with the removal of Java 8 support in the next release?
No. We will announce the removal ahead of time by /at least/
half a year / 2+ releases (probably closer to a full year).
Is the deprecation already decided?
No. The responses in this thread are integral for deciding
whether a deprecation at this time makes sense.
If you are still using Java 8 at the moment, then we would
appreciate if you could tell us whether you already have a
time-frame for
when you intend to upgrade to Java 11. We'd also be
interested in anything that blocks your migration to Java 11.
Please raise concerns you have, and feel free to ask questions.
--
Gavin