API Changes in the current AipBackupRestorePrototype
- See SVN Sandbox for actual source code: http://scm.dspace.org/svn/repo/sandbox/aip-external-1_6-prototype/
- Full diff patch (current as of Trunk rev. 4963): aip-trunk-r4963.patch
Change Summary (work in progress)
configs
dspace.cfg
– new configs for AIPIngester & Disseminator
org.dspace.app.packager.*
org.dspace.app.packager.Packager
– MAJOR refactoring to move most of the actual processing code intoorg.dspace.content.packager
classes (this allows most packaging to also be called via API calls, rather than only through CLI). Packager is now basically a CLI to theorg.dspace.content.packager
classes.
org.dspace.content.*
UPDATED CLASSES
org.dspace.content.BitstreamFormat
– HARDCODED Support level text (Are these changes NEEDED?? – Tim)org.dspace.content.Site
– new getURL() methodorg.dspace.content.WorkspaceItem
– add ability to create a WorkSpaceItem with a specified Handleorg.dspace.content.Community
– add ability to create a Community with a specified Handle, also create a SubCommunity or Collection with specified Handleorg.dspace.content.InstallItem
– now supports installing an item with a specified Handle, new restoreItem() method (to restore a pre-existing item).org.dspace.content.Collection
– add ability to create a Collection with a specified Handleorg.dspace.content.Item
– now calls HandleManager.unbindHandle() to remove a Handle.
org.dspace.content.crosswalk.*
NEW CLASSES
org.dspace.content.crosswalk.NullIngestionCrosswalk
– can be used to ignore metadata formats which you don't want to crosswalk during ingest (not used by default)org.dspace.content.crosswalk.NullStreamIngestionCrosswalk
– can be used to ignore metadata formats which you don't want to crosswalk during ingest (not used by default)org.dspace.content.crosswalk.CreativeCommonsTextStreamDisseminationCrosswalk
org.dspace.content.crosswalk.LicenseStreamIngestionCrosswalk
org.dspace.content.crosswalk.CreativeCommonsRDFStreamIngestionCrosswalk
org.dspace.content.crosswalk.AIPDIMCrosswalk
– Crosswalk from DIM to AIPorg.dspace.content.crosswalk.LicenseStreamDisseminationCrosswalk
org.dspace.content.crosswalk.CreativeCommonsRDFStreamDisseminationCrosswalk
org.dspace.content.crosswalk.AIPTechMDCrosswalk
UPDATED CLASSES
org.dspace.content.crosswalk.XSLTIngestionCrosswalk
– several methods are now static, new ingestDIM methodorg.dspace.content.crosswalk.XSLTDisseminationCrosswalk
– now supports dissemination of Community or Collection or Site objects (in addition to Items)org.dspace.content.crosswalk.MODSDisseminationCrosswalk
– now supports MODS dissemination of Community or Collection or Site metadata (in addition to Items)org.dspace.content.crosswalk.XSLTCrosswalk
– HARDCODED mapping of Community/Collection DB columns to DC fields (Are these changes NEEDED?? – Tim)
org.dspace.content.packager.*
NEW CLASSES
org.dspace.content.packager.AbstractPackageIngester
– handles recursive ingests/replaces, so that each packager need not implement its own versionorg.dspace.content.packager.DSpaceAIPDisseminator
– to disseminate AIPsorg.dspace.content.packager.DSpaceAIPIngester
– to ingest/restore AIPs
UPDATED CLASSES
org.dspace.content.packager.METSManifest
– some refactoring & added utility methods to help parse METS files (or grab info from METS files).org.dspace.content.packager.PDFPackager
– refactoring to support updates to PackageIngester (which now uses java.io.File instead of InputStream)org.dspace.content.packager.DSpaceMETSDisseminator
– refactoring to support changes to AbstractMETSDisseminator and allow for dissemination of Site, Community and Collectionsorg.dspace.content.packager.PackageUtils
– new findOrCreateBitstreamFormat(), findDepositLicense() methods (used for ingestion). Also new utility methods to create a DSpace object when ingesting.org.dspace.content.packager.AbstractMETSDisseminator
– MAJOR refactoring to support Site, Community & Collection exports (and code cleanup). This also takes on more of the code once in DSpaceMETSDisseminator, as it is generic to both that class and DSpaceAIPDisseminator.org.dspace.content.packager.PackageParameters
– Added utility methods to determine/set the normal parameters for a packager call (this is to better support calling any Packager via API calls – rather than relying on CLI only)org.dspace.content.packager.DSpaceMETSIngester
– refactoring to work with Site, Community, Collections & to support AbstractMETSIngesterorg.dspace.content.packager.PackageIngester
– this interface now includes ingestAll() and replaceAll() methods (to perform recursive ingest/replace). Also this interface changed to deal with java.io.File instead of InputStream (as Files are easier to deal with when using Zip packages). Also now returns DSpaceObject instead of WorkspaceItem (so that it supports ingestion of Site/Community/Collection packages).org.dspace.content.packager.AbstractMETSIngester
– MAJOR refactoring to support Site, Community & Collection imports (and code cleanup)
org.dspace.handle.*
org.dspace.handle.HandleManager
– unbindHandle() method (to officially unbind handles when objects are deleted), lookup Site Object by Handle suffix "0", getHandleInternal now retuns TableRow
dspace-lni-api
All updates are minor refactoring to support new PackageIngester (which uses File instead of InputStream)
org.dspace.app.dav.DAVCollection
dspace-sword-api
All updates are minor refactoring to support new PackageIngester (which uses File instead of InputStream)
org.dspace.sword.CollectionDepositor
org.dspace.sword.ItemDepositor
org.dspace.sword.SWORDMETSIngester
org.dspace.sword.SimpleFileIngester
org.purl.sword.server.DummyServer
org.purl.sword.server.DepositServlet
org.purl.sword.base.Deposit