Interface ItemExportService

  • All Known Implementing Classes:
    ItemExportServiceImpl

    public interface ItemExportService
    Item exporter to create simple AIPs for DSpace content. Currently exports individual items, or entire collections. For instructions on use, see printUsage() method.

    ItemExport creates the simple AIP package that the importer also uses. It consists of:

    /exportdir/42/ (one directory per item) / dublin_core.xml - qualified dublin core in RDF schema / contents - text file, listing one file per line / file1 - files contained in the item / file2 / ...

    issues -doesn't handle special characters in metadata (needs to turn &'s into &, etc.)

    Modified by David Little, UCSD Libraries 12/21/04 to allow the registration of files (bitstreams) into DSpace.

    Author:
    David Little, Jay Paz
    • Field Detail

      • COMPRESSED_EXPORT_MIME_TYPE

        static final String COMPRESSED_EXPORT_MIME_TYPE
        used for export download
        See Also:
        Constant Field Values
    • Method Detail

      • exportAsZip

        void exportAsZip​(Context context,
                         Iterator<Item> items,
                         String destDirName,
                         String zipFileName,
                         int seqStart,
                         boolean migrate,
                         boolean excludeBitstreams)
                  throws Exception
        Method to perform an export and save it as a zip file.
        Parameters:
        context - The DSpace Context
        items - The items to export
        destDirName - The directory to save the export in
        zipFileName - The name to save the zip file as
        seqStart - The first number in the sequence
        migrate - Whether to use the migrate option or not
        excludeBitstreams - Whether to exclude bitstreams or not
        Throws:
        Exception - if error
      • createDownloadableExport

        void createDownloadableExport​(DSpaceObject dso,
                                      Context context,
                                      boolean migrate)
                               throws Exception
        Convenience methot to create export a single Community, Collection, or Item
        Parameters:
        dso - - the dspace object to export
        context - - the dspace context
        migrate - Whether to use the migrate option or not
        Throws:
        Exception - if error
      • createDownloadableExport

        void createDownloadableExport​(List<DSpaceObject> dsObjects,
                                      Context context,
                                      boolean migrate)
                               throws Exception
        Convenience method to export a List of dspace objects (Community, Collection or Item)
        Parameters:
        dsObjects - - List containing dspace objects
        context - - the dspace context
        migrate - Whether to use the migrate option or not
        Throws:
        Exception - if error
      • createDownloadableExport

        void createDownloadableExport​(DSpaceObject dso,
                                      Context context,
                                      String additionalEmail,
                                      boolean migrate)
                               throws Exception
        Convenience methot to create export a single Community, Collection, or Item
        Parameters:
        dso - - the dspace object to export
        context - - the dspace context
        additionalEmail - - cc email to use
        migrate - Whether to use the migrate option or not
        Throws:
        Exception - if error
      • createDownloadableExport

        void createDownloadableExport​(List<DSpaceObject> dsObjects,
                                      Context context,
                                      String additionalEmail,
                                      boolean migrate)
                               throws Exception
        Convenience method to export a List of dspace objects (Community, Collection or Item)
        Parameters:
        dsObjects - - List containing dspace objects
        context - - the dspace context
        additionalEmail - - cc email to use
        migrate - Whether to use the migrate option or not
        Throws:
        Exception - if error
      • assembleFileName

        String assembleFileName​(String type,
                                EPerson eperson,
                                Date date)
                         throws Exception
        Create a file name based on the date and eperson
        Parameters:
        type - Type of object (as string)
        eperson - - eperson who requested export and will be able to download it
        date - - the date the export process was created
        Returns:
        String representing the file name in the form of 'export_yyy_MMM_dd_count_epersonID'
        Throws:
        Exception - if error
      • getExportDownloadDirectory

        String getExportDownloadDirectory​(EPerson ePerson)
                                   throws Exception
        Use config file entry for org.dspace.app.itemexport.download.dir and id of the eperson to create a download directory name
        Parameters:
        ePerson - - the eperson who requested export archive
        Returns:
        String representing a directory in the form of org.dspace.app.itemexport.download.dir/epersonID
        Throws:
        Exception - if error
      • getExportWorkDirectory

        String getExportWorkDirectory()
                               throws Exception
        Returns config file entry for org.dspace.app.itemexport.work.dir
        Returns:
        String representing config file entry for org.dspace.app.itemexport.work.dir
        Throws:
        Exception - if error
      • getExportDownloadInputStream

        InputStream getExportDownloadInputStream​(String fileName,
                                                 EPerson eperson)
                                          throws Exception
        Used to read the export archived. Inteded for download.
        Parameters:
        fileName - the name of the file to download
        eperson - the eperson requesting the download
        Returns:
        an input stream of the file to be downloaded
        Throws:
        Exception - if error
      • getExportFileSize

        long getExportFileSize​(Context context,
                               String fileName)
                        throws Exception
        Get the file size of the export archive represented by the file name.
        Parameters:
        context - DSpace context
        fileName - name of the file to get the size.
        Returns:
        size as long
        Throws:
        Exception - if error
      • getExportFileLastModified

        long getExportFileLastModified​(Context context,
                                       String fileName)
                                throws Exception
        Get the last modified date of the export archive represented by the file name.
        Parameters:
        context - DSpace context
        fileName - name of the file to get the size.
        Returns:
        date as long
        Throws:
        Exception - if error
        See Also:
        File.lastModified()
      • canDownload

        boolean canDownload​(Context context,
                            String fileName)
        The file name of the export archive contains the eperson id of the person who created it When requested for download this method can check if the person requesting it is the same one that created it
        Parameters:
        context - dspace context
        fileName - the file name to check auths for
        Returns:
        true if it is the same person false otherwise
      • getExportsAvailable

        List<String> getExportsAvailable​(EPerson eperson)
                                  throws Exception
        Reads the download directory for the eperson to see if any export archives are available
        Parameters:
        eperson - EPerson object
        Returns:
        a list of file names representing export archives that have been processed
        Throws:
        Exception - if error
      • deleteOldExportArchives

        void deleteOldExportArchives​(EPerson eperson)
                              throws Exception
        A clean up method that is ran before a new export archive is created. It uses the config file entry 'org.dspace.app.itemexport.life.span.hours' to determine if the current exports are too old and need pruging
        Parameters:
        eperson - - the eperson to clean up
        Throws:
        Exception - if error
      • deleteOldExportArchives

        void deleteOldExportArchives()
                              throws Exception
        A clean up method that is ran before a new export archive is created. It uses the config file entry 'org.dspace.app.itemexport.life.span.hours' to determine if the current exports are too old and need purgeing Removes all old exports, not just those for the person doing the export.
        Throws:
        Exception - if error
      • emailSuccessMessage

        void emailSuccessMessage​(Context context,
                                 EPerson eperson,
                                 String fileName)
                          throws javax.mail.MessagingException
        Since the archive is created in a new thread we are unable to communicate with calling method about success or failure. We accomplis this communication with email instead. Send a success email once the export archive is complete and ready for download
        Parameters:
        context - - the current Context
        eperson - - eperson to send the email to
        fileName - - the file name to be downloaded. It is added to the url in the email
        Throws:
        javax.mail.MessagingException - if error
      • emailErrorMessage

        void emailErrorMessage​(EPerson eperson,
                               String error)
                        throws javax.mail.MessagingException
        Since the archive is created in a new thread we are unable to communicate with calling method about success or failure. We accomplis this communication with email instead. Send an error email if the export archive fails
        Parameters:
        eperson - - EPerson to send the error message to
        error - - the error message
        Throws:
        javax.mail.MessagingException - if error
      • zip

        void zip​(String strSource,
                 String target)
          throws Exception
        Zip source to target
        Parameters:
        strSource - source file
        target - target file
        Throws:
        Exception - if error
      • setHandler

        void setHandler​(DSpaceRunnableHandler handler)
        Set the DSpace Runnable Handler
        Parameters:
        handler -