- Complete rewrite using Java 8 and modern Java best practices
- Bagging directly into a ZIP file is no longer a core feature. The examples directory shows how to support the serialization format and options of your choice.
- Integrated support for
fetch.txt
has been removed as a core feature. The examples directory includes an implementation using the standard library which can serve as a reference for the more advanced implementations which most users will require. - Allow for ignoring hidden files except if specified in manifest.
- Fixes defect in SimpleResult.add*Message() methods.
- Reports an error when verifying payloads for a bag with no payload manifests.
- Fix bugs causing streams to be left open after an exception is thrown.
- Upgraded Commons Compress to 1.8.1.
- Bug fix for normalization conversion between stored manifest filenames and filenames on disk.
- Fixed bug in zip compression.
- Upgraded numerous dependencies.
- Removed all LC-specific configuration from pom.
- Added .travis.yml for integration with travis-ci (http://travis-ci.com/).
- Fixed problems so that compiles under Java 8.
- Bug fix to FileSystemWriter to handle files that did do not already exist.
- Bug fix to SizeHelper.
- Added additional convenience method to FileHelper.
- Handle NPE when encountering improperly formatted bag-info.txt.
- Added progress reports to bag fetch.
- Added tag file fetch-progress.txt to support progressive fetch and verification. The file will be removed once the bag is successfully fetched. In BagFetcher, added verification of a fetched file against the checksum in the manifest file. Added switch verify to fill holey bag and fetch remote bag command-line operations. This option enables bag verification before the fetch is resumed.
- Added missing braces to conditional blocks in ValidHoleyBagVerifier. This caused false error message when verifying a holey bag.
- Adds support for bag-info.txt values that contain line terminators.
- Attempt to correct for unicode normalization form in filepaths. Note: Java has problems dealing with differences in unicode normalization form (http://www.unicode.org/reports/tr15/tr15-23.html) in filepaths. In particular, it is sometimes the case that a java.io.File is that produced by java.io.File.listFiles() will fail java.io.File.exists(). This attempts to correct for this by trying java.io.File.exists() using different normalization forms for the filepath.
- Improves error handling and logging in FileSystemHelper and TempFileHelper.
- Added support for writing by copying and moving to FileSystemHelper. The default is now to copy (instead of writing the stream exposed by BagFile). Added support for specifying move in CommandLineBagDriver (--move).
- Added setUsername()/setPassword() interfaces to all bag fetchers to support concurrent clients; each client's credentials will be local to each instance of bag fetcher.
- Changes to pom for maven 3.
- Fix for NPE in SimpleMessage.
- To enhance ability to machine-process SimpleResult, refactored to allow the recording of codes, with subject and objects.
- Removed BagVerifyResult.
- Fixes defect with zipped bags on Windows.
- Fixes NPE when splitting bag by size without a bag-info.txt.
- Added support for limiting additions, updates, and deletes from tag manifests using TagManifestVerifierCompleter.
- Added UpdatePayloadOxumCompleter and added support to commandline driver.
- Added PayloadOxumVerifier.
- Changed most interfaces to extends Closeable instead of declaring own close() method.
- Improved safety of stream closing throughout code.
- Fixes excessive logging.
- Added support for BagIt 0.97. The significant change is allowing tag directories. (Note that operations are version aware, meaning pre-0.97 bags do not allow tag directories.)
- Removes Commons VFS.
- Deprecates support for reading/writing tar, tar bz2, and tar gz.
- Deprecates support for transferring SWORD and BOB.
- Added close() method to Bag for closing IO resources.
- Clarified logging messages for CompleteVerifier and ValidVerifier.
- Changed so that bagging-in-place throws an exception if a prebag contains a data directory and tag directories for pre-0.97 bags.
- Added support for fail modes when performing verification:
- FAIL_FAST: Fail on first error.
- FAIL_SLOW: Fail at end of verification.
- FAIL_STEP: Fail after each step of verification. A step is a set of like verification operations.
- FAIL_STAGE: Fail after each stage of verification. A stage is a set of logically grouped verification operations. For example, when validating a bag, all of the operations to verify that a bag is complete is a stage.
- Added support for compressing zip files.
- Replaced Commons Httpclient with Apache HttpComponents.
- Added support for keeping empty directories when bagging in place.
- Increased default MAXMEM to 1024m.
- Added verbose console and log progress reporting to CommandLineBagDriver.
- Added support for ignoring symbolic links when verifying a bag on a file system.
- Upgraded to Commons IO 2.0.1.
- Added support to CompleteVerifier, PreBag, and BagFactory to ignore specified directories (e.g., lost+found).
- Added support to FileSystemWriter to only write files that had mismatch between manifest and files on disk.
- Added additional list methods to BagInfoTxt.
- Added chaining completer.
- Changed completers to not create empty payload manifests.
- Added support to FileSystemWriter to only write tag files.
- Change to licensing terms.
- Minor modifications to support for splitting bags.
- Added support for splitting bags.
- Added support for resuming fetches of bags.
- Improved support for filepaths with encoding.
- Fixed defect in the writing of repeated fields in bag-info.txt.
- Fixed defect in adding a list of values to bag-info.txt.
- Added option to limit added, updated, and deleted files in UpdateCompleter.
- Added support for repeating fields in bag-info.txt. The existing Map interface was extended, not changed.
- Fixed bug with HolePunchers handling of filepaths with spaces.
- Fixed bug which caused the FileSystem Writer to delete empty directories.
- Added option for FileSystem Writer to ignore nfs temp files since they can't be deleted.
- Fixed bug with support for specifying a manifest delimeter.
- Added missing files to source zip.
- Added results log and output for retrieve and fill holey operations.
- Fixed bug with handling of holey bags missing fetch.txt.
- Set FTP data transfer sockets timeout.
- Fixed critical bug that disallowed payload files to have tag manifest names.
- Changed logging so each invocation produces a unique log file.
- Added a new results log written to working directory for failed verification commandline operations.
- Reduced output to System.out when invoking commandline.
- Added support for reporting BIL version number.
- Added support for HTTPS, including lax certificate handling via the --relaxssl option.
- Fixed problems with the console authenticator.
- Changed socket timeout from infinity to 20 seconds for http fetches.
- Made adding data to payload progress monitorable and cancellable (AddFilesToPayloadOperation)
- Made whitespace used in creating manifests configurable.
- Smarter handling of relative paths in manifests.
- Fixed handling of bag-info.txt with colons in the value.
- Added Update Completer, which updates the manifests and bag-info.txt for a modified bag.
- Added support for retrieving a bag exposed by a web server without first having a local holey bag.
- Added support for BIL versions 0.93 and 0.94.
- Changed default number of spaces in manifests to 2.
- Updates to bag.bat.
- Added support for tolerating additional directories in bag_dir.
- Added support for adding external bag-info.txt when creating bag or bagging-in-place from commandline.
- Added support for updating tag manifests only.
- Numerous changes to Bag interface for clarity, consistency, and simplification.
- Add support for visitor pattern. Changed Writers to use visitor.
- Writer (formerly BagWriter), Completeter (formerly CompletionStrategy), Hole Puncher (formerly Bag.makeHoley()) return a new Bag instead of modifying existing bag.
- Added support for cancelling long-running operations.
- Added support for monitoring progress of long-running operations.
- Changed DefaultCompleter to re-use existing fixities rather than always re-generating.
- Added multithreading of manifest generation and checking.
- Added support for filling holey bags using http, ftp, and rsync.
- Added support for deleting payload files by directory.
- Added commandline support for adding directory contents to payload (as opposed to adding directory).
- Added support for bag-in-place.
- Improved usability of commandline interface.
- Added support for getting lists of standard and non-standard fields in manifests.
- Trial implementation of writer for depositing serialized bags using SWORD.
- Trial implementation of writer for depositing unserialized bags using BOB.
- Implementation of writer for tar gz.
- Implementation of writer for tar bz2.
- Refactored commandline driver.
- Fixed bug in determining if bags are complete.
- Added license information.
- Add verifyPayloadManifests() and verifyTagManifests() to Bag.
- Fixed bug with Window filepaths.
- Changed Payload-Ossum to Payload-Oxsum.
- Updated separator for manifests.
- Made bag-info.txt labels case-insensitive.
- Added additional bag-info.txt methods for Bagging-Date, Bag-Count, Bag-Size, and Payload-Oxum.
- Changed to only include the tar-related classes from Ant, rather than the entire dependency.
- Added version-aware handling of filepath delimiters.