Skip to content

armeria-0.37.0

Choose a tag to compare

@trustin trustin released this 21 Feb 06:48
· 4382 commits to main since this release

Breaking changes

  • #395 #407 Hide Guava from the public API and provide the shaded and unshaded JARs

    • We do not expose the classes from Guava in our public API anymore. To list a few:
      • com.google.common.net.MediaType replaced with com.linecorp.armeria.common.MediaType
        • Run the 'replace in path...' command in your editor or IDE.
      • com.google.common.collect.Multimap replaced with java.util.Map<..., Collection<...>>
        • Convert a Multimap into a Map using Multimap.asMap().
    • The artifact ID of the shaded JARs all end with -shaded. For example:
      • armeria vs. armeria-shaded
      • armeria-thrift vs. armeria-thrift-shaded
    • We plan to shade more internal dependencies such as Netty in the near future. Please stay tuned.
  • #375 #408 Make HttpClient respect the path specified when creating it. For example:

    HttpClient hc = Clients.newClient("none+http://example.com/foo", HttpClient.class);
    HttpResponse res = hc.get("/bar"); // This will now send a request to /foo/bar, not /bar

    Note: If you were specifying a path when creating an HttpClient with an old Armeria, your code may stop to work because of this behavioral change. For example:

    HttpClient hc1 = Clients.newClient("none+https://api.github.com/zen", HttpClient.class);
    hc1.get("/zen"); // 404 - the request is sent to /zen/zen
    
    HttpClient hc2 = Clients.newClient("none+https://api.github.com/", HttpClient.class);
    hc2.get("/zen"); // 200 - the request is sent to /zen