Skip to content

4.1.0

Latest
Compare
Choose a tag to compare
@lbergelson lbergelson released this 13 Dec 22:03
· 5 commits to master since this release
4.1.0
b23c36a

What's Changed

  • Updated the way that tribble creates SeekableStreams. It will now prefer available http / ftp FileSystemProvider plugins if they are available instead of using the legacy http / ftp support. This is intended to support downstream use of plugins such as org.broadinstitute:http-nio which may provide more robust handling of various URIs.

Compatibility note

  • Tribble now requires all fully specified absolute paths to be already encoded. Specifically, this means that ftp / http URIs which used
    to be written with spaces or special characters must now be already percent encoded before handing them to tribble.
    For example, the previous ftp path style:

  • ftp://example.org/ftp/my file with spaces.txt should now be entered as

  • ftp://example.org/ftp/my%20file%20with%20spaces.txt
    This is more awkward in some cases but it aligns the legacy ftp/http access with the IOPath standard of always requiring a fully encoded URI if a scheme is specified. File paths that don't include a file:// scheme are still handled unencoded so this should have limited impact. See the documentation for HtsPath for more details information.

  • Deprecated SeekableStreamFactory.isFilePath() and replaced it with the clearer but more verbose isBeingHandledByLegacyUrlSupport

  • Some changes to error handling in HtsPath now reject certain paths which previously would be treated as local file paths.

    • Paths with only a scheme, or a missing scheme are invalid now:
      • file://, ://mypath, ://
    • Paths which contain a scheme but are not parseable as a uri are now rejected instead of being treated as a local file path
      • http://example.org/filename I forgot to encode
      • These are much more likely to be an attempt to access an unencoded URI instead of an attempt to create a local file path
        named file:///<workingdir>/http:/example.org/filename I forgot to encode

Full Changelog: 4.0.2...4.1.0