The VersionedHandleIdentifierProvider in its current form uses canonical handles. This means an item gets a handle like 123456789/100. If a new version is created the first version gets the form 123456789/100.1 and the new version gets the handle 123456789/100. If a third version is created the second one gets the handle 123456789/100.2 and the new one the "canoncial handle" 123456789/100. This is well described in
DS-1348. This behavior leads to a change of metadata whenever a newer version is created. During this change two problems occur currently:
- The VersionedHandleIdentifierProvider clears the metadata field dc.identifier.uri and adds the new handle to it. All previous information in this metadata field gets lost which is bad if other information than handles are included there. Our DOIIdentifierProvider uses this field es well, so this leads to a concrete loss of metadata.
- While the VersionedHandleIdentifierProvider works well if an item and a second version is created, it doesn't work for following versions (this problem occur only starting after the second version). In the previous version the metadata is not changed at all so that the "canonical" handle is still mentioned there and the "new" versioned handle is not included.
DS-1348 wants to remove the use of canonical handles completely. As atMire wants to keep the canoncial handles, I created a PR that renames the current VersioneHandleIdentifierProvider into VersionedHandleIdentifierProviderWithCanonicalHandles and changed the VersionedHandleIdentifierProvider to not use canonical handles anymore. This is described in DS-1348 and applied in the DSPR#881 (https://github.com/DSpace/DSpace/pull/881). I will attach my solution for the problem described in this ticket to DSPR#881.