4.1.0
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 afile://
scheme are still handled unencoded so this should have limited impact. See the documentation forHtsPath
for more details information. -
Deprecated
SeekableStreamFactory.isFilePath()
and replaced it with the clearer but more verboseisBeingHandledByLegacyUrlSupport
-
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
namedfile:///<workingdir>/http:/example.org/filename I forgot to encode
- Paths with only a scheme, or a missing scheme are invalid now:
Full Changelog: 4.0.2...4.1.0