Author: wrzep Date: 2005-11-20 05:16:10 -0500 (Sun, 20 Nov 2005) New Revision: 1600 Added: 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/WeightedScoreAlgorithmFactory.java Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java trunk/forge/portal-extensions/forge-status/project.xml 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/StatusDescriptor.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/JiraStatusPlugin.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ResolvedIssuesStatusPlugin.java trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java Log: added simlple project score calculating attempts to fix bug (getting data from kosmos-server) - minor code changes, changed hessian jar version, didn't help http://jira.jboss.com/jira/browse/JBLAB-415 Pawel Modified: trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java =================================================================== --- trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-podcast/src/java/org/jboss/forge/podcast/Podcast.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -141,6 +141,8 @@ ItemIF item = (ItemIF) allItemsArr[i]; DelegateContext nodeContext = new DelegateContext(); + // filling the context with item information + nodeContext.put("no", i+1); nodeContext.put("title", item.getTitle()); nodeContext.put("description", item.getDescription()); @@ -157,7 +159,13 @@ if (link != null) { nodeContext.put("link", link.toString()); } + + // itunes tags + + + // filling the context with enclosure information + ItemEnclosureIF enclosure = item.getEnclosure(); if (enclosure != null) { DelegateContext enclosureContext = nodeContext.next("enclosure-link"); @@ -171,6 +179,8 @@ } } + // filling the context with channel information + ChannelIF channel = item.getChannel(); nodeContext.put("channel-title", channel.getTitle()); Modified: trunk/forge/portal-extensions/forge-status/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-status/project.xml 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/project.xml 2005-11-20 10:16:10 UTC (rev 1600) @@ -61,15 +61,15 @@ <war.bundle>true</war.bundle> </properties> </dependency> + + <dependency> + <groupId>hessian</groupId> + <artifactId>hessian</artifactId> + <version>3.0.1</version> <!-- WE NEED 3.0.13 --> + <properties> + <war.bundle>true</war.bundle> + </properties> + </dependency> - <dependency> - <groupId>com.caucho</groupId> - <artifactId>hessian</artifactId> - <version>2.1.12</version> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - </dependencies> </project> Added: 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-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/ScoreAlgorithmFactory.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -0,0 +1,35 @@ +/* + * 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; + +import java.util.Collection; + +import org.jboss.forge.status.plugins.StatusPlugin; + +/** +* @author Pawel Wrzeszcz +*/ +public abstract class ScoreAlgorithmFactory { + + public abstract int calculateScore(String projectId, Collection<StatusPlugin> 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-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -51,31 +51,42 @@ import org.w3c.dom.NamedNodeMap; import org.jboss.forge.status.plugins.StatusPlugin; +import org.jboss.forge.status.plugins.OneStatusPlugin; +import org.jboss.forge.status.plugins.SvnStatusPlugin; /** * @author Pawel Wrzeszcz */ public class Status extends AbstractDescriptor { - private final static String PROJECT_ELEMENT = "project"; - private final static String PLUGIN_ELEMENT = "plugin"; + private final static String PROJECT_ELEMENT = "project"; + private final static String PLUGIN_ELEMENT = "plugin"; + + private final static String PLUGIN_ID_ELEMENT = "id"; + private final static String PLUGIN_NAME_ELEMENT = "name"; + private final static String PLUGIN_CLASS_ELEMENT = "class"; + private final static String PLUGIN_WEIGHT_ELEMENT = "weight"; + private String portalName; + private ScoreAlgorithmFactory scoreAlgorithm; private Set<String> projects; private List<StatusPlugin> plugins; - Status(String portalName, Node projectsRoot, Node pluginsRoot) { + Status(String portalName, Node projectsRoot, Node pluginsRoot, ScoreAlgorithmFactory scoreAlgorithm) { this.portalName = portalName; + this.scoreAlgorithm = scoreAlgorithm; - // Get the projects projects = new HashSet<String>(); projects = getStringsFromNode(projectsRoot, PROJECT_ELEMENT); // Get the plugins - Set<String> pluginsNames = getStringsFromNode(pluginsRoot, PLUGIN_ELEMENT); - plugins = getPlugins(pluginsNames); + HashSet<String> pluginElementSet = new HashSet<String>(); + pluginElementSet.add(PLUGIN_ELEMENT); + Set<Node> pluginsNodes = getChildNodesSet(pluginsRoot, pluginElementSet); + plugins = getPlugins(pluginsNodes); } @@ -99,7 +110,8 @@ } - // Fill context with appropiate values for each project + /* Fill the context with appropiate values (from each plugin) for each project, */ + /* including final score as well. */ int position = 1; for (Iterator iter = projects.iterator(); iter.hasNext(); position++) { @@ -118,6 +130,9 @@ projectContext.put("name", projectId); projectContext.put("position", position); + int projectScore = calculateScore(projectId); + projectContext.put("score", projectScore); + fillEntries(projectContext, projectId); } @@ -132,14 +147,24 @@ } } - List<StatusPlugin> getPlugins(Set<String> pluginsNames) { + List<StatusPlugin> getPlugins(Set<Node> pluginsNodes) { ArrayList<StatusPlugin> p = new ArrayList<StatusPlugin>(); - for (Iterator iter = pluginsNames.iterator(); iter.hasNext();) { - String pluginName = (String) iter.next(); + HashSet pluginsElements = new HashSet<String>(); + pluginsElements.add(PLUGIN_ID_ELEMENT); + pluginsElements.add(PLUGIN_NAME_ELEMENT); + pluginsElements.add(PLUGIN_CLASS_ELEMENT); + pluginsElements.add(PLUGIN_WEIGHT_ELEMENT); + + for (Iterator iter = pluginsNodes.iterator(); iter.hasNext();) { + Node pluginNode = (Node) iter.next(); + Map<String,Node> pluginProperties = getChildNodesMap(pluginNode, pluginsElements); + try { - Class pluginClass = Class.forName(pluginName); + String pluginClassString = XmlTools.unmarshallText(pluginProperties.get("class")); + System.out.println("pluginClassString " + pluginClassString); + Class pluginClass = Class.forName(pluginClassString); p.add((StatusPlugin) pluginClass.newInstance()); } catch (Exception e) { e.printStackTrace(); @@ -149,6 +174,9 @@ return p; } + private int calculateScore(String projectId) { + return scoreAlgorithm.calculateScore(projectId, plugins); + } /** * For the given Node, computes Set of it's child Nodes. 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 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -65,8 +65,9 @@ /* if ((root.getNodeType() == Node.ELEMENT_NODE) && (root.getNodeName().equals("projects"))) {}*/ - status = new Status(portalName, projectsRoot, pluginsRoot); + status = new Status(portalName, projectsRoot, pluginsRoot, new WeightedScoreAlgorithmFactory()); + fillContext(); } catch (Exception e) { Added: 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-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/WeightedScoreAlgorithmFactory.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -0,0 +1,44 @@ +/* + * 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; + +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; + +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import org.jboss.forge.status.plugins.StatusPlugin; + +/** +* @author Pawel Wrzeszcz +*/ +public class WeightedScoreAlgorithmFactory extends ScoreAlgorithmFactory { + + public WeightedScoreAlgorithmFactory() {} + + public int calculateScore(String projectId, Collection<StatusPlugin> plugins) { + return 17; + } +} Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/JiraStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/JiraStatusPlugin.java 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/JiraStatusPlugin.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -59,11 +59,14 @@ } else { System.out.println("KOSMOS service == null"); } - + /* System.out.println("***\nKOSMOS atlassian\n***"); jiraProjects = service.getProjects("http://jira.atlassian.com"); + + System.out.println("***\nKOSMOS jboss\n***"); jiraProjects = service.getProjects("http://jira.jboss.com"); + */ System.out.println("***\nKOSMOS jblab\n***"); jiraProjects = service.getProjects("http://jira.jboss.com/jira/browse/JBLAB"); Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ResolvedIssuesStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ResolvedIssuesStatusPlugin.java 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/ResolvedIssuesStatusPlugin.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -36,8 +36,8 @@ public String getId() { return PLUGIN_ID; }; public String getName() { return PLUGIN_NAME; }; - public ResolvedIssuesStatusPlugin() {}; + public ResolvedIssuesStatusPlugin() {getJiraProjects();}; - public String getValue(String projectId) { return "one :-)";} ; + public String getValue(String projectId) { return "3";} ; } \ No newline at end of file Modified: trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java 2005-11-19 19:49:35 UTC (rev 1599) +++ trunk/forge/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/SvnStatusPlugin.java 2005-11-20 10:16:10 UTC (rev 1600) @@ -35,16 +35,14 @@ public /*abstract*/ class SvnStatusPlugin extends StatusPlugin { - public SvnStatusPlugin() { - //this.getSvnRepositories(); - // TODO Auto-generated constructor stub - } + public SvnStatusPlugin() {getSvnRepositories();} protected static String PLUGIN_NAME = "Svn"; protected static String PLUGIN_ID = "svn"; public String getId() { return PLUGIN_ID; }; public String getName() { return PLUGIN_NAME; }; + public String getValue(String projectId) { return "###"; }; protected List<SvnRepository> getSvnRepositories() { @@ -83,9 +81,11 @@ */ System.out.println("KOSMOS jbosslabs trunk"); - repoUrl = "http://anonsvn.labs.jboss.com/trunk/forge/portal-extensions/"; + repoUrl = "http://anonsvn.labs.jboss.com/trunk/labs/demo"; try { + System.out.println("KOSMOS 02"); repositories = service.getRepositories(repoUrl); + System.out.println("KOSMOS 03"); SvnRepository repo = repositories.get(0); if (repo != null) { System.out.println("total commits " + repo.getCommitsTotal()); |