You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2010/12/13 11:02:21 UTC

svn commit: r1045050 - in /sling/trunk/bundles/extensions/event: ./ src/main/java/org/apache/sling/event/impl/jobs/ src/main/java/org/apache/sling/event/impl/jobs/console/ src/main/java/org/apache/sling/event/jobs/ src/main/resources/OSGI-INF/metatype/

Author: cziegeler
Date: Mon Dec 13 10:02:21 2010
New Revision: 1045050

URL: http://svn.apache.org/viewvc?rev=1045050&view=rev
Log:
SLING-1896 : Provide a configuration option to disable/enable all event processing

Modified:
    sling/trunk/bundles/extensions/event/pom.xml
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java
    sling/trunk/bundles/extensions/event/src/main/resources/OSGI-INF/metatype/metatype.properties

Modified: sling/trunk/bundles/extensions/event/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/pom.xml?rev=1045050&r1=1045049&r2=1045050&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/pom.xml (original)
+++ sling/trunk/bundles/extensions/event/pom.xml Mon Dec 13 10:02:21 2010
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.event</artifactId>
     <packaging>bundle</packaging>
-    <version>3.0.0-SNAPSHOT</version>
+    <version>2.4.3-SNAPSHOT</version>
 
     <name>Apache Sling Event Support</name>
     <description>

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java?rev=1045050&r1=1045049&r2=1045050&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java Mon Dec 13 10:02:21 2010
@@ -141,6 +141,13 @@ public class DefaultJobManager
     /** Statistics per topic. */
     private final ConcurrentMap<String, TopicStatistics> topicStatistics = new ConcurrentHashMap<String, TopicStatistics>();
 
+    private static final boolean DEFAULT_ENABLED = true;
+
+    @Property(boolValue=DEFAULT_ENABLED)
+    private static final String PROP_ENABLED = "jobmanager.enabled";
+
+    private boolean enabled = DEFAULT_ENABLED;
+
     /**
      * Activate this component.
      * @param props Configuration properties
@@ -174,6 +181,14 @@ public class DefaultJobManager
             queueProps.put(ConfigurationConstants.PROP_MAX_PARALLEL, 2);
         }
         this.mainConfiguration = InternalQueueConfiguration.fromConfiguration(queueProps);
+
+        final boolean oldEnabled = this.enabled;
+        this.enabled = OsgiUtil.toBoolean(props.get(PROP_ENABLED), DEFAULT_ENABLED);
+
+        // if we have been disabled before and now get enabled, restart to get processing going
+        if ( this.enabled != oldEnabled && this.enabled ) {
+            this.restart();
+        }
     }
 
     /**
@@ -226,6 +241,13 @@ public class DefaultJobManager
      * @param event The job event
      */
     public void process(final JobEvent event) {
+        // are we disabled?
+        if ( !this.enabled ) {
+            if ( logger.isDebugEnabled() ) {
+                logger.debug("Job manager is disabled. Ignoring job {}", EventUtil.toString(event.event));
+            }
+            return;
+        }
         // get the queue configuration
         InternalQueueConfiguration config = configManager.getQueueConfiguration(event);
 
@@ -715,4 +737,11 @@ public class DefaultJobManager
             job.restart();
         }
     }
+
+    /**
+     * @see org.apache.sling.event.jobs.JobManager#isJobProcessingEnabled()
+     */
+    public boolean isJobProcessingEnabled() {
+        return this.enabled;
+    }
 }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java?rev=1045050&r1=1045049&r2=1045050&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java Mon Dec 13 10:02:21 2010
@@ -175,7 +175,9 @@ public class WebConsolePlugin extends Ht
                    " document.forms['eventingcmd'].submit();" +
                    "} </script>");
 
-        pw.printf("<p class='statline ui-state-highlight'>Apache Sling Eventing%s%n</p>", msg != null ? " : " + msg : "");
+        pw.printf("<p class='statline ui-state-highlight'>Apache Sling Eventing%s%s%n</p>",
+                this.jobManager.isJobProcessingEnabled() ? "" : " (JOB PROCESSING IS DISABLED!)",
+                msg != null ? " : " + msg : "");
         pw.println("<div class='ui-widget-header ui-corner-top buttonGroup'>");
         pw.println("<span style='float: left; margin-left: 1em'>Apache Sling Eventing: Overall Statistics</span>");
         this.printForm(pw, null, "Restart!", "restart");
@@ -373,6 +375,10 @@ public class WebConsolePlugin extends Ht
         pw.println("Apache Sling Eventing");
         pw.println("---------------------");
 
+        if (!jobManager.isJobProcessingEnabled()) {
+            pw.println("JOB PROCESSING IS DISABLED!");
+            pw.println();
+        }
         Statistics s = this.jobManager.getStatistics();
         pw.println("Overall Statistics");
         pw.printf("Start Time : %s%n", formatDate(s.getStartTime()));

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java?rev=1045050&r1=1045049&r2=1045050&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java Mon Dec 13 10:02:21 2010
@@ -110,4 +110,10 @@ public interface JobManager {
      * The job manager should only be restarted if really necessary!
      */
     void restart();
+
+    /**
+     * Is job processing enabled?
+     * It is possible to completly turn off job processing.
+     */
+    boolean isJobProcessingEnabled();
 }

Modified: sling/trunk/bundles/extensions/event/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1045050&r1=1045049&r2=1045050&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/resources/OSGI-INF/metatype/metatype.properties (original)
+++ sling/trunk/bundles/extensions/event/src/main/resources/OSGI-INF/metatype/metatype.properties Mon Dec 13 10:02:21 2010
@@ -104,6 +104,10 @@ jobscheduler.period.name = Cleanup Inter
 jobscheduler.period.description = Interval in seconds in which unused \
  queues are stopped. The default value is 5 minutes (300 seconds).
 
+jobmanager.enabled.name = Job Processing Enabled
+jobmanager.enabled.description = This flag controls wheter the job processing \
+ is running or is completly turned off. Turning off job processing will stop \
+ all job processing and the jobs are queued up.
 
 #
 # Persistence Handler