[jboss-svn-commits] JBL Code SVN: r7401 - in labs/jbosslabs/trunk/portal-extensions: forge-sar/src/META-INF forge-status/src/java/org/jboss/forge/status/common forge-status/src/java/org/jboss/forge/status/common/protocol forge-status/src/java/org/jboss/forge/status/common/protocol/conf forge-status/src/java/org/jboss/forge/status/common/tools forge-status/src/java/org/jboss/forge/status/portlet forge-status/src/java/org/jboss/forge/status/portlet/conf forge-status/src/java/org/jboss/forge/status/service/impl
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Nov 4 16:22:39 EST 2006
Author: wrzep
Date: 2006-11-04 16:22:26 -0500 (Sat, 04 Nov 2006)
New Revision: 7401
Added:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/Configuration.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/UpdatesConf.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ConfgurationImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/UpdatesConfImpl.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-sar/src/META-INF/jboss-service.xml
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Locations.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/ScoresService.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ScoresUpdater.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ServiceConf.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/ProjectTools.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/Tools.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/Status.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/StatusDescriptor.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceConfImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceScoresManager.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java
Log:
http://jira.jboss.com/jira/browse/JBLAB-781 (Standalone JMM Service)
Put updates configuration and ProjectsService bindings configuration to CMS.
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-sar/src/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-sar/src/META-INF/jboss-service.xml 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-sar/src/META-INF/jboss-service.xml 2006-11-04 21:22:26 UTC (rev 7401)
@@ -1,4 +1,4 @@
- <!-- Proxy factory for MyService that will call invoke(Invocation mi) on the target service -->
+ <!-- Proxy factory for ProjectsService that will call invoke(Invocation mi) on the target service -->
<mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
name="jboss.jmx:type=adaptor,name=ProjectsService,protocol=jrmp,service=proxyFactory">
<!-- Use the standard JRMPInvoker from conf/jboss-service.xxml -->
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Locations.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Locations.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Locations.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -18,7 +18,9 @@
/** <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_SERVICE_PROPERTIES = "service.properties";
+ private final static String STATUS_SERVICE_PROPERTIES = "scores.service.properties";
+ private final static String PROJECTS_SERVICE_PROPERTIES = "projects.service.properties";
+ private final static String UPDATE_PROPERTIES = "update.properties";
/** <code>STATUS_DIR</code> - directory in which file <code>STATUS_XML<code> is stored. */
private final static String STATUS_DIR = "status";
@@ -46,13 +48,27 @@
}
/**
- * Path to the xml file defining ejb3 service.
+ * Path to the file containing ejb3 service properties.
*/
public static String getServicePropertiesCmPath(String portalName) {
return portalName + "/" + STATUS_DIR + "/" + Locations.STATUS_SERVICE_PROPERTIES;
}
/**
+ * Path to the file containing Projects Service properties.
+ */
+ public static String getProjectsServicePropertiesCmPath(String portalName) {
+ return portalName + "/" + STATUS_DIR + "/" + Locations.PROJECTS_SERVICE_PROPERTIES;
+ }
+
+ /**
+ * Path to the file containing auto-update properties
+ */
+ public static String getUpdatePropertiesCmPath(String portalName) {
+ return portalName + "/" + STATUS_DIR + "/" + Locations.UPDATE_PROPERTIES;
+ }
+
+ /**
* Path to the projects.xml file.
*/
public static String getProjectsXmlPath(String portalName) {
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -57,11 +57,8 @@
public static final String METRIC_PLUGIN_ELEMENT = "plugin";
public static final String METRIC_BOOLEAN_ELEMENT = "boolean";
- /* service.properties tags */
- public static final String SERVICE_PROPERTIES_PREFIX = "service.";
+ /* update.properties tags */
- public static final String SERVICE_REMOTE_ELEMENT = "service.remote";
-
public static final String SERVICE_FIRST_UPDATE_ELEMENT = "service.first.update";
public static final String SERVICE_UPDATE_START_HOUR_ELEMENT = "service.update.start.hour";
public static final String SERVICE_UPDATE_START_MINUTE_ELEMENT = "service.update.start.minute";
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/ScoresService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/ScoresService.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/ScoresService.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -24,24 +24,21 @@
import java.io.Serializable;
import java.util.Calendar;
-import java.util.List;
import org.jboss.forge.status.common.exceptions.GetScoresException;
import org.jboss.forge.status.common.exceptions.ScoresException;
import org.jboss.forge.status.common.exceptions.ScoresSaveException;
-import org.jboss.forge.status.common.protocol.conf.PluginConf;
-import org.jboss.forge.status.common.protocol.conf.PluginsValues;
+import org.jboss.forge.status.common.protocol.conf.Configuration;
import org.jboss.forge.status.common.protocol.conf.PluginsValuesRemote;
-import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
*/
public interface ScoresService extends Serializable {
- public void init(String portalName, ScoresManager scoresManager,
- List<PluginConf> pluginsConf, ServiceConf serviceConf, List<String> projectIds)
+ public void init(Configuration conf, ScoresManager scoresManager)
throws ScoresException;
public void save() throws ScoresSaveException;
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/Configuration.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/Configuration.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/Configuration.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -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.common.protocol.conf;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+*/
+public interface Configuration extends Serializable {
+
+ public String getPortalName();
+
+ public List<String> getProjectIds();
+
+ public ServiceConf getScoresServiceConf();
+
+ public ServiceConf getProjectsServiceConf();
+
+ public UpdatesConf getUpdateConf();
+
+ public List<PluginConf> getPluginsConf();
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ScoresUpdater.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ScoresUpdater.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ScoresUpdater.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -31,6 +31,6 @@
*/
public interface ScoresUpdater extends Serializable {
- public void init(ScoresService scoresService, ServiceConf conf);
+ public void init(ScoresService scoresService, UpdatesConf conf);
}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ServiceConf.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ServiceConf.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/ServiceConf.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -30,16 +30,6 @@
*/
public interface ServiceConf extends Serializable {
- public boolean isRemote();
-
- public int getFirstUpdate();
-
- public int getUpdateStartHour();
-
- public int getUpdateStartMinute();
-
- public int getUpdateInterval();
-
public Properties getProperties();
}
\ No newline at end of file
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/UpdatesConf.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/UpdatesConf.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/conf/UpdatesConf.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -0,0 +1,40 @@
+/*
+ * 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.common.protocol.conf;
+
+import java.io.Serializable;
+
+/**
+* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
+*/
+public interface UpdatesConf extends Serializable {
+
+ public int getFirstUpdate();
+
+ public int getUpdateStartHour();
+
+ public int getUpdateStartMinute();
+
+ public int getUpdateInterval();
+
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/ProjectTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/ProjectTools.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/ProjectTools.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -9,11 +9,9 @@
import org.jboss.forge.common.projects.IssueTracker;
import org.jboss.forge.common.projects.Projects;
-import org.jboss.forge.common.projects.ProjectsHelper;
import org.jboss.forge.common.projects.Repository;
import org.jboss.forge.common.soa.projects.ProjectsService;
import org.jboss.forge.status.common.Tags;
-import org.jboss.forge.status.common.protocol.ScoresService;
import org.jboss.logging.Logger;
/**
@@ -24,7 +22,7 @@
private static Projects projects;
private static ProjectsService service = null;
-
+
private static Logger log = Logger.getLogger(ProjectTools.class);
@@ -58,39 +56,27 @@
}
- public static void init(String portalName) {
+ public static void init(String portalName, Properties projectsServiceProperties) {
- projects = ProjectsHelper.getProjects(portalName);
+ try {
+ service = getProjectsService(projectsServiceProperties);
+
+ } catch (NamingException e) {
+ log.warn("Unable to obtain Projects Service. " +
+ "(properties=" + projectsServiceProperties +")", e);
+ }
}
public static List<String> getProjectJems(String projectId) {
- if (service == null) {
-
- try {
- service = getService();
- } catch (NamingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return null;
- }
- }
-
return service.getProjectJems(projectId);
}
- private static ProjectsService getService() throws NamingException {
-
- log.info("Getting Projects Service @ " + "jnp://localhost:1199");
+ private static ProjectsService getProjectsService(Properties properties)
+ throws NamingException {
- Properties properties = new Properties();
- properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
- properties.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
- properties.setProperty("java.naming.provider.url", "jnp://localhost:1199");
- properties.setProperty("jnp.disableDiscovery", "true");
-
InitialContext ic = new InitialContext(properties);
ProjectsService service = (ProjectsService)ic.lookup("ProjectsService");
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/Tools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/Tools.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/tools/Tools.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -140,11 +140,11 @@
return nextDay;
}
- public static void startProjectsJMXService() {
+ public static void startJMXService(String jmxServiceURL) {
try {
// The address of the connector
- JMXServiceURL address = new JMXServiceURL("service:jmx:rmi://localhost:9813");
+ JMXServiceURL address = new JMXServiceURL(jmxServiceURL);
// The environment map, null in this case
Map<String,Object> environment = null;
@@ -212,4 +212,52 @@
return updater;
}
+
+ public static Properties parseProperties(org.jboss.shotoku.Node serviceNode,
+ String excludePrefix) {
+
+ Properties props = new Properties();
+
+ if (serviceNode == null) {
+ return props;
+ }
+
+ String propsString = serviceNode.getContent();
+ String[] propsArr = propsString.split("\n");
+
+ for (String propString : propsArr) {
+
+ String[] propArr = propString.split("=");
+
+ if ((propArr != null) && (propArr.length == 2) &&
+ ((excludePrefix == null) ||
+ (!propArr[0].startsWith(excludePrefix)))) {
+
+ props.put(propArr[0], propArr[1]);
+ }
+
+ }
+
+ return props;
+ }
+
+ public static int parseIntProperty(Properties properties, String element,
+ int defaultValue) {
+
+ String string = (String) properties.get(element);
+
+ if (string != null) {
+
+ try {
+
+ return Integer.parseInt(string);
+
+ } catch (NumberFormatException e) {
+
+ // Do nothing
+ }
+ }
+
+ return defaultValue;
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/Status.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/Status.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/Status.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -77,13 +77,11 @@
* @param scoresManager
*/
public Status(String portalName, Node statusRoot,
- ScoresManager scoresManager)
+ ScoresManager scoresManager)
throws ScoresException {
log = Logger.getLogger(this.getClass());
- ProjectTools.init(portalName);
-
// Get configuration
projects = ProjectsHelper.getProjects(portalName);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/StatusDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/StatusDescriptor.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/StatusDescriptor.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -31,12 +31,16 @@
import org.jboss.forge.status.common.Locations;
import org.jboss.forge.status.common.protocol.ScoresManager;
+import org.jboss.forge.status.common.protocol.conf.Configuration;
import org.jboss.forge.status.common.protocol.conf.PluginConf;
import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+import org.jboss.forge.status.common.protocol.conf.UpdatesConf;
import org.jboss.forge.status.common.tools.Tools;
+import org.jboss.forge.status.portlet.conf.ConfgurationImpl;
import org.jboss.forge.status.portlet.conf.ServiceConfImpl;
import org.jboss.forge.status.portlet.conf.ServiceScoresManager;
+import org.jboss.forge.status.portlet.conf.UpdatesConfImpl;
import org.jboss.logging.Logger;
import org.jboss.portal.common.context.DelegateContext;
@@ -83,22 +87,9 @@
try {
- String servicePath = Locations.
- getServicePropertiesCmPath(portalName);
- org.jboss.shotoku.Node serviceNode = cm.getNode(servicePath);
- ServiceConf serviceConf = new ServiceConfImpl(serviceNode);
-
- String pluginsPath = Locations.
- getXmlStatusPluginsCmPath(portalName);
- Node pluginsNode = Tools.getRoot(cm, pluginsPath);
- List<PluginConf> pluginsConf = Tools.getPluginsConfList(pluginsNode);
-
- Projects projects = ProjectsHelper.getProjects(portalName);
+ Configuration conf = new ConfgurationImpl(portalName, cm);
- scoresManager = new ServiceScoresManager(portalName,
- serviceConf,
- pluginsConf,
- projects);
+ scoresManager = new ServiceScoresManager(conf);
} catch (Exception e) {
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ConfgurationImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ConfgurationImpl.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ConfgurationImpl.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -0,0 +1,111 @@
+/*
+ * 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.portlet.conf;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.permissions.NullPermissionsChecker;
+import org.jboss.forge.common.projects.permissions.PermissionsChecker;
+import org.jboss.forge.status.common.Locations;
+import org.jboss.forge.status.common.protocol.conf.Configuration;
+import org.jboss.forge.status.common.protocol.conf.PluginConf;
+import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+import org.jboss.forge.status.common.protocol.conf.UpdatesConf;
+import org.jboss.forge.status.common.tools.Tools;
+import org.jboss.shotoku.ContentManager;
+import org.jboss.shotoku.Node;
+import org.jboss.shotoku.exceptions.RepositoryException;
+import org.jboss.shotoku.exceptions.ResourceDoesNotExist;
+import org.xml.sax.SAXException;
+
+
+/**
+* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+*/
+public class ConfgurationImpl implements Configuration {
+
+ private static final long serialVersionUID = 772452316632341L;
+
+ private String portalName;
+ private List<String> projectIds;
+ private List<PluginConf> pluginsConf;
+
+ private ServiceConf scoresServiceConf;
+ private ServiceConf projectsServiceConf;
+ private UpdatesConf updateConf;
+
+ public ConfgurationImpl(String portalName, ContentManager cm)
+ throws RepositoryException, ResourceDoesNotExist,
+ IOException, SAXException {
+
+ String servicePath = Locations.getServicePropertiesCmPath(portalName);
+ Node serviceNode = cm.getNode(servicePath);
+ scoresServiceConf = new ServiceConfImpl(serviceNode);
+
+ String projectsServicePath = Locations.getProjectsServicePropertiesCmPath(portalName);
+ Node projectsServiceNode = cm.getNode(projectsServicePath);
+ projectsServiceConf = new ServiceConfImpl(projectsServiceNode);
+
+ String updatePropertiesPath = Locations.getUpdatePropertiesCmPath(portalName);
+ Node updatePropertiesNode = cm.getNode(updatePropertiesPath);
+ updateConf = new UpdatesConfImpl(updatePropertiesNode);
+
+ String pluginsPath = Locations.getXmlStatusPluginsCmPath(portalName);
+ org.w3c.dom.Node pluginsNode = Tools.getRoot(cm, pluginsPath);
+ pluginsConf = Tools.getPluginsConfList(pluginsNode);
+
+ Projects projects = ProjectsHelper.getProjects(portalName);
+ projectIds = new ArrayList<String>(
+ projects.getProjectIds(
+ (PermissionsChecker) new NullPermissionsChecker(), null));
+
+ }
+
+ public String getPortalName() {
+ return portalName;
+ }
+
+ public List<String> getProjectIds() {
+ return projectIds;
+ }
+
+ public List<PluginConf> getPluginsConf() {
+ return pluginsConf;
+ }
+
+ public ServiceConf getProjectsServiceConf() {
+ return projectsServiceConf;
+ }
+
+ public ServiceConf getScoresServiceConf() {
+ return scoresServiceConf;
+ }
+
+ public UpdatesConf getUpdateConf() {
+ return updateConf;
+ }
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceConfImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceConfImpl.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceConfImpl.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -24,9 +24,8 @@
import java.util.Properties;
-import org.jboss.forge.status.common.Constants;
-import org.jboss.forge.status.common.Tags;
import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+import org.jboss.forge.status.common.tools.Tools;
import org.jboss.shotoku.Node;
/**
@@ -34,124 +33,23 @@
*/
public class ServiceConfImpl implements ServiceConf {
- private boolean remoteService;
+
+ private static final long serialVersionUID = 9276134986978721L;
private Properties properties;
- private int firstUpdate;
- private int updateInterval;
- private int updateStartHour;
- private int updateStartMinute;
-
public ServiceConfImpl(Node serviceNode) {
-
- Properties allProperties = parseProperties(serviceNode, null);
-
- setServiceProperties(allProperties);
-
- properties = parseProperties(serviceNode,
- Tags.SERVICE_PROPERTIES_PREFIX);
- }
-
- private void setServiceProperties(Properties properties) {
-
- String remoteString = (String) properties.get(
- Tags.SERVICE_REMOTE_ELEMENT);
-
- remoteService = (remoteString == null) ? false : remoteString.equals("true");
-
- firstUpdate = parseIntProperty(properties,
- Tags.SERVICE_FIRST_UPDATE_ELEMENT,
- Constants.FIRST_UPDATE_INTERVAL_DEFAULT);
-
- updateInterval = parseIntProperty(properties,
- Tags.SERVICE_UPDATE_INTERVAL_ELEMENT,
- Constants.SCORES_UPDATE_INTERVAL_DEFAULT);
-
- updateStartHour = parseIntProperty(properties,
- Tags.SERVICE_UPDATE_START_HOUR_ELEMENT,
- Constants.UPDATE_START_HOUR_DEFAULT);
-
- updateStartMinute = parseIntProperty(properties,
- Tags.SERVICE_UPDATE_START_MINUTE_ELEMENT,
- Constants.UPDATE_START_MINUTE_DEFAULT);
-
- }
-
- private static int parseIntProperty(Properties properties, String element,
- int defaultValue) {
-
- String string = (String) properties.get(element);
-
- if (string != null) {
- try {
-
- return Integer.parseInt(string);
-
- } catch (NumberFormatException e) {
-
- // Do nothing
- }
- }
-
- return defaultValue;
+ properties = Tools.parseProperties(serviceNode, null);
}
- public boolean isRemote() {
- return remoteService;
- }
-
+
public Properties getProperties() {
+
return properties;
}
- private Properties parseProperties(Node serviceNode,
- String excludePrefix) {
-
- Properties props = new Properties();
-
- if (serviceNode == null) {
- return props;
- }
-
- String propsString = serviceNode.getContent();
- String[] propsArr = propsString.split("\n");
-
- for (String propString : propsArr) {
-
- String[] propArr = propString.split("=");
-
- if ((propArr != null) && (propArr.length == 2) &&
- ((excludePrefix == null) ||
- (!propArr[0].startsWith(excludePrefix)))) {
-
- props.put(propArr[0], propArr[1]);
- }
-
- }
-
- return props;
- }
- public int getFirstUpdate() {
-
- return firstUpdate;
- }
- public int getUpdateInterval() {
-
- return updateInterval;
- }
-
- public int getUpdateStartHour() {
-
- return updateStartHour;
- }
-
- public int getUpdateStartMinute() {
-
- return updateStartMinute;
- }
}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceScoresManager.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceScoresManager.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceScoresManager.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -44,6 +44,7 @@
import org.jboss.forge.status.common.protocol.ScoresManager;
import org.jboss.forge.status.common.protocol.ScoresService;
+import org.jboss.forge.status.common.protocol.conf.Configuration;
import org.jboss.forge.status.common.protocol.conf.PluginConf;
import org.jboss.forge.status.common.protocol.conf.PluginsValues;
import org.jboss.forge.status.common.protocol.conf.PluginsValuesRemote;
@@ -65,20 +66,14 @@
private static final long serialVersionUID = -3398452363516977124L;
private Properties properties;
- private boolean isRemote;
private boolean asyncSave = false;
private Logger log;
private ScoresService service;
- public ServiceScoresManager(String portalName,
- ServiceConf serviceConf,
- List<PluginConf> pluginsConf,
- Projects projects)
- throws ScoresException {
+ public ServiceScoresManager(Configuration conf) throws ScoresException {
- properties = serviceConf.getProperties();
- isRemote = serviceConf.isRemote();
+ properties = conf.getScoresServiceConf().getProperties();
log = Logger.getLogger(this.getClass());
@@ -88,13 +83,10 @@
throw new ScoresException(e);
}
- List<String> projectIds = new ArrayList<String>(
- projects.getProjectIds(
- (PermissionsChecker) new NullPermissionsChecker(), null));
-
- service.init(portalName, this, pluginsConf, serviceConf, projectIds);
+ service.init(conf, this);
}
-
+
+
public void saveAsync(final Projects projects,
final List<PluginConf> pluginsConf) {
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/UpdatesConfImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/UpdatesConfImpl.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/UpdatesConfImpl.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -0,0 +1,89 @@
+/*
+ * 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.portlet.conf;
+
+import java.util.Properties;
+
+import org.jboss.forge.status.common.Constants;
+import org.jboss.forge.status.common.Tags;
+import org.jboss.forge.status.common.protocol.conf.UpdatesConf;
+import org.jboss.forge.status.common.tools.Tools;
+
+import org.jboss.shotoku.Node;
+
+/**
+* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
+*/
+public class UpdatesConfImpl implements UpdatesConf {
+
+
+ private static final long serialVersionUID = 54399755111252464L;
+
+ private int firstUpdate;
+ private int updateInterval;
+ private int updateStartHour;
+ private int updateStartMinute;
+
+ public UpdatesConfImpl(Node serviceNode) {
+
+ Properties properties = Tools.parseProperties(serviceNode, null);
+
+ firstUpdate = Tools.parseIntProperty(properties,
+ Tags.SERVICE_FIRST_UPDATE_ELEMENT,
+ Constants.FIRST_UPDATE_INTERVAL_DEFAULT);
+
+ updateInterval = Tools.parseIntProperty(properties,
+ Tags.SERVICE_UPDATE_INTERVAL_ELEMENT,
+ Constants.SCORES_UPDATE_INTERVAL_DEFAULT);
+
+ updateStartHour = Tools.parseIntProperty(properties,
+ Tags.SERVICE_UPDATE_START_HOUR_ELEMENT,
+ Constants.UPDATE_START_HOUR_DEFAULT);
+
+ updateStartMinute = Tools.parseIntProperty(properties,
+ Tags.SERVICE_UPDATE_START_MINUTE_ELEMENT,
+ Constants.UPDATE_START_MINUTE_DEFAULT);
+
+ }
+
+ public int getFirstUpdate() {
+
+ return firstUpdate;
+ }
+
+ public int getUpdateInterval() {
+
+ return updateInterval;
+ }
+
+ public int getUpdateStartHour() {
+
+ return updateStartHour;
+ }
+
+ public int getUpdateStartMinute() {
+
+ return updateStartMinute;
+ }
+
+}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java 2006-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -35,7 +35,7 @@
import org.jboss.forge.status.common.exceptions.ScoresSaveException;
import org.jboss.forge.status.common.protocol.ScoresService;
import org.jboss.forge.status.common.protocol.conf.ScoresUpdater;
-import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+import org.jboss.forge.status.common.protocol.conf.UpdatesConf;
import org.jboss.logging.Logger;
@@ -55,7 +55,7 @@
private Logger log = Logger.getLogger(ScoresDailyUpdater.class);
- public void init(ScoresService scoresService, ServiceConf conf) {
+ public void init(ScoresService scoresService, UpdatesConf conf) {
log.info("ScoresDailyUpdater initialization");
@@ -89,7 +89,7 @@
}
}
- private void scheduleUpdates(ScoresService scoresService, ServiceConf conf) {
+ private void scheduleUpdates(ScoresService scoresService, UpdatesConf conf) {
if (conf.getFirstUpdate() > 0) {
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-11-04 18:07:06 UTC (rev 7400)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-11-04 21:22:26 UTC (rev 7401)
@@ -24,16 +24,9 @@
import java.util.Calendar;
import java.util.List;
-import java.util.Map;
-import javax.ejb.Remote;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnectorServer;
-import javax.management.remote.JMXConnectorServerFactory;
-import javax.management.remote.JMXServiceURL;
import javax.naming.NamingException;
import org.jboss.annotation.ejb.Management;
@@ -46,21 +39,22 @@
import org.jboss.forge.status.common.protocol.ScoresManager;
import org.jboss.forge.status.common.protocol.ScoresRepositoryManager;
import org.jboss.forge.status.common.protocol.ScoresService;
+import org.jboss.forge.status.common.protocol.conf.Configuration;
import org.jboss.forge.status.common.protocol.conf.PluginConf;
import org.jboss.forge.status.common.protocol.conf.PluginsValues;
import org.jboss.forge.status.common.protocol.conf.PluginsValuesRemote;
import org.jboss.forge.status.common.protocol.conf.ScoresFactory;
import org.jboss.forge.status.common.protocol.conf.ScoresUpdater;
-import org.jboss.forge.status.common.protocol.conf.ServiceConf;
import org.jboss.forge.status.common.tools.Plugins;
+import org.jboss.forge.status.common.tools.ProjectTools;
import org.jboss.forge.status.common.tools.Tools;
+
import org.jboss.forge.status.service.impl.db.DBScoresRepositoryManager;
import org.jboss.forge.status.service.impl.db.protocol.DBScoresFactory;
import org.jboss.invocation.Invocation;
import org.jboss.logging.Logger;
-import org.jboss.mx.util.MBeanServerLocator;
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
@@ -68,9 +62,6 @@
@Service(objectName=Constants.JMM_SCORES_SERVICE)
@Management(ScoresService.class)
-
-//@Local(ScoresService.class)
-//@LocalBinding(jndiBinding=Constants.STATUS_LOCAL_SERVICE)
//@Remote(ScoresService.class)
//@RemoteBinding(jndiBinding=Constants.STATUS_REMOTE_SERVICE)
public class ScoresServiceImpl implements ScoresService {
@@ -90,17 +81,19 @@
private List<String> projectIds;
- public void init(String portalName, ScoresManager scoresManager,
- List<PluginConf> pluginsConf, ServiceConf serviceConf,
- List<String> projectIds)
+ public void init(Configuration conf, ScoresManager scoresManager)
throws ScoresException {
log.info("ScoresService initialization");
- this.portalName = portalName;
+ ProjectTools.init(conf.getPortalName(),
+ conf.getProjectsServiceConf().getProperties());
+
+ this.portalName = conf.getPortalName();
+ this.pluginsConf = conf.getPluginsConf();
+ this.projectIds = conf.getProjectIds();
+
this.scoresManager = scoresManager;
- this.pluginsConf = pluginsConf;
- this.projectIds = projectIds;
try {
repositoryManager = new DBScoresRepositoryManager();
@@ -112,7 +105,7 @@
scoresFactory = new DBScoresFactory();
ScoresUpdater updater = Tools.getScoresUpdater();
- updater.init(this, serviceConf);
+ updater.init(this, conf.getUpdateConf());
}
/**
@@ -192,7 +185,7 @@
log.info("JMM service started.");
- startJMXService();
+ Tools.startJMXService(Constants.JMM_SERVICE_ADDRESS);
log.info("Connector server for JMM started.");
}
@@ -201,37 +194,7 @@
log.info("JMM service stopped");
}
-
- //TODO move to Tools
- private static void startJMXService() {
-
- try {
- // The address of the connector
- JMXServiceURL address = new JMXServiceURL(Constants.JMM_SERVICE_ADDRESS);
-
- // The environment map, null in this case
- Map<String,Object> environment = null;
- JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, null);
-
- // The MBeanServer to which the JMXConnectorServer will be registered in
- MBeanServer server = MBeanServerLocator.locate();
-
- // Register the JMXConnectorServer in the MBeanServer
- ObjectName cntorServerName = ObjectName.getInstance("connectors:protocol=rmi");
- server.registerMBean(cntorServer, cntorServerName);
-
- // Start the JMXConnectorServer
- cntorServer.start();
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
-
- }
-
public void ping() {
log.info("PING!");
@@ -239,7 +202,7 @@
public Object invoke(Invocation mi) throws Exception {
- System.out.println("MyService.invoke> method=" + mi.getMethod().getName());
+ log.debug("ScoresService.invoke> method=" + mi.getMethod().getName());
Object ret;
More information about the jboss-svn-commits
mailing list