From: <jbo...@li...> - 2006-04-24 12:19:11
|
Author: wrzep Date: 2006-04-24 08:19:01 -0400 (Mon, 24 Apr 2006) New Revision: 3944 Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ServiceConf.java Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginValuesImpl.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginsValuesImpl.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginConf.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginValues.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginsValues.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tags.java labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java Log: JBLAB-599 Pawel Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -46,6 +46,7 @@ import org.jboss.forge.status.templates.Columns; import org.jboss.forge.status.templates.MatrixTemplate; import org.jboss.forge.status.tools.ScoresManager; +import org.jboss.forge.status.tools.ServiceConf; import org.jboss.forge.status.tools.Tags; import org.jboss.logging.Logger; @@ -55,7 +56,7 @@ import org.w3c.dom.NodeList; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) * A class which handles Status Matrix information managment. */ public class Status { @@ -76,30 +77,30 @@ * @param statusRoot Node with Matrix properites * @param pluginsRoot Node defining Plugins used in the Matrix */ - public Status(String portalName, Node statusRoot, Node pluginsRoot) { + public Status(String portalName, Node statusRoot, Node pluginsRoot, + Node serviceRoot) { log = Logger.getLogger(this.getClass()); - // Get projects + // Get configuration projects = ProjectsHelper.getProjects(portalName); + List<PluginConf> pluginsConf = getPluginsConfList(pluginsRoot); + ServiceConf serviceConf = new ServiceConf(serviceRoot); + + ScoresManager.init(portalName, serviceConf); - // Get plugins configuration - List<PluginConf> pluginsConf = getPluginsConfList(pluginsRoot); - PluginsValues pluginsValues; - try { - ScoresManager scoresManager = new ScoresManager(portalName); // Compute and save current scores - scoresManager.save(projects, pluginsConf); + ScoresManager.save(projects, pluginsConf); // <debug>; - long v = scoresManager.getValue("downloads", "jbosswiki", new Date(), new Date()); + long v = ScoresManager.getValue("downloads", "jbosswiki", new Date(), new Date()); System.out.println("value = " + v); // </debug> - pluginsValues = scoresManager.getCurrentScores(); + pluginsValues = ScoresManager.getCurrentScores(); } catch (ScoresSaveException e) { log.error("Saving scores failed ", e); Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -59,8 +59,12 @@ String pluginsPath = Tools.getXmlStatusPluginsCmPath(portalName); Node pluginsRoot = getRoot(cm, pluginsPath); - status = new Status(portalName, statusRoot, pluginsRoot); + String servicePath = Tools.getXmlServiceCmPath(portalName); + Node serviceRoot = getRoot(cm, servicePath); + status = new Status(portalName, statusRoot, pluginsRoot, + serviceRoot); + fillContext(); } catch (Exception e) { Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -41,8 +41,6 @@ Plugin insidePlugin; - ScoresManager scoresManager; - @Override public void init(String id, String portalName, Projects projects, Plugins plugins, Properties properties) @@ -66,8 +64,6 @@ "Plugin " + insidePluginId + " not found."); } - scoresManager = new ScoresManager(portalName); - super.init(id, portalName, projects, plugins, properties); } @@ -83,7 +79,7 @@ Date prev = cal.getTime(); try { - prevValue = scoresManager.getValue( + prevValue = ScoresManager.getValue( insidePlugin.getId(), projectId, prev,now); } catch (GetScoresException e) { return 0; Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginValuesImpl.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginValuesImpl.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginValuesImpl.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -30,7 +30,7 @@ import org.jboss.forge.status.service.model.PluginValues; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) * A class used to store plugin values in shotoku. */ Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginsValuesImpl.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginsValuesImpl.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/PluginsValuesImpl.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -28,8 +28,6 @@ import java.util.HashMap; import java.util.Set; -import java.io.Serializable; - import org.jboss.forge.common.projects.Projects; import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; @@ -39,7 +37,7 @@ import org.jboss.forge.status.tools.Plugins; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) * A class used to store plugins values in shotoku. */ Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -22,7 +22,6 @@ package org.jboss.forge.status.service.impl; -import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; @@ -35,9 +34,11 @@ import java.util.Map; import javax.ejb.Local; +import javax.ejb.Remote; import org.jboss.annotation.ejb.LocalBinding; import org.jboss.annotation.ejb.Management; +import org.jboss.annotation.ejb.RemoteBinding; import org.jboss.annotation.ejb.Service; import org.jboss.forge.common.projects.Projects; @@ -47,6 +48,7 @@ import org.jboss.forge.status.service.model.PluginConf; import org.jboss.forge.status.service.model.ScoresService; import org.jboss.forge.status.service.model.ScoresServiceLocal; +import org.jboss.forge.status.service.model.ScoresServiceRemote; import org.jboss.forge.status.tools.Plugins; import org.jboss.forge.status.tools.Tools; @@ -57,16 +59,17 @@ import org.jboss.shotoku.aop.Inject; import org.jboss.shotoku.exceptions.RepositoryException; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; -import org.jboss.shotoku.exceptions.SaveException; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) */ @Service(objectName=Tools.STATUS_SERVICE_NAME) @Management(ScoresService.class) @Local(ScoresServiceLocal.class) @LocalBinding(jndiBinding="Status/ScoresService") +@Remote(ScoresServiceRemote.class) +@RemoteBinding(jndiBinding="Status/RemoteScoresService") public class ScoresServiceImpl implements ScoresService, ScoresServiceLocal { private static Logger log = Logger.getLogger(ScoresServiceImpl.class); @@ -122,9 +125,10 @@ * * @param dir Directory to save values * @param pluginsValues PluginsValues to save - * @return true iff saving was successful + * @throws ScoresSaveException */ - private boolean save(Node node, PluginsValuesImpl pluginsValues) { + private void save(Node node, PluginsValuesImpl pluginsValues) + throws ScoresSaveException { try { OutputStream os = node.getOutputStream(); @@ -132,18 +136,11 @@ oos.writeObject((PluginsValuesImpl) pluginsValues); oos.close(); node.save("update"); /* os is closed inside save() */ - } catch (IOException e) { - e.printStackTrace();//TODO error messages - return false; - } catch (RepositoryException e) { - e.printStackTrace(); - return false; - } catch (SaveException e) { - e.printStackTrace(); - return false; + } catch (Exception e) { + log.error("Error while saving shotoku node: " + + node.getFullName(), e); + throw new ScoresSaveException(e); } - - return true; } /** Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginConf.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginConf.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginConf.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -30,8 +30,6 @@ */ public interface PluginConf extends Serializable { - //TODO PluginConfImpl has constructor - public String getFieldValue(String fieldName); public Properties getProperties(); Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginValues.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginValues.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginValues.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -25,7 +25,7 @@ import java.io.Serializable; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) * A class used to store plugin values in shotoku. */ Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginsValues.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginsValues.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/model/PluginsValues.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -30,15 +30,12 @@ /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) * A class used to store plugins values in shotoku. */ public interface PluginsValues extends Serializable { - - //TODO constructor in impl - /** * For the given plugin and project ids returns stored value. * Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -31,6 +31,7 @@ import org.jboss.forge.common.projects.Projects; import org.jboss.forge.status.exceptions.GetScoresException; import org.jboss.forge.status.exceptions.ScoresSaveException; +import org.jboss.forge.status.service.model.ScoresServiceLocal; import org.jboss.forge.status.service.model.PluginConf; import org.jboss.forge.status.service.model.PluginsValues; import org.jboss.forge.status.service.model.ScoresService; @@ -39,27 +40,28 @@ import org.jboss.mx.util.MBeanServerLocator; /** -* @author Pawel Wrzeszcz (paw...@gm...) +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) */ -public class ScoresManager { - - private String portalName; +public class ScoresManager { - public ScoresManager(String portalName) { - this.portalName = portalName; + private static String portalName; + + public static void init(String portalName, ServiceConf serviceConf) { + ScoresManager.portalName = portalName; + System.out.println("local: " + serviceConf.isLocal()); } - public void save(Projects projects, List<PluginConf> pluginsConf) + public static void save(Projects projects, List<PluginConf> pluginsConf) throws ScoresSaveException { MBeanServer server = MBeanServerLocator.locate(); - ScoresService service; + ScoresServiceLocal service; try { - service = (ScoresService) MBeanProxyExt.create( - ScoresService.class, + service = (ScoresServiceLocal) MBeanProxyExt.create( + ScoresServiceLocal.class, Tools.STATUS_SERVICE_NAME, server); } catch (MalformedObjectNameException e) { @@ -70,7 +72,7 @@ } - public PluginsValues getScores(Date date, Date toDate) + public static PluginsValues getScores(Date date, Date toDate) throws GetScoresException { PluginsValues pluginsValues = null; @@ -108,7 +110,7 @@ * @return project score from the given date for specified plugin * @throws GetScoresException */ - public long getValue(String pluginId, String projectId, + public static long getValue(String pluginId, String projectId, Date date, Date toDate) throws GetScoresException { @@ -117,7 +119,7 @@ return pluginsValues.getPluginValue(pluginId, projectId); } - public PluginsValues getCurrentScores() + public static PluginsValues getCurrentScores() throws GetScoresException { Date now = new Date(); Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ServiceConf.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ServiceConf.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ServiceConf.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -0,0 +1,52 @@ +/* + * 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.tools; + +import org.jboss.forge.common.XmlTools; +import org.jboss.forge.status.tools.Tags; + +import org.w3c.dom.Node; + +/** +* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com) +*/ +public class ServiceConf { + + boolean remoteService = false; + + public ServiceConf(Node serviceNode) { + + String remoteServiceString = + XmlTools.getChildNodeValue(serviceNode, + Tags.SERVICE_REMOTE_ELEMENT); + + if (remoteServiceString != null) { + remoteService = (remoteServiceString == "true"); + } + + } + + public boolean isLocal() { + return !remoteService; + } +} \ No newline at end of file Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tags.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tags.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tags.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -56,6 +56,8 @@ public static final String METRIC_NAME_ELEMENT = "name"; public static final String METRIC_PLUGIN_ELEMENT = "plugin"; + /* service.xml tags */ + public static final String SERVICE_REMOTE_ELEMENT = "remote"; /* plugins.xml tags */ public final static String PLUGIN_ELEMENT = "plugin"; Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java 2006-04-24 11:00:44 UTC (rev 3943) +++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java 2006-04-24 12:19:01 UTC (rev 3944) @@ -21,8 +21,9 @@ public class Tools { /** <code>STATUS_XML<code> - file defining the list of watched feeds */ - private final static String STATUS_XML = "status.xml"; - private final static String STATUS_PLUGINS_XML = "plugins.xml"; + private final static String STATUS_XML = "status.xml"; + private final static String STATUS_PLUGINS_XML = "plugins.xml"; + private final static String STATUS_SERVICE_XML = "service.xml"; /** <code>STATUS_DIR</code> - directory in which file <code>STATUS_XML<code> is stored. */ private final static String STATUS_DIR = "status"; @@ -36,7 +37,6 @@ private static final String SHOTOKU_STATUS_DIR = "status"; public static final String STATUS_SERVICE_NAME = "status:service=scores"; - //TODO move constans to one place @Inject private static ContentManager cm; @@ -69,6 +69,13 @@ public static String getXmlStatusPluginsCmPath(String portalName) { return portalName + "/" + STATUS_DIR + "/" + STATUS_PLUGINS_XML; } + + /** + * Path to the xml file defining ejb3 service. + */ + public static String getXmlServiceCmPath(String portalName) { + return portalName + "/" + STATUS_DIR + "/" + STATUS_SERVICE_XML; + } /** * Path to the projects.xml file. |