Update of /var/cvs/applications/crontab/src/org/mmbase/applications/crontab
In directory james.mmbase.org:/tmp/cvs-serv17292/crontab

Modified Files:
        CronEntry.java Interruptable.java ProposedJobs.java 
Added Files:
        Events.java 
Log Message:
scheduling events on start and end of job


See also: 
http://cvs.mmbase.org/viewcvs/applications/crontab/src/org/mmbase/applications/crontab


Events.java is new



Index: CronEntry.java
===================================================================
RCS file: 
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/CronEntry.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- CronEntry.java      29 Jul 2008 15:21:45 -0000      1.14
+++ CronEntry.java      29 Jul 2008 15:42:24 -0000      1.15
@@ -12,6 +12,7 @@
 import org.mmbase.module.core.MMBase;
 import org.mmbase.util.HashCodeUtil;
 
+import org.mmbase.core.event.EventManager;
 import org.mmbase.util.logging.*;
 
 /**
@@ -19,7 +20,7 @@
  *
  * @author Kees Jongenburger
  * @author Michiel Meeuwissen
- * @version $Id: CronEntry.java,v 1.14 2008/07/29 15:21:45 michiel Exp $
+ * @version $Id: CronEntry.java,v 1.15 2008/07/29 15:42:24 michiel Exp $
  */
 
 public class CronEntry implements java.io.Serializable {
@@ -193,10 +194,17 @@
                 public void run() {
                     CronEntry.this.incCount();
                     CronEntry.this.setLastCost((int) (new Date().getTime() - 
start.getTime()));
+                    EventManager.getInstance().propagateEvent(new 
Events.Event(CronEntry.this, Events.DONE));
                 }
             };
+        Runnable begin = new Runnable() {
+                public void run() {
+                    EventManager.getInstance().propagateEvent(new 
Events.Event(CronEntry.this, Events.STARTED));
+                }
+            };
+
         setLastRun(start);
-        Interruptable thread = new Interruptable(cronJob, threads, ready);
+        Interruptable thread = new Interruptable(cronJob, threads, begin, 
ready);
         return thread;
     }
 
@@ -212,7 +220,7 @@
                 return true;
             }
         case BALANCE: {
-            
org.mmbase.core.event.EventManager.getInstance().propagateEvent(new 
ProposedJobs.Event(this, currentTime));
+            EventManager.getInstance().propagateEvent(new 
ProposedJobs.Event(this, currentTime));
             return true;
         }
         case MUSTBEONE:


Index: Interruptable.java
===================================================================
RCS file: 
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/Interruptable.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- Interruptable.java  14 Jul 2008 13:51:36 -0000      1.5
+++ Interruptable.java  29 Jul 2008 15:42:24 -0000      1.6
@@ -15,7 +15,7 @@
  * if the job does sleeps (InterruptedException) or check 
Thread.isInterrupted().
  * @author Michiel Meeuwissen
  * @since MMBase-1.8
- * @version $Id: Interruptable.java,v 1.5 2008/07/14 13:51:36 michiel Exp $
+ * @version $Id: Interruptable.java,v 1.6 2008/07/29 15:42:24 michiel Exp $
  */
 
 public class Interruptable implements Runnable {
@@ -25,20 +25,22 @@
     private final Runnable runnable;
     private final Collection<Interruptable> collection;
     private final Runnable ready;
+    private final Runnable start;
 
 
     public Interruptable(Runnable run, Collection<Interruptable>  col) {
-        this(run, col, null);
+        this(run, col, null, null);
     }
     /**
      * @param run The runnable wrapped by this Interrupted, which is to be 
executed in [EMAIL PROTECTED] #run}.
      * @param col A modifiable collection or <code>null</code> If not null, 
this interruptable is
      *            added to it just before running, and removed from it just 
after running.
      */
-    public Interruptable(Runnable run, Collection<Interruptable> col, Runnable 
r) {
+    public Interruptable(Runnable run, Collection<Interruptable> col, Runnable 
s, Runnable r) {
         runnable = run;
         collection = col;
         ready = r;
+        start = s;
     }
 
     public void run() {
@@ -47,6 +49,7 @@
         runThread = Thread.currentThread();
         startTime = new Date();
         try {
+            if (start != null) start.run();
             runnable.run();
             if (ready != null) ready.run();
         } catch (Throwable t) {


Index: ProposedJobs.java
===================================================================
RCS file: 
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/ProposedJobs.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- ProposedJobs.java   29 Jul 2008 15:21:45 -0000      1.2
+++ ProposedJobs.java   29 Jul 2008 15:42:24 -0000      1.3
@@ -19,16 +19,12 @@
 /**
 
  * @author Michiel Meeuwissen
- * @version $Id: ProposedJobs.java,v 1.2 2008/07/29 15:21:45 michiel Exp $
+ * @version $Id: ProposedJobs.java,v 1.3 2008/07/29 15:42:24 michiel Exp $
  */
 
 public class ProposedJobs {
     private static final Logger log = 
Logging.getLoggerInstance(ProposedJobs.class);
 
-
-    public static int TYPE_PROPOSE = 100;
-    public static int TYPE_DONE    = 101;
-
     public static class Event extends org.mmbase.core.event.Event implements 
Delayed, java.io.Serializable {
 
         private static final long WAIT = 30 * 1000;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to