Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: removing harvester consumer from dspace.cfg example, DS-4129

...

After you enter into a contract with a DOI registration agency, they'll provide you with user credentials and a DOI prefix. You have to enter these in the dspace cfg. Here is a list of DOI configuration options in dspace.cfg:

Configuration File:[dspace]/config/dspace.cfg
Property:
identifier.doi.user
Example Value:
identifier.doi.user = user123
Informational Note:Username to login into the API of the DOI registration agency. You'll get it from your DOI registration agency.
Property:
identifier.doi.password
Example Value:
identifier.doi.password = top-secret
Informational Note:Password to login into the API of the DOI registration agency. You'll get it from your DOI registration agency.
Property:
identifier.doi.prefix
Example Value:
identifier.doi.prefix = 10.5072
Informational Note:The prefix you got from the DOI registration agency. All your DOIs start with this prefix, followed by a slash and a suffix generated from DSpace. The prefix can be compared with a namespace within the DOI system.
Property:
identifier.doi.namespaceseparator
Example Value:
identifier.doi.namespaceseparator = dspace-
Informational Note:This property is optional. If you want to use the same DOI prefix in several DSpace installations or with other tools that generate and register DOIs it is necessary to use a namespace separator. All the DOIs that DSpace generates will start with the DOI prefix, followed by a slash, the namespace separator and some number generated by DSpace. For example, if your prefix is 10.5072 and you want all DOIs generated by DSpace to look like 10.5072/dspace-1023 you have to set this as in the example value above.
Property:

crosswalk.dissemination.DataCite.publisher

Example Value:crosswalk.dissemination.DataCite.publisher = My University Press
Informational Note:The name of the entity which published the item.
Property:crosswalk.dissemination.DataCite.hostingInstitution
Example Value:crosswalk.dissemination.DataCite.hostingInstitution = My University
Informational Note:The name of the entity which hosts this instance of the object.  If not configured, it will default to the value of crosswalk.dissemination.DataCite.publisher.
Property:crosswalk.dissemination.DataCite.dataManager
Example Value:crosswalk.dissemination.DataCite.dataManager = My University Department of Geology
Informational Note:If not configured, it will default to the value of crosswalk.dissemination.DataCite.publisher.


Info

Please don't use the test prefix 10.5072 with DSpace. The test prefix 10.5072 differs from other prefixes: It answers GET requests for all DOIs even for DOIs that are unregistered. DSpace checks that it mint only unused DOIs and will create an Error: "Register DOI ... failed: DOI_ALREADY_EXISTS". Your registration agency can provide you an individual test prefix, that you can use for tests.

...

Code Block
title\[dspace\]/config/dspace.cfg
event.dispatcher.default.consumers = versioning, discovery, eperson, harvester, doi

DOIs using DataCite and Item Level Versioning

If you enabled Item Level Versioning you should enable the VersionedDOIIdentifierProvider instead of the DOIIdentifierProvider. The VersionedDOIIdentifierProvider ensures that newer versions of the same Item gets a DOI looking as the DOI of the first version of and item, extended by a dot and the version number. With DSpace 6 this also became the default for handles if Item Level Versioning is enabled. In the configuration file [dspace]/config/spring/api/identifier-service.xml you'll find the possiblity possibility to enable the VersionedDOIIdentifierProvider. If you want to use versioned DOIS, please comment out the DOIIdentifierProvider as only one of both DOIProviders should be enabled at the same time.

...

The command used for DOIs is 'doi-organiser'. You can use the following options:

Option (short)Option (long)ParameterDescription
-d--delete-all
 

Transmit information to the DOI registration agency about all DOIs that were deleted.
 

--delete-doiDOITransmit information to the DOI registration agency that the specified DOI was deleted. The DOI must already be marked for deletion; you cannot use this command to delete a DOI for an
exisiting
existing item.
-h--help
 

Print online help.
-l--list
 

List all DOIs whose changes were not committed to the registration agency yet.
-q--quiet
 

The doi-organiser sends error reports to the mail address configured in the property alert.recipient in dspace.cfg. If you use this option no output should be given to stdout. If you do not use this option the doi-organiser writes information about successful and unsuccessful operations to stdout and stderr. You can find information in dspace.log of course.

-r--register-all
 

Transmit information about all DOIs that should be registered.
 

--register-doi

DOI | ItemID | handle

If a DOI is marked for registration, you can trigger the registration at the DOI registration agency by this command. Specify either the DOI, the ID of the item, or its handle.
-s--reserve-all
 

Transmit to the DOI registration agency information about all DOIs that should be reserved.
 

--reserve-doiDOI | ItemID | handleIf a DOI is marked for registration, you can trigger the registration at the DOI registration agency by this command. Specify either the DOI, the ID of the item, or its handle.
-u--update-all
 

If a DOI is reserved for an item, the metadata of the item will be sent to DataCite. This command transmits new metadata for items whose metadata were changed since the DOI was reserved.
 

--update-doiDOI | ItemID | handleIf a DOI needs an update of the metadata of the item it belongs to, you can trigger this update with this command. Specify either the DOI, the ID of the item, or its handle.

Currently you cannot generate new DOIs with this tool. You can only send information about changes in your local DSpace database to the registration agency.

...

When a DOI should be reserved, registered, deleted or its metadata updated, DSpace just writes this information into its local database. A command line interface is supplied to send the necessary information to the registration agency. This behavior behaviour makes it easier to react to outages or errors while using the API. This information should be sent regularly, so it is a good idea to set up a cron job instead of doing it manually.

...

In DSpace, a DOI can have the state "registered", "reserved", "to be reserved", "to be registered", "needs update", "to be deleted", or "deleted". After updating an item's metadata the state of its assigned DOI is set back to the last state it had before. So, e.g., if a DOI has the state "to be registered" and the metadata of its item changes, it will be set to the state "needs update". After the update is performed its state is set to "to be registered" again. Because of this behavior behaviour the order of the commands above matters: the update command must be executed before all of the other commands above.

...

In config/dspace.cfg you will find a small block of settings whose names begin with identifier.doi.ezid.  You should uncomment these properties and give them appropriate values.  Sample values for a test account are supplied.

namemeaning
identifier.doi.ezid.shoulderThe "shoulder" is the DOI prefix issued to you by the EZID service.  DOIs minted by this instance of DSpace will be the concatenation of the "shoulder" and a locally unique token.

identifier.doi.ezid.user

identifier.doi.ezid.password

The username and password by which you authenticate to EZID.
identifier.doi.ezid.publisherYou may specify a default value for the required datacite.publisher metadatum, for use when the Item has no publisher.
crosswalk.dissemination.DataCite.publisherShould match identifier.doi.ezid.publisher.
crosswalk.dissemination.DataCite.hostingInstitutionName of the hosting institution.  If not configured, it will be set to the value of crosswalk.dissemination.DataCite.publisher.
crosswalk.dissemination.DataCite.dataManagerName of the data manager.  If not configured, it will be set to the value of crosswalk.dissemination.DataCite.publisher.

Back in config/spring/api/identifier-service.xml you will see some other configuration of the EZIDIdentiferProvider bean. In most situations, the default settings should work well.  But, here's an explanation of options available:

...

If you want DSpace to support other registration agencies, you just have to write a Java class that implements the interface DOIConnector ([dspace-source]/dspace-api/src/main/java/org/dspace/identifier/doi/DOIConnector.java). You might use the DataCiteConnector ([dspace-source]/dspace-api/src/main/java/org/dspace/identifier/doi/DataCiteConnector.java) as an example. After developing your own DOIConnector, you configure DSpace as if you were using the DataCite API directly. Just use your DOIConnector when configuring the IdentifierService instead of the DataCiteConnector.