[jboss-svn-commits] JBL Code SVN: r6983 - in labs/jbosslabs/trunk/portal-extensions/forge-status: . src src/app src/app/META-INF src/java/org/jboss/forge/status/common src/java/org/jboss/forge/status/common/protocol src/java/org/jboss/forge/status/portlet/conf src/java/org/jboss/forge/status/service/impl
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 20 16:57:07 EDT 2006
Author: wrzep
Date: 2006-10-20 16:57:00 -0400 (Fri, 20 Oct 2006)
New Revision: 6983
Added:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/
labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/META-INF/
labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/META-INF/jboss-service.xml
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ScoresDailyUpdater.java
Removed:
labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-status/maven.xml
labs/jbosslabs/trunk/portal-extensions/forge-status/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-status/project.xml
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/protocol/ScoresService.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/ScoresServiceImpl.java
Log:
http://jira.jboss.com/jira/browse/JBLAB-781 (Standalone JMM service)
Managed to get remote calls working using MBeans.
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/maven.xml 2006-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/maven.xml 2006-10-20 20:57:00 UTC (rev 6983)
@@ -22,6 +22,10 @@
<attainGoal name="jar" />
<ant:move tofile="target/${status.common.final.name}" file="target/${maven.final.name}.jar" />
+
+ <ant:copy toDir="${maven.repo.local}/jboss-common/jars/" file="target/${status.common.final.name}" overwrite="true">
+ </ant:copy>
+
</goal>
<goal name="deploy">
@@ -42,14 +46,30 @@
file="${ext.root.dir}/configuration/to-copy/server/all/deploy/JBLabs-ds.xml" />
</goal>
+ <goal name="service-build">
+ <ant:copy todir="target/${jmm.service.sar}" file="target/${status.common.final.name}" />
+
+ <ant:copy todir="target/${jmm.service.sar}">
+ <ant:fileset dir="src/app" flatten="true" overwrite="true">
+ <ant:filename name="**" />
+ </ant:fileset>
+ </ant:copy>
+ </goal>
+
<goal name="service-deploy">
- <ant:copy todir="${jmm.service.deploy.dir}" file="target/${status.common.final.name}" />
- <ant:copy todir="${jmm.service.deploy.dir}" file="target/${status.service.final.name}" />
+ <ant:delete file="${local.deploy.dir}/${status.service.final.name}" />
+
+ <ant:copy todir="${jmm.service.deploy.dir}">
+ <ant:fileset dir="target/${jmm.service.sar}" flatten="true" overwrite="true">
+ <ant:filename name="**" />
+ </ant:fileset>
+ </ant:copy>
+
<ant:copy todir="${jmm.service.deploy.dir}" file="${ext.root.dir}/forge-common/target/forge-common-1.0.jar" />
</goal>
<goal name="service-clean">
- <ant:delete file="${jmm.service.deploy.dir}/${status.common.final.name}" />
+ <ant:delete dir="${jmm.service.deploy.dir}/${jmm.service.sar}" />
<ant:delete file="${jmm.service.deploy.dir}/${status.service.final.name}" />
<ant:delete file="${jmm.service.deploy.dir}/forge-common-1.0.jar" />
</goal>
@@ -57,6 +77,7 @@
<goal name="service-all">
<attainGoal name="service-clean" />
<attainGoal name="build" />
+ <attainGoal name="service-build" />
<attainGoal name="service-deploy" />
</goal>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/project.properties 2006-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/project.properties 2006-10-20 20:57:00 UTC (rev 6983)
@@ -3,11 +3,12 @@
maven.war.src=${basedir}/src/web
maven.ejb.includes=**/service/**,**/META-INF/**
-maven.jar.excludes=**/StatusPortlet.class,**/service/**
+maven.jar.excludes=**/StatusPortlet.class,**/service/**,**/persistence.xml
maven.war.classes.includes=**/StatusPortlet.class
status.service.final.name=status-service.ejb3
status.common.final.name=status-common.jar
+jmm.service.sar=jmm-service.sar/
jmm.service.server.dir=/home/pawel/moje/JBoss/as2
jmm.service.deploy.dir=${jmm.service.server.dir}/server/all/deploy
\ No newline at end of file
Modified: labs/jbosslabs/trunk/portal-extensions/forge-status/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/project.xml 2006-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/project.xml 2006-10-20 20:57:00 UTC (rev 6983)
@@ -26,8 +26,18 @@
<ejb.manifest.classpath>true</ejb.manifest.classpath>
</properties>
</dependency>
-
+<!--
<dependency>
+ <groupId>jboss-forge</groupId>
+ <artifactId>status-common</artifactId>
+ <jar>status-common.jar</jar>
+ <properties>
+ <ejb.manifest.classpath>true</ejb.manifest.classpath>
+ <war.manifest.classpath>true</war.manifest.classpath>
+ </properties>
+ </dependency>
+-->
+ <dependency>
<groupId>aslibs</groupId>
<artifactId>javax.servlet</artifactId>
<version>1.0</version>
@@ -98,6 +108,11 @@
<version></version>
<jar>jboss-annotations-ejb3.jar</jar>
</dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jbossall-client</artifactId>
+ <version>3.2.3</version>
+ </dependency>
<dependency>
<groupId>jaxb</groupId>
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/META-INF/jboss-service.xml 2006-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/app/META-INF/jboss-service.xml 2006-10-20 20:57:00 UTC (rev 6983)
@@ -0,0 +1,22 @@
+ <!-- Proxy factory for MyService that will call invoke(Invocation mi) on the target service -->
+ <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory"
+ name="jboss.jmx:type=adaptor,name=JMMService,protocol=jrmp,service=proxyFactory">
+ <!-- Use the standard JRMPInvoker from conf/jboss-service.xxml -->
+ <depends optional-attribute-name="InvokerName">jboss:service=invoker,type=jrmp</depends>
+ <!-- The target MBean -->
+ <depends optional-attribute-name="TargetName">jmm:service=JMMService</depends>
+ <!-- Where to bind the proxy factory -->
+ <attribute name="JndiName">JMMService</attribute>
+ <!-- Invoke invoke(Invocation mi) operation instead of the target method -->
+ <attribute name="InvokeTargetMethod">false</attribute>
+ <!-- MyService interface -->
+ <attribute name="ExportedInterfaces">org.jboss.forge.status.common.protocol.ScoresService</attribute>
+ <attribute name="ClientInterceptors">
+ <interceptors>
+ <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
+ <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
+ <interceptor>org.jboss.jmx.connector.invoker.client.InvokerAdaptorClientInterceptor</interceptor>
+ <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
+ </interceptors>
+ </attribute>
+ </mbean>
\ No newline at end of file
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-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Constants.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -7,6 +7,10 @@
public static final int MAX_ATTEMPTS = 10;
+ public static final String JMM_SCORES_SERVICE = "jmm:service=JMMService";
+
+ public static final String JMM_SERVICE_ADDRESS = "service:jmx:rmi://localhost:5789";
+
public static final String STATUS_LOCAL_SERVICE = "ScoresService/local";
//"java:/ScoresService/local";
public static final String STATUS_REMOTE_SERVICE = "ScoresService/remote";
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-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/protocol/ScoresService.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -26,25 +26,26 @@
import java.util.Calendar;
import java.util.List;
+import javax.ejb.Local;
import javax.ejb.Remote;
import org.jboss.forge.common.projects.Projects;
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.ScoresFactory;
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
*/
- at Remote
+//@Local
+//@Remote
public interface ScoresService extends Serializable {
public void init(String portalName, ScoresManager scoresManager,
- ScoresRepositoryManager repositoryManager,
- ScoresFactory scoresFactory, List<PluginConf> pluginsConf,
- Projects projects);
+ List<PluginConf> pluginsConf, Projects projects)
+ throws ScoresException;
public void save() throws ScoresSaveException;
@@ -59,4 +60,12 @@
public long getValue(String pluginId, String projectId,
Calendar start, Calendar end)
throws GetScoresException;
+
+ public void ping();
+
+ public Object invoke(org.jboss.invocation.Invocation mi) throws Exception;
+
+ // Life cycle method
+ public void start () throws Exception;
+ public void stop () throws Exception;
}
\ No newline at end of file
Added: labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ScoresDailyUpdater.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ScoresDailyUpdater.java 2006-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ScoresDailyUpdater.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -0,0 +1,110 @@
+/*
+ * 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.Calendar;
+import javax.annotation.Resource;
+import javax.ejb.Local;
+import javax.ejb.Stateless;
+import javax.ejb.Timeout;
+import javax.ejb.Timer;
+
+import org.jboss.annotation.ejb.LocalBinding;
+
+import org.jboss.forge.status.common.Constants;
+import org.jboss.forge.status.common.exceptions.ScoresSaveException;
+import org.jboss.forge.status.common.protocol.ScoresManager;
+import org.jboss.forge.status.common.protocol.ScoresUpdater;
+import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+
+import org.jboss.logging.Logger;
+
+/**
+* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+*/
+
+ at Stateless
+ at Local(ScoresUpdater.class)
+ at LocalBinding(jndiBinding=Constants.DAILY_SCORES_UPDATER)
+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(ScoresManager scoresManager, ServiceConf conf) {
+
+ log.info("INIT ScoresManager: " + scoresManager);
+
+ clearSchedule();
+
+ scheduleUpdates(scoresManager, conf);
+ }
+
+ @Timeout
+ public void update(Timer timer) {
+
+ log.info("Updating scores...");
+
+ ScoresManager scoresManager = (ScoresManager) timer.getInfo();
+
+ try {
+ scoresManager.save();
+
+ } catch (ScoresSaveException e) {
+
+ log.warn("Unable to update scores.\nCause: " + e.getMessage());
+ }
+ }
+
+ private void clearSchedule() {
+
+ for (Object obj : timerService.getTimers( )) {
+
+ Timer timer = (Timer) obj;
+ timer.cancel( );
+ }
+ }
+
+ private void scheduleUpdates(ScoresManager scoresManager, ServiceConf conf) {
+
+ if (conf.getFirstUpdate() > 0) {
+
+ long firstUpdateMills = conf.getFirstUpdate() * 60 * 1000;
+ timerService.createTimer(firstUpdateMills, scoresManager);
+ }
+
+ long updateIntervalMills = conf.getUpdateInterval() * 60 * 1000;
+
+ Calendar cal = Calendar.getInstance();
+ cal.add(Calendar.DATE, 1);
+ cal.set(Calendar.HOUR_OF_DAY, conf.getUpdateStartHour());
+ cal.set(Calendar.MINUTE, conf.getUpdateStartMinute());
+
+ timerService.createTimer(cal.getTime(),
+ updateIntervalMills, scoresManager);
+ }
+}
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-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/portlet/conf/ServiceScoresManager.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -33,26 +33,25 @@
import javax.rmi.PortableRemoteObject;
import org.jboss.forge.common.projects.Projects;
+
import org.jboss.forge.status.common.Constants;
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.ScoresManager;
-import org.jboss.forge.status.common.protocol.ScoresRepositoryManager;
import org.jboss.forge.status.common.protocol.ScoresService;
-import org.jboss.forge.status.common.protocol.ScoresServiceLocal;
-import org.jboss.forge.status.common.protocol.ScoresServiceRemote;
import org.jboss.forge.status.common.protocol.ScoresUpdater;
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.ScoresFactory;
import org.jboss.forge.status.common.protocol.conf.ServiceConf;
+
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.logging.Logger;
+
+
/**
* @author Pawel Wrzeszcz (pawel.wrzeszcz [at] gmail.com)
*/
@@ -79,18 +78,14 @@
log = Logger.getLogger(this.getClass());
- try {
- ScoresRepositoryManager repositoryManager =
- new DBScoresRepositoryManager();
- ScoresFactory scoresFactory = new DBScoresFactory();
-
+ try {
service = getService();
- service.init(portalName, this, repositoryManager, scoresFactory,
- pluginsConf, projects);
} catch (NamingException e) {
throw new ScoresException(e);
}
+ service.init(portalName, this, pluginsConf, projects);
+
sheduleUpdates(serviceConf);
}
@@ -220,47 +215,21 @@
}
private ScoresService getService() throws NamingException {
- /*
- String url = "http://localhost:8080/jmm-service";
-
- HessianProxyFactory factory = new HessianProxyFactory();
- ScoresService service;
- try {
- service = (ScoresService) factory.create(ScoresService.class, url);
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return null;
- }
- return service;
- */
+ //RemoteMBeanServer lConnector = new RMIClientConnectorImpl("server-name" );
- log.info("isRemote: " + isRemote);
- log.info("properties:" + properties);
+ log.info("InitialContext");
+ InitialContext ic = new InitialContext(properties);
+
+ log.info("lookup");
+ ScoresService service = (ScoresService)ic.lookup("JMMService");
- Context context = null;
- if (isRemote) {
- context = new InitialContext(properties);
- } else {
- context = new InitialContext();
- }
-
- // Perform look up using JNDI name of ejb object
- String serviceBinding = Constants.STATUS_REMOTE_SERVICE;
- /* (isRemote ? Constants.STATUS_REMOTE_SERVICE :
- Constants.STATUS_LOCAL_SERVICE);*/
-
- Object ref = context.lookup(serviceBinding);
-
- // Narrow the reference of the object returned by lookup() method
- ScoresService service =
- (ScoresService) PortableRemoteObject.narrow( ref, ScoresService.class);
- // (isRemote ? ScoresServiceRemote.class :
- // ScoresServiceLocal.class));
-
+ log.info("ping");
+ log.info("myService: " + service.toString());
+ service.ping();
+
+ log.info("return");
return service;
-
}
private void sheduleUpdates(ServiceConf conf) {
@@ -273,6 +242,7 @@
}
}
+ //TODO move updater handling to ScoresService
private ScoresUpdater getScoresUpdater() {
ScoresUpdater updater;
Deleted: 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-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresDailyUpdater.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -1,110 +0,0 @@
-/*
- * 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.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 org.jboss.annotation.ejb.LocalBinding;
-
-import org.jboss.forge.status.common.Constants;
-import org.jboss.forge.status.common.exceptions.ScoresSaveException;
-import org.jboss.forge.status.common.protocol.ScoresManager;
-import org.jboss.forge.status.common.protocol.ScoresUpdater;
-import org.jboss.forge.status.common.protocol.conf.ServiceConf;
-
-import org.jboss.logging.Logger;
-
-/**
-* @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
-*/
-
- at Stateless
- at Local(ScoresUpdater.class)
- at LocalBinding(jndiBinding=Constants.DAILY_SCORES_UPDATER)
-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(ScoresManager scoresManager, ServiceConf conf) {
-
- log.info("INIT ScoresManager: " + scoresManager);
-
- clearSchedule();
-
- scheduleUpdates(scoresManager, conf);
- }
-
- @Timeout
- public void update(Timer timer) {
-
- log.info("Updating scores...");
-
- ScoresManager scoresManager = (ScoresManager) timer.getInfo();
-
- try {
- scoresManager.save();
-
- } catch (ScoresSaveException e) {
-
- log.warn("Unable to update scores.\nCause: " + e.getMessage());
- }
- }
-
- private void clearSchedule() {
-
- for (Object obj : timerService.getTimers( )) {
-
- Timer timer = (Timer) obj;
- timer.cancel( );
- }
- }
-
- private void scheduleUpdates(ScoresManager scoresManager, ServiceConf conf) {
-
- if (conf.getFirstUpdate() > 0) {
-
- long firstUpdateMills = conf.getFirstUpdate() * 60 * 1000;
- timerService.createTimer(firstUpdateMills, scoresManager);
- }
-
- long updateIntervalMills = conf.getUpdateInterval() * 60 * 1000;
-
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.DATE, 1);
- cal.set(Calendar.HOUR_OF_DAY, conf.getUpdateStartHour());
- cal.set(Calendar.MINUTE, conf.getUpdateStartMinute());
-
- timerService.createTimer(cal.getTime(),
- updateIntervalMills, scoresManager);
- }
-}
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-10-20 20:48:14 UTC (rev 6982)
+++ labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-10-20 20:57:00 UTC (rev 6983)
@@ -24,46 +24,58 @@
import java.util.Calendar;
import java.util.List;
+import java.util.Map;
-import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
-import org.jboss.annotation.ejb.LocalBinding;
-import org.jboss.annotation.ejb.RemoteBinding;
+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;
import org.jboss.annotation.ejb.Service;
import org.jboss.forge.common.projects.Projects;
import org.jboss.forge.status.common.Constants;
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.ScoresManager;
import org.jboss.forge.status.common.protocol.ScoresRepositoryManager;
import org.jboss.forge.status.common.protocol.ScoresService;
-import org.jboss.forge.status.common.protocol.ScoresServiceLocal;
-import org.jboss.forge.status.common.protocol.ScoresServiceRemote;
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.ScoresFactory;
import org.jboss.forge.status.common.tools.Plugins;
+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)
*/
- at Service
-//@Local(ScoresServiceLocal.class)
+ at Service(objectName=Constants.JMM_SCORES_SERVICE)
+ at Management(ScoresService.class)
+
+//@Local(ScoresService.class)
//@LocalBinding(jndiBinding=Constants.STATUS_LOCAL_SERVICE)
@Remote(ScoresService.class)
- at RemoteBinding(jndiBinding=Constants.STATUS_REMOTE_SERVICE)
+//@RemoteBinding(jndiBinding=Constants.STATUS_REMOTE_SERVICE)
public class ScoresServiceImpl implements ScoresService {
private static final long serialVersionUID = 2183914957075021104L;
- private Logger log;
+ private Logger log = Logger.getLogger(this.getClass());;
private String portalName;
@@ -76,21 +88,23 @@
public void init(String portalName, ScoresManager scoresManager,
- ScoresRepositoryManager repositoryManager,
- ScoresFactory scoresFactory,
- List<PluginConf> pluginsConf,
- Projects projects) {
+ List<PluginConf> pluginsConf, Projects projects)
+ throws ScoresException {
+ log.info("INIT");
+
this.portalName = portalName;
-
this.scoresManager = scoresManager;
- this.repositoryManager = repositoryManager;
- this.scoresFactory = scoresFactory;
-
this.pluginsConf = pluginsConf;
this.projects = projects;
- log = Logger.getLogger(this.getClass());
+ try {
+ repositoryManager = new DBScoresRepositoryManager();
+ } catch (NamingException e) {
+ throw new ScoresException("DB service initialization failed." +
+ "\nCause: " + e.getMessage());
+ }
+ scoresFactory = new DBScoresFactory();
}
/**
@@ -164,4 +178,59 @@
return repositoryManager.getValue(pluginId, projectId, start, end);
}
+
+ public void start() throws Exception {
+
+ log.info("JMM service started.");
+
+ startJMXService();
+
+ log.info("Connector server for JMM started.");
+ }
+
+ public void stop() throws Exception {
+
+ 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!");
+ }
+
+ public Object invoke(Invocation mi) throws Exception {
+
+ System.out.println("MyService.invoke> method=" + mi.getMethod().getName());
+ return "invoke";
+ }
}
More information about the jboss-svn-commits
mailing list