From e44247e83eba484130b74cf8d6505e7d91077691 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Tue, 30 Jan 2018 12:07:53 +0100 Subject: [PATCH] - added Event reporting about correction call --- .../metadata_DnxMoveFileOriginalPath.xml | 2 +- .../DnxMoveFileOriginalPath.java | 39 ++++++++++++++++--- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml index 5b215f6..8788ec7 100644 --- a/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml +++ b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml @@ -7,7 +7,7 @@ </fr:x_form> </pl:initParameters> <pl:description>repairs broken file original paths</pl:description> - <pl:version>1.03</pl:version> + <pl:version>1.04</pl:version> <pl:materialType>DIGITAL</pl:materialType> <pl:module>Repository</pl:module> <pl:generalType>TASK</pl:generalType> diff --git a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java index e6dd988..a4358ee 100644 --- a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java +++ b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java @@ -6,14 +6,14 @@ import com.exlibris.digitool.common.dnx.DnxDocumentHelper; import com.exlibris.digitool.exceptions.DigitoolException; import com.exlibris.digitool.repository.api.IEEditor; import com.exlibris.digitool.repository.api.RepositoryTaskPlugin; - +import java.time.LocalDate; import java.util.List; import java.util.Map; public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin { - ExLogger log = ExLogger.getExLogger(DnxMoveFileOriginalPath.class); - + private ExLogger log = ExLogger.getExLogger(DnxMoveFileOriginalPath.class); + private boolean success = true; public DnxMoveFileOriginalPath() { super(); } @@ -22,19 +22,22 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin { log.info("Executing DnxMoveFileOriginalPath for " + ieEditor.getIEPid()); init(initParams); // get all rep pids - List<String> repPids = null; + List<String> repPids; try { repPids = ieEditor.getReps(); } catch (DigitoolException e) { + success = false; e.printStackTrace(); taskResults.addResult(ieEditor.getIEPid(), null, false, "no RepPids found!"); return taskResults; } + // get all file pids for (String repPid: repPids) { - List<String> filePids = null; + List<String> filePids; try { filePids = ieEditor.getFilesForRep( repPid ); } catch (DigitoolException e) { + success = false; e.printStackTrace(); taskResults.addResult(ieEditor.getIEPid(), null, false, "no FilePids found for RepPid=" + repPid + " !"); return taskResults; @@ -44,13 +47,37 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin { replaceFileOriginalPath(ieEditor, repPid, filePid); taskResults.addResult(ieEditor.getIEPid(), null, true, "filepid=" + filePid + " processed"); } catch (DigitoolException e) { + success = false; e.printStackTrace(); taskResults.addResult(ieEditor.getIEPid(), null, false, "unknown Digitool exception: " + e); return taskResults; } } } + // now add an event + try { + DnxDocumentHelper ieDnxH = ieEditor.getDnxHelperForIE(); + List<DnxDocumentHelper.Event> eventList = ieDnxH.getEvents(); + DnxDocumentHelper.Event event = ieDnxH.new Event(); + event.setEventIdentifierType("Rosetta-SupportCase"); + event.setEventIdentifierValue("00490927"); + event.setEventDateTime(LocalDate.now().toString()); + event.setEventType("external repair using DnxMoveFileOriginalPath plugin"); + if (success) { + event.setEventOutcome1("success"); + } else { + event.setEventOutcome1("fail"); + } + event.setEventOutcomeDetail1("IE-PID = '" + ieEditor.getIEPid() + "'"); + event.setEventDescription("fileOriginalPath needs to be updated to correct a mistake in the Submission Application where wrong fileOriginalPath metadata was read and inserted. The result of this mistake was that the fileOriginalPath now includes directories that are too high up in the directory hierarchy."); + event.setLinkingAgentIdentifierType1("HUMAN"); + event.setLinkingAgentIdentifierValue1("plugin programmed by Andreas Romeyke (SLUB Dresden), code available at https://github.com/SLUB-digitalpreservation/fileoriginalpath_plugin4rosetta"); + eventList.add( event ); + ieDnxH.setEvents( eventList ); + } catch (DigitoolException e) { + e.printStackTrace(); + } return taskResults; } @@ -76,7 +103,7 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin { updated = true; } /* if something is updated */ - if (updated == true) { + if (updated) { // update it log.info("update needed for IE " + ieEditor.getIEPid() + " RepPid " + repPid + " FilePid " + filePid + " (old file_original_path='" + currentFileOriginalPath + "') to new file_original_path='" + -- GitLab