[jboss-svn-commits] JBL Code SVN: r7537 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status: common service/plugins

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 10 17:46:54 EST 2006


Author: wrzep
Date: 2006-11-10 17:46:52 -0500 (Fri, 10 Nov 2006)
New Revision: 7537

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/service/plugins/Plugin.java
Log:
http://jira.jboss.com/jira/browse/JBLAB-756
Caching values by default.
Pawel


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-10 21:14:29 UTC (rev 7536)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java	2006-11-10 22:46:52 UTC (rev 7537)
@@ -73,8 +73,9 @@
 	public final static String PLUGIN_CLASS_ELEMENT 			= "class";
 	public final static String PLUGIN_PROPERTIES_ELEMENT 	= "properties";
 	
-		/* properties */
+		/* general properties */
 	public static final String MIN_VALUE_PROPERTY 			= "min-value";
+	public static final String CACHE_VALUES_PROPERTY 		= "cache-values";
 	
 		/* kosmos plugins */
 	public static final String JIRA_SERVICE_PROPERTY 		= "jira-service";
@@ -91,6 +92,7 @@
 		/* other plugins */
 	public static final String DAYS_TAG						= "days";
 	public static final String PLUGIN_TAG 					= "plugin";
+
 	
 
 	/**

Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/plugins/Plugin.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/plugins/Plugin.java	2006-11-10 21:14:29 UTC (rev 7536)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/plugins/Plugin.java	2006-11-10 22:46:52 UTC (rev 7537)
@@ -22,7 +22,9 @@
 
 package org.jboss.forge.status.service.plugins;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.jboss.forge.status.common.Constants;
@@ -56,8 +58,14 @@
 	
 	protected ScoresManager scoresManager;
 	
-	protected long minValue;
+	/** Default min value for plugin */
+	protected long minValue = Constants.PLUGIN_DEFAULT_MIN_VALUE;
 	
+	/** Cache values by default. */
+	protected boolean cacheValues = true;
+	
+	private Map<String,Long> cache;
+	
 	private Logger log = Logger.getLogger(Plugin.class);
 	
 	/**
@@ -84,21 +92,31 @@
 		this.scoresManager = scoresManager;
 		
 		parseProperties();
+		
+		if (cacheValues) {
+			cache = new HashMap<String,Long>();
+		}
 	}
 	
 	private void parseProperties() {
 
-		if ((properties == null) || 
-					(!properties.containsKey(Tags.MIN_VALUE_PROPERTY))) {
-			
-			minValue = Constants.PLUGIN_DEFAULT_MIN_VALUE;
-			
-		} else {
+		if (properties == null) {
+			return;
+		}
 		
-			String minValueString = properties.getProperty(
+		String minValueString = properties.getProperty(
 													Tags.MIN_VALUE_PROPERTY);
+		
+		if (minValueString != null) {
 			minValue = Long.parseLong(minValueString);
 		}
+		
+		String cacheValuesString = properties.getProperty(
+													Tags.CACHE_VALUES_PROPERTY);
+		
+		if (cacheValuesString != null) {
+			cacheValues = Boolean.parseBoolean(cacheValuesString);
+		}
 	}
 
 	/**
@@ -112,6 +130,17 @@
 	 */
 	public final long getValue(String projectId) {
 		
+		log.info("getValue " + id + " " + projectId);
+		
+		if (cacheValues && cache.containsKey(projectId)) {
+			
+			log.info("returning from cache");
+			
+			return cache.get(projectId);
+		}
+		
+		log.info("licze");
+		
 		long v = Constants.DEFAULT_PLUGIN_VALUE;
 		
 		try {
@@ -124,7 +153,13 @@
 												"\nCause: ", e);	
 		}
 		
-		return Math.max(v, minValue);
+		v = Math.max(v, minValue);
+		
+		if (cacheValues) {
+			cache.put(projectId, v);
+		}
+		
+		return v;
 	}
 	
 	/**




More information about the jboss-svn-commits mailing list