Skip to content

armeria-0.75.0

Choose a tag to compare

@trustin trustin released this 06 Nov 06:09
f5988ea

New features

  • An annotated service now allows specifying multiple RequestConverterFunctions for service method parameters. #1412
    public class MyService {
        @Get("/info")
        public String getInfo(@RequestConverter(FirstConverter.class)
                              @RequestConverter(SecondConverter.class)
                              MyInfoRequest request) { ... }
        // In old Armeria:
        // public String getInfo(@RequestObject(FirstConverter.class) 
        //                       MyInfoRequest request) { ... }
    }
  • Added RequestLog.requestStartTimeMicros() and responseStartTimeMicros() which provide timestamps with microsecond precision. This feature is available for Java 9 or above only. #1427
  • You can now inject different script for different requests in DocService. Previously, you were allowed to specify only one script for all requests. #1400

Improvements

  • You do not need to specify @RequestObject annotation for service method parameters anymore. #1412
    @RequestConverter(MyInfoRequestConverter.class)
    public class MyService {
        @Get("/info")
        public String getInfo(MyInfoRequest request) { ... }
        // In old Armeria:
        // public String getInfo(@RequestObject MyInfoRequest request) { ... }
    }
  • Improved the overall performance by reducing unnecessary event loop task scheduling. #1424
  • Improved the gRPC performance especially for the services with large payloads by reducing unnecessary memory copies. #1429

Bug fixes

  • Fixed a bug where HttpFileService does not invalidate cache when a file is modified, deleted or created. #1404
  • Fixed a bug where ClosedSessionException is raised when UnprocessedRequestException is expected. #1406
  • Fixed a bug where RequestLog does not reach COMPLETE availability in some cases. #1415
  • HttpClient does not normalize the request path unnecessarily anymore. #1416 #1417

Breaking changes

  • @RequestObject does not have a value anymore. Use @RequestConverter annotation instead. #1412

Dependencies

  • Brave 5.4.3 -> 5.5.0
  • gRPC 1.15.1 -> 1.16.1
  • java-jwt 3.4.0 -> 3.4.1
  • Micrometer 1.0.7 -> 1.1.0
  • Netty 4.1.30 -> 4.1.31
    • netty-tcnative-boringssl-static 2.0.17 -> 2.0.19
  • RxJava2 2.2.2 -> 2.2.3
  • Spring Boot 2.0.6 -> 2.1.0