From: <jbo...@li...> - 2005-12-09 15:21:44
|
Author: wrzep Date: 2005-12-09 10:21:18 -0500 (Fri, 09 Dec 2005) New Revision: 1753 Added: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Plugin.java Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/ScoreAlgorithmFactory.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/WeightedScoreAlgorithmFactory.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/StatusPlugin.java Log: superclass for status and score plugin http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/ScoreAlgorithmFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/ScoreAlgorithmFactory.java 2005-12-09 15:04:25 UTC (rev 1752) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/ScoreAlgorithmFactory.java 2005-12-09 15:21:18 UTC (rev 1753) @@ -24,12 +24,12 @@ import java.util.Collection; -import org.jboss.forge.status.plugins.StatusPlugin; +import org.jboss.forge.status.plugins.Plugin; /** * @author Pawel Wrzeszcz */ public abstract class ScoreAlgorithmFactory { - public abstract int calculateScore(String projectId, Collection<StatusPlugin> plugins); + public abstract int calculateScore(String projectId, Collection<Plugin> plugins); } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2005-12-09 15:04:25 UTC (rev 1752) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2005-12-09 15:21:18 UTC (rev 1753) @@ -44,6 +44,7 @@ //import org.jboss.forge.status.plugins.InvalidPluginPropertiesException; import org.jboss.forge.status.plugins.InvalidPluginPropertiesException; +import org.jboss.forge.status.plugins.Plugin; import org.jboss.forge.status.plugins.StatusPlugin; import org.jboss.logging.Logger; @@ -65,7 +66,7 @@ private ScoreAlgorithmFactory scoreAlgorithm; private Projects projects; - private List<StatusPlugin> plugins; + private List<Plugin> plugins; private Logger log; @@ -164,13 +165,13 @@ } } - private List<StatusPlugin> getPlugins(Set<Node> pluginsNodes) { - ArrayList<StatusPlugin> plugins = new ArrayList<StatusPlugin>(); + private List<Plugin> getPlugins(Set<Node> pluginsNodes) { + ArrayList<Plugin> plugins = new ArrayList<Plugin>(); for (Iterator iter = pluginsNodes.iterator(); iter.hasNext();) { Node pluginNode = (Node) iter.next(); - StatusPlugin plugin = getPlugin(pluginNode); + Plugin plugin = getPlugin(pluginNode); if (plugin != null) { plugins.add(plugin); @@ -180,7 +181,7 @@ return plugins; } - private StatusPlugin getPlugin(Node pluginNode) { + private Plugin getPlugin(Node pluginNode) { // Get plugin info from pluginNode String pluginType = pluginNode.getNodeName(); @@ -207,24 +208,26 @@ } // Get plugin instance; + Plugin plugin = null; try { + plugin = (Plugin) pluginClass.newInstance(); if (pluginType == STATUS_PLUGIN_ELEMENT) { - StatusPlugin plugin = (StatusPlugin) pluginClass.newInstance(); - plugin.init(pluginName, pluginId, projects, pluginSpecificPropertiesMap); - return plugin; + ((StatusPlugin) plugin).init(pluginName, pluginId, projects, pluginSpecificPropertiesMap); } else { } } catch (InvalidPluginPropertiesException e) { log.warn(e); + return null; } catch (Exception e) { log.error("Plugin class: " + pluginClassString + ". Instantination failed.", e); + return null; } - return null; + return plugin; } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/WeightedScoreAlgorithmFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/WeightedScoreAlgorithmFactory.java 2005-12-09 15:04:25 UTC (rev 1752) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/WeightedScoreAlgorithmFactory.java 2005-12-09 15:21:18 UTC (rev 1753) @@ -24,7 +24,7 @@ import java.util.Collection; import java.util.Iterator; -import org.jboss.forge.status.plugins.StatusPlugin; +import org.jboss.forge.status.plugins.Plugin; /** * @author Pawel Wrzeszcz @@ -33,11 +33,11 @@ public WeightedScoreAlgorithmFactory() {} - public int calculateScore(String projectId, Collection<StatusPlugin> plugins) { + public int calculateScore(String projectId, Collection<Plugin> plugins) { int total = 0; for (Iterator iter = plugins.iterator(); iter.hasNext();) { - StatusPlugin plugin = (StatusPlugin) iter.next(); + Plugin plugin = (Plugin) iter.next(); total += plugin.getValue(projectId); // TODO weights } Added: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Plugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Plugin.java 2005-12-09 15:04:25 UTC (rev 1752) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Plugin.java 2005-12-09 15:21:18 UTC (rev 1753) @@ -0,0 +1,48 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2005, JBoss Inc., and individual contributors as indicated + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ + +package org.jboss.forge.status.plugins; + +import java.util.Map; + +/** +* @author Pawel Wrzeszcz +*/ + +public abstract class Plugin { + + protected Map properties; + + protected String name; + protected String id; + + public void init(String name, String id, Map<String,String> properties) throws InvalidPluginPropertiesException { + this.properties = properties; + this.name = name; + this.id = id; + } + + public abstract int getValue(String projectId); + + public String getId() { return id; }; + public String getName() { return name; }; +} Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/StatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/StatusPlugin.java 2005-12-09 15:04:25 UTC (rev 1752) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/StatusPlugin.java 2005-12-09 15:21:18 UTC (rev 1753) @@ -30,23 +30,12 @@ * @author Pawel Wrzeszcz */ -public abstract class StatusPlugin { +public abstract class StatusPlugin extends Plugin { protected Projects projects; - protected Map properties; - protected String name; - protected String id; - public void init(String name, String id, Projects projects, Map<String,String> properties) throws InvalidPluginPropertiesException { this.projects = projects; - this.properties = properties; - this.name = name; - this.id = id; + init(name, id, properties); } - - public abstract int getValue(String projectId); - - public String getId() { return id; }; - public String getName() { return name; }; } |