Skip to content

4.0.0 RC9

Pre-release
Pre-release
Compare
Choose a tag to compare
@kelunik kelunik released this 20 Nov 18:54
v4.0.0-rc9

Note: This is a pre-release, there might be breaking changes in the final stable version.

  • Added EventListener with additional responsibilities for ConnectionPool, Stream and DelegateHttpClient implementations.
  • Added LimitedConnectionPool to limit concurrent requests per host
  • Added LogHttpArchive allowing to inspect request timings visually
  • Changed HttpClient to be a final class instead of an interface
  • Changed redirect policy to only follow automatically with GET requests
  • Application interceptors doing retries or follow-up requests must now manually clone the request if they wish to reuse it. Previously any HttpClient implementation was required to automatically clone at every layer.
  • Http1Connection::__construct() requires an instance of EncryptableSocket instead of Socket now.
  • Http1Connection reuses connections without explicit keep-alive header for idempotent requests now.
  • Pushed requests validate the authority automatically now.
  • Renamed IfOrigin to MatchOrigin and changed the implementation to map multiple origins.
  • Requests can now set an upgrade handler to opt-into connection upgrades, e.g. for WebSocket connections or CONNECT tunnels.
  • Removed default interceptors from PooledHttpClient and moved them into HttpClientBuilder
  • Removed pings on idle Http2Connection::request() improving the overall latency.
  • Removed ConditionalInterceptor
  • Renamed Request::getPushCallable() to Request::getPushHandler()
  • Renamed Request::onPush() to Request::setPushHandler()
  • Renamed DefaultConnectionPool to UnlimitedConnectionPool
  • 1XX responses are properly skipped now.
  • Removed Connection::MAX_KEEP_ALIVE_TIMEOUT constant.
  • Removed ConnectionPool::getProtocolVersions()