Task #1599
Story #312: Identifier generation and reservation
Generate pid when not provided in CNCore.generateIdentifier
100%
Description
Implement the http://mule1.dataone.org/ArchitectureDocs-current/apis/CN_APIs.html#CNRead.generateIdentifier method.
This method should delegate to the EZID service (http://n2t.net/ezid) for production of the identifier. There may be some issues to consider for the intended longevity of identifiers created there - can we create a temporary identifier, that can later be confirmed as being real?
History
#1 Updated by Ben Leinfelder over 13 years ago
- Subject changed from Implement CNRead.reserveIdentifier to Implement CNCore.reserveIdentifier
#2 Updated by Ben Leinfelder over 13 years ago
- Milestone set to CCI-0.6.3
- Subject changed from Implement CNCore.reserveIdentifier to Generate pid when not provided in CNCore.reserveIdentifier
#3 Updated by Ben Leinfelder about 13 years ago
My current understanding is the DataONE won't actually be able to dole out identifiers it gets from EZID.
#4 Updated by Dave Vieglais about 13 years ago
- Milestone changed from CCI-0.6.3 to CCI-1.0.0
- Category set to d1_libclient_java
- Assignee changed from Ben Leinfelder to Matthew Jones
- Target version set to Sprint-2011.46-Block.6
#5 Updated by Ben Leinfelder almost 13 years ago
- Subject changed from Generate pid when not provided in CNCore.reserveIdentifier to Generate pid when not provided in CNCore.generateIdentifier
I'm not sure DataONE was approved to mint IDs for everyone...kind of eats into the EZID income stream. Perhaps MNs should be wholly responsible for ID generation.
#6 Updated by Matthew Jones almost 13 years ago
- Target version changed from Sprint-2011.48-Block.6 to Sprint-2011.46-Block.6
- Category changed from d1_libclient_java to d1_cn_service
Decided not to use the EZID service for now due to policy issues. Will revisit that later. For now, implement a simple id generator that creates and reserves the identifier using a simple timestamp or UUID based id scheme, and return it to the caller.
#7 Updated by Matthew Jones almost 13 years ago
- % Done changed from 0 to 100
- Status changed from New to Closed
generateIdentifier() method added to ReserveIdentifierController and ReserveIdentifierService, completing this task. The only identifier scheme current supported is UUID. You can try the service by running a command such as this:
curl -X POST -s \
-H "Charset: utf-8" \
-H "Content-Type: multipart/form-data; boundary=----------6B3C985C-6290-11DF-A355-A6ECDED72085_$" \
-H "Accept: text/xml" \
-H "User-Agent: curl-tester" \
--cert /tmp/x509up_u501 \
-F scheme=UUID \
-F fragment=nothing \
"https://cn-dev.dataone.org/cn/v1/generate"