From: <jbo...@li...> - 2006-01-06 22:44:40
|
Author: wrzep Date: 2006-01-06 17:44:34 -0500 (Fri, 06 Jan 2006) New Revision: 2009 Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Plugins.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/DownloadsPlugin.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java 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/ScorePlugin.java 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/WeightedScorePlugin.java Log: changed way of passing properties to the plugins to fit common standards http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Plugins.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Plugins.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Plugins.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -24,6 +24,8 @@ import java.util.HashMap; import java.util.Map; +import java.util.Properties; + import org.jboss.forge.common.XmlTools; import org.jboss.forge.common.projects.Projects; import org.jboss.forge.status.plugins.InvalidPluginPropertiesException; @@ -105,7 +107,8 @@ return null; } - Node pluginSpecificPropertiesNode = XmlTools.getFirstNodeWithName(pluginNode, PLUGIN_PROPERTIES_ELEMENT); + Node pluginPropertiesNode = XmlTools.getFirstNodeWithName(pluginNode, PLUGIN_PROPERTIES_ELEMENT); + Properties pluginProperties = getPluginProperties(pluginPropertiesNode); // Get plugin instance; Plugin plugin = null; @@ -113,9 +116,9 @@ plugin = (Plugin) pluginClass.newInstance(); if (scorePlugin) { - ((ScorePlugin) plugin).init(pluginId, statusPlugins, pluginSpecificPropertiesNode); + ((ScorePlugin) plugin).init(pluginId, statusPlugins, pluginProperties); } else { /* status plugin */ - ((StatusPlugin) plugin).init(pluginId, portalName, projects, pluginSpecificPropertiesNode); + ((StatusPlugin) plugin).init(pluginId, portalName, projects, pluginProperties); } } catch (InvalidPluginPropertiesException e) { @@ -132,6 +135,32 @@ return plugin; } + private Properties getPluginProperties(Node propertiesNode) { + + if (propertiesNode == null) + return null; + + Properties props = new Properties(); + NodeList nodes = propertiesNode.getChildNodes(); + + for (int i = 0; i < nodes.getLength(); i++) { + Node node = nodes.item(i); + + if ((node.getNodeType() == Node.ELEMENT_NODE) + && (node.getNodeName() == "property")){ + + String propertyName = XmlTools.getChildNodeValue(node, "name"); + String propertyValue = XmlTools.getChildNodeValue(node, "value"); + + if ((propertyName != null) && (propertyValue != null)) { + props.setProperty(propertyName, propertyValue); + } + } + } + + return props; + } + /** * @param pluginId * @return Plugin with the given <code>pluginId</code> Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -28,8 +28,6 @@ import org.apache.xerces.parsers.DOMParser; import org.jboss.portal.common.context.DelegateContext; -import org.jboss.portlet.JBossRenderRequest; - import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/DownloadsPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/DownloadsPlugin.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/DownloadsPlugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -23,11 +23,12 @@ package org.jboss.forge.status.plugins; +import java.util.Properties; + import org.jboss.forge.common.projects.DownloadCounterTools; import org.jboss.forge.common.projects.Projects; import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.aop.Inject; -import org.w3c.dom.Node; /** * This Plugin returns sum of all downloads for given project id name. @@ -48,8 +49,8 @@ super(); } - public void init(String id, String portalName, Projects projects, Node propertiesNode) throws InvalidPluginPropertiesException { - super.init(id,portalName,projects,propertiesNode); + public void init(String id, String portalName, Projects projects, Properties properties) throws InvalidPluginPropertiesException { + super.init(id,portalName,projects,properties); this.portalName = portalName; } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/KosmosStatusPlugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -22,7 +22,6 @@ package org.jboss.forge.status.plugins; -import org.jboss.forge.common.XmlTools; import org.jboss.forge.common.projects.Projects; import org.jboss.logging.Logger; @@ -30,9 +29,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Properties; -import org.w3c.dom.Node; - /** * @author Pawel Wrzeszcz * Superclass for kosmos-service based plugins. @@ -62,10 +60,10 @@ } public void init(String id, String portalName, Projects projects, - Node propertiesNode) throws InvalidPluginPropertiesException { - super.init(id, portalName, projects,propertiesNode); + Properties properties) throws InvalidPluginPropertiesException { + super.init(id, portalName, projects,properties); - getServiceProperty(propertiesNode); + getServiceProperty(properties); } /** @@ -74,17 +72,15 @@ * @param propertiesNode Node with plugin specyfic properties * @throws InvalidPluginPropertiesException */ - private void getServiceProperty(Node propertiesNode) + private void getServiceProperty(Properties properties) throws InvalidPluginPropertiesException { - Map<String,String> properties = - XmlTools.getMapFromNodeElements(propertiesNode); if (properties.isEmpty()) { throw new InvalidPluginPropertiesException( "Missing properties for plugin: " + getId() + "."); } - serviceURL = properties.get(getKosmosServiceProperty()); + serviceURL = properties.getProperty(getKosmosServiceProperty()); if (serviceURL == null) { throw new InvalidPluginPropertiesException( Modified: 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 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Plugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -22,7 +22,7 @@ package org.jboss.forge.status.plugins; -import org.w3c.dom.Node; +import java.util.Properties; /** * @author Pawel Wrzeszcz @@ -32,21 +32,22 @@ public abstract class Plugin { /** Node from xml file which holds properties specyfic to this plugin */ - protected Node propertiesNode; + protected Properties properties; /** Plugin id */ protected String id; /** * @param id Plugin id - * @param propertiesNode Node with plugin specyfic properties + * @param properties Node with plugin specyfic properties + * or null if properties are not specified * @throws InvalidPluginPropertiesException * Thrown when properties passed in <code>propertiesNode</code> * are incorrect or missed. */ - public void init(String id, Node propertiesNode) + public void init(String id, Properties properties) throws InvalidPluginPropertiesException { - this.propertiesNode = propertiesNode; + this.properties = properties; this.id = id; } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ScorePlugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -23,8 +23,8 @@ package org.jboss.forge.status.plugins; import java.util.Map; +import java.util.Properties; -import org.w3c.dom.Node; /** * @author Pawel Wrzeszcz @@ -35,10 +35,10 @@ protected Map<String,Plugin> plugins; public void init(String id, Map<String, Plugin> plugins, - Node propertiesNode) + Properties properties) throws InvalidPluginPropertiesException { this.plugins = plugins; - init(id, propertiesNode); + init(id, properties); } } 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 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/StatusPlugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -22,10 +22,10 @@ package org.jboss.forge.status.plugins; +import java.util.Properties; + import org.jboss.forge.common.projects.Projects; -import org.w3c.dom.Node; - /** * @author Pawel Wrzeszcz * Superclass for the status plugins in the Status Matrix. @@ -47,9 +47,11 @@ * @param propertiesNode Node with plugin specyfic properties * @throws InvalidPluginPropertiesException */ - public void init(String id, String portalName, Projects projects, Node propertiesNode) throws InvalidPluginPropertiesException { + public void init(String id, String portalName, + Projects projects, Properties properties) + throws InvalidPluginPropertiesException { this.projects = projects; this.portalName = portalName; - init(id, propertiesNode); + init(id, properties); } } Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/WeightedScorePlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/WeightedScorePlugin.java 2006-01-06 21:00:44 UTC (rev 2008) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/WeightedScorePlugin.java 2006-01-06 22:44:34 UTC (rev 2009) @@ -23,12 +23,12 @@ package org.jboss.forge.status.plugins; import java.util.Hashtable; +import java.util.Iterator; import java.util.Map; +import java.util.Properties; -import org.jboss.forge.common.XmlTools; import org.jboss.logging.Logger; -import org.w3c.dom.Node; @@ -51,14 +51,22 @@ @Override - public void init(String id, Node propertiesNode) throws InvalidPluginPropertiesException { - super.init(id, propertiesNode); - Map<String,String> props = XmlTools.getMapFromNodeElements(propertiesNode); + public void init(String id, Properties props) throws InvalidPluginPropertiesException { + super.init(id, props); + properties = new Hashtable<String,Float>(props.size()); - for (String key : props.keySet()) { + + for (Iterator iter = props.keySet().iterator(); iter.hasNext();) { + String key = (String) iter.next(); + /* + * Properties=Hashtable<Object,Object>, so we can't use for(String key : properties) + * We have to cast instead :( + * -Pawel + */ + try { - Float value = Float.parseFloat(props.get(key)); - properties.put(key,value); + Float value = Float.parseFloat(props.getProperty(key)); + properties.put((String) key,value); } catch (NumberFormatException e) { Logger log = Logger.getLogger(this.getClass()); log.error("[STATUS] Incorrect weight format in xml descriptor: "+props.get(key)); |