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 cf7c25e338a2f71112f28df6d3babc80b73afcfa..08a92941655d568cad475e3b628111e64e480825 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 26c29142a9d4e4ab2e4a6cd9aa1e813a3a29369c..ae8442326ad2dde167b0c93977e304c91d310762 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