/*
* Copyright (c) 2005-2011 Grameen Foundation USA
* All rights reserved.
*
* 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.
*
* See also http://www.apache.org/licenses/LICENSE-2.0.html for an
* explanation of the license and how it is applied.
*/
package org.mifos.test.acceptance.util;
import org.mifos.framework.util.ConfigurationLocator;
import java.io.File;
public class PluginsUtil {
private boolean copyPlugin = false;
private final String pluginName;
private String configPath = new ConfigurationLocator().getConfigurationDirectory();
public PluginsUtil(String pluginName) {
this.pluginName = pluginName;
if (!configPath.endsWith(File.separator)) {
configPath += File.separator;
}
}
@SuppressWarnings("PMD.SignatureDeclareThrowsException")
public void loadPlugin() throws Exception {
String plugin = PluginsUtil.class.getResource("/jars/" + pluginName).getFile();
File pluginFile = new File(configPath + "plugins" + File.separator + pluginName);
File folderPlugins = new File(configPath + "plugins");
if (!folderPlugins.exists()) {
folderPlugins.mkdir();
}
if (!pluginFile.exists()) {
pluginFile.createNewFile();
FileUtil.copyFile(new File(plugin), pluginFile);
copyPlugin = true;
}
}
public void unloadPlugin() {
File pluginFile = new File(configPath + "plugins" + File.separator + pluginName);
if (copyPlugin && pluginFile.exists()) {
pluginFile.delete();
}
}
@SuppressWarnings("PMD.SignatureDeclareThrowsException")
public String movePluginToTemp() throws Exception {
return FileUtil.moveConfigFileToTemp("plugins" + File.separator + pluginName);
}
@SuppressWarnings("PMD.SignatureDeclareThrowsException")
public void movePluginFromTemp(String tempFileName) throws Exception {
FileUtil.moveConfigFileFromTemp("plugins" + File.separator + pluginName, tempFileName);
}
}