[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