private static void processCommonArgs(String arg, LinkedList<String> argList, ArgType type) { String param, pluginName; PluginParam pluginParam; switch (arg) { case ADD_PLUGIN: param = Utils.sanitizePath(nextArg(arg, argList)); pluginName = param.substring(param.lastIndexOf("/") + 1, param.length()); pluginParam = pluginParams.get(pluginName); if (pluginParam == null) { pluginParams.put(pluginName, pluginParam = new PluginParam()); } pluginParam.setPath(param); break; case ADD_CONFIG: param = nextArg(arg, argList); pluginName = param.substring(0, param.indexOf(":")); String configPath = param.substring(param.indexOf(":") + 1, param.length()); configPath = Utils.sanitizePath(configPath); pluginParam = pluginParams.get(pluginName); if (pluginParam == null) { pluginParams.put(pluginName, pluginParam = new PluginParam()); } pluginParam.getConfigFiles().add(configPath); break; default: printUsageAndExit(type); } }
public static Properties getPluginProperties(String plugin) { ArgsHolder.PluginParam pluginParam = ArgsHolder.getPluginParams().get(plugin); Properties properties = new Properties(); File pluginDir = pluginParam != null && pluginParam.getPath() != null ? new File(pluginParam.getPath()) : new File(Directories.PLUGINS_DIR, plugin); File confDir = new File(pluginDir, "conf"); File file = new File(confDir, PROPERTIES_FILE); if (!file.exists()) { log.warn("Could not find a plugin descriptor : " + file); return properties; } try { loadProperties(properties, file); } catch (IOException e) { log.error(String.format("Exception while loading plugin specific properties file %s.", PROPERTIES_FILE), e); } return properties; }
Path tempConfigDir = null; if (pluginParam != null) { if (pluginParam.getPath() != null) { File extDir = new File(pluginParam.getPath()); if (extDir.exists() && extDir.isDirectory()) { addConfAndLib(classpathBuilder, extDir); if (!pluginParam.getConfigFiles().isEmpty()) { tempConfigDir = Files.createTempDirectory("radargun-" + plugin + "-" + slaveIndex); classpathBuilder.append(File.pathSeparatorChar).append(tempConfigDir.toAbsolutePath()); for (String configFile : pluginParam.getConfigFiles()) { File file = new File(configFile); Files.copy(file.toPath(), tempConfigDir.resolve(file.getName())); if (pp.getPath() != null) { command.add(ArgsHolder.ADD_PLUGIN).add(pp.getPath()); for (String configFile : pp.getConfigFiles()) { command.add(ArgsHolder.ADD_CONFIG).add(entry.getKey() + ":" + configFile);
ArgsHolder.PluginParam plugin1 = pluginParams.get("plugin1"); assertNotNull(plugin1); assertEquals("/foo/plugin1", plugin1.getPath()); List<String> configFiles1 = plugin1.getConfigFiles(); assertTrue(configFiles1.contains("/foo/config.xml")); assertTrue(configFiles1.contains("/foo/jgroups.xml")); assertEquals("/bar/plugin2", plugin2.getPath()); List<String> configFiles2 = plugin2.getConfigFiles(); assertTrue(configFiles2.contains("/bar/config.xml"));