When adding a Bitstream to a Bundle, the 'bitstream_order' is always set to the 
'sequence_id'
---------------------------------------------------------------------------------------------

                 Key: DS-1122
                 URL: https://jira.duraspace.org/browse/DS-1122
             Project: DSpace
          Issue Type: Bug
          Components: DSpace API
    Affects Versions: 1.8.1, 1.8.0
            Reporter: Tim Donohue
            Assignee: Tim Donohue
             Fix For: 1.8.2
         Attachments: Bundle.patch

Currently, in the Bundle.addBitstream() method the 'bitstream_order' setting is 
always set to the same value as the 'sequence_id'.
This makes a large assumption that these two fields should always be equal for 
newly created bitstreams.

However, in scenarios where you are restoring an Item and its Bitstreams (like 
via AIP Backup & Restore), this assumption falls flat.  In 'restore' scenarios, 
it's very possible you may want to restore the 'sequence_id' as 2 while the 
'bitstream_order' should be 1.  Unfortunately, this becomes problematic, as the 
'addBitstream()' method will always assume bitstream_order=sequence_id.

My proposal is to instead implement Bundle.addBitstream() so that it is always 
*appending* the newly added bitstream to the end of the current list of 
Bitstreams.  So, instead it should set:
bitstream_order = bitstreams.size()

This will work fine for 'restore' scenarios, as Bitstreams are always restored 
in order, so the bitstream_order may be restored to a different value to the 
sequence_id.

A proposed patch to the Bundle class is attached.  I've done some minimal 
testing so far, but it seems stable.  I have verified that with this patch in 
place, I can now restore *both* an Item's bitstream_order and sequence_id to 
different values (as necessary), via the AIP Backup & Restore tools. 

I'd appreciate feedback on this approach.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.duraspace.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to