Skip to content

Droid upgrade #387

Description

@pwinckles

@awoods

I started working on upgrading to the latest version of Droid. There have been some changes in Droid that require changing the FITS integration, which is on the hacky side of things because Droid does not expose an easy to use API that's ideally suited for what FITS wants to do.

I have a working, work in progress, branch that you can look at here: https://github.com/pwinckles/fits/tree/droid-6.7

In that branch, I change FITS to use the primary Droid entry point, SubmissionGateway, and use most of Droid's standard configuration. DroidWrapperFactory may look like its doing a ton of customization, but I sourced almost all of that from Droid's Spring xml. DroidWrapper is what does the analysis. With this setup, FITS would now output info on all of the archive types that Droid supports, and not just zips.

However, that branch does not currently replicate the existing FITS behavior entirely, and I want to know to what extent it needs to.

  1. It does not output originalSize and compressionMethod elements. This is because this data isn't really from Droid. Instead, it's being computed by FITS in ZipArchiveContentIdentifier.
  2. It will recursively descend into nested archives. The current FITS behavior only goes one level deep. This recursive behavior is not configurable on Droid (GUI takes much longer to analyse archives now that it expands sub archives recursively digital-preservation/droid#370). The test on multiple-file-types-and-folders.zip seems to suggest that FITS considers the behavior of only going one level deep to be the desirable behavior.

For the originalSize and compressionMethod, I assume that you don't want these values to disappear, which is fair. However, I would rather not hackup Droid again to get them back in, as they really have absolutely nothing to do with Droid. My proposal is to instead make a new "FITS zip tool" that runs on zip files and computes that information.

For the recursion, is there a hard requirement on it being restricted to a depth of 1? If so, I can try to figure out a way to make this happen, but it'll be a little tricky so I'm not going to unless it's required.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions