All Versions
- DSpace 7.x (Current Release)
- DSpace 8.x (Unreleased)
- DSpace 6.x (EOL)
- DSpace 5.x (EOL)
- More Versions...
Old Release
This documentation relates to an old version of DSpace, version 3.x. Looking for another version? See all documentation.
This DSpace release is end-of-life and is no longer supported.
jython-2.5.3.jar
) on every DSpace classpath you intend to use, so that it must be installed in both[dspace]/lib
and the webapp that deploys to Tomcat (if you want to run from the UI) - [dspace]/webapps/xmlui/WEB-INF/lib/
. There are no special maven/pom extensions - just copy in the jars.[dspace]/config/modules/curate.cfg
:script.dir=${dspace.dir}/ctscripts
in this directory, create a text file named "task.catalog
". This is a Java properties file where lines beginning with '#' are comments. Add a line for each task you write. The syntax is following:
# logical task name = script engine name|file name|constructor invocation mytask=python|mytask.py|MyTask()
Notes:
ERROR org.dspace.curate.TaskResolver @ Script engine: 'python ' is not installed
script.dir
directory"constructor invocation" is the language specific way to create an object that implements the task interface - it's ClassName() for Python
ui.tasknames
" (or groups etc)ui.tasknames
" (or groups etc)Write your task.
In the directory configured above, create your task (with the name configured in "task.catalog
").
The basic requirement of any scripted task is that it implements the ScriptedTask Java interface.
So for our example, the mytask.py
file might look like this:
from org.dspace.curate import ScriptedTask class MyTask(ScriptedTask): def init(self, curator, taskName): print "initializing with Jython" def performDso(self, dso): print "perform on dso" return 0 def performId(self, context, id): print "perform on id %s" % (id) return 0
Invoke the task.
You can do this the same way you would invoke any task (from command line, in the admin UI, etc). The advantage of scripting is that you do not need to restart your servlet container to test changes; each task's source code is reloaded when you launch the task, so you can just put the updated script in place.
Example of invocation from command line:
[dspace]/bin/dspace curate -t mytask -i 123456789/123 -r -
Note: "-r -
" means that the script's standard output will be directed to the console. You can read more details in the "On the command line" chapter of the Curation System page.