[jboss-svn-commits] JBL Code SVN: r15232 - in labs/jbosslabs/trunk/stats-server/sources/metrics: common/src/java/org/jboss/labs/metrics/common/protocol and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 19 06:52:50 EDT 2007
Author: wrzep
Date: 2007-09-19 06:52:50 -0400 (Wed, 19 Sep 2007)
New Revision: 15232
Added:
labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/quartz/
labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/quartz/MetricsInitJob.java
Modified:
labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/Constants.java
labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/ScoresService.java
labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/conf/ScoresUpdater.java
labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/tools/Tools.java
labs/jbosslabs/trunk/stats-server/sources/metrics/service/project.xml
labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresDailyUpdater.java
labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresServiceImpl.java
Log:
JBLAB-891
quartz
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/Constants.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/Constants.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/Constants.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -31,7 +31,8 @@
public static final String METICS_SERVICE_ADDRESS = "service:jmx:rmi://localhost";
- public static final String DAILY_SCORES_UPDATER = "DailyScoresUpdater/local";
+ public static final String DAILY_SCORES_UPDATER = "metics:service=UpdaterService";
+ //"DailyScoresUpdater/local";
public static final String DB_SERVICE = "ScoresDBService/local";
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/ScoresService.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/ScoresService.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/ScoresService.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -24,13 +24,17 @@
import java.io.Serializable;
+import org.jboss.labs.metrics.common.protocol.conf.Configuration;
+
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
*/
public interface ScoresService extends Serializable {
+ public void init(Configuration conf);
+
public void ping();
public void save();
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/conf/ScoresUpdater.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/conf/ScoresUpdater.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/protocol/conf/ScoresUpdater.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -24,13 +24,12 @@
import java.io.Serializable;
-import org.jboss.labs.metrics.common.protocol.ScoresService;
-
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
*/
public interface ScoresUpdater extends Serializable {
- public void init(ScoresService scoresService, UpdatesConf conf);
+ // Life cycle methods
+ public void start () throws Exception;
}
\ No newline at end of file
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/tools/Tools.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/tools/Tools.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/common/src/java/org/jboss/labs/metrics/common/tools/Tools.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -117,9 +117,6 @@
InitialContext ic = new InitialContext(properties);
ScoresService service = (ScoresService)ic.lookup("JMMService");
-
- service.ping();
- log.debug("Ping to ScoresService successful.");
return service;
}
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/service/project.xml
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/service/project.xml 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/service/project.xml 2007-09-19 10:52:50 UTC (rev 15232)
@@ -53,6 +53,12 @@
<ejb.bundle>true</ejb.bundle>
</properties>
</dependency>
+
+ <dependency>
+ <groupId>quartz</groupId>
+ <artifactId>quartz</artifactId>
+ <version>1.5.2</version>
+ </dependency>
<!-- JBoss EJB3 dependencies -->
@@ -87,8 +93,13 @@
<artifactId>jbossall-client</artifactId>
<version>3.2.3</version>
</dependency>
-
<dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-jmx</artifactId>
+ <version>4.0.2</version>
+ </dependency>
+
+ <dependency>
<groupId>jaxb</groupId>
<artifactId>JAXB2</artifactId>
<version>2.0</version>
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresDailyUpdater.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresDailyUpdater.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresDailyUpdater.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -22,97 +22,67 @@
package org.jboss.labs.metrics.service.impl;
-import java.util.Calendar;
-import javax.annotation.Resource;
-import javax.ejb.Local;
-import javax.ejb.Stateless;
-import javax.ejb.Timeout;
-import javax.ejb.Timer;
-import javax.ejb.TransactionAttribute;
-import javax.ejb.TransactionAttributeType;
+import java.util.Date;
-import org.jboss.annotation.ejb.LocalBinding;
-import org.jboss.annotation.ejb.TransactionTimeout;
-
+import org.jboss.annotation.ejb.Management;
+import org.jboss.annotation.ejb.Service;
import org.jboss.labs.metrics.common.Constants;
import org.jboss.labs.metrics.common.protocol.ScoresService;
import org.jboss.labs.metrics.common.protocol.conf.ScoresUpdater;
-import org.jboss.labs.metrics.common.protocol.conf.UpdatesConf;
-
+import org.jboss.labs.metrics.service.quartz.MetricsInitJob;
import org.jboss.logging.Logger;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.TriggerUtils;
+import org.quartz.impl.StdSchedulerFactory;
/**
* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
*/
- at Stateless
+/*@Stateful
@Local(ScoresUpdater.class)
- at LocalBinding(jndiBinding=Constants.DAILY_SCORES_UPDATER)
+ at LocalBinding(jndiBinding=Constants.DAILY_SCORES_UPDATER)*/
+
+ at Service(objectName=Constants.DAILY_SCORES_UPDATER)
+ at Management(ScoresUpdater.class)
public class ScoresDailyUpdater implements ScoresUpdater {
private static final long serialVersionUID = 2272792275281319486L;
-
- @Resource private javax.ejb.TimerService timerService;
private Logger log = Logger.getLogger(ScoresDailyUpdater.class);
- public void init(ScoresService scoresService, UpdatesConf conf) {
+ public void start () throws Exception {
+
log.info("ScoresDailyUpdater initialization");
- clearSchedule();
-
- scheduleUpdates(scoresService, conf);
+ try {
+ scheduleUpdates();
+ } catch (SchedulerException e) {
+ log.warn("Quartz initialization failed", e);
+ }
}
-
- @Timeout
- @TransactionAttribute(value=TransactionAttributeType.REQUIRED)
- @TransactionTimeout(value=3000)
- public void update(Timer timer) {
-
- try {
- log.info("Updating scores...");
-
- ScoresService scoresService = (ScoresService) timer.getInfo();
-
- scoresService.save();
-
- } catch (Exception e) {
-
- log.warn("Unable to update scores.\nCause: " + e.getMessage());
- log.debug("Exception while updating scores:", e);
- }
- }
- private void clearSchedule() {
-
- for (Object obj : timerService.getTimers( )) {
-
- Timer timer = (Timer) obj;
- timer.cancel( );
- }
- }
+ private void scheduleUpdates() throws SchedulerException {
- private void scheduleUpdates(ScoresService scoresService, UpdatesConf conf) {
+ // Grab the Scheduler instance from the Factory
+ Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
+
+ // and start it off
+ scheduler.start();
+
+ JobDetail jobDetail = new JobDetail("metricsInitJob",
+ null,
+ MetricsInitJob.class);
- if (conf.getFirstUpdate() > 0) {
-
- long firstUpdateMills = conf.getFirstUpdate() * 60 * 1000;
- timerService.createTimer(firstUpdateMills, scoresService);
- }
-
- long updateIntervalMills = conf.getUpdateInterval() * 60 * 1000;
-
- Calendar cal = Calendar.getInstance();
- cal.set(Calendar.HOUR_OF_DAY, conf.getUpdateStartHour());
- cal.set(Calendar.MINUTE, conf.getUpdateStartMinute());
-
- if (cal.before(Calendar.getInstance())) {
- cal.add(Calendar.DATE, 1);
- }
-
- timerService.createTimer(cal.getTime(),
- updateIntervalMills, scoresService);
+ Trigger trigger = TriggerUtils.makeImmediateTrigger("metricsInitTrigger", 0, 60*1000);
+ trigger.setStartTime(new Date());
+ trigger.setName("metricsInitTrigger");
+
+ scheduler.scheduleJob(jobDetail, trigger);
}
}
Modified: labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresServiceImpl.java 2007-09-19 10:37:22 UTC (rev 15231)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/impl/ScoresServiceImpl.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -59,34 +59,25 @@
private Logger log = Logger.getLogger(this.getClass());;
private Properties projectsServiceProperties;
- private List<String> projectIds;
-
- protected void init(Configuration conf) throws ScoresException {
+ public void init(Configuration conf) {
+
log.info("ScoresService initialization");
-
- log.info("Starting...");
-
- //System.setProperty("java.security.policy", "client.policy");
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
projectsServiceProperties = conf.getProjectsServiceProperties();
- projectIds = conf.getProjectIds();
-
MetricsProjectsService service = ProjectTools.getProjectsService(projectsServiceProperties);
log.info("Service: " + service);
service.ping();
-
- //ScoresUpdater updater = Tools.getScoresUpdater();
- //updater.init(this, conf.getUpdateConf());
}
public void save() {
+
// TODOs
}
@@ -116,14 +107,11 @@
public void start() throws Exception {
- log.info("Metrics service started.");
+ log.info("Connector server for Metrics started.");
Tools.startJMXService(Constants.METICS_SERVICE_ADDRESS);
- init(new DefaultConfiguration());
-
-
- log.info("Connector server for Metrics started.");
+ log.info("Metrics service started.");
}
public void stop() throws Exception {
Added: labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/quartz/MetricsInitJob.java
===================================================================
--- labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/quartz/MetricsInitJob.java (rev 0)
+++ labs/jbosslabs/trunk/stats-server/sources/metrics/service/src/java/org/jboss/labs/metrics/service/quartz/MetricsInitJob.java 2007-09-19 10:52:50 UTC (rev 15232)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC 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.labs.metrics.service.quartz;
+
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+
+import org.jboss.labs.metrics.common.Constants;
+import org.jboss.labs.metrics.common.protocol.ScoresService;
+import org.jboss.labs.metrics.service.DefaultConfiguration;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+
+public class MetricsInitJob implements Job {
+
+ private static Logger log = Logger.getLogger(MetricsInitJob.class);
+
+ public void execute(JobExecutionContext context) {
+
+ log.info("execute");
+
+ try {
+ MBeanServer server = MBeanServerLocator.locate();
+
+ ScoresService scoresService = (ScoresService) MBeanProxyExt.create(
+ ScoresService.class, Constants.METRICS_SCORES_SERVICE,
+ server);
+
+ scoresService.init(new DefaultConfiguration());
+
+ } catch (MalformedObjectNameException e) {
+ log.warn("Unable to get ScoresService", e);
+ }
+ }
+}
More information about the jboss-svn-commits
mailing list