0.99.3 release notes

14th April 2020

🌟 New features

  • Added RetryStrategy.onException() #2652
  • Armeria clients can now send an OPTIONS * HTTP/1 request as an alternative to an HTTP/2 PING frame. #2636
    • This feature is disabled by default and you can enable it by:
      • specifying com.linecorp.armeria.defaultPingIntervalMillis system property
      • or calling ClientFactoryBuilder.pingIntervalMillis().

📈 Improvements

  • DocService debug form now prettifies any JSON responses. #2635

🛠️ Bug fixes

  • grpc-timeout gRPC client header is generated correctly now. #2643
  • QueryParams.toQueryString() does not raise an exception anymore. #2644
  • HealthCheckedEndpointGroup does not raise aConcurrentModificationException anymore. #2647
  • Thrift TEXT protocol does not fail to handle a recursive union struct anymore. #2654
  • MoreNamingConventions.prometheus() now appends the seconds suffix for LongTaskTimer correctly, when using legacy meter names. #2646
  • Fixed a bug where DocService sends a request with a wrong HTTP method if a service specification contains duplicate methods. #2657

☢️ Breaking changes

  • com.linecorp.armeria.defaultHttp2PingTimeoutMillis flag has been replaced with com.linecorp.armeria.defaultPintIntervalMillis.
  • com.linecorp.armeria.defaultUseHttp2PingWhenNoActiveStreams flag has been removed without a replacement, because:
    • HTTP/2 can send PING frame regardless of whether there is an active stream or not.
    • HTTP/1 can only send OPTIONS * HTTP/1.1 when there is no active stream.
  • ClientFactoryBuilder.http2PingTimeoutMillis() has been replaced with ClientFactoryBuilder.pingIntervalMillis().
  • ServerBuilder.http2PingTimeoutMillis() has been replaced with ServerBuilder.pingIntervalMillis().

⛓ Dependencies

  • Brave 5.10.2 → 5.11.2

🙇 Thank you