Lari,
We know that there will be work to do, I am happy to do what is needed in
order to make this work
Thanks for pointing it out

Enrico

Il giorno mar 9 feb 2021 alle ore 09:44 Enrico Olivelli <eolive...@gmail.com>
ha scritto:

> Sijie,
>
> Il giorno mar 9 feb 2021 alle ore 09:42 Sijie Guo <guosi...@gmail.com> ha
> scritto:
>
>> Can we start with making Pulsar is able to run with both Java 8 and Java
>> 11?
>>
>
> That's exactly my proposal for the short term (2.8) in the footer of my
> initial message:
>
> >> I believe that enforcing JDK11 on the server side side is a big move
> and we should announce it with care and let users prepare for this jump.
> >> So in the meantime we could start with a soft transition plan, starting
> for 2.8 release:
> >> - Build Pulsar on JDK11 and run CI on JDK11
> >> - Set maven.compiler.release to JDK8
> >>- Change docker images to JDK11
>
> >> This way:
> >> - consumers of the Java client will be able to run on JDK8
> >> - consumers of the Binary tarballs for the server will be able to run
> on JDK8, say for Pulsar 2.8
> >> - consumers of Docker images will start to enjoy JDK11
> >> - Pulsar developers will get used to having JDK11, but they won't be
> able to leverage JDK11 language and JRE features (only faster runtime,
> GC....)
>
>
> Enrico
>
>
>>
>> Because I think there are still a lot of users running with Java 8.
>>
>> - Sijie
>>
>> On Mon, Feb 8, 2021 at 2:32 AM Enrico Olivelli <eolive...@gmail.com>
>> wrote:
>>
>> > Hello Pulsar community,
>> > I would like to start a discussion about Java 11 support and about
>> dropping
>> > support for JDK8 on the server side.
>> > It will take time, see my points below.
>> >
>> > At the moment we have these use cases about Java compatibility:
>> > - Java client users
>> > - Building Pulsar and running Pulsar tests
>> > - Server users that use the binary tarball
>> > - Apache Pulsar Docker images consumers
>> >
>> > I have been running in production BookKeeper and Pulsar on modern JDKs
>> > (Java version > 8) for much time and I see that there are no issues at
>> > least for the scenarios I have seen.
>> >
>> > JDK11 is currently referred to as LTS by major vendors (for whatever it
>> > means, please do not enter a "Java LTS thread", there are plenty of
>> threads
>> > about what is Java LTS about) and Java 17 is coming.
>> > I expect that any of the new users will start running on JDK11 (and
>> > probably on JDK15 for the early adopters) if they do not want to pay for
>> > JDK8 support
>> >
>> > Also the latest versions of Presto require Java 11 to run, if we do not
>> > move to Java 11 we won't be able to upgrade Presto.
>> >
>> > This is what I expect on the mid term (after 2.8):
>> >
>> > 1) Java Clients: stick to JDK8 compatibility
>> > I believe that on the Java client side we should stick to JDK8
>> > compatibility, because unfortunately JDK8 is still a version that is
>> widely
>> > used in the industry.
>> > In order to ensure JDK8 compatibility we have useful tools:
>> > - there are Maven plugin that ensure that we are not producing and
>> > consuming third party libraries that are not compatible with JDK8
>> > - we can add one (or more) Maven modules that run on CI using JDK8 and
>> > consume the artifacts produced by the build
>> >
>> > 2) Building Pulsar and running Tests
>> > We can require Pulsar to be built on JDK11.
>> > We can set maven.compiler.release to 11 in generale and
>> > maven.compiler.release to 8 for all of the modules that concur to build
>> up
>> > the Java client
>> > Tests will run on JDK11 on CI.
>> > We could desire to run the Pulsar client tests on JDK8, but many of them
>> > are indeed inside the pulsar-broker module.
>> >
>> > 3) Server users that use the binary tarball
>> > We will have to announce that from Pulsar 2.x (2.8 or 2.9?) Pulsar
>> server
>> > side components will require JDK11
>> > The same applies to users that run Pulsar broker by starting it from the
>> > Jars deployed to Maven central.
>> >
>> > 4) Docker images consumers:
>> > This is easy, just change the images in order to use JDK11.
>> >
>> >
>> > I believe that enforcing JDK11 on the server side side is a big move
>> and we
>> > should announce it with care and let users prepare for this jump.
>> >
>> > So in the meantime we could start with a soft transition plan, starting
>> for
>> > 2.8 release:
>> > - Build Pulsar on JDK11 and run CI on JDK11
>> > - Set maven.compiler.release to JDK8
>> > - Change docker images to JDK11
>> >
>> > This way:
>> > - consumers of the Java client will be able to run on JDK8
>> > - consumers of the Binary tarballs for the server will be able to run on
>> > JDK8, say for Pulsar 2.8
>> > - consumers of Docker images will start to enjoy JDK11
>> > - Pulsar developers will get used to having JDK11, but they won't be
>> able
>> > to leverage JDK11 language and JRE features (only faster runtime,
>> GC....)
>> >
>> > I can start a PIP, but I believe a little discussion on the ML is a good
>> > starting point.
>> >
>> > Thoughts ?
>> > Enrico
>> >
>>
>

Reply via email to