[exo-jcr-commits] exo-jcr SVN: r4398 - in kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler: impl and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu May 19 13:04:04 EDT 2011


Author: nfilotto
Date: 2011-05-19 13:04:04 -0400 (Thu, 19 May 2011)
New Revision: 4398

Modified:
   kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java
   kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java
Log:
EXOJCR-1355: Allow to suspend and resume the JobSchedulerService thanks to JMX and/or Rest

Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java	2011-05-19 12:05:52 UTC (rev 4397)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/JobSchedulerService.java	2011-05-19 17:04:04 UTC (rev 4398)
@@ -19,6 +19,10 @@
 package org.exoplatform.services.scheduler;
 
 import org.exoplatform.container.component.ComponentPlugin;
+import org.exoplatform.management.annotations.Managed;
+import org.exoplatform.management.jmx.annotations.NameTemplate;
+import org.exoplatform.management.jmx.annotations.Property;
+import org.exoplatform.management.rest.annotations.RESTEndpoint;
 import org.quartz.JobDataMap;
 import org.quartz.JobDetail;
 import org.quartz.JobListener;
@@ -32,6 +36,9 @@
  * Created by The eXo Platform SAS Author : Hoa Pham hoapham at exoplatform.com Oct
  * 5, 2005
  */
+ at Managed
+ at NameTemplate(@Property(key = "service", value = "JobSchedulerService"))
+ at RESTEndpoint(path = "JobSchedulerService")
 public interface JobSchedulerService
 {
    public void addJob(JobInfo jinfo, Date date) throws Exception;
@@ -101,4 +108,16 @@
    public Date rescheduleJob(String triggerName, String groupName, Trigger newTrigger) throws Exception;
 
    public JobDetail getJob(JobInfo jobInfo) throws Exception;
+   
+   /**
+    * Suspends all the registered jobs
+    * @return <code>true</code> if the jobs could be suspended, <code>false</code> otherwise
+    */
+   public boolean suspend();
+   
+   /**
+    * Resumes all the registered jobs
+    * @return <code>true</code> if the jobs could be resumed, <code>false</code> otherwise
+    */
+   public boolean resume();
 }

Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java	2011-05-19 12:05:52 UTC (rev 4397)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/JobSchedulerServiceImpl.java	2011-05-19 17:04:04 UTC (rev 4398)
@@ -20,6 +20,8 @@
 
 import org.exoplatform.container.component.ComponentPlugin;
 import org.exoplatform.container.xml.PortalContainerInfo;
+import org.exoplatform.management.annotations.Managed;
+import org.exoplatform.management.annotations.ManagedDescription;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 import org.exoplatform.services.scheduler.CronJob;
@@ -394,6 +396,38 @@
       return scheduler_.rescheduleJob(triggerName, groupName, newTrigger);
    }
 
+   @Managed
+   @ManagedDescription("Suspend all the existing jobs")
+   public boolean suspend()
+   {
+      try
+      {
+         scheduler_.standby();
+         return true;
+      }
+      catch (SchedulerException e)
+      {
+         log.error("Could not suspend the scheduler", e);
+      }
+      return false;
+   }
+
+   @Managed
+   @ManagedDescription("Resume all the existing jobs")   
+   public boolean resume()
+   {
+      try
+      {
+         scheduler_.start();
+         return true;
+      }
+      catch (SchedulerException e)
+      {
+         log.error("Could not resume the scheduler", e);
+      }
+      return false;
+   }
+   
    public void start()
    {
       try



More information about the exo-jcr-commits mailing list