Hi all,

I can now confirm that apache/pulsar master branch compiles and runs all tests 
in Pulsar CI successfully with Java 21. Therefore, we have already accomplished 
the first level of Java 21 support.

Example of Pulsar CI build with Java 21: 
https://github.com/lhotari/pulsar/actions/runs/6577911040

This experiment was run with PR #21400 changes which adds an option in manually 
triggered GitHub Actions based Pulsar CI builds with Java 21 selected as the 
runtime for the build and test runtime and also as the Java runtime for docker 
images/containers used in integration & system tests which are part of the 
Pulsar CI build. 

Please review the PR https://github.com/apache/pulsar/pull/21400, let's get it 
merged. 
By default, Java 17 will be used, so it should be ok to merge this to master 
branch without any separate decisions such as PIPs.

-Lari

On 2023/10/19 12:23:03 Lari Hotari wrote:
> I have created https://github.com/apache/pulsar/pull/21400 which 
> parameterizes the JDK version used for the Pulsar CI GitHub Actions workflow. 
> When triggering the workflow
> manually, it's possible to choose between JDK 17 and JDK 21 from a dropdown 
> menu.
> The PR contains more details, please review. Once we have this merged, it 
> will be easy to experiment with Java 21 when needed.
> 
> -Lari
> 
> On 2023/10/19 03:06:39 tison wrote:
> > > I think Java 21 can open the door for Virtual Threads[1].
> > 
> > Yep. This should be a good motivation for using JDK 21.
> > 
> > We may start a survey in the community a few months later for JDK 21
> > feedback (as we /will/ switch the runtime to JDK 21 in Docker) and try to
> > switch the toolkit.
> > 
> > Best,
> > tison.
> > 
> > 
> > Zixuan Liu <node...@gmail.com> 于2023年10月19日周四 10:56写道:
> > 
> > > +1 for compatibility with Java 21.
> > >
> > > Next step: Migrating the Pulsar Server runtime to Java 21 from Java 17
> > > in the Docker image and CI. Pulsar Client/Admin continues to use Java
> > > 8.
> > >
> > > Thanks,
> > > Zixuan
> > >
> > > Lari Hotari <lhot...@apache.org> 于2023年10月18日周三 06:02写道:
> > > >
> > > > 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