Revision: 36280
Author: dvandiepen
Date: 2012-09-21 11:09:51 +0200 (Fri, 21 Sep 2012)
Log Message:
-----------
REPO-489: disable scheduling with the hippo.scheduler.enabled system property
Both the scheduling and the execution of jobs is disabled by setting this
property to 'false'.
Modified Paths:
--------------
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/SchedulerModule.java
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/workflow/SchedulerWorkflowModule.java
Modified:
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/SchedulerModule.java
===================================================================
---
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/SchedulerModule.java
2012-09-21 08:59:30 UTC (rev 36279)
+++
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/SchedulerModule.java
2012-09-21 09:09:51 UTC (rev 36280)
@@ -50,20 +50,33 @@
private Session session;
private JCRScheduler scheduler = null;
+ public static boolean isEnabled() {
+ final String enabled = System.getProperty("hippo.scheduler.enabled");
+ return enabled == null ? true : Boolean.parseBoolean(enabled);
+ }
+
public void initialize(Session session) {
this.session = session;
- try {
- final JcrSchedulerFactory schedFactory = new
JcrSchedulerFactory(SCHEDULER_FACTORY_PROPERTIES);
- scheduler = (JCRScheduler) schedFactory.getScheduler();
- scheduler.start();
- } catch (SchedulerException ex) {
- log.error(ex.getClass().getName()+": "+ex.getMessage(), ex);
+ if (isEnabled()) {
+ try {
+ final JcrSchedulerFactory schedFactory = new
JcrSchedulerFactory(SCHEDULER_FACTORY_PROPERTIES);
+ scheduler = (JCRScheduler) schedFactory.getScheduler();
+ scheduler.start();
+ } catch (SchedulerException ex) {
+ log.error(ex.getClass().getName()+": "+ex.getMessage(), ex);
+ }
+ } else {
+ log.info("Hippo scheduler was disabled by hippo.scheduler.enabled
property, scheduled actions will not be executed");
}
instance = this;
}
public static Scheduler getScheduler(Session session) {
- return new JCRScheduler(instance.scheduler, session);
+ if (instance.scheduler != null) {
+ return new JCRScheduler(instance.scheduler, session);
+ } else {
+ throw new NullPointerException("The scheduler module has been
disabled, no scheduler is available");
+ }
}
static Session getSession() {
Modified:
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/workflow/SchedulerWorkflowModule.java
===================================================================
---
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/workflow/SchedulerWorkflowModule.java
2012-09-21 08:59:30 UTC (rev 36279)
+++
hippo-cms7/repository/trunk/engine/src/main/java/org/hippoecm/repository/quartz/workflow/SchedulerWorkflowModule.java
2012-09-21 09:09:51 UTC (rev 36280)
@@ -22,22 +22,31 @@
import org.hippoecm.repository.ext.WorkflowInvocationHandlerModuleFactory;
import org.hippoecm.repository.ext.WorkflowManagerModule;
import org.hippoecm.repository.ext.WorkflowManagerRegister;
+import org.hippoecm.repository.quartz.SchedulerModule;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class SchedulerWorkflowModule implements WorkflowManagerModule {
+ static final Logger log =
LoggerFactory.getLogger(SchedulerWorkflowModule.class);
+
@Override
public void register(WorkflowManagerRegister register) {
- register.bind(Date.class, new
WorkflowInvocationHandlerModuleFactory<Date>() {
- @Override
- public WorkflowInvocationHandlerModule
createInvocationHandler(Date date) {
- return new DateSchedulerInvocationModule(date);
- }
- });
- register.bind(CronExpression.class, new
WorkflowInvocationHandlerModuleFactory<CronExpression>() {
- @Override
- public WorkflowInvocationHandlerModule
createInvocationHandler(CronExpression cronExpression) {
- return new
CronSchedulerInvocationModule(cronExpression.toString());
- }
- });
+ if (SchedulerModule.isEnabled()) {
+ register.bind(Date.class, new
WorkflowInvocationHandlerModuleFactory<Date>() {
+ @Override
+ public WorkflowInvocationHandlerModule
createInvocationHandler(Date date) {
+ return new DateSchedulerInvocationModule(date);
+ }
+ });
+ register.bind(CronExpression.class, new
WorkflowInvocationHandlerModuleFactory<CronExpression>() {
+ @Override
+ public WorkflowInvocationHandlerModule
createInvocationHandler(CronExpression cronExpression) {
+ return new
CronSchedulerInvocationModule(cronExpression.toString());
+ }
+ });
+ } else {
+ log.info("Hippo scheduler was disabled, scheduling workflow
actions will not be possible");
+ }
}
}
_______________________________________________
Hippocms-svn mailing list
[email protected]
https://lists.onehippo.org/mailman/listinfo/hippocms-svn