Thanks for bringing my suggestion to the mailing list for discussion.

I wasn't aware that 17 was being considered. Is there another
discussion thread I can read about that?

My suggestion could apply with JDK 17 instead of 11. I didn't suggest
17 because I thought 11 would be more acceptable as a smaller
incremental jump. However, if there is already a goal to move to 17,
then applying my suggestion with JDK 17 as the minimum would be a good
first step. Making the minimum build version 11 or 17 could be done on
all active branches. Changing the target runtime version to 11 or 17
should only happen in the main branch, and can be done later, when the
project is ready for that. Bumping the minimal build version is
independent of bumping the target version for runtime.

The Maven enforcer setting task is run automatically with newer Apache
parent POMs (see
https://repo1.maven.org/maven2/org/apache/apache/35/apache-35.pom). ZK
uses an older version and it needs to be updated anyway.

If bumping the build version to 11 or 17 is agreed, I volunteer to
create a PR for it. I would probably also revisit my earlier PR to
remove maven-antrun-plugin
(https://github.com/apache/zookeeper/pull/2241) because there are some
general POM cleanup stuff in that PR that would probably be good to
borrow from that PR to include in a POM update.

On Mon, Aug 18, 2025 at 10:37 AM Andor Molnar <an...@apache.org> wrote:
>
> Hi team,
>
> Christopher has a suggestion on the Owasp upgrade PR which I think we should 
> discuss here.
>
> TL;DR - Since Owaps requires Java 11 after upgrade, let's bump the minimum 
> required Java version for _BUILDING_ ZooKeeper to 11 across all build 
> profiles.
>
> That additional change will allow lots of plugins to be updated that require 
> newer Java versions, but the maven.compiler.release property set to 8 in the 
> ZK pom.xml would still keep ZK compatible with Java 8 at runtime.
>
> …
>
> I think it's an inconvenience to have two separate minimum versions, 
> depending on which tasks one executes. Also, there are other reasons to 
> standardize on the minimum being JDK11 for everything:
>
>     • in this case, only OWASP requires a different minimum JDK... but next 
> time, a plugin that is part of the main build might require JDK11. Making 
> JDK11 the minimum for everything would help avoid such problems in the future,
>     • older JDK versions are increasingly harder to acquire in newer 
> operating systems and corporate environments where security policies prevent 
> the use of older software, so fewer people over time are actually building 
> and testing with JDK8; so, continuing to support it is increasingly a waste 
> of effort,
>     • JDK11 has stricter Java 8 compliance enforcement than JDK 8 does, so 
> it's better to build with JDK11 if you want to support JRE8.
>
> See the full conversation here:
> https://github.com/apache/zookeeper/pull/2297
>
> I think this is acceptable, but not sure if it’s worth the effort since we’re 
> going to upgrade to JDK 17 project-wise anyways.
>
> Consider that with this change we have to do the following:
> - modify maven enforcer settings in parent POM,
> - add documentation changes explaining the situation,
> - remove JDK8 github actions,
> - change Apache CI Jenkinsfile and remove JDK 8 builds completely.
>
> It’s also true that JDK 17 upgrade is not going to happen tomorrow.
>
> Please share your thoughts.
>
> Regards,
> Andor
>
> p.s. I don’t find the maven enforcer setting myself which needs to be bumped 
> in parent pom, but if someone can point me to it or even create a PR with the 
> above mentioned changes, I’d much appreciate that.
>
>

Reply via email to