Skip to content

ZOOKEEPER-5038 Decouple HTTP admin server into a separate module.#2395

Open
txangel wants to merge 1 commit into
apache:masterfrom
txangel:ZOOKEEPER-5038-decouple-admin-server
Open

ZOOKEEPER-5038 Decouple HTTP admin server into a separate module.#2395
txangel wants to merge 1 commit into
apache:masterfrom
txangel:ZOOKEEPER-5038-decouple-admin-server

Conversation

@txangel
Copy link
Copy Markdown

@txangel txangel commented May 20, 2026

Extract JettyAdminServer into a new zookeeper-http-admin module that targets Java 17 and Jetty 12 (EE8).
This decouples the Jetty upgrade from the ZooKeeper Java baseline, allowing the rest of ZooKeeper to remain on Java 8/11.

The existing reflection-based loading in AdminServerFactory means zookeeper-server requires no interface changes.
On Java 8/11, the admin server falls back to DummyAdminServer with a clear warning in the logs about the Java 17 requirement.

Breaking change: the HTTP admin server, and only the admin server, now requires Java 17+.

@txangel txangel force-pushed the ZOOKEEPER-5038-decouple-admin-server branch 2 times, most recently from 317ea0b to d512ade Compare May 20, 2026 20:51
Copy link
Copy Markdown
Contributor

@anmolnar anmolnar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution, but I don't see the point of decoupling. We're planning to upgrade to JDK17 on the entire project with #2376 anyways, why would deal with AS separately?

@txangel
Copy link
Copy Markdown
Author

txangel commented May 22, 2026

@anmolnar I was following the suggestion of @lhotari in https://issues.apache.org/jira/browse/ZOOKEEPER-5038
I don't know exactly how strict you guys are wrt breaking changes but requiring JDK 17 could be considered one and that might require a major release
meanwhile the CVEs from jetty 9.x are somewhat concerning and this suggestion of decoupling seemed like a possible middle-ground that can be released quicker

Extract JettyAdminServer into a new zookeeper-http-admin module that
targets Java 17 and Jetty 12 (EE8). This decouples the Jetty upgrade
from the ZooKeeper Java baseline, allowing the rest of ZooKeeper to
remain on Java 8/11.

The existing reflection-based loading in AdminServerFactory means
zookeeper-server requires no interface changes. On Java 8/11, the
admin server gracefully falls back to DummyAdminServer with a clear
warning about the Java 17 requirement.

Breaking change: the HTTP admin server now requires Java 17+.
@txangel txangel force-pushed the ZOOKEEPER-5038-decouple-admin-server branch from d512ade to 28c9be7 Compare May 22, 2026 10:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants