Page History
...
Note that there is no name of the configuration file even mentioned, just the property name whose value we want. At runtime, the curation system resolves this call to a set of configuration fileproperties, and it uses the name the task has been configured as as the name prefix of the config fileproperties. So, for example, if both were installed (in, say, curate.cfg
) as:
Code Block |
---|
org.dspace.ctask.general.ClamAv = vscan, org.community.ctask.ConflictTask = virusscan, .... |
then "taskProperty("foo")
" will resolve to [dspace]/config/modules/the property named vscan.cfgfoo
when called from ClamAv task, but [dspace]/config/modules/virusscan.cfgfoo
when called from ConflictTask's code. Note that the "vscan
" etc are locally assigned names, so we can always prevent the "collisions" mentioned, and we make the tasks much more portable, since we remove the "hard-coding" of config names.
...
Another use of task properties is to support multiple task profiles. Suppose we have a task that we want to operate in one of two modes. A good example would be a mediafilter task that produces a thumbnail. We can either create one if it doesn't exist, or run with "-force" which will create one regardless. Suppose this behavior was controlled by a property in a config file. If we configured the task as "thumbnail", then we would have in (perhaps) [dspace]/config/modules/thumbnail.cfg
:
Code Block |
---|
...other properties... thumbnail.thumbnail.maxheight = 80 thumbnail.thumbnail.maxwidth = 80 thumbnail.forceupdate=false |
Then, following the pattern above, the thumbnail generating task code would look like:
...
But an obvious use-case would be to want to run force mode and non-force mode from the admin UI on different occasions. To do this, one would have to stop Tomcat, change the property value in the config file, and restart, etc However, we can use task properties to elegantly rescue us here. All we need to do is go into the config/modules directory, and create a new file perhaps called: thumbnail.force.cfg
. In this file, we put only one propertythe properties:
Code Block |
---|
thumbnail.force.thumbnail.maxheight = 80
thumbnail.force.thumbnail.maxwidth = 80
thumbnail.force.forceupdate=true
|
Then we add a new task (really just a new name, no new code) in curate.cfg:
...
Consider what happens: when we perform the task "thumbnail
" (using taskProperties), it reads uses the config file thumbnail.
cfg *
properties and operates in "non-force" profile (since the value is false), but when we run the task "thumbnail.force
" the curation system first reads thumbnail.cfg
, then reads uses the thumbnail.force.cfg
which overrides the value of the "forceupdate
" property*
properties. Notice that we did all this via local configuration - we have not had to touch the source code at all to obtain as many "profiles" as we would like.
...
If you wish the task to be available in the Admin UI, see the Invocation from the Admin UI documentation (above) about how to configure it. The remaining sections describe some more specialized needs using the MetadataWebService task.
...
- Optionally, add the vscan friendly name to the configuration to enable it in the administrative it in the administrative user interface.
...
Table 1 – Virus Scan Results Table
GUI (Interactive Mode) | FailFast | Expectation |
Container | T | Stop on 1st Infected Bitstream |
Container | F | Stop on 1st Infected Item |
Item | T | Stop on 1st Infected Bitstream |
Item | F | Scan all bitstreams |
Command Line |
Container | T | Report on 1st infected bitstream within an item/Scan all contained Items |
Container | F | Report on all infected bitstreams/Scan all contained Items |
Item | T | Report on 1st infected bitstream |
Item | F | Report on all infected bitstreams |
Link Checkers
Two link checker tasks, BasicLinkChecker and MetadataValueLinkChecker can be used to check for broken or unresolvable links appearing in item metadata.
...