datadryad/dryad-repo — pull request #809 by dleehr (2014-12-02 17:01:27+00:00)
Title: Classes to automatically release eligible items from blackout

Addresses the __add process to release data packages at the appropriate time__ item in [Trello 249](https://trello.com/c/V1ZVVNkN)

This changeset adds classes that can move items through the Workflow steps programatically. Either through other code or on the command line. The central base class, `AutoWorkflowProcessor` executes actions as a user (curator) would, and two initial subclasses (`AutoCurateToBlackoutProcessor` and `AutoApproveBlackoutProcessor`) provide implementations that verify the current state and execute specific actions, like a user would.

Building automated tests was fairly complex, as the workflow (including payment system) has grown. The tests aren't as succinct as I hoped, but they do illustrate how to use this framework

To test this feature in vagrant:

1. Checkout the `vagrant-automatic-release-blackout` branch as your vagrant repo
2. run vagrant provision - this updates the test scripts inside the VM
3. Within the VM, checkout `dleehr/automatic-release-blackout` branch (this PR)
4. run `test_dryad.sh -c`

To Deploy this feature on production

1. Create a system curator account, place in the curators group.
2. Specify the email address in the maven profile as default.system.curator.email
3. Install a daily cron task to run `/opt/dryad/bin/dsrun org.dspace.workflow.ApproveBlackoutItems`