Skip to content

centraldogma-0.25.0

Choose a tag to compare

@trustin trustin released this 21 May 08:31
5eb90ae

New features

  • Server

    • API responses are now compressed with deflate or gzip if requested, based on the accept-encoding header. #211
  • Client: Golang

    • Added watcher support to Golang library. #207

      // Create a Query with a Path to watch.
      query := &Query{Path: "/a.json", Type: JSONPath}
      // Create a FileWatcher which is notified when the specific file
      // in the "bar" repository in the "foo" project is modified.
      fw, _ := c.FileWatcher("foo", "bar", query)
      
      // Create a listener which prints the value when the watcher is notified.
      listener := func(revision int, value interface{}) { fmt.Println(value) }
      // Register it.
      fw.Watch(listener)
  • Client: Java

    • Added CentralDogmaEndpointGroup for Armeria. #105

      // Build a new EndpointGroup that fetches the endpoint list from Central Dogma.
      final CentralDogma dogma = new LegacyCentralDogmaBuilder()...build();
      final CentralDogmaEndpointGroup group = CentralDogmaEndpointGroup.of(
              dogma, "myProj", "myRepo", Query.ofJson("/endpoints.json")
              EndpointListDecoder.JSON);
      // Wait until the initial query succeeds.
      group.awaitInitialEndpoints();
      
      // Register the group and use it in the URI.
      EndpointGroupRegistry.register(
              "mygroup", group, EndpointSelectionStrategy.WEIGHTED_ROUND_ROBIN);
      final HttpClient client = HttpClient.of("http://group:mygroup/");
      final AggregatedHttpMessage res = client.get("/foo").aggregate().join();

Improvements

  • Server
    • Improved the performance of watch operations by caching initial tree comparison results. #214
    • Added jitters to watch timeouts and mirroring schedules to avoid thundering herd. #215 #217 #222

Bug fixes

  • Server
    • 'history' operation may return an incorrectly cached value. #212
    • I/O thread is blocked by a long watch operation. #213
    • Fixed a bug where a repository created via Thrift API is inaccessible via HTTP API. #218
    • Fixed a bug in metadata migration logic which sometimes prevented migration. #221

Dependencies

  • Armeria 0.63.1 -> 0.64.0