[jboss-svn-commits] JBL Code SVN: r6377 - in labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status: common service service/impl service/impl/protocol service/protocol
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 22 14:33:16 EDT 2006
Author: wrzep
Date: 2006-09-22 14:33:10 -0400 (Fri, 22 Sep 2006)
New Revision: 6377
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Constants.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/service/ScoresUpdater.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/ServiceScoresManager.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/ServiceConfImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/ServiceConf.java
Log:
JBLAB-599
Updates configurable from cms.
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Constants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Constants.java 2006-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Constants.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -25,13 +25,19 @@
public static final long CACHE_INTERVAL = 3*60*1000; /* milliseconds */
/* Check for new scores every 3 minutes */
- public static final long SCORES_UPDATE_INTERVAL = 4*60*60*1000; /* milliseconds */
- /* Perform update every 4 hours */
+ public static final int SCORES_UPDATE_INTERVAL_DEFAULT
+ = 24*60; /* minutes */
+ /* By default perform update every 24 hours */
- public static final long FIRST_UPDATE_INTERVAL = 60*1000; /* milliseconds */
- /* First update after 1 minute */
+ public static final int FIRST_UPDATE_INTERVAL_DEFAULT = 1;/* minutes */
+ /* By default perform first update after 1 minute */
-
+ /* By default start at midnight */
+ public static final int UPDATE_START_HOUR_DEFAULT = 0;
+
+ public static final int UPDATE_START_MINUTE_DEFAULT = 0;
+
+
/**
* This class cannot be instatiated.
*/
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-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tags.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -58,8 +58,15 @@
public static final String METRIC_BOOLEAN_ELEMENT = "boolean";
/* service.properties tags */
+ public static final String SERVICE_PROPERTIES_PREFIX = "service.";
+
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";
+ public static final String SERVICE_UPDATE_INTERVAL_ELEMENT = "service.update.interval";
+
/* plugins.xml tags */
/* plugin element*/
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresUpdater.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresUpdater.java 2006-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresUpdater.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -22,11 +22,13 @@
package org.jboss.forge.status.service;
+import org.jboss.forge.status.service.protocol.ServiceConf;
+
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
*/
public interface ScoresUpdater {
- public void init(ScoresManager scoresManager);
+ public void init(ScoresManager scoresManager, ServiceConf conf);
}
\ 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-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -35,6 +35,7 @@
import org.jboss.forge.status.exceptions.ScoresSaveException;
import org.jboss.forge.status.service.ScoresManager;
import org.jboss.forge.status.service.ScoresUpdater;
+import org.jboss.forge.status.service.protocol.ServiceConf;
import org.jboss.logging.Logger;
@@ -52,13 +53,13 @@
private Logger log = Logger.getLogger(ScoresDailyUpdater.class);
- public void init(ScoresManager scoresManager) {
+ public void init(ScoresManager scoresManager, ServiceConf conf) {
log.info("INIT ScoresManager: " + scoresManager);
clearSchedule();
- scheduleUpdates(scoresManager);
+ scheduleUpdates(scoresManager, conf);
}
@Timeout
@@ -88,20 +89,19 @@
}
}
- private void scheduleUpdates(ScoresManager scoresManager) {
+ private void scheduleUpdates(ScoresManager scoresManager, ServiceConf conf) {
- timerService.createTimer(Constants.FIRST_UPDATE_INTERVAL,
- scoresManager);
+ long firstUpdateMills = conf.getFirstUpdate() * 60 * 1000;
+ long updateIntervalMills = conf.getUpdateInterval() * 60 * 1000;
+ timerService.createTimer(firstUpdateMills, scoresManager);
+
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
- cal.set(Calendar.HOUR_OF_DAY, 0);
- cal.set(Calendar.MINUTE, 5);
- //cal.add(Calendar.MINUTE, 2);
+ cal.set(Calendar.HOUR_OF_DAY, conf.getUpdateStartHour());
+ cal.set(Calendar.MINUTE, conf.getUpdateStartMinute());
timerService.createTimer(cal.getTime(),
- Constants.SCORES_UPDATE_INTERVAL,
- scoresManager);
-
+ updateIntervalMills, scoresManager);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ServiceScoresManager.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ServiceScoresManager.java 2006-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ServiceScoresManager.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -88,7 +88,7 @@
throw new ScoresException(e);
}
- sheduleUpdates();
+ sheduleUpdates(serviceConf);
}
public void saveAsync(final Projects projects,
@@ -241,13 +241,13 @@
return service;
}
-private void sheduleUpdates() {
+ private void sheduleUpdates(ServiceConf conf) {
ScoresUpdater updater = getScoresUpdater();
if (updater != null) {
- updater.init(this);
+ updater.init(this, conf);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/ServiceConfImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/ServiceConfImpl.java 2006-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/ServiceConfImpl.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -24,6 +24,7 @@
import java.util.Properties;
+import org.jboss.forge.status.common.Constants;
import org.jboss.forge.status.common.Tags;
import org.jboss.forge.status.service.protocol.ServiceConf;
import org.jboss.shotoku.Node;
@@ -33,18 +34,71 @@
*/
public class ServiceConfImpl implements ServiceConf {
- boolean remoteService;
+ private boolean remoteService;
- Properties properties;
+ private Properties properties;
+ private int firstUpdate;
+ private int updateInterval;
+ private int updateStartHour;
+ private int updateStartMinute;
+
+
public ServiceConfImpl(Node serviceNode) {
- properties = parseProperties(serviceNode);
+ Properties allProperties = parseProperties(serviceNode, null);
- String remoteString = (String) properties.get(Tags.SERVICE_REMOTE_ELEMENT);
- remoteService = remoteString.equals("true");
+ 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;
+ }
+
public boolean isRemote() {
return remoteService;
}
@@ -53,26 +107,51 @@
return properties;
}
- private Properties parseProperties(Node serviceNode) {
+ private Properties parseProperties(Node serviceNode,
+ String excludePrefix) {
+ Properties props = new Properties();
+
if (serviceNode == null) {
- return null;
+ return props;
}
- Properties props = new Properties();
-
String propsString = serviceNode.getContent();
String[] propsArr = propsString.split("\n");
for (String propString : propsArr) {
String[] propArr = propString.split("=");
- if ((propArr != null) && (propArr.length == 2)) {
+
+ 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/service/protocol/ServiceConf.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/ServiceConf.java 2006-09-22 17:41:29 UTC (rev 6376)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/ServiceConf.java 2006-09-22 18:33:10 UTC (rev 6377)
@@ -30,6 +30,14 @@
public interface ServiceConf {
public boolean isRemote();
+
+ public int getFirstUpdate();
+
+ public int getUpdateStartHour();
+
+ public int getUpdateStartMinute();
+
+ public int getUpdateInterval();
public Properties getProperties();
More information about the jboss-svn-commits
mailing list