All Versions
- DSpace 7.x (Current Release)
- DSpace 8.x (Unreleased)
- DSpace 6.x (EOL)
- DSpace 5.x (EOL)
- More Versions...
...
For every new Version a separate DSpace Item will be created that replicates the metadata, bundle and bitstream records. The bitstream records will point to the same file on the disk.
The Cleanup method has been modified to retain the file if another Bitstream record point to it, in other words the file will be deleted only if the Bitstream record processed is the only one to point to the file (count(INTERNAL_ID)=1).
DSpace Item Versioning will be encapsulated as an Extensible Service that may be reimplemented by the local repository maintainers to produce alternate versioning behaviors and Identifier Schemes. Versioning Services layer on top of IdentifierServices dedicated to Encoding, Resolution, Minting and Registration of Identifiers for specific DSpace Items and Bitstreams. It is through this highly extensible layering of functionality where local developers can alter the versioning behavior and introduce their own local enhancements. The DSpace Service Manager, based on the Spring Framework, provides the key leverage for this flexibility.
The Versioning Service will be responsible for the replication of one or more Items when a new version is requested. The new version will not yet be preserved in the Repository, it will be preserved when the databases transactional window is completed, thus when errors arise in the versioning process, the database will be properly kept in its original state and the application will alert that an exception has occurred that is in need of correction.
The Versioning Service will rely on a generic IdentifierService that is described below for minting and registering any identifiers that are required to track the revision history of the Items.
To create a new version of an existing item the following steps have to be performed:
.
After the operation is confirmed a new submission process will be generated and the user could modify the metadata and the bitstream(s).
The new version of the item won't be visible until the workflow will be completed.
To access the history of an item the following steps have to be performed:
For every new Version a separate DSpace Item will be created that replicates the metadata, bundle and bitstream records. The bitstream records will point to the same file on the disk.
The Cleanup method has been modified to retain the file if another Bitstream record point to it, in other words the file will be deleted only if the Bitstream record processed is the only one to point to the file (count(INTERNAL_ID)=1).
DSpace Item Versioning will be encapsulated as an Extensible Service that may be reimplemented by the local repository maintainers to produce alternate versioning behaviors and Identifier Schemes. Versioning Services layer on top of IdentifierServices dedicated to Encoding, Resolution, Minting and Registration of Identifiers for specific DSpace Items and Bitstreams. It is through this highly extensible layering of functionality where local developers can alter the versioning behavior and introduce their own local enhancements. The DSpace Service Manager, based on the Spring Framework, provides the key leverage for this flexibility.
The Versioning Service will be responsible for the replication of one or more Items when a new version is requested. The new version will not yet be preserved in the Repository, it will be preserved when the databases transactional window is completed, thus when errors arise in the versioning process, the database will be properly kept in its original state and the application will alert that an exception has occurred that is in need of correction.
The Versioning Service will rely on a generic IdentifierService that is described below for minting and registering any identifiers that are required to track the revision history of the Items.
Code Block |
---|
public |
Code Block |
public interface VersioningService {
Version createNewVersion(Context c, int itemId);
Version createNewVersion(Context c, int itemId, String summary);
void removeVersion(Context c, int versionID);
void removeVersion(Context c, Item item);
Version getVersion(Context c, int versionID);
Version restoreVersion(Context c, int versionID);
Version restoreVersion(Context c, int versionID, String summary);
VersionHistory findVersionHistory(Context c, int itemId);
Version updateVersion(Context c, int itemId, String summary);
Version getVersion(Context c, Item item);
}
|
...
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2002-2010, DuraSpace. All rights reserved Licensed under the DuraSpace License. A copy of the DuraSpace License has been included in this distribution and is available at: http://www.dspace.org/license --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- Versioning Service Application Interface for DSpace Will be autowired with a Versioning Provider present in Spring context. Default Item Versioning Provider, defines behavior for replicating Item, Metadata, BUndles and Bitstreams. Autowired at this time. <bean id="org.dspace.versioning.VersioningService" class="org.dspace.versioning.VersioningServiceImpl" autowire="byType" scope="singleton"> <property name="versionDAO"> <bean classautowire="org.dspace.versioning.VersionDAO"/> byType" </property>scope="singleton"> <property name="versionHistoryDAOversionDAO"> <bean class="org.dspace.versioning.VersionHistoryDAOVersionDAO"/> </property> <property name="providerversionHistoryDAO"> <bean class="org.dspace.versioning.DefaultItemVersionProviderVersionHistoryDAO"/> </property> </bean> --> </beans> |
identifier-service.xml:
<property name="provider">
<bean class="org.dspace.versioning.DefaultItemVersionProvider"/>
</property>
</bean>
-->
</beans> |
identifier-service.xml:
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2002-2010, DuraSpace. All rights reserved
Licensed under the DuraSpace License.
A copy of the DuraSpace License has been included in this
distribution and is available at: http://www.dspace.org/license
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" |
Code Block |
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2002-2010, DuraSpace. All rights reserved Licensed under the DuraSpace License. A copy of the DuraSpace License has been included in this distribution and is available at: http://www.dspace.org/license --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- Identifier Service Application Interface. Will be autowired with any Identifier Providers present in Spring context. --> <bean id="org.dspace.identifier.IdentifierService" class="org.dspace.identifier.IdentifierServiceImpl" autowire="byType" scope="singleton"/> <!-- Identifier provider for using the versioned handle identifier instead of the default one. Service Application Interface. Will be autowired with any Identifier Providers present in Spring context. --> <!-<bean id="org.dspace.identifier.HandleIdentifierProviderIdentifierService" class="org.dspace.identifier.VersionedHandleIdentifierProvider"-> <!-IdentifierServiceImpl" autowire="byType" scope="singleton"/>-> <!-<property name="configurationService" ref="org.dspace.services.ConfigurationService"/>-> <!-</bean>-> </beans> |
To enable VersionedHandleIdentifierProvider reinstate it taking off the comment.
VersionedHandleIdentifierProvider will attach the revision number at the end of the item identifier for e.g., the version 3 of the item 12345/123 will be 12345/123.3.
To set the version history to be seen only by the administrators a property in the versioning.cfg file can be edited:
Code Block |
---|
item.history.view.admin=false |
To create a new version of an existing item the following steps have to be performed:
.
After the operation is confirmed a new submission process will be generated and the user could modify the metadata and the bitstream(s).
The new version of the item won't be visible until the workflow will be completed.
To access the history of an item the following steps have to be performed:
...
- provider for using the versioned handle identifier instead of the default one. -->
<!-<bean id="org.dspace.identifier.HandleIdentifierProvider" class="org.dspace.identifier.VersionedHandleIdentifierProvider"->
<!-scope="singleton">->
<!-<property name="configurationService" ref="org.dspace.services.ConfigurationService"/>->
<!-</bean>->
</beans> |
To enable VersionedHandleIdentifierProvider reinstate it taking off the comment.
VersionedHandleIdentifierProvider will attach the revision number at the end of the item identifier for e.g., the version 3 of the item 12345/123 will be 12345/123.3.
To set the version history to be seen only by the administrators a property in the versioning.cfg file can be edited:
Code Block |
---|
item.history.view.admin=false |
...