From: Ron B. <rjb...@us...> - 2007-01-18 00:43:54
|
Update of /cvsroot/glassbox/glassbox/agent/src/glassbox/track/api In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv3719/src/glassbox/track/api Modified Files: StatisticsRegistryHolderImpl.java Log Message: Check in files to support clustered state with Terracotta (disabled by default because the implementation is a poc and not production ready). Index: StatisticsRegistryHolderImpl.java =================================================================== RCS file: /cvsroot/glassbox/glassbox/agent/src/glassbox/track/api/StatisticsRegistryHolderImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StatisticsRegistryHolderImpl.java 9 Dec 2006 20:31:56 -0000 1.1 --- StatisticsRegistryHolderImpl.java 18 Jan 2007 00:43:52 -0000 1.2 *************** *** 1,8 **** package glassbox.track.api; ! public class StatisticsRegistryHolderImpl { private StatisticsRegistry local; private StatisticsRegistry remote; public StatisticsRegistry getLocal() { --- 1,11 ---- package glassbox.track.api; ! import org.springframework.beans.factory.DisposableBean; ! ! public class StatisticsRegistryHolderImpl implements DisposableBean { private StatisticsRegistry local; private StatisticsRegistry remote; + private boolean alive = true; public StatisticsRegistry getLocal() { *************** *** 23,41 **** public StatisticsRegistryHolderImpl() { ! new Thread() { public void run() { ! for(;;) { try { Thread.sleep(5000); ! if (local!=null) { copy(); } } catch (Throwable t) { ! System.err.println("failure:"); ! t.printStackTrace(); } ! } } ! }.start(); } --- 26,45 ---- public StatisticsRegistryHolderImpl() { ! Thread updater = new Thread("stats updater") { public void run() { ! do { try { Thread.sleep(5000); ! if (local != null) { copy(); } } catch (Throwable t) { ! logError("failure:", t); } ! } while(alive); } ! }; ! updater.setDaemon(true); ! updater.start(); } *************** *** 43,45 **** --- 47,55 ---- remote = local.cloneRegistry(); } + + public void destroy() throws Exception { + alive = false; + } + + } |