On Wed, 1 May 2024 21:12:05 GMT, robert engels <d...@openjdk.org> wrote:
>> improve the HttpExchange api with documented constants and convenience >> methods to avoid common bugs > > robert engels has updated the pull request incrementally with two additional > commits since the last revision: > > - Merge remote-tracking branch 'robaho/HttpExchange-api-change' into > HttpExchange-api-change > > # Conflicts: > # > src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java > - update api changes based on comments My reasoning is as follows * Once we add something, we can't remove it. Even if we deprecate it, it will still be there * The ideal API, in my head, is something like the following exchange.sendResponseHeaders(200, ResponseLength.unknown()); exchange.sendResponseHeaders(200, ResponseLength.known(0)); exchange.sendResponseHeaders(200, ResponseLength.known(body.length)); exchange.sendResponse(200, Body.of("Hello, world")); * That API, specifically `Body.of`, would be more naturally tempting to use. * If we have `ResponseLength.unknown()` and `ResponseLength.known(0)` as options, the constants are redundant * The constants do not address the case of "you get an arbitrarily sized bit of data, send it". People still need to do `thing.length == 0 ? -1 : thing.length` checks. * Why would we add something that could be deprecated if we just found the time to reach consensus on the direction of the API? ------------- PR Comment: https://git.openjdk.org/jdk/pull/18955#issuecomment-2180951549