[jboss-cvs] JBossAS SVN: r83680 - in projects/ejb3/trunk/core: src/main/java/org/jboss/ejb3 and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 30 08:27:55 EST 2009


Author: wolfc
Date: 2009-01-30 08:27:55 -0500 (Fri, 30 Jan 2009)
New Revision: 83680

Added:
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/timerservice/
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/timerservice/MockTimerServiceFactory.java
   projects/ejb3/trunk/core/src/test/resources/mocktimerservice-beans.xml
Removed:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/timerservice/
   projects/ejb3/trunk/core/src/main/resources/ejb3-timer-service.xml
Modified:
   projects/ejb3/trunk/core/pom.xml
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/MessagingContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
   projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java
Log:
EJBTHREE-1697: integrate with timerservice-spi

Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/pom.xml	2009-01-30 13:27:55 UTC (rev 83680)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.jboss.ejb3</groupId>
     <artifactId>jboss-ejb3-build</artifactId>
-    <version>1.0.0</version>
+    <version>1.0.1</version>
     <relativePath>../build/pom.xml</relativePath>
   </parent>
 
@@ -17,7 +17,7 @@
   <!-- Artifact Information -->
   <artifactId>jboss-ejb3-core</artifactId>
   <packaging>jar</packaging>
-  <version>1.0.1-SNAPSHOT</version>
+  <version>1.1.0-SNAPSHOT</version>
   <name>JBoss EJB 3.0 Core</name>
   <url>http://labs.jboss.com/jbossejb3</url>
   <description>JBoss EJB 3.0 Core</description>
@@ -369,6 +369,12 @@
     
     <dependency>
       <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-timerservice-spi</artifactId>
+      <version>0.1.0-alpha-1</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
       <artifactId>jboss-ejb3-ext-api</artifactId>
       <version>1.0.0</version>
     </dependency>

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/MessagingContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/MessagingContainer.java	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/MessagingContainer.java	2009-01-30 13:27:55 UTC (rev 83680)
@@ -39,6 +39,7 @@
 
 import org.jboss.aop.Domain;
 import org.jboss.aop.MethodInfo;
+import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.ejb3.BeanContext;
 import org.jboss.ejb3.EJBContainer;
@@ -49,8 +50,8 @@
 import org.jboss.ejb3.jms.JMSDestinationFactory;
 import org.jboss.ejb3.mdb.inflow.JBossMessageEndpointFactory;
 import org.jboss.ejb3.proxy.factory.ProxyFactoryHelper;
-import org.jboss.ejb3.timerservice.TimedObjectInvoker;
-import org.jboss.ejb3.timerservice.TimerServiceFactory;
+import org.jboss.ejb3.timerservice.spi.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.spi.TimerServiceFactory;
 import org.jboss.jms.jndi.JMSProviderAdapter;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
@@ -71,6 +72,8 @@
    protected JBossMessageEndpointFactory messageEndpointFactory;
    private MessagingDelegateWrapper mbean = new MessagingDelegateWrapper(this);
 
+   private TimerServiceFactory timerServiceFactory;
+
    /**
     * Default destination type. Used when no message-driven-destination is given
     * in ejb-jar, and a lookup of destinationJNDI from jboss.xml is not
@@ -168,11 +171,11 @@
          
       innerStart();
 
-      timerService = TimerServiceFactory.getInstance().createTimerService(this, this);
+      timerService = timerServiceFactory.createTimerService(this);
 
       startProxies();
       
-      TimerServiceFactory.getInstance().restoreTimerService(timerService);
+      timerServiceFactory.restoreTimerService(timerService);
    }
 
    protected void innerStart() throws Exception
@@ -299,7 +302,7 @@
    {
       if (timerService != null)
       {
-         TimerServiceFactory.getInstance().removeTimerService(timerService);
+         timerServiceFactory.suspendTimerService(timerService);
          timerService = null;
       }
 
@@ -620,4 +623,18 @@
       else
          return 60000;
    }
+   
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.timerservice.spi.TimedObjectInvoker#getTimedObjectId()
+    */
+   public String getTimedObjectId()
+   {
+      return getDeploymentQualifiedName();
+   }
+   
+   @Inject
+   public void setTimerServiceFactory(TimerServiceFactory factory)
+   {
+      this.timerServiceFactory = factory;
+   }
 }
\ No newline at end of file

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/service/ServiceContainer.java	2009-01-30 13:27:55 UTC (rev 83680)
@@ -53,6 +53,7 @@
 import org.jboss.aop.util.MethodHashing;
 import org.jboss.aop.util.PayloadKey;
 import org.jboss.aspects.asynch.FutureHolder;
+import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.ejb.AllowedOperationsAssociation;
 import org.jboss.ejb.AllowedOperationsFlags;
 import org.jboss.ejb3.BeanContext;
@@ -73,8 +74,8 @@
 import org.jboss.ejb3.proxy.objectstore.ObjectStoreBindings;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.ejb3.stateful.StatefulContainerInvocation;
-import org.jboss.ejb3.timerservice.TimedObjectInvoker;
-import org.jboss.ejb3.timerservice.TimerServiceFactory;
+import org.jboss.ejb3.timerservice.spi.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.spi.TimerServiceFactory;
 import org.jboss.injection.Injector;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossServiceBeanMetaData;
@@ -105,6 +106,8 @@
 
    private Method timeoutMethod;
 
+   private TimerServiceFactory timerServiceFactory;
+
    @SuppressWarnings("unused")
    private static final Logger log = Logger.getLogger(ServiceContainer.class);
    
@@ -303,11 +306,11 @@
          initBeanContext();
 
          // make sure the timer service is there before injection takes place
-         timerService = TimerServiceFactory.getInstance().createTimerService(this, this);
+         timerService = timerServiceFactory.createTimerService(this);
 
          injectDependencies(beanContext);
 
-         TimerServiceFactory.getInstance().restoreTimerService(timerService);
+         timerServiceFactory.restoreTimerService(timerService);
          invokeOptionalMethod(METHOD_NAME_LIFECYCLE_CALLBACK_START);
       }
       catch (Exception e)
@@ -333,7 +336,7 @@
 
       if (timerService != null)
       {
-         TimerServiceFactory.getInstance().removeTimerService(timerService);
+         timerServiceFactory.suspendTimerService(timerService);
          timerService = null;
       }
 
@@ -690,6 +693,14 @@
       throw new NotImplementedException(this + " is no longer using unsupported (legacy) proxy impl from ejb3-core");
    }
 
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.timerservice.spi.TimedObjectInvoker#getTimedObjectId()
+    */
+   public String getTimedObjectId()
+   {
+      return getDeploymentQualifiedName();
+   }
+   
    private void registerManagementInterface()
    {
       try
@@ -838,4 +849,10 @@
    {
       throw new RuntimeException("Don't do this");
    }
+   
+   @Inject
+   public void setTimerServiceFactory(TimerServiceFactory factory)
+   {
+      this.timerServiceFactory = factory;
+   }
 }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/stateless/StatelessContainer.java	2009-01-30 13:27:55 UTC (rev 83680)
@@ -46,6 +46,7 @@
 import org.jboss.aop.joinpoint.InvocationResponse;
 import org.jboss.aop.joinpoint.MethodInvocation;
 import org.jboss.aspects.asynch.FutureHolder;
+import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.ejb.AllowedOperationsAssociation;
 import org.jboss.ejb.AllowedOperationsFlags;
 import org.jboss.ejb3.BeanContext;
@@ -77,8 +78,8 @@
 import org.jboss.ejb3.proxy.remoting.SessionSpecRemotingMetadata;
 import org.jboss.ejb3.session.SessionContainer;
 import org.jboss.ejb3.session.SessionSpecContainer;
-import org.jboss.ejb3.timerservice.TimedObjectInvoker;
-import org.jboss.ejb3.timerservice.TimerServiceFactory;
+import org.jboss.ejb3.timerservice.spi.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.spi.TimerServiceFactory;
 import org.jboss.ejb3.util.CollectionHelper;
 import org.jboss.injection.WebServiceContextProxy;
 import org.jboss.injection.lang.reflect.BeanProperty;
@@ -110,6 +111,8 @@
    private Method timeout;
    private StatelessDelegateWrapper mbean = new StatelessDelegateWrapper(this);
 
+   private TimerServiceFactory timerServiceFactory;
+
    public StatelessContainer(ClassLoader cl, String beanClassName, String ejbName, Domain domain,
                              Hashtable ctxProperties, Ejb3Deployment deployment, JBossSessionBeanMetaData beanMetaData) throws ClassNotFoundException
    {
@@ -246,9 +249,9 @@
       {
          super.lockedStart();
          
-         timerService = TimerServiceFactory.getInstance().createTimerService(this, this);
+         timerService = timerServiceFactory.createTimerService(this);
          
-         TimerServiceFactory.getInstance().restoreTimerService(timerService);
+         timerServiceFactory.restoreTimerService(timerService);
       }
       catch (Exception e)
       {
@@ -269,7 +272,7 @@
    {
       if (timerService != null)
       {
-         TimerServiceFactory.getInstance().removeTimerService(timerService);
+         timerServiceFactory.suspendTimerService(timerService);
          timerService = null;
       }
       
@@ -744,6 +747,20 @@
                            : ObjectStoreBindings.OBJECTSTORE_BEAN_NAME_JNDI_REGISTRAR_SLSB;
    }
    
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.timerservice.spi.TimedObjectInvoker#getTimedObjectId()
+    */
+   public String getTimedObjectId()
+   {
+      return getDeploymentQualifiedName();
+   }
+   
+   @Inject
+   public void setTimerServiceFactory(TimerServiceFactory factory)
+   {
+      this.timerServiceFactory = factory;
+   }
+   
    static class WSCallbackImpl implements BeanContextLifecycleCallback
    {
       private ExtensibleWebServiceContext jaxwsContext;

Deleted: projects/ejb3/trunk/core/src/main/resources/ejb3-timer-service.xml
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/ejb3-timer-service.xml	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/src/main/resources/ejb3-timer-service.xml	2009-01-30 13:27:55 UTC (rev 83680)
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-	<!-- TODO: the ejb deployer must depend on this -->
-	
-	<!--  ================================================ -->
-	<!--  Defines the Quartz configuration for             -->
-	<!--  the EJB3 Timer Service                           -->
-	<!--  ================================================ -->
-	<mbean code="org.jboss.ejb3.timerservice.quartz.jmx.EJB3TimerService" name="jboss.ejb:service=EJB3TimerService">
-		<depends>jboss:service=Naming</depends>
-		<depends>jboss:service=TransactionManager</depends>
-		<depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
-		
-		<attribute name="Properties">
-        	org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
-            org.quartz.jobStore.nonManagedTXDataSource=myDS
-            org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
-            org.quartz.jobStore.tablePrefix=QRTZ_
-            org.quartz.jobStore.dataSource=myDS
-         
-	        # To get it to work with hypersonic
-	        # FIXME: this doesn't lock the row
-            org.quartz.jobStore.selectWithLockSQL=SELECT * FROM QRTZ_LOCKS WHERE lock_name = ?
-         
-        	# from quartz.properties
-            org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler
-            org.quartz.scheduler.rmi.export=false
-            org.quartz.scheduler.rmi.proxy=false
-            org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
-   
-            org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
-            org.quartz.threadPool.threadCount=10
-            org.quartz.threadPool.threadPriority=5
-            org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
-   
-        	org.quartz.jobStore.misfireThreshold=60000
-		</attribute>
-		<attribute name="SqlProperties">
-			CREATE_DB_ON_STARTUP = TRUE
-			
-			CREATE_TABLE_JOB_DETAILS = CREATE TABLE QRTZ_JOB_DETAILS(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
-			   DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \
-			   IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \
-			   JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
-			CREATE_TABLE_JOB_LISTENERS = CREATE TABLE QRTZ_JOB_LISTENERS(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
-			   JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
-			   REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
-			CREATE_TABLE_TRIGGERS = CREATE TABLE QRTZ_TRIGGERS(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \
-			   JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \
-			   NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \
-			   TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \
-			   MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
-			   REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
-			CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE QRTZ_SIMPLE_TRIGGERS(TRIGGER_NAME VARCHAR(80) NOT NULL, \
-			   TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \
-			   TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
-			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-			CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE QRTZ_CRON_TRIGGERS(TRIGGER_NAME VARCHAR(80) NOT NULL, \
-			   TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \
-			   PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
-			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-			CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE QRTZ_BLOB_TRIGGERS(TRIGGER_NAME VARCHAR(80) NOT NULL, \
-			   TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \
-			   FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-			CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE QRTZ_TRIGGER_LISTENERS(TRIGGER_NAME VARCHAR(80) NOT NULL, \
-			   TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \
-			   PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
-			   REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
-			CREATE_TABLE_CALENDARS = CREATE TABLE QRTZ_CALENDARS(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \
-			   PRIMARY KEY (CALENDAR_NAME))
-			CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS(TRIGGER_GROUP VARCHAR(80) NOT NULL, \
-			   PRIMARY KEY (TRIGGER_GROUP))
-			CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE QRTZ_FIRED_TRIGGERS(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \
-			   TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \
-			   FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \
-			   IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID))
-			CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE QRTZ_SCHEDULER_STATE(INSTANCE_NAME VARCHAR(80) NOT NULL, \
-			   LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \
-			   PRIMARY KEY (INSTANCE_NAME))
-			CREATE_TABLE_LOCKS = CREATE TABLE QRTZ_LOCKS(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME))
-			INSERT_TRIGGER_ACCESS = INSERT INTO QRTZ_LOCKS values('TRIGGER_ACCESS')
-			INSERT_JOB_ACCESS = INSERT INTO QRTZ_LOCKS values('JOB_ACCESS')
-			INSERT_CALENDAR_ACCESS = INSERT INTO QRTZ_LOCKS values('CALENDAR_ACCESS')
-			INSERT_STATE_ACCESS = INSERT INTO QRTZ_LOCKS values('STATE_ACCESS')
-			INSERT_MISFIRE_ACCESS = INSERT INTO QRTZ_LOCKS values('MISFIRE_ACCESS')
-		</attribute>
-	</mbean>
-</server>

Modified: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java	2009-01-30 13:18:13 UTC (rev 83679)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/AbstractEJB3TestCase.java	2009-01-30 13:27:55 UTC (rev 83680)
@@ -135,6 +135,7 @@
 
       deploy("namingserver-beans.xml");
       deploy("transactionmanager-beans.xml");
+      deploy("mocktimerservice-beans.xml");
       deploy("servicecontainer-beans.xml");
       deploy("statefulcontainer-beans.xml");
       deploy("statelesscontainer-beans.xml");

Added: projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/timerservice/MockTimerServiceFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/timerservice/MockTimerServiceFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/core/src/test/java/org/jboss/ejb3/core/test/common/timerservice/MockTimerServiceFactory.java	2009-01-30 13:27:55 UTC (rev 83680)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.ejb3.core.test.common.timerservice;
+
+import javax.ejb.TimerService;
+
+import org.jboss.ejb3.timerservice.spi.TimedObjectInvoker;
+import org.jboss.ejb3.timerservice.spi.TimerServiceFactory;
+import org.jboss.logging.Logger;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MockTimerServiceFactory implements TimerServiceFactory
+{
+   private static Logger log = Logger.getLogger(MockTimerServiceFactory.class);
+   
+   public TimerService createTimerService(TimedObjectInvoker invoker)
+   {
+      log.warn("Running without a TimerService");
+      return null;
+   }
+
+   public void restoreTimerService(TimerService timerService)
+   {
+   }
+
+   public void suspendTimerService(TimerService timerService)
+   {
+   }
+
+}

Added: projects/ejb3/trunk/core/src/test/resources/mocktimerservice-beans.xml
===================================================================
--- projects/ejb3/trunk/core/src/test/resources/mocktimerservice-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/core/src/test/resources/mocktimerservice-beans.xml	2009-01-30 13:27:55 UTC (rev 83680)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   <bean name="MockTimerServiceFactory" class="org.jboss.ejb3.core.test.common.timerservice.MockTimerServiceFactory"/>
+</deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list