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