KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > module > builders > vwms > PerformProbe


1 /* -*- tab-width: 4; -*-
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.module.builders.vwms;
11
12 import org.mmbase.module.core.*;
13
14 import org.mmbase.util.logging.Logger;
15 import org.mmbase.util.logging.Logging;
16
17 /**
18  * @application VWMs
19  * @author Rico Jansen
20  * @version $Id: PerformProbe.java,v 1.8 2004/10/08 10:57:57 pierre Exp $
21  */

22 public class PerformProbe implements Runnable JavaDoc {
23
24     private static Logger log = Logging.getLoggerInstance(PerformProbe.class.getName());
25
26     private VwmProbeInterface vwm;
27     private MMObjectNode node;
28     private int status;
29
30     Thread JavaDoc kicker = null;
31
32     public PerformProbe(VwmProbeInterface vwm, MMObjectNode node) {
33         this.vwm = vwm;
34         this.node = node;
35         this.status = 1;
36         init();
37     }
38
39     public void init() {
40         this.start();
41     }
42
43     /**
44      * Starts the admin Thread.
45      */

46     public void start() {
47         /* Start up the main thread */
48         log.service(
49             "Creating and starting new thread for tasknr "
50                 + node.getIntValue("number")
51                 + " task "
52                 + node.getStringValue("task"));
53         if (kicker == null) {
54             kicker = new Thread JavaDoc(this, "Performprobe tasknr " + node.getIntValue("number"));
55             kicker.setDaemon(true);
56             kicker.start();
57         }
58     }
59
60     /**
61      * Stops the admin Thread.
62      */

63     public void stop() {
64         /* Stop thread */
65         kicker.interrupt();
66         kicker = null;
67     }
68
69     /**
70      * admin probe, try's to make a call to all the maintainance calls.
71      */

72     public void run() {
73         try {
74             status = 2;
75             log.service(
76                 "Calling vwm "
77                     + vwm.getName()
78                     + " performTask for tasknr "
79                     + node.getIntValue("number")
80                     + " task "
81                     + node.getStringValue("task"));
82             vwm.performTask(node);
83             status = 3;
84         } catch (Exception JavaDoc e) {
85             log.error("performTask failed" + e);
86             log.error(e.getMessage());
87             log.error(Logging.stackTrace(e));
88             status = 5;
89         }
90     }
91
92     public int getStatus() {
93         return (status);
94     }
95 }
Popular Tags