REST service that manages WorkDo creation, updates and querying on top of an RDBMS
Java
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
WebContent
cobertura/lib
db
lib-test
src/edu/stanford/sulair/dlss/dor
test
.gitignore
COPYRIGHT
LICENSE
README.textile
StanfordDigitalLibraryWorkflow-DRAFT.pdf
build.xml

README.textile

WorkDo Service

Overview

Please see the included StanfordDigitalLibraryWorkflow.pdf for an overview

An Example Workflow

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"/>


The Database

WorkDo state is managed in a database table called workflow. See the db folder for mysql and oracle DDLs.

The REST service

See the tests in test/edu/stanford/sulair/dlss/dor/resource
to see examples of how to interact with the WorkDo REST Service

Libraries Used

Spring 2.5
Hibernate 3
Jersey 1.0.3

Dependencies

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

WebContent/WEB-INF/lib:

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

lib-test:

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:

cobertura.jar

cobertura/lib:

asm-3.0.jar
asm-tree-3.0.jar
jakarta-oro-2.0.8.jar
log4j-1.2.9.jar

Build

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.

Deployment

You could drop the workdo.war file into the webapps directory of a servlet container, like Tomcat.