<div dir="ltr"><div>This is also one of my dearest wishes, I also have a <a href="https://github.com/openjdk/jdk/pull/27989">PR open to support upgrades</a>, but I'll take anything at this point. </div><div><br></div><div>I didn't go with a new api in my design because I wanted to be backwards compatible with the other implementations of jdk.httpserver that support upgrades via sendResponseHeaders, but if that's what it takes then.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> Thread Management: Should upgrade handlers run on the existing server thread pool or require explicit executor configuration?</blockquote><div><br></div><div>I would say it should use the existing one, what would be the real benefit of a separate executor?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Stream Lifecycle: Should the server close streams after handler completion, or should handlers have full responsibility? </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Security Considerations: Should there be built-in limits or hooks for upgrade validation?</blockquote><div><br></div><div>Personally, I think once its decided to upgrade, all the details should be implemented by the user.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Should HttpUpgradeHandler remain in jdk.httpserver or move to a separate API module?</blockquote><div><br>I find myself confused by this, if the point is to add missing functionality to the jdk.httpserver, why put it anywhere else? </div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Cheers, Josiah.</div></div><input name="virtru-metadata" type="hidden" value="{"email-policy":{"state":"closed","expirationUnit":"days","disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"enableNoauth":false,"persistentProtection":false,"expandedWatermarking":false,"expires":false,"isManaged":false,"sms":false},"attachments":{},"compose-id":"1","compose-window":{"secure":false}}"></div>