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); } }
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())); command.add(ArgsHolder.ADD_PLUGIN).add(pp.getPath()); for (String configFile : pp.getConfigFiles()) { command.add(ArgsHolder.ADD_CONFIG).add(entry.getKey() + ":" + configFile);
assertNotNull(plugin1); assertEquals("/foo/plugin1", plugin1.getPath()); List<String> configFiles1 = plugin1.getConfigFiles(); assertTrue(configFiles1.contains("/foo/config.xml")); assertTrue(configFiles1.contains("/foo/jgroups.xml")); assertNotNull(plugin2); assertEquals("/bar/plugin2", plugin2.getPath()); List<String> configFiles2 = plugin2.getConfigFiles(); assertTrue(configFiles2.contains("/bar/config.xml"));