1 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 22 public class PerformProbe implements Runnable { 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 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 46 public void start() { 47 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 (this, "Performprobe tasknr " + node.getIntValue("number")); 55 kicker.setDaemon(true); 56 kicker.start(); 57 } 58 } 59 60 63 public void stop() { 64 65 kicker.interrupt(); 66 kicker = null; 67 } 68 69 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 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 |