Currently, F6 is using the following properties to define where it places OCFL related files on disk:
private static final String OCFL_STAGING_DIR_KEY = "fcrepo.ocfl.staging.dir
public static final String OCFL_STORAGE_ROOT_DIR_KEY = "fcrepo.ocfl.storage.root.dir";
public static final String OCFL_WORK_DIR_KEY = "fcrepo.ocfl.work.dir";
Additionally, the OCFL work directory is being incorrectly used to store files that are unrelated to the directory's purpose as a temp space that's used by the OCFL client.
Ideally, this would be refactored to look something like the following:
fcrepo/ <-- fcrepo.home: contains all F6 on disk data and config
├── ocfl-root/ <-- fcrepo.ocfl.storage: contains OCFL storage root
├── staging/ <-- fcrepo.ocfl.staging: contains files waiting to be moved into OCFL
└── temp/ <-- fcrepo.temp: contains ocfl-java temp files and potentially other random files
I can see a use case for having the OCFL storage root outside of fcrepo.home, but we may not even need the staging and temp locations to be configurable.
It would be nice to just be able to do -Dfcrepo.home=target/fcrepo and have all of the various files written within the target directory rather than either having to deal with the default location in temp space or set a laundry list of properties.