Skip to content

1.0.0

Choose a tag to compare

@lbergelson lbergelson released this 09 Dec 02:37
· 2 commits to master since this release
1.0.0

Major release: Try and Try Again

There are many newly implemented features and updates. Much of the code was rewritten.
It is not fully backwards compatible but upgrading should be straightforward for most users.

Modernized the Repo and Infrastructure

  • moved to Java 17!
  • replace travis-ci with github actions
  • moved the repo to the broadinstitute organization
  • updated to gradle 8.4

Rewrite the Connection Code

  • replaced the old style URLConnection with HttpClient, this gives us more control over how error conditions are handled
  • added Wiremock integration tests to simulate more error conditions which were previously untested
  • replaced URL with URI and dramatically reduced boilerplate conversions between them
  • fixed several bugs including:
    • incorrect treatment of percent encoded characters in the URI
    • edge cases relating to range requests
  • updated HttpFileSystemProviderSettings so they are all connected and relevant

Add a Highly Configurable Retry Mechanism

  • added a new RetryHandler
  • This allows any network IO operation to be retried in the case of unexpected responses or IOExceptions.
  • RetryHandler determines if an operation can be retried by examining the http return code, the type of thrown exceptions, the exception messages, or optionally an arbitrary Predicate<IOException> which allows the client to override with arbitrary behavior.
    Sane defaults are provided but the user can configure it at runtime if needed.

Full Changelog: v0.1.0...1.0.0