0.82.0 release notes

19th March 2019

New features

  • You can now include or exclude service methods using DocServiceFilter when building a DocService. See our documentation for more information. #1609

    ServerBuilder sb = new ServerBuilder();
    ...
    sb.serviceUnder("/docs", new DocServiceBuilder()
            // Include Thrift services and Annotated services.
            .include(DocServiceFilter.ofThrift().or(DocServiceFilter.ofAnnotated()))
            // Exclude the method whose name is "foo" in Thrift services.
            .exclude(DocServiceFilter.ofThrift().and(DocServiceFilter.ofMethodName("foo")))
            .build());
  • HttpHeaderNames now forks from Guava's HttpHeaders instead of Netty's HttpHeaderNames because it has more recent HTTP headers which may be useful to service authors.

  • You can use SystemInfo utility class in order to get the system information. #1656

    // Java version
    SystemInfo.javaVersion();
    
    // Hostname
    SystemInfo.hostname();
    
    // The current process ID
    SystemInfo.pid();
    
    // The current time in microseconds
    SystemInfo.currentTimeMicros();

Improvements

  • Set 0.5 to the default failure rate threshold of a circuit breaker. #1657
  • Various documentation updates. #1657 #1654 #1651

Bug fixes

  • Strip a leading slash in an HttpFile resource path. #1661 #1650
    // Will strip the leading slash
    HttpFile.ofResource(ClassLoader.getSystemClassLoader(), "/java/lang/Object.class");
  • ByteBufs are no longer leaked when you use Spring WebFlux integration. #1658 It was possible to leak a ByteBuf if a client closes a connection before reading the body of an HTTP response.

Breaking Change

  • DocServicePlugin interface now has name() method and generateSpecification() method signature has changed. #1609
    // Before:
    ServiceSpecification generateSpecification(Set<ServiceConfig> serviceConfigs);
    // After:
    String name();
    ServiceSpecification generateSpecification(Set<ServiceConfig> serviceConfigs, DocServiceFilter filter);
  • Some header names in HttpHeaderNames were removed, although it is very unlikely to be used by users: #1660
  • Keep-Alive
  • Proxy-Connection
  • Content-Transfer-Encoding

Dependencies

  • java-jwt 3.7.0 -> 3.8.0
  • Guava 27.0.1 -> 27.1
  • Netty 4.1.33 -> 4.1.34
    • Netty TCNative BoringSSL 2.0.20 -> 2.0.22
  • Brave 5.6.1 -> 5.6.3