Skip to content
Snippets Groups Projects
Commit e8fc5904 authored by felmer's avatar felmer
Browse files

SP-326,BIS-217: Introducing ModuleEnabledChecker (with unit tests) in order to...

SP-326,BIS-217: Introducing ModuleEnabledChecker (with unit tests) in order to check also for AS core plugins by using regex. Replacing 'technology' by 'module' in some names of variables, methods etc.

SVN: 27251
parent 99aebf7b
No related branches found
No related tags found
No related merge requests found
Showing
with 178 additions and 78 deletions
...@@ -165,7 +165,7 @@ public abstract class SystemTestCase extends AssertJUnit ...@@ -165,7 +165,7 @@ public abstract class SystemTestCase extends AssertJUnit
System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX + "core-plugins-folder", System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX + "core-plugins-folder",
SOURCE_TEST_CORE_PLUGINS); SOURCE_TEST_CORE_PLUGINS);
System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX
+ Constants.ENABLED_TECHNOLOGIES_KEY, getEnabledTechnologies()); + Constants.ENABLED_MODULES_KEY, getEnabledTechnologies());
System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX + ROOT_DIR_KEY, System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX + ROOT_DIR_KEY,
rootDir.getAbsolutePath()); rootDir.getAbsolutePath());
System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX System.setProperty(OPENBIS_DSS_SYSTEM_PROPERTIES_PREFIX
......
...@@ -453,7 +453,7 @@ public abstract class AbstractClientService implements IClientService, ...@@ -453,7 +453,7 @@ public abstract class AbstractClientService implements IClientService,
.getWebClientConfiguration()); .getWebClientConfiguration());
} }
applicationInfo.setEnabledTechnologies(ServerUtils.extractSet(getServiceProperties() applicationInfo.setEnabledTechnologies(ServerUtils.extractSet(getServiceProperties()
.getProperty(Constants.ENABLED_TECHNOLOGIES_KEY))); .getProperty(Constants.ENABLED_MODULES_KEY)));
applicationInfo.setCustomImports(extractCustomImportProperties()); applicationInfo.setCustomImports(extractCustomImportProperties());
applicationInfo.setWebapps(extractWebAppsProperties()); applicationInfo.setWebapps(extractWebAppsProperties());
applicationInfo.setArchivingConfigured(isArchivingConfigured()); applicationInfo.setArchivingConfigured(isArchivingConfigured());
......
...@@ -99,15 +99,14 @@ public final class CorePluginTable extends AbstractBusinessObject implements ICo ...@@ -99,15 +99,14 @@ public final class CorePluginTable extends AbstractBusinessObject implements ICo
if (false == StringUtils.isEmpty(masterDataScript)) if (false == StringUtils.isEmpty(masterDataScript))
{ {
runInitializeMasterDataScript(plugin, masterDataScript); runInitializeMasterDataScript(plugin, masterDataScript);
CorePluginPE pluginPE = CorePluginTranslator.translate(plugin, masterDataScript);
getCorePluginDAO().createCorePlugins(Collections.singletonList(pluginPE));
operationLog.info(plugin + " installed succesfully.");
} else } else
{ {
operationLog.info(String.format("No '%s' script found for '%s'. Skipping..", operationLog.info(String.format("No '%s' script found for '%s'. Skipping..",
AsCorePluginPaths.INIT_MASTER_DATA_SCRIPT, plugin)); AsCorePluginPaths.INIT_MASTER_DATA_SCRIPT, plugin));
} }
CorePluginPE pluginPE = CorePluginTranslator.translate(plugin, masterDataScript);
getCorePluginDAO().createCorePlugins(Collections.singletonList(pluginPE));
operationLog.info(plugin + " installed succesfully.");
} }
private void runInitializeMasterDataScript(CorePlugin plugin, String masterDataScript) private void runInitializeMasterDataScript(CorePlugin plugin, String masterDataScript)
......
...@@ -16,8 +16,7 @@ ...@@ -16,8 +16,7 @@
package ch.systemsx.cisd.openbis.generic.server.coreplugin; package ch.systemsx.cisd.openbis.generic.server.coreplugin;
import java.util.HashSet; import java.util.ArrayList;
import java.util.Set;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
...@@ -28,6 +27,7 @@ import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse; ...@@ -28,6 +27,7 @@ import ch.systemsx.cisd.openbis.generic.server.ICommonServerForInternalUse;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin;
import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner; import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner;
import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType; import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType;
import ch.systemsx.cisd.openbis.generic.shared.coreplugin.ModuleEnabledChecker;
import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO;
import ch.systemsx.cisd.openbis.generic.shared.util.ServerUtils; import ch.systemsx.cisd.openbis.generic.shared.util.ServerUtils;
...@@ -42,7 +42,7 @@ public class CorePluginRegistrator implements InitializingBean ...@@ -42,7 +42,7 @@ public class CorePluginRegistrator implements InitializingBean
private String pluginsFolderName; private String pluginsFolderName;
private Set<String> enabledTechnologies = new HashSet<String>(); private ModuleEnabledChecker moduleEnabledChecker;
/** /**
* Loads and installs the deployed core plugins. Invoked from the Spring container after the * Loads and installs the deployed core plugins. Invoked from the Spring container after the
...@@ -59,7 +59,7 @@ public class CorePluginRegistrator implements InitializingBean ...@@ -59,7 +59,7 @@ public class CorePluginRegistrator implements InitializingBean
String sessionToken = getSessionToken(); String sessionToken = getSessionToken();
for (CorePlugin plugin : pluginScanner.scanForPlugins()) for (CorePlugin plugin : pluginScanner.scanForPlugins())
{ {
if (enabledTechnologies.contains(plugin.getName())) if (moduleEnabledChecker.isModuleEnabled(plugin.getName()))
{ {
try try
{ {
...@@ -85,7 +85,9 @@ public class CorePluginRegistrator implements InitializingBean ...@@ -85,7 +85,9 @@ public class CorePluginRegistrator implements InitializingBean
public void setEnabledTechnologies(String listOfEnabledTechnologies) public void setEnabledTechnologies(String listOfEnabledTechnologies)
{ {
enabledTechnologies = ServerUtils.extractSet(listOfEnabledTechnologies); moduleEnabledChecker =
new ModuleEnabledChecker(new ArrayList<String>(
ServerUtils.extractSet(listOfEnabledTechnologies)));
} }
public void setCommonServer(ICommonServerForInternalUse commonServer) public void setCommonServer(ICommonServerForInternalUse commonServer)
......
...@@ -25,7 +25,7 @@ public class Constants ...@@ -25,7 +25,7 @@ public class Constants
{ {
public static final String USER_PARAMETER = "user"; public static final String USER_PARAMETER = "user";
public static final String ENABLED_TECHNOLOGIES_KEY = "enabled-modules"; public static final String ENABLED_MODULES_KEY = "enabled-modules";
public static final int MAX_SPEED = 100; public static final int MAX_SPEED = 100;
......
...@@ -20,7 +20,6 @@ import java.io.File; ...@@ -20,7 +20,6 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
...@@ -30,10 +29,8 @@ import java.util.Map.Entry; ...@@ -30,10 +29,8 @@ import java.util.Map.Entry;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import ch.systemsx.cisd.common.exception.ConfigurationFailureException; import ch.systemsx.cisd.common.exception.ConfigurationFailureException;
import ch.systemsx.cisd.common.exception.EnvironmentFailureException; import ch.systemsx.cisd.common.exception.EnvironmentFailureException;
...@@ -43,6 +40,7 @@ import ch.systemsx.cisd.common.logging.LogCategory; ...@@ -43,6 +40,7 @@ import ch.systemsx.cisd.common.logging.LogCategory;
import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.logging.LogFactory;
import ch.systemsx.cisd.common.logging.LogLevel; import ch.systemsx.cisd.common.logging.LogLevel;
import ch.systemsx.cisd.common.properties.PropertyParametersUtil; import ch.systemsx.cisd.common.properties.PropertyParametersUtil;
import ch.systemsx.cisd.common.properties.PropertyUtils;
import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder; import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.CorePlugin;
import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType; import ch.systemsx.cisd.openbis.generic.shared.coreplugin.CorePluginScanner.ScannerType;
...@@ -98,27 +96,21 @@ public class CorePluginsInjector ...@@ -98,27 +96,21 @@ public class CorePluginsInjector
public void injectCorePlugins(Properties properties) public void injectCorePlugins(Properties properties)
{ {
String corePluginsFolderPath = CorePluginsUtils.getCorePluginsFolder(properties, scannerType); String corePluginsFolderPath =
CorePluginsUtils.getCorePluginsFolder(properties, scannerType);
injectCorePlugins(properties, corePluginsFolderPath); injectCorePlugins(properties, corePluginsFolderPath);
} }
public void injectCorePlugins(Properties properties, String corePluginsFolderPath) public void injectCorePlugins(Properties properties, String corePluginsFolderPath)
{ {
List<String> enabledTechnologiesRegexs = ModuleEnabledChecker moduleEnabledChecker = new ModuleEnabledChecker(properties);
getList(properties, List<String> disabledPlugins = PropertyUtils.getList(properties, DISABLED_CORE_PLUGINS_KEY);
ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY);
List<Pattern> enabledTechnologiesPatterns = new ArrayList<Pattern>();
for (String regex : enabledTechnologiesRegexs)
{
enabledTechnologiesPatterns.add(Pattern.compile(regex));
}
List<String> disabledPlugins = getList(properties, DISABLED_CORE_PLUGINS_KEY);
PluginKeyBundles pluginKeyBundles = new PluginKeyBundles(properties, pluginTypes); PluginKeyBundles pluginKeyBundles = new PluginKeyBundles(properties, pluginTypes);
Set<String> pluginNames = new HashSet<String>(); Set<String> pluginNames = new HashSet<String>();
pluginKeyBundles.addAndCheckUniquePluginNames(pluginNames); pluginKeyBundles.addAndCheckUniquePluginNames(pluginNames);
Map<IPluginType, Map<String, NamedCorePluginFolder>> plugins = Map<IPluginType, Map<String, NamedCorePluginFolder>> plugins =
scanForCorePlugins(corePluginsFolderPath, enabledTechnologiesPatterns, scanForCorePlugins(corePluginsFolderPath, moduleEnabledChecker, disabledPlugins,
disabledPlugins, pluginNames); pluginNames);
for (Entry<IPluginType, Map<String, NamedCorePluginFolder>> entry : plugins.entrySet()) for (Entry<IPluginType, Map<String, NamedCorePluginFolder>> entry : plugins.entrySet())
{ {
IPluginType pluginType = entry.getKey(); IPluginType pluginType = entry.getKey();
...@@ -177,35 +169,8 @@ public class CorePluginsInjector ...@@ -177,35 +169,8 @@ public class CorePluginsInjector
} }
} }
private List<String> getList(Properties properties, String key)
{
List<String> set = new ArrayList<String>();
String property = properties.getProperty(key);
if (StringUtils.isNotBlank(property))
{
String[] splittedProperty = property.split(",");
for (String term : splittedProperty)
{
set.add(term.trim());
}
}
return set;
}
private boolean isTechnologyEnabled(List<Pattern> enabledTechnologiesPatterns, String technology)
{
for (Pattern pattern : enabledTechnologiesPatterns)
{
if (pattern.matcher(technology).matches())
{
return true;
}
}
return false;
}
private Map<IPluginType, Map<String, NamedCorePluginFolder>> scanForCorePlugins( private Map<IPluginType, Map<String, NamedCorePluginFolder>> scanForCorePlugins(
String corePluginsFolderPath, List<Pattern> enabledTechnologies, String corePluginsFolderPath, ModuleEnabledChecker moduleEnabledChecker,
List<String> disabledPlugins, Set<String> pluginNames) List<String> disabledPlugins, Set<String> pluginNames)
{ {
Map<IPluginType, Map<String, NamedCorePluginFolder>> typeToPluginsMap = Map<IPluginType, Map<String, NamedCorePluginFolder>> typeToPluginsMap =
...@@ -215,10 +180,10 @@ public class CorePluginsInjector ...@@ -215,10 +180,10 @@ public class CorePluginsInjector
List<CorePlugin> plugins = scanner.scanForPlugins(); List<CorePlugin> plugins = scanner.scanForPlugins();
for (CorePlugin corePlugin : plugins) for (CorePlugin corePlugin : plugins)
{ {
String technology = corePlugin.getName(); String module = corePlugin.getName();
if (isTechnologyEnabled(enabledTechnologies, technology) == false) if (moduleEnabledChecker.isModuleEnabled(module) == false)
{ {
logger.log(LogLevel.INFO, "Core plugins for technology '" + technology logger.log(LogLevel.INFO, "Core plugins for module '" + module
+ "' are not enabled."); + "' are not enabled.");
continue; continue;
} }
...@@ -241,13 +206,13 @@ public class CorePluginsInjector ...@@ -241,13 +206,13 @@ public class CorePluginsInjector
{ {
String pluginName = pluginFolder.getName(); String pluginName = pluginFolder.getName();
NamedCorePluginFolder plugin = NamedCorePluginFolder plugin =
new NamedCorePluginFolder(technology, pluginType, pluginFolder); new NamedCorePluginFolder(module, pluginType, pluginFolder);
String fullPluginName = plugin.getFullPluginName(); String fullPluginName = plugin.getFullPluginName();
if (isDisabled(disabledPlugins, fullPluginName) == false) if (isDisabled(disabledPlugins, fullPluginName) == false)
{ {
String fullPluginKey = String fullPluginKey =
pluginType.getPrefix() pluginType.getPrefix()
+ pluginType.getPluginKey(technology, pluginName, + pluginType.getPluginKey(module, pluginName,
plugin.getPluginProperties()); plugin.getPluginProperties());
assertAndAddPluginName(fullPluginKey, pluginNames, pluginType); assertAndAddPluginName(fullPluginKey, pluginNames, pluginType);
Map<String, NamedCorePluginFolder> map = Map<String, NamedCorePluginFolder> map =
......
/*
* Copyright 2012 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.systemsx.cisd.openbis.generic.shared.coreplugin;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import ch.systemsx.cisd.common.exception.ConfigurationFailureException;
import ch.systemsx.cisd.common.properties.PropertyUtils;
import ch.systemsx.cisd.openbis.generic.shared.Constants;
/**
* Helper class for checking enabled module.
*
* @author Franz-Josef Elmer
*/
public class ModuleEnabledChecker
{
private final List<Pattern> enabledModulesPatterns;
public ModuleEnabledChecker(Properties properties)
{
this(PropertyUtils.getList(properties, Constants.ENABLED_MODULES_KEY));
}
public ModuleEnabledChecker(List<String> moduleRegExs)
{
enabledModulesPatterns = new ArrayList<Pattern>();
for (String regex : moduleRegExs)
{
try
{
enabledModulesPatterns.add(Pattern.compile(regex));
} catch (PatternSyntaxException ex)
{
throw new ConfigurationFailureException("Invalid regular expression: "
+ ex.getMessage());
}
}
}
public boolean isModuleEnabled(String module)
{
for (Pattern pattern : enabledModulesPatterns)
{
if (pattern.matcher(module).matches())
{
return true;
}
}
return false;
}
}
...@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.util; ...@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -68,7 +69,7 @@ public class ServerUtils ...@@ -68,7 +69,7 @@ public class ServerUtils
*/ */
public static Set<String> extractSet(String commaSeparatedList) public static Set<String> extractSet(String commaSeparatedList)
{ {
Set<String> result = new HashSet<String>(); Set<String> result = new LinkedHashSet<String>();
if (commaSeparatedList != null && commaSeparatedList.startsWith("$") == false) if (commaSeparatedList != null && commaSeparatedList.startsWith("$") == false)
{ {
String[] terms = commaSeparatedList.split(","); String[] terms = commaSeparatedList.split(",");
......
...@@ -27,6 +27,7 @@ import org.testng.annotations.BeforeMethod; ...@@ -27,6 +27,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import ch.systemsx.cisd.common.exception.ConfigurationFailureException; import ch.systemsx.cisd.common.exception.ConfigurationFailureException;
import ch.systemsx.cisd.common.logging.BufferedAppender;
import ch.systemsx.cisd.common.test.RecordingMatcher; import ch.systemsx.cisd.common.test.RecordingMatcher;
import ch.systemsx.cisd.openbis.generic.server.coreplugin.AsCorePluginPaths; import ch.systemsx.cisd.openbis.generic.server.coreplugin.AsCorePluginPaths;
import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.IMasterDataScriptRegistrationRunner; import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl.IMasterDataScriptRegistrationRunner;
...@@ -50,9 +51,12 @@ public class CorePluginTableTest extends AbstractBOTest ...@@ -50,9 +51,12 @@ public class CorePluginTableTest extends AbstractBOTest
private CorePluginTable pluginTable; private CorePluginTable pluginTable;
private BufferedAppender logRecorder;
@BeforeMethod @BeforeMethod
public void setUp() public void setUp()
{ {
logRecorder = new BufferedAppender();
scriptRunner = context.mock(IMasterDataScriptRegistrationRunner.class); scriptRunner = context.mock(IMasterDataScriptRegistrationRunner.class);
pluginResourceLoader = context.mock(ICorePluginResourceLoader.class); pluginResourceLoader = context.mock(ICorePluginResourceLoader.class);
pluginTable = new CorePluginTable(daoFactory, EXAMPLE_SESSION, scriptRunner); pluginTable = new CorePluginTable(daoFactory, EXAMPLE_SESSION, scriptRunner);
...@@ -80,19 +84,13 @@ public class CorePluginTableTest extends AbstractBOTest ...@@ -80,19 +84,13 @@ public class CorePluginTableTest extends AbstractBOTest
one(pluginResourceLoader).tryLoadToString(plugin, one(pluginResourceLoader).tryLoadToString(plugin,
AsCorePluginPaths.INIT_MASTER_DATA_SCRIPT); AsCorePluginPaths.INIT_MASTER_DATA_SCRIPT);
will(returnValue(null)); will(returnValue(null));
one(corePluginDAO).createCorePlugins(with(createdPluginsMatcher));
} }
}); });
pluginTable.registerPlugin(plugin, pluginResourceLoader); pluginTable.registerPlugin(plugin, pluginResourceLoader);
assertEquals(1, createdPluginsMatcher.getRecordedObjects().size()); assertEquals("No 'initialize-master-data.py' script found for "
assertEquals(1, createdPluginsMatcher.recordedObject().size()); + "'Core Plugin[name='A', version='2']'. Skipping..", logRecorder.getLogContent());
CorePluginPE createdPluginPE = createdPluginsMatcher.recordedObject().get(0);
assertEquals(plugin.getName(), createdPluginPE.getName());
assertEquals(plugin.getVersion(), createdPluginPE.getVersion());
assertNull(createdPluginPE.getMasterDataRegistrationScript());
} }
@Test @Test
......
...@@ -107,7 +107,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -107,7 +107,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
corePluginsFolderProperty = corePluginsFolderProperty =
CorePluginsUtils.CORE_PLUGINS_FOLDER_KEY + " = " + corePluginsFolder + "\n"; CorePluginsUtils.CORE_PLUGINS_FOLDER_KEY + " = " + corePluginsFolder + "\n";
enabledScreeningProperty = enabledScreeningProperty =
ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_MODULES_KEY
+ " = screening\n"; + " = screening\n";
} }
...@@ -268,7 +268,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -268,7 +268,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
injector.injectCorePlugins(properties); injector.injectCorePlugins(properties);
assertProperties(corePluginsFolderProperty assertProperties(corePluginsFolderProperty
+ ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY + ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_MODULES_KEY
+ " = prot.*, screening\n" + "inputs = my-drop-box\n" + "my-drop-box.script1 = " + " = prot.*, screening\n" + "inputs = my-drop-box\n" + "my-drop-box.script1 = "
+ myDropBox + "/script1.py\n" + "my-drop-box.script2 = " + myDropBox + myDropBox + "/script1.py\n" + "my-drop-box.script2 = " + myDropBox
+ "/script2.py\n" + "my-processing.script = " + myProcessingPlugin + "/script.py\n" + "/script2.py\n" + "my-processing.script = " + myProcessingPlugin + "/script.py\n"
...@@ -507,7 +507,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -507,7 +507,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
injector.injectCorePlugins(properties); injector.injectCorePlugins(properties);
assertProperties(corePluginsFolderProperty assertProperties(corePluginsFolderProperty
+ ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY + ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_MODULES_KEY
+ " = screening, proteomics\n" + "prefix.dss = dss1[proteomics], dss1[screening]\n" + " = screening, proteomics\n" + "prefix.dss = dss1[proteomics], dss1[screening]\n"
+ "prefix.dss1[proteomics].driver = beta\n" + "prefix.dss1[proteomics].driver = beta\n"
+ "prefix.dss1[proteomics].url = blub\n" + "prefix.dss1[proteomics].url = blub\n"
...@@ -536,7 +536,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -536,7 +536,7 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
injector.injectCorePlugins(properties); injector.injectCorePlugins(properties);
assertProperties(corePluginsFolderProperty assertProperties(corePluginsFolderProperty
+ ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY + ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_MODULES_KEY
+ " = screening, dev\n" + "prefix.dss = dss1[screening], dss2[screening]\n" + " = screening, dev\n" + "prefix.dss = dss1[screening], dss2[screening]\n"
+ "prefix.dss1[screening].driver = alpha\n" + "prefix.dss1[screening].driver = alpha\n"
+ "prefix.dss1[screening].url = blabla\n" + "prefix.dss1[screening].url = blabla\n"
...@@ -583,13 +583,13 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -583,13 +583,13 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
}); });
} }
private void prepareNotEnabledTechnology(final String technology) private void prepareNotEnabledTechnology(final String module)
{ {
context.checking(new Expectations() context.checking(new Expectations()
{ {
{ {
one(logger).log(LogLevel.INFO, one(logger).log(LogLevel.INFO,
"Core plugins for technology '" + technology + "' are not enabled."); "Core plugins for module '" + module + "' are not enabled.");
} }
}); });
} }
...@@ -621,9 +621,9 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase ...@@ -621,9 +621,9 @@ public class CorePluginsInjectorTest extends AbstractFileSystemTestCase
Properties properties = new ExtendedProperties(); Properties properties = new ExtendedProperties();
properties.setProperty(CorePluginsUtils.CORE_PLUGINS_FOLDER_KEY, properties.setProperty(CorePluginsUtils.CORE_PLUGINS_FOLDER_KEY,
corePluginsFolder.getPath()); corePluginsFolder.getPath());
properties.setProperty( properties
ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_TECHNOLOGIES_KEY, .setProperty(ch.systemsx.cisd.openbis.generic.shared.Constants.ENABLED_MODULES_KEY,
technologies); technologies);
return properties; return properties;
} }
......
/*
* Copyright 2012 ETH Zuerich, CISD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.systemsx.cisd.openbis.generic.shared.coreplugin;
import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
import org.testng.annotations.Test;
import ch.systemsx.cisd.common.exception.ConfigurationFailureException;
import ch.systemsx.cisd.openbis.generic.shared.Constants;
/**
* @author Franz-Josef Elmer
*/
public class ModuleEnabledCheckerTest extends TestCase
{
@Test
public void testFromList()
{
ModuleEnabledChecker checker = new ModuleEnabledChecker(Arrays.asList("abc", "abc-.*"));
assertEquals(
"[true, false, true, false]",
Arrays.asList(checker.isModuleEnabled("abc"), checker.isModuleEnabled("abcd"),
checker.isModuleEnabled("abc-d"), checker.isModuleEnabled("ABC"))
.toString());
}
@Test
public void testFromProperty()
{
Properties properties = new Properties();
properties.setProperty(Constants.ENABLED_MODULES_KEY, "a.*, beta");
ModuleEnabledChecker checker = new ModuleEnabledChecker(properties);
assertEquals(
"[true, false, true, false]",
Arrays.asList(checker.isModuleEnabled("abc"),
checker.isModuleEnabled("betablocker"), checker.isModuleEnabled("beta"),
checker.isModuleEnabled("ABC")).toString());
}
@Test(expectedExceptions = ConfigurationFailureException.class)
public void testWithInvalidRegEx()
{
new ModuleEnabledChecker(Arrays.asList("[a-b)*"));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment