Hi,
+1 for Java 21.
I think Java 21 can open the door for Virtual Threads[1].

[1] https://openjdk.org/jeps/444

Thanks,
Heesung

On Wed, Oct 18, 2023 at 10:33 AM Lari Hotari <lhot...@apache.org> wrote:

> Yes, I agree that we don't need to rush in making Java 21 the default
> runtime in docker images and the default JVM to run tests on in CI.
>
> It seems that supporting Java 21 for build and tests in CI is not too far
> away. My intention is to make the master code base compatible with Java 21
> as the first step. Currently, this effort seems to be close to completion
> after submitting and merging a few PRs. The Mockito 5.6.0 upgrade PR is the
> currently pending since I'd like to have more reviews or feedback on that
> PR before merging. I started a separate email thread about it.
>
> I triggered a new experiment in my fork to run the CI builds and docker
> images with Java 21 to find out if there are more known gaps:
> https://github.com/lhotari/pulsar/actions/runs/6564345747?pr=155
> https://github.com/lhotari/pulsar/pull/155
>
> We'll soon know if there are more incompatibilities in supporting Java 21
> for building and running tests.
>
> -Lari
>
> On 2023/10/18 12:26:42 tison wrote:
> > It's different to
> >
> > 1. be compatible with JDK 21
> > 2. switch the runtime to JDK 21
> >
> > The latter means we can break compatibility with early JRE.
> >
> > I totally support to be compatible with JDK 21 and saw your PRs to
> upgrade
> > mockito version for so. But perhaps it's better to wait a bit for users
> > feedback of using JRE21.
> >
> > To ensure the compatibility, we can add a build CI job with JDK21
> > configured.
> >
> > mattison chao <mattisonc...@gmail.com>于2023年10月18日 周三19:37写道:
> >
> > > Thanks for your answer.
> > >
> > >
> > > > We have the PIP, but that doesn't answer the question about the
> current
> > > schedule and plan for Pulsar 3.2 . There have been delays in past
> release
> > > schedules so the PIP document doesn't really provide a great answer to
> > > timeline. When is it time to start discussing the 3.2 release? We have
> the
> > > goal of releasing every 3 months.
> > >
> > > 3.1.x first release on August 14. In my opinion, we can start 3.2.x now
> > > because it’s the third month. Plus, The last three weeks of this month
> will
> > > be the code freeze period.
> > >
> > > > As mentioned before, it's possible to separately delivery Java 21
> > > support:
> > > > - support Java 21 for running Pulsar (possibly already "works"
> without
> > > any changes in Pulsar, supporting this option is more effort)
> > > > - support Java 21 for developing/compiling, running tests of Pulsar
> > > > - switch from Java 17 language level to Java 21 in Pulsar server side
> > > components
> > >
> > > +1 for your steps.
> > >
> > >
> > >
> > > Best,
> > > Mattison
> > >
> > > > On 18 Oct 2023, at 19:16, Lari Hotari <lhot...@apache.org> wrote:
> > > >
> > > >
> > > > Hi,
> > > >
> > > >> 1. What are the significant benefits of upgrading?
> > > >
> > > > There are 2 parts to how Java 21 could be supported. One level is
> that
> > > we simply add support for developing and running Pulsar on Java 21
> runtime
> > > without switching the language level of the Pulsar components. This is
> how
> > > Java 11 was used in Pulsar in the past while all code in the Pulsar
> code
> > > base was kept at Java 8 language level.
> > > >
> > > > One clear benefit of upgrading is staying current and keeping Pulsar
> > > relevant for the future and the years to come.
> > > >
> > > > The performance improvements of the Java runtime between 17 and 21
> don't
> > > seem to be significant in most cases. We won't know exactly what the
> > > improvement is for Pulsar until we run benchmarks and do a comparison.
> I'd
> > > expect it to be in the range of 1-5%.
> > > >
> > > > The benefits of the language changes in Java 21 (since Java 17) is a
> > > different discussion and I won't go into that in this email.
> > > >
> > > >> 2. We should define some rules for using the new feature by JDK21
> > > before upgrading.  Especially for the virtual thread. We can't make
> thread
> > > management worse.
> > > >
> > > > Sure, that's a valid question to discuss if we were to switch the
> > > language level from Java 17 to Java 21. We had similar discussions
> about
> > > the tradeoffs when we switched the language level from Java 8 to Java
> 17 in
> > > Pulsar server side components.
> > > >
> > > >>> Could anyone update me on the current schedule for Pulsar 3.2?
> > > >>
> > > >> The community has already followed the LTS release process. You can
> > > check the PIP[0] to get more information.
> > > >
> > > > We have the PIP, but that doesn't answer the question about the
> current
> > > schedule and plan for Pulsar 3.2 . There have been delays in past
> release
> > > schedules so the PIP document doesn't really provide a great answer to
> > > timeline. When is it time to start discussing the 3.2 release? We have
> the
> > > goal of releasing every 3 months.
> > > >
> > > > I don't think that it makes sense to do a Java 21 upgrade until we
> are
> > > preparing the next Pulsar LTS release. It's better to do it earlier if
> we'd
> > > like to target Java 21 support for the next Pulsar LTS release since
> that's
> > > a way to make sure that it's really hardened for the LTS release.
> > > >
> > > > As mentioned before, it's possible to separately delivery Java 21
> > > support:
> > > > - support Java 21 for running Pulsar (possibly already "works"
> without
> > > any changes in Pulsar, supporting this option is more effort)
> > > > - support Java 21 for developing/compiling, running tests of Pulsar
> > > > - switch from Java 17 language level to Java 21 in Pulsar server side
> > > components
> > > >
> > > > I hope we could continue the discussion and come up with some
> consensus
> > > about the coarse timelines. The time horizon could be in multiple
> years if
> > > that's what makes sense.
> > > > Oracle's Java 17 LTS premier support ends in Sep 2026, so I assume
> that
> > > we would make the decision before that. :)
> > > >
> > > > -Lari
> > > >
> > > >
> > > > On 2023/10/18 02:30:26 mattison chao wrote:
> > > >> Hi, Lari
> > > >>
> > > >>> Do you think we can target the switch from Java 17 to Java 21 for
> the
> > > Pulsar 3.2 release?
> > > >>
> > > >> I think we should consider some things:
> > > >>
> > > >> 1. What are the significant benefits of upgrading?
> > > >> 2. We should define some rules for using the new feature by JDK21
> > > before upgrading.  Especially for the virtual thread. We can't make
> thread
> > > management worse.
> > > >>
> > > >>> Could anyone update me on the current schedule for Pulsar 3.2?
> > > >>
> > > >> The community has already followed the LTS release process. You can
> > > check the PIP[0] to get more information.
> > > >>
> > > >>
> > > >>
> > > >> [0] -
> https://lists.apache.org/thread/rg1g083c06ozm5go6zo1jophg9y9zl2f
> > > >>
> > > >> Best,
> > > >> Mattison
> > > >>
> > > >>> On 18 Oct 2023, at 06:02, Lari Hotari <lhot...@apache.org> wrote:
> > > >>>
> > > >>> Dear Pulsar community,
> > > >>>
> > > >>> Java 21 was released on September 19th and has now become the
> current
> > > Java LTS release.
> > > >>>
> > > >>> I've begun preparations in the Pulsar code base to allow for Java
> 21
> > > to be used as the development runtime for compiling the code and
> running
> > > tests in the master branch. This is a proactive measure to gear up for
> Java
> > > 21 without committing to the switch just yet. It will help us
> understand
> > > the necessary changes when we are able to compile the code and run all
> > > tests with Java 21.
> > > >>>
> > > >>> For instance, I initiated the process with the following PRs:
> > > >>> - Upgrade Mockito to 5.6.0 to support Java 21 [1]
> > > >>> - Upgrade Gradle Enterprise Maven Extension to support Java 21 [2]
> > > >>> After these are merged, it should be possible to start running
> tests
> > > with Java 21 to see what is possibly broken and continue iterating.
> > > >>> Moreover, the upgrade to Lombok 1.18.30 for Java 21 support has
> > > already been merged [3].
> > > >>>
> > > >>> Java 17 has been the recommended runtime for Pulsar server
> components
> > > since the Pulsar 2.11 release [4]. Meanwhile, the Pulsar client
> continues
> > > to be supported on Java 8+.
> > > >>>
> > > >>> I would like to initiate discussions about making Java 21 the
> > > recommended and default runtime for Pulsar server components. Note that
> > > there will be no change to the Pulsar client, which will remain on
> Java 8+.
> > > >>>
> > > >>> I guess we could come up with a PIP to document the decision once
> we
> > > have had this discussion.
> > > >>>
> > > >>> Do you think we can target the switch from Java 17 to Java 21 for
> the
> > > Pulsar 3.2 release?
> > > >>> Could anyone update me on the current schedule for Pulsar 3.2?
> > > >>>
> > > >>> -Lari
> > > >>>
> > > >>> [1] - https://github.com/apache/pulsar/pull/21385
> > > >>> [2] - https://github.com/apache/pulsar/pull/21384
> > > >>> [3] - https://github.com/apache/pulsar/pull/21278
> > > >>> [4] -
> > >
> https://github.com/apache/pulsar#pulsar-runtime-java-version-recommendation
> > > >>
> > > >>
> > >
> > >
> >
>

Reply via email to