public Plugin installPlugin()

in taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java [163:197]


	public Plugin installPlugin(Path pluginFile) throws PluginException {
		File file = pluginFile.toFile();
		// check if already installed
		synchronized (installedPlugins) {
			for (Plugin plugin : installedPlugins.values()) {
				if (plugin.getFile().equals(file)) {
					return plugin;
				}
			}
			// check plugin file
			if (file.exists()) {
				new PluginException(String.format("Plugin file %1$s does not exist", file));
			}
			if (file.isFile()) {
				new PluginException(String.format("Plugin file %1$s is not a file", file));
			}
			if (!file.canRead()) {
				new PluginException(String.format("Plugin file %1$s is not readable", file));
			}
			// install plugin from plugin file
			logger.info(String.format("Installing plugin from '%s'", file));
			JarFile jarFile;
			try {
				jarFile = new JarFile(file);
			} catch (IOException e) {
				throw new PluginException(String.format("Error reading plugin file %1$s",
						file), e);
			}
			Plugin plugin = installPlugin(jarFile);
			installedPlugins.put(plugin.getId(), plugin);
			availablePlugins.remove(plugin.getId());
			postEvent(PluginManager.PLUGIN_INSTALLED);
			return plugin;
		}
	}