Skip to content

v25.2.0

Choose a tag to compare

@sava-release-please sava-release-please released this 24 Jul 20:09
d5156e2

25.2.0 (2026-07-24)

⚠ BREAKING CHANGES

  • servers: Servers now throw exceptions on port binding failures, enforcing stricter startup guarantees. Consume logs and handle exceptions accordingly.
  • core: Routing now uses canonicalized paths. Malformed or ambiguous paths will result in a 400 response. Consumers must migrate to use valid canonical paths.
  • JettyHandler and BaseJettyHandler are removed. JettyServerBuilder now extends BaseHttpServerBuilder<Handler, Server>; subclasses overriding its factory methods must return org.eclipse.jetty .server.Handler. BaseJettyHandler.JSON_CONTENT was package-private-ized onto JettyController and is no longer part of the public API. Consumers relying on org.eclipse.jetty.http or org.eclipse.jetty.util arriving transitively through this module must now require them directly.
  • http-servers-jdk query handlers no longer prefix-match; register a path handler where prefix routing is wanted. Request.query() on that backend returns the raw query string, so values arrive percent-encoded as they already did on the other backends — decode them at the call site. RootJettyHandler is removed.

Features

  • core: add PathCanonicalizer for canonical routing (f811789)

Bug Fixes

  • correct request routing, query decoding, and CORS pre-flight (430e6d0)
  • percent-decode query values; drop the Jetty handler marker types (eec306c)
  • servers: retry port binding on race, enforce listener start contracts (595909f)

Miscellaneous Chores