From af72a814f345b91ebcc2ab00af6b98d3313fcce4 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 11 Jun 2012 08:24:35 +0000 Subject: [PATCH] SP-122, BIS-81: installer adds/modifies property enabled-technologies in DSS service.properties and ignores 'disabled-core-plugins'. SVN: 25631 --- .../SetEnableTechnologiesVariableAction.java | 109 +----------------- ...tEnableTechnologiesVariableActionTest.java | 23 ++-- 2 files changed, 16 insertions(+), 116 deletions(-) diff --git a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableAction.java b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableAction.java index 99f04cd28a5..2900beabc31 100644 --- a/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableAction.java +++ b/installation/source/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableAction.java @@ -19,18 +19,12 @@ package ch.systemsx.cisd.openbis.installer.izpack; import static ch.systemsx.cisd.openbis.installer.izpack.SetTechnologyCheckBoxesAction.ENABLED_TECHNOLOGIES_KEY; import java.io.File; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - import com.izforge.izpack.api.data.AutomatedInstallData; import com.izforge.izpack.api.data.PanelActionConfiguration; import com.izforge.izpack.api.handler.AbstractUIHandler; import com.izforge.izpack.data.PanelAction; -import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.shared.basic.utils.CommaSeparatedListBuilder; /** @@ -42,8 +36,6 @@ import ch.systemsx.cisd.common.shared.basic.utils.CommaSeparatedListBuilder; public class SetEnableTechnologiesVariableAction implements PanelAction { static final String ENABLED_TECHNOLOGIES_VARNAME = "ENABLED_TECHNOLOGIES"; - static final String DISABLED_TECHNOLOGIES_VARNAME = "DISABLED_TECHNOLOGIES"; - static final String DISABLED_CORE_PLUGINS_KEY = "disabled-core-plugins"; private final SetTechnologyCheckBoxesAction technologyCheckBoxesAction = new SetTechnologyCheckBoxesAction(); @@ -71,93 +63,16 @@ public class SetEnableTechnologiesVariableAction implements PanelAction void updateEnabledTechnologyProperty(AutomatedInstallData data, boolean isFirstTimeInstallation, File installDir) { - data.setVariable(DISABLED_TECHNOLOGIES_VARNAME, createListOfDisabledTechnologies(data)); String newTechnologyList = createListOfEnabledTechnologies(data); data.setVariable(ENABLED_TECHNOLOGIES_VARNAME, newTechnologyList); if (isFirstTimeInstallation == false) { - File configFile = new File(installDir, Utils.AS_PATH + Utils.SERVICE_PROPERTIES_PATH); - Utils.updateOrAppendProperty(configFile, ENABLED_TECHNOLOGIES_KEY, newTechnologyList); - updateDisabledDssPluginsProperty(data, installDir); - } - } - - private void updateDisabledDssPluginsProperty(AutomatedInstallData data, File installDir) - { - Set<String> disabledTechnologies = new LinkedHashSet<String>(); - Set<String> technologies = new LinkedHashSet<String>(); - for (String technology : GlobalInstallationContext.TECHNOLOGIES) - { - String technologyFlag = data.getVariable(technology); - if (Boolean.FALSE.toString().equalsIgnoreCase(technologyFlag)) - { - disabledTechnologies.add(technology.toLowerCase()); - } - technologies.add(technology.toLowerCase()); + File asConfigFile = new File(installDir, Utils.AS_PATH + Utils.SERVICE_PROPERTIES_PATH); + Utils.updateOrAppendProperty(asConfigFile, ENABLED_TECHNOLOGIES_KEY, newTechnologyList); + File dssConfigFile = + new File(installDir, Utils.DSS_PATH + Utils.SERVICE_PROPERTIES_PATH); + Utils.updateOrAppendProperty(dssConfigFile, ENABLED_TECHNOLOGIES_KEY, newTechnologyList); } - File configFile = new File(installDir, Utils.DSS_PATH + Utils.SERVICE_PROPERTIES_PATH); - List<String> list = FileUtilities.loadToStringList(configFile); - updateDisabledDssPluginsProperty(list, technologies, disabledTechnologies, installDir); - Utils.updateConfigFile(configFile, list); - } - - private void updateDisabledDssPluginsProperty(List<String> list, Set<String> technologies, - Set<String> disabledTechnologies, File installDir) - { - for (int i = 0; i < list.size(); i++) - { - String line = list.get(i); - if (line.startsWith(DISABLED_CORE_PLUGINS_KEY)) - { - String[] property = line.split("="); - String oldPluginsList = property.length < 2 ? "" : property[1]; - String pluginsList = - mergeWithDisabledPluginsList(oldPluginsList, technologies, - disabledTechnologies); - list.set(i, DISABLED_CORE_PLUGINS_KEY + " = " + pluginsList); - return; - } - } - String pluginsList; - if (Utils.hasCorePluginsFolder(installDir)) - { - pluginsList = mergeWithDisabledPluginsList("", technologies, disabledTechnologies); - } else - { - // A very old openBIS instance does not have a core plugins folder. Thus, all - // core plugins have to be disabled in order to avoid possible conflicts of - // existing DSS service.properties with a core plugin. - pluginsList = mergeWithDisabledPluginsList("", technologies, technologies); - } - list.add(DISABLED_CORE_PLUGINS_KEY + " = " + pluginsList); - } - - private String mergeWithDisabledPluginsList(String disabledPlugins, Set<String> technologies, - Set<String> disabledTechnologies) - { - CommaSeparatedListBuilder builder = new CommaSeparatedListBuilder(); - Set<String> plugins = new HashSet<String>(); - String[] terms = disabledPlugins.split(","); - for (String term : terms) - { - String plugin = term.trim(); - if (plugin.length() > 0) - { - if (technologies.contains(plugin) == false || disabledTechnologies.contains(plugin)) - { - builder.append(plugin); - plugins.add(plugin); - } - } - } - for (String disabledTechnology : disabledTechnologies) - { - if (plugins.contains(disabledTechnology) == false) - { - builder.append(disabledTechnology); - } - } - return builder.toString(); } private String createListOfEnabledTechnologies(AutomatedInstallData data) @@ -174,18 +89,4 @@ public class SetEnableTechnologiesVariableAction implements PanelAction return builder.toString(); } - private String createListOfDisabledTechnologies(AutomatedInstallData data) - { - CommaSeparatedListBuilder builder = new CommaSeparatedListBuilder(); - for (String technology : GlobalInstallationContext.TECHNOLOGIES) - { - String technologyFlag = data.getVariable(technology); - if (technologyFlag == null || Boolean.FALSE.toString().equalsIgnoreCase(technologyFlag)) - { - builder.append(technology.toLowerCase()); - } - } - return builder.toString(); - } - } diff --git a/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableActionTest.java b/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableActionTest.java index e6002f6e15d..c8103b132e4 100644 --- a/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableActionTest.java +++ b/installation/sourceTest/java/ch/systemsx/cisd/openbis/installer/izpack/SetEnableTechnologiesVariableActionTest.java @@ -18,7 +18,6 @@ package ch.systemsx.cisd.openbis.installer.izpack; import static ch.systemsx.cisd.openbis.installer.izpack.GlobalInstallationContext.TECHNOLOGY_PROTEOMICS; import static ch.systemsx.cisd.openbis.installer.izpack.GlobalInstallationContext.TECHNOLOGY_SCREENING; -import static ch.systemsx.cisd.openbis.installer.izpack.SetEnableTechnologiesVariableAction.DISABLED_CORE_PLUGINS_KEY; import static ch.systemsx.cisd.openbis.installer.izpack.SetEnableTechnologiesVariableAction.ENABLED_TECHNOLOGIES_VARNAME; import static ch.systemsx.cisd.openbis.installer.izpack.SetTechnologyCheckBoxesAction.ENABLED_TECHNOLOGIES_KEY; @@ -133,7 +132,7 @@ public class SetEnableTechnologiesVariableActionTest extends AbstractFileSystemT assertEquals("[abc = 123, " + ENABLED_TECHNOLOGIES_KEY + "=proteomics]", FileUtilities .loadToStringList(configFile).toString()); - assertEquals("[" + DISABLED_CORE_PLUGINS_KEY + " = proteomics, screening, illumina-ngs]", + assertEquals("[, " + ENABLED_TECHNOLOGIES_KEY + " = proteomics]", FileUtilities.loadToStringList(dssConfigFile).toString()); } @@ -165,7 +164,7 @@ public class SetEnableTechnologiesVariableActionTest extends AbstractFileSystemT assertEquals("[abc = 123, " + ENABLED_TECHNOLOGIES_KEY + " = proteomics, screening, answer = 42]", FileUtilities .loadToStringList(configFile).toString()); - assertEquals("[" + DISABLED_CORE_PLUGINS_KEY + " = ]", FileUtilities + assertEquals("[, " + ENABLED_TECHNOLOGIES_KEY + " = proteomics, screening]", FileUtilities .loadToStringList(dssConfigFile).toString()); } @@ -181,15 +180,15 @@ public class SetEnableTechnologiesVariableActionTest extends AbstractFileSystemT assertEquals("[abc = 123, " + ENABLED_TECHNOLOGIES_KEY + " = screening]", FileUtilities .loadToStringList(configFile).toString()); - assertEquals("[" + DISABLED_CORE_PLUGINS_KEY + " = proteomics]", FileUtilities + assertEquals("[, " + ENABLED_TECHNOLOGIES_KEY + " = screening]", FileUtilities .loadToStringList(dssConfigFile).toString()); } @Test - public void testUpdateAppendPropertyWithEmptyDisabledCorePluginsProperty() + public void testUpdateAppendPropertyWithEmptyEnabledTechnologyDssProperty() { FileUtilities.writeToFile(configFile, "abc = 123"); - FileUtilities.writeToFile(dssConfigFile, DISABLED_CORE_PLUGINS_KEY + "= "); + FileUtilities.writeToFile(dssConfigFile, ENABLED_TECHNOLOGIES_KEY + "= "); Properties variables = new Properties(); variables.setProperty(TECHNOLOGY_PROTEOMICS, "false"); variables.setProperty(TECHNOLOGY_SCREENING, "true"); @@ -198,23 +197,23 @@ public class SetEnableTechnologiesVariableActionTest extends AbstractFileSystemT assertEquals("[abc = 123, " + ENABLED_TECHNOLOGIES_KEY + " = screening]", FileUtilities .loadToStringList(configFile).toString()); - assertEquals("[" + DISABLED_CORE_PLUGINS_KEY + " = proteomics]", FileUtilities + assertEquals("[" + ENABLED_TECHNOLOGIES_KEY + " = screening]", FileUtilities .loadToStringList(dssConfigFile).toString()); } @Test - public void testUpdateDisabledPluginsForSwitchedTechnologies() + public void testUpdateEnabledTechnologiesDssForSwitchedTechnologies() { FileUtilities.writeToFile(configFile, "abc = 123"); - FileUtilities.writeToFile(dssConfigFile, "a = b\n" + DISABLED_CORE_PLUGINS_KEY - + "= screening, proteomics:a:b\n" + "gamma = alpha"); + FileUtilities.writeToFile(dssConfigFile, "a = b\n" + ENABLED_TECHNOLOGIES_KEY + + "= proteomics\n" + "gamma = alpha"); Properties variables = new Properties(); variables.setProperty(TECHNOLOGY_PROTEOMICS, "false"); variables.setProperty(TECHNOLOGY_SCREENING, "true"); updateEnabledTechnologyProperties(variables, false); - assertEquals("[a = b, " + DISABLED_CORE_PLUGINS_KEY + " = proteomics:a:b, proteomics, " + assertEquals("[a = b, " + ENABLED_TECHNOLOGIES_KEY + " = screening, " + "gamma = alpha]", FileUtilities.loadToStringList(dssConfigFile).toString()); } @@ -222,7 +221,7 @@ public class SetEnableTechnologiesVariableActionTest extends AbstractFileSystemT public void testUpdateDisabledPluginsForSameTechnology() { FileUtilities.writeToFile(configFile, "abc = 123"); - FileUtilities.writeToFile(dssConfigFile, "a = b\n" + DISABLED_CORE_PLUGINS_KEY + FileUtilities.writeToFile(dssConfigFile, "a = b\n" + ENABLED_TECHNOLOGIES_KEY + "= proteomics, proteomics:a:b\n" + "gamma = alpha"); Properties variables = new Properties(); variables.setProperty(TECHNOLOGY_PROTEOMICS, "false"); -- GitLab