From e00be455f4669e7b516e4293874074693740df7b Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Thu, 14 Feb 2013 07:26:58 +0000
Subject: [PATCH] SP-80, BIS-55: bug fixed

SVN: 28372
---
 .../izpack/ExecuteSetupScriptsAction.java     | 17 +++++++-
 .../izpack/ExecuteSetupScriptsActionTest.java | 42 ++++++++++++++++---
 2 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsAction.java b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsAction.java
index cf7c25e338a..08a92941655 100644
--- a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsAction.java
+++ b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsAction.java
@@ -53,6 +53,7 @@ public class ExecuteSetupScriptsAction extends AbstractScriptExecutor implements
     
     private final String[] KEYS = {DATA_SOURCES_KEY, POST_REGISTRATION_TASKS_KEY, MAINTENANCE_PLUGINS_KEY, PROCESSING_PLUGINS_KEY};
     private final String[] TERMS = {PATHINFO_DB_DATA_SOURCE, PATHINFO_DB_FEEDING_TASK, PATHINFO_DB_DELETION_TASK, PATHINFO_DB_CHECK};
+    private final String[] CLASS_POSTFIX = {"version-holder-class", "class", "class", "class" };
 
     /**
      * executed for first time installations.
@@ -123,7 +124,21 @@ public class ExecuteSetupScriptsAction extends AbstractScriptExecutor implements
         {
             for (int i = 0; i < KEYS.length; i++)
             {
-                Utils.addTermToPropertyList(dssServicePropertiesFile, KEYS[i], TERMS[i]);
+                String key = KEYS[i];
+                String newTerm = TERMS[i];
+                String classProperty = newTerm + "." + CLASS_POSTFIX[i];
+                int indexOfDot = key.indexOf('.');
+                if (indexOfDot >= 0)
+                {
+                    classProperty = key.substring(0, indexOfDot) + "." + classProperty;
+                }
+                String className =
+                        Utils.tryToGetProperties(dssServicePropertiesFile).getProperty(
+                                classProperty);
+                if (className != null)
+                {
+                    Utils.addTermToPropertyList(dssServicePropertiesFile, key, newTerm);
+                }
             }
         } else
         {
diff --git a/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsActionTest.java b/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsActionTest.java
index 26c29142a9d..ae8442326ad 100644
--- a/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsActionTest.java
+++ b/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/ExecuteSetupScriptsActionTest.java
@@ -92,19 +92,21 @@ public class ExecuteSetupScriptsActionTest extends AbstractFileSystemTestCase
                 properties.getProperty(ExecuteSetupScriptsAction.POST_REGISTRATION_TASKS_KEY));
         assertEquals("post-registration, " + ExecuteSetupScriptsAction.PATHINFO_DB_DELETION_TASK,
                 properties.getProperty(ExecuteSetupScriptsAction.MAINTENANCE_PLUGINS_KEY));
-        
+        assertEquals(ExecuteSetupScriptsAction.PATHINFO_DB_CHECK,
+                properties.getProperty(ExecuteSetupScriptsAction.PROCESSING_PLUGINS_KEY));
+
         action.enablePathinfoDB(false, workingDirectory);
 
         properties = loadProperties(dssServicePropertiesFile);
-        assertEquals("",
-                properties.getProperty(ExecuteSetupScriptsAction.DATA_SOURCES_KEY));
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.DATA_SOURCES_KEY));
         assertEquals("",
                 properties.getProperty(ExecuteSetupScriptsAction.POST_REGISTRATION_TASKS_KEY));
         assertEquals("post-registration",
                 properties.getProperty(ExecuteSetupScriptsAction.MAINTENANCE_PLUGINS_KEY));
-        
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.PROCESSING_PLUGINS_KEY));
+
         action.enablePathinfoDB(true, workingDirectory);
-        
+
         properties = loadProperties(dssServicePropertiesFile);
         assertEquals(ExecuteSetupScriptsAction.PATHINFO_DB_DATA_SOURCE,
                 properties.getProperty(ExecuteSetupScriptsAction.DATA_SOURCES_KEY));
@@ -112,7 +114,35 @@ public class ExecuteSetupScriptsActionTest extends AbstractFileSystemTestCase
                 properties.getProperty(ExecuteSetupScriptsAction.POST_REGISTRATION_TASKS_KEY));
         assertEquals("post-registration, " + ExecuteSetupScriptsAction.PATHINFO_DB_DELETION_TASK,
                 properties.getProperty(ExecuteSetupScriptsAction.MAINTENANCE_PLUGINS_KEY));
-}
+        assertEquals(ExecuteSetupScriptsAction.PATHINFO_DB_CHECK,
+                properties.getProperty(ExecuteSetupScriptsAction.PROCESSING_PLUGINS_KEY));
+    }
+
+    @Test
+    public void testDisableAndEnablePathinfoDBNotDefinedInServiceProperties() throws Exception
+    {
+        FileUtilities.writeToFile(dssServicePropertiesFile, "");
+        
+        action.enablePathinfoDB(false, workingDirectory);
+        
+        Properties properties = loadProperties(dssServicePropertiesFile);
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.DATA_SOURCES_KEY));
+        assertEquals("",
+                properties.getProperty(ExecuteSetupScriptsAction.POST_REGISTRATION_TASKS_KEY));
+        assertEquals("",
+                properties.getProperty(ExecuteSetupScriptsAction.MAINTENANCE_PLUGINS_KEY));
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.PROCESSING_PLUGINS_KEY));
+        
+        action.enablePathinfoDB(true, workingDirectory);
+        
+        properties = loadProperties(dssServicePropertiesFile);
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.DATA_SOURCES_KEY));
+        assertEquals("",
+                properties.getProperty(ExecuteSetupScriptsAction.POST_REGISTRATION_TASKS_KEY));
+        assertEquals("",
+                properties.getProperty(ExecuteSetupScriptsAction.MAINTENANCE_PLUGINS_KEY));
+        assertEquals("", properties.getProperty(ExecuteSetupScriptsAction.PROCESSING_PLUGINS_KEY));
+    }
     
     @Test
     public void testEnableAlreadyEnabledPathinfoDB() throws Exception
-- 
GitLab