Please see the included StanfordDigitalLibraryWorkflow.pdf for an overview
Here’s what the WorkDo service would return to you if you were to query the state of the workflow for one object:
http://yourserver.yourschool.edu/workdo/{_your-repository-name}/objects/{_object-pid__}/workflows/{_workflow-name_}
e.g. https://services.stanford.edu/workdo/dor/objects/druid:123456/workflows/googleScannedBookWF would return this:
<workflow objectId="druid:123456" id="googleScannedBookWF"> <process lifecycle="inprocess" elapsed="0.892" attempts="1" datetime="2011-01-06T20:53:35-0800" status="completed" name="register-object"/> <process elapsed="1.191" attempts="1" datetime="2011-01-06T21:21:49-0800" status="completed" name="descriptive-metadata"/> <process elapsed="0.0" attempts="1" datetime="2011-01-06T20:53:35-0800" status="completed" name="google-convert"/> <process elapsed="13.306" attempts="1" datetime="2011-01-07T00:44:16-0800" status="completed" name="google-download"/> <process elapsed="93.328" attempts="1" datetime="2011-01-07T08:01:41-0800" status="completed" name="process-content"/> <process elapsed="36.752" attempts="26" datetime="2011-03-16T14:54:01-0700" status="completed" name="sdr-ingest-transfer"/> <process elapsed="0.0" attempts="1" datetime="2011-01-07T11:55:02-0800" status="completed" name="sdr-ingest-deposit"/> <process lifecycle="released" elapsed="57.51" attempts="24" datetime="2011-03-16T14:55:21-0700" status="completed" name="shelve"/> <process lifecycle="accessioned" elapsed="3.945" attempts="1" datetime="2011-03-16T15:20:25-0700" status="completed" name="cleanup"/> <process lifecycle="archived" elapsed="0.0" attempts="0" datetime="2011-01-06T20:53:35-0800" status="waiting" name="sdr-ingest-archive"/>
WorkDo state is managed in a database table called workflow. See the db folder for mysql and oracle DDLs.
See the tests in test/edu/stanford/sulair/dlss/dor/resource
to see examples of how to interact with the WorkDo REST Service
Spring 2.5
Hibernate 3
Jersey 1.0.3
To save space in github, the jar dependencies are not stored in the repo. These are the jars that you need, and where they need to be placed
activation-1.1.jar
activemq-all-5.1.0.jar
antlr-2.7.6.jar
asm-3.1.jar
c3p0-0.9.1.2.jar
cglib-nodep-2.1_3.jar
commons-codec-1.3.jar
commons-collections.jar
commons-httpclient-3.1.jar
commons-logging.jar
commons-pool-1.4.jar
dom4j-1.6.1.jar
geronimo-annotation_1.0_spec-1.1.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate3.jar
http-20070405.jar
itql-2.0.0.jar
jaxb-api-2.1.jar
jaxb-impl-2.1.10.jar
jersey-apache-client-1.0.3.jar
jersey-bundle-1.0.3.jar
jersey-spring-1.0.3.jar
jsr311-api-1.0.jar
log4j-1.2.15.jar
mysql-connector-java-5.0.8-bin.jar
ojdbc5.jar
orai18n.jar
persistence-api-1.0.2.jar
slf4j-api-1.5.0.jar
slf4j-log4j12-1.5.0.jar
spring.jar
stax-api-1.0-2.jar
transactions-api.jar
transactions-essentials-all.jar
transactions-jta.jar
transactions.jar
xom-1.2.3.jar
hamcrest-core-1.1.jar
hamcrest-library-1.1.jar
hsqldb.jar
jetty-6.1.12rc1.jar
jetty-util-6.1.12rc1.jar
jmock-2.5.0.jar
jmock-junit4-2.5.0.jar
jmock-legacy-2.5.0.jar
junit-4.4.jar
objenesis-1.0.jar
servlet-api-2.5-6.1.12rc1.jar
spring-test.jar
unitils-2.3.jar
xmlunit-1.2.jar
cobertura.jar
asm-3.0.jar
asm-tree-3.0.jar
jakarta-oro-2.0.8.jar
log4j-1.2.9.jar
Before building the war file, you should fill in the values appropriate for your environment in WebContent/WEB-INF/app.properties
See build.xml to see where the main library of jars and test jars are located.
The default ant target will compile, run the tests and create a workdo.war file in the dist directory.
You could drop the workdo.war file into the webapps directory of a servlet container, like Tomcat.