Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


This is breaks down like this:

Date and time, milliseconds

2002-11-11 08:11:32,903



Java class



User email or anonymous




Extra log info from context








Extra info


The above format allows the logs to be easily parsed and analyzed. The [dspace]/bin/log-reporter script is a simple tool for analyzing logs. Try:


Some examples to illustrate this are shown below:

Code Block
Context context = new Context();
Bitstream b = Bitstream.find(context, 1234);

Will change storage

Code Block
Context context = new Context();
Bitstream b = Bitstream.find(context, 1234);

Will not change storage (context aborted)

Code Block
Context context = new Context();
Bitstream b = Bitstream.find(context, 1234);

The new name will not be stored since update was not invoked

Code Block
Context context = new Context();
Bitstream bs = Bitstream.find(context, 1234);
Bundle bnd = Bundle.find(context, 5678);

The bitstream will be included in the bundle, since update doesn't need to be called

What's In Memory?

Instantiating some content objects also causes other content objects to be loaded into memory.


Below is the specific syntax that DSpace expects various fields to adhere to:




Helper Class


Any or unqualified

ISO 8601 in the UTC time zone, with either year, month, day, or second precision. Examples:_2000 2002-10 2002-08-14 1999-01-01T14:35:23Z _



Any or unqualified

In general last name, then a comma, then first names, then any additional information like "Jr.". If the contributor is an organization, then simply the name. Examples:_Doe, John Smith, John Jr. van Dyke, Dick Massachusetts Institute of Technology _




A two letter code taken ISO 639, followed optionally by a two letter country code taken from ISO 3166. Examples:_en fr en_US _




The series name, following by a semicolon followed by the number in that series. Alternatively, just free text._MIT-TR; 1234 My Report Series; ABC-1234 NS1234 _


Support for Other Metadata Schemas


Workflow System

The primary classes are:


contains an Item before it enters a workflow


contains an Item while in a workflow


responds to events, manages the WorkflowItem states. There are two implementations, the traditional, default workflow (described below) and Configurable Workflow.


contains List of defined workflow steps


people who can perform workflow tasks are defined in EPerson Groups


used to email messages to Group members and submitters

The default workflow system models the states of an Item in a state machine with 5 states (SUBMIT, STEP_1, STEP_2, STEP_3, ARCHIVE.) These are the three optional steps where the item can be viewed and corrected by different groups of people. Actually, it's more like 8 states, with STEP_1_POOL, STEP_2_POOL, and STEP_3_POOL. These pooled states are when items are waiting to enter the primary states.  Optionally, you can also choose to enable the enhanced, Configurable Workflow, if you wish to have more control over your workflow steps/states. (Note: the remainder of this description relates to the traditional, default workflow. For more information on the Configurable Workflow option, visit Configurable Workflow.)



The primary classes are:


does all authorization, checking policies against Groups


defines all allowable actions for an object


all policies are defined in terms of EPerson Groups

The authorization system is based on the classic 'police state' model of security; no action is allowed unless it is expressed in a policy. The policies are attached to resources (hence the name ResourcePolicy,) and detail who can perform that action. The resource can be any of the DSpace object types, listed in org.dspace.core.Constants (BITSTREAM, ITEM, COLLECTION, etc.) The 'who' is made up of EPerson groups. The actions are also in (READ, WRITE, ADD, etc.) The only non-obvious actions are ADD and REMOVE, which are authorizations for container objects. To be able to create an Item, you must have ADD permission in a Collection, which contains Items. (Communities, Collections, Items, and Bundles are all container objects.)


DSpace is able to support OpenSearch. For those not acquainted with the standard, a very brief introduction, with emphasis on what possibilities it holds for current use and future development.


How Can It Be Used

  • Browser IntegrationMany Integration: Many recent browsers (IE7+, FF2+) can detect, or 'autodiscover', links to the document describing the search engine. Thus you can easily add your or other DSpace instances to the drop-down list of search engines in your browser. This list typically appears in the upper right corner of the browser, with a search box. In Firefox, for example, when you visit a site supporting OpenSearch, the color of the drop-down list widget changes color, and if you open it to show the list of search engines, you are offered an opportunity to add the site to the list. IE works nearly the same way but instead labels the web sites 'search providers'. When you select a DSpace instance as the search engine and enter a search, you are simply sent to the regular search results page of the instance.
  • Flexible, interesting RSS FeedsBecause Feeds. Because one of the formats that OpenSearch specifies for its results is RSS (or Atom), you can turn any search query into an RSS feed. So if there are keywords highly discriminative of content in a collection or repository, these can be turned into a URL that a feed reader can subscribe to. Taken to the extreme, one could take any search a user makes, and dynamically compose an RSS feed URL for it in the page of returned results. To see an example, if you have a DSpace with OpenSearch enabled, try:

    Code Block<your query>

    The default format returned is Atom 1.0, so you should see an Atom document containing your search results.

  • You can extend the syntax with a few other parameters, as follows:




    atom, rss, html


    handle of a collection or community to restrict the search to


    number indicating the number of results per page (i.e. per request)


    number of page to start with (if paginating results)


    number indicating sorting criteria (same as DSpace advanced search values

    Multiple parameters may be specified on the query string, using the "&" character as the delimiter, e.g.:

    Code Block<your query>&format=rss&scope=123456789/1

  • Cheap metasearchSearch aggregators like A9 (Amazon) recognize OpenSearch-compliant providers, and so can be added to metasearch sets using their UIs. Then you site can be used to aggregate search results with others.

Configuration is through the dspace.cfg file. See OpenSearch Support for more details.

Embargo Support