From ee8f98f1e61cfa69604a7228348b4ab20a4f81c0 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Mon, 29 Jan 2018 18:13:13 +0100
Subject: [PATCH] - added taskResult if fine - fixed replace bug - added
 PLUGIN-INF

---
 .../metadata_DnxMoveFileOriginalPath.xml      | 31 +++++++++++++++++++
 .../DnxMoveFileOriginalPath.java              | 12 ++++---
 2 files changed, 38 insertions(+), 5 deletions(-)
 create mode 100644 src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml

diff --git a/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml
new file mode 100644
index 0000000..5b215f6
--- /dev/null
+++ b/src/PLUGIN-INF/metadata_DnxMoveFileOriginalPath.xml
@@ -0,0 +1,31 @@
+<pl:metadata-config xmlns:pl="http://www.exlibrisgroup.com/Plugins/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
+  <pl:pluginTypeName>RepositoryTaskPlugin</pl:pluginTypeName>
+  <pl:deployName>DnxMoveFileOriginalPath</pl:deployName>
+  <pl:className>org.slub.rosetta.plugins.repositoryTask.DnxMoveFileOriginalPath</pl:className>
+  <pl:initParameters>
+  <fr:x_form  xmlns:fr="http://com/exlibris/digitool/common/forms/xmlbeans">
+	</fr:x_form>
+  </pl:initParameters>
+  <pl:description>repairs broken file original paths</pl:description>
+  <pl:version>1.03</pl:version>
+  <pl:materialType>DIGITAL</pl:materialType>
+  <pl:module>Repository</pl:module>
+  <pl:generalType>TASK</pl:generalType>
+  <pl:publicApi>N</pl:publicApi>
+  <pl:implType>java</pl:implType>
+  <pl:contactPerson>
+    <contact_info xmlns="http://www.exlibrisgroup.com/Plugins/1.0/">
+     <contactType>admin</contactType>
+      <firstName>Andreas</firstName>
+      <lastName>Romeyke</lastName>
+      <telephone1></telephone1>
+      <telephone2></telephone2>
+      <email>romeyke@slub-dresden.de</email>
+      <address1></address1>
+      <address2></address2>
+      <city></city>
+      <zipCode></zipCode>
+      <country></country>
+    </contact_info>
+  </pl:contactPerson>
+</pl:metadata-config>
diff --git a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
index b480bca..e6dd988 100644
--- a/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
+++ b/src/org/slub/rosetta/plugins/repositoryTask/DnxMoveFileOriginalPath.java
@@ -42,6 +42,7 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
             for (String filePid: filePids) {
                 try {
                     replaceFileOriginalPath(ieEditor, repPid, filePid);
+                    taskResults.addResult(ieEditor.getIEPid(), null, true, "filepid=" + filePid + " processed");
                 } catch (DigitoolException e) {
                     e.printStackTrace();
                     taskResults.addResult(ieEditor.getIEPid(), null, false, "unknown Digitool exception: " + e);
@@ -49,6 +50,7 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
                 }
             }
 		}
+
 		return taskResults;
 		
 	}
@@ -62,15 +64,15 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
         String updatedFileOriginalPath = currentFileOriginalPath;
         boolean updated = false;
         if (currentFileOriginalPath.startsWith("file://data/")) {
-            updatedFileOriginalPath.replaceAll("^file://data/", "file://");
+            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^file://data/", "file://");
             updated = true;
         }
         else if (currentFileOriginalPath.startsWith("data/")) {
-            updatedFileOriginalPath.replaceAll("^data/", "file://");
+            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^data/", "file://");
             updated = true;
         }
         else if (currentFileOriginalPath.startsWith("/data/")) {
-            updatedFileOriginalPath.replaceAll("^/data/", "file://");
+            updatedFileOriginalPath=currentFileOriginalPath.replaceFirst("^/data/", "file://");
             updated = true;
         }
         /* if something is updated */
@@ -80,13 +82,13 @@ public class DnxMoveFileOriginalPath implements RepositoryTaskPlugin {
                     " (old file_original_path='" + currentFileOriginalPath + "') to new file_original_path='" +
                     updatedFileOriginalPath + "'"
             );
-            ieGfs.setFileOriginalPath(updatedFileOriginalPath);
-            ieDnxH.setGeneralFileCharacteristics(ieGfs);
         } else {
             // Nothing to do
             log.info("No update needed for IE " + ieEditor.getIEPid() + " RepPid " + repPid + " FilePid " +
                     filePid + " (file_original_path='" + currentFileOriginalPath + "')");
         }
+        ieGfs.setFileOriginalPath(updatedFileOriginalPath);
+        ieDnxH.setGeneralFileCharacteristics(ieGfs);
     }
 
 
-- 
GitLab