I ran the master branch Pulsar CI build with Java 25:
https://github.com/apache/pulsar/actions/runs/17919184261/job/50950104064

There are a few test failures. It look like some are related to the "JEP 486: 
Permanently Disable the Security Manager" [1][2] change that happened in Java 
24.

We might have to consider having Java 21 as an alternative runtime for Pulsar 
IO connectors since Java 24 makes some libraries incompatible due to JEP 486 
and could impact connectors which don't have Java 25-compatible libraries. For 
example, some hdfs3 tests fail in the build that was run with Java 25.

Since we might not get all connectors working with Java 25, an alternative Java 
21 runtime option might be needed for Pulsar Function Worker / Pulsar Function 
Instance. We should consider getting rid of the enormous pulsar-all image and 
replacing it with a better solution for Kubernetes deployments.

It's a big waste to bundle all Pulsar IO connectors in the Docker image. At the 
same time, many users want to use tiered storage, and the only available image 
with tiered storage plugins included is the pulsar-all image. There's also an 
Apache Pulsar Helm chart issue about the large size of pulsar-all [3].

There's also a great opportunity for new contributors to make these 
improvements. Please share your ideas.

-Lari

[1] - https://openjdk.org/jeps/486
[2] - 
https://www.loicmathieu.fr/wordpress/informatique/java-24-quoi-de-neuf/#:~:text=JEP%20486%3A%20Permanently%20Disable%20the%20Security%20Manager
[3] - https://github.com/apache/pulsar-helm-chart/issues/571

On 2025/09/22 14:59:49 Lari Hotari wrote:
> Hi,
> 
> Java 25 LTS has recently been released. Should we consider switching to use 
> Java 25 as the default JVM for build & test for CI and Docker images in the 
> master branch so that we'd release Pulsar 4.2 with Java 25 LTS Docker images?
> 
> -Lari
> 

Reply via email to