1 17 package org.apache.servicemix.bpe.timer; 18 19 import java.util.Date ; 20 import java.util.TimerTask ; 21 22 import org.apache.commons.logging.Log; 23 import org.apache.commons.logging.LogFactory; 24 import org.apache.servicemix.bpe.BPEComponent; 25 import org.apache.servicemix.bpe.BPEEndpoint; 26 27 import org.apache.ode.bpe.bped.EventDirector; 28 import org.apache.ode.bpe.event.ITimerEvent; 29 import org.apache.ode.bpe.timerservice.IBPETimer; 30 31 public class BPETimerJdk extends TimerTask implements IBPETimer { 32 33 private static Log log = LogFactory.getLog(BPETimerJdk.class); 34 35 private ITimerEvent te; 36 private BPEEndpoint endpoint; 37 38 public BPETimerJdk(ITimerEvent te, BPEEndpoint endpoint) { 39 this.te = te; 40 this.endpoint = endpoint; 41 } 42 43 public Object getId() { 44 return te.getProcId(); 45 } 46 47 public ITimerEvent getTimerEvent() { 48 return te; 49 } 50 51 public void run() { 52 try { 53 if (log.isDebugEnabled()) { 54 log.debug("Timer " + te + " elapsed at " + new Date ()); 55 } 56 EventDirector ed = ((BPEComponent) endpoint.getServiceUnit().getComponent()).getEventDirector(); 57 try { 58 BPEEndpoint.setCurrent(endpoint); 59 ed.getIInternalEventDirector().sendEvent(this, true); 60 } finally { 61 BPEEndpoint.setCurrent(null); 62 } 63 } catch (Exception e) { 64 e.printStackTrace(); 65 } 66 } 67 68 } 69 | Popular Tags |