diff --git a/cat-client/src/main/java/com/dianping/cat/CatClientModule.java b/cat-client/src/main/java/com/dianping/cat/CatClientModule.java index 40afd504e0976921c91b1748d1aee8c726142b41..b2eda8ad89df624cf9a840b9ad9e2325c521d6f5 100644 --- a/cat-client/src/main/java/com/dianping/cat/CatClientModule.java +++ b/cat-client/src/main/java/com/dianping/cat/CatClientModule.java @@ -35,7 +35,7 @@ public class CatClientModule extends AbstractModule { ThreadRenamingRunnable.setThreadNameDeterminer(ThreadNameDeterminer.CURRENT); // tracking thread start/stop - // Threads.addListener(new CatThreadListener(ctx)); + Threads.addListener(new CatThreadListener(ctx)); File clientConfigFile = ctx.getAttribute("cat-client-config-file"); ClientConfigManager clientConfigManager = ctx.lookup(ClientConfigManager.class); diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java index d18f2a94386cc3f13b28d35160277c9e680e576e..1bf875def8aa330de130def5c2b9caeed143a781 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/top/TopAnalyzer.java @@ -75,7 +75,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer implements L new ProblemReportVisitor(topReport).visitProblemReport(report); } } - return topReport; } @@ -93,7 +92,7 @@ public class TopAnalyzer extends AbstractMessageAnalyzer implements L } private boolean validateDomain(String domain) { - return !domain.equals("FrontEnd"); + return !domain.equals(ReportConstants.FRONT_END) && !domain.equals(ReportConstants.ALL); } static class ProblemReportVisitor extends com.dianping.cat.consumer.problem.model.transform.BaseVisitor { diff --git a/cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java b/cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java index 63e0f0422c55699c7f05222e8c89e4f9e49cfd5e..ed5dac502ad740d891cdca98adac33bf789d46e4 100644 --- a/cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java +++ b/cat-hadoop/src/main/java/com/dianping/cat/hadoop/hdfs/DumpUploader.java @@ -22,7 +22,6 @@ import org.unidal.helper.Files.AutoClose; import org.unidal.helper.Formats; import org.unidal.helper.Scanners; import org.unidal.helper.Scanners.FileMatcher; -import org.unidal.helper.Threads; import org.unidal.helper.Threads.Task; import org.unidal.lookup.annotation.Inject; @@ -33,7 +32,7 @@ import com.dianping.cat.message.Message; import com.dianping.cat.message.MessageProducer; import com.dianping.cat.message.Transaction; -public class DumpUploader implements Initializable, LogEnabled { +public class DumpUploader implements Initializable, Task, LogEnabled { @Inject private ServerConfigManager m_configManager; @@ -44,22 +43,28 @@ public class DumpUploader implements Initializable, LogEnabled { private Logger m_logger; - private Thread m_job; - private long m_sleepPeriod = 1000L * 60; + private volatile boolean m_active = true; + @Override public void enableLogging(Logger logger) { m_logger = logger; } + @Override + public String getName() { + return "DumpUploader"; + } + @Override public void initialize() throws InitializationException { m_baseDir = m_configManager.getHdfsLocalBaseDir("dump"); - if (!m_configManager.isLocalMode()) { - if (m_job == null) { - m_job = Threads.forGroup("Cat").start(new WriteJob()); - } + } + + private boolean isActive() { + synchronized (this) { + return m_active; } } @@ -72,163 +77,148 @@ public class DumpUploader implements Initializable, LogEnabled { return out; } - public void setSleepPeriod(long period) { - m_sleepPeriod = period; - } - - class WriteJob implements Task { - private volatile boolean m_active = true; - - @Override - public String getName() { - return "DumpUploader"; - } - - private boolean isActive() { - synchronized (this) { - return m_active; - } - } - - @Override - public void run() { - while (isActive()) { - try { - if (Cat.isInitialized()) { - Calendar cal = Calendar.getInstance(); - - if (cal.get(Calendar.MINUTE) >= 10) { - upload(); - } + @Override + public void run() { + while (isActive()) { + try { + if (Cat.isInitialized()) { + Calendar cal = Calendar.getInstance(); + + if (cal.get(Calendar.MINUTE) >= 10) { + upload(); } - } catch (Exception e) { - m_logger.warn("Error when dumping message to HDFS. " + e.getMessage()); - } - try { - Thread.sleep(m_sleepPeriod); - } catch (InterruptedException e) { - m_active = false; } + } catch (Exception e) { + m_logger.warn("Error when dumping message to HDFS. " + e.getMessage()); } - } - - @Override - public void shutdown() { - synchronized (this) { + try { + Thread.sleep(m_sleepPeriod); + } catch (InterruptedException e) { m_active = false; } } + } - private void upload() { - File baseDir = new File(m_baseDir, "outbox"); - final List paths = new ArrayList(); + public void setSleepPeriod(long period) { + m_sleepPeriod = period; + } - Scanners.forDir().scan(baseDir, new FileMatcher() { - @Override - public Direction matches(File base, String path) { - if (new File(base, path).isFile()) { - paths.add(path); - } + @Override + public void shutdown() { + synchronized (this) { + m_active = false; + } + } - return Direction.DOWN; + private void upload() { + File baseDir = new File(m_baseDir, "outbox"); + final List paths = new ArrayList(); + + Scanners.forDir().scan(baseDir, new FileMatcher() { + @Override + public Direction matches(File base, String path) { + if (new File(base, path).isFile()) { + paths.add(path); } - }); - int len = paths.size(); + return Direction.DOWN; + } + }); - if (len > 0) { - Cat.setup("DumpUploader"); + int len = paths.size(); - MessageProducer cat = Cat.getProducer(); - String ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress(); - Transaction root = cat.newTransaction("System", "Dump-" + ip); + if (len > 0) { + Cat.setup("DumpUploader"); - Collections.sort(paths); + MessageProducer cat = Cat.getProducer(); + String ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress(); + Transaction root = cat.newTransaction("System", "Dump-" + ip); - root.addData("files", paths); - root.setStatus(Message.SUCCESS); + Collections.sort(paths); - for (int i = 0; i < len; i++) { - String path = paths.get(i); - Transaction t = cat.newTransaction("System", "UploadDump"); - File file = new File(baseDir, path); + root.addData("files", paths); + root.setStatus(Message.SUCCESS); - t.addData("file", path); + for (int i = 0; i < len; i++) { + String path = paths.get(i); + Transaction t = cat.newTransaction("System", "UploadDump"); + File file = new File(baseDir, path); - FSDataOutputStream fdos = null; - try { - fdos = makeHdfsOutputStream(path); - FileInputStream fis = new FileInputStream(file); + t.addData("file", path); - long start = System.currentTimeMillis(); + FSDataOutputStream fdos = null; + try { + fdos = makeHdfsOutputStream(path); + FileInputStream fis = new FileInputStream(file); - Files.forIO().copy(fis, fdos, AutoClose.INPUT_OUTPUT); + long start = System.currentTimeMillis(); - double sec = (System.currentTimeMillis() - start) / 1000d; - String size = Formats.forNumber().format(file.length(), "0.#", "B"); - String speed = sec <= 0 ? "N/A" : Formats.forNumber().format(file.length() / sec, "0.0", "B/s"); + Files.forIO().copy(fis, fdos, AutoClose.INPUT_OUTPUT); - t.addData("size", size); - t.addData("speed", speed); - t.setStatus(Message.SUCCESS); + double sec = (System.currentTimeMillis() - start) / 1000d; + String size = Formats.forNumber().format(file.length(), "0.#", "B"); + String speed = sec <= 0 ? "N/A" : Formats.forNumber().format(file.length() / sec, "0.0", "B/s"); - if (!file.delete()) { - m_logger.warn("Can't delete file: " + file); - } - } catch (AlreadyBeingCreatedException e) { - Cat.logError(e); - t.setStatus(e); - m_logger.error(String.format("Already being created (%s)!", path), e); - } catch (AccessControlException e) { - cat.logError(e); - t.setStatus(e); - m_logger.error(String.format("No permission to create HDFS file(%s)!", path), e); - } catch (Exception e) { - cat.logError(e); - t.setStatus(e); - m_logger.error(String.format("Uploading file(%s) to HDFS(%s) failed!", file, path), e); - } finally { - try { - if (fdos != null) { - fdos.close(); - } - } catch (IOException e) { - Cat.logError(e); - } - t.complete(); - } + t.addData("size", size); + t.addData("speed", speed); + t.setStatus(Message.SUCCESS); + if (!file.delete()) { + m_logger.warn("Can't delete file: " + file); + } + } catch (AlreadyBeingCreatedException e) { + Cat.logError(e); + t.setStatus(e); + m_logger.error(String.format("Already being created (%s)!", path), e); + } catch (AccessControlException e) { + cat.logError(e); + t.setStatus(e); + m_logger.error(String.format("No permission to create HDFS file(%s)!", path), e); + } catch (Exception e) { + cat.logError(e); + t.setStatus(e); + m_logger.error(String.format("Uploading file(%s) to HDFS(%s) failed!", file, path), e); + } finally { try { - Thread.sleep(100); - } catch (InterruptedException e) { - break; + if (fdos != null) { + fdos.close(); + } + } catch (IOException e) { + Cat.logError(e); } + t.complete(); } - root.complete(); + try { + Thread.sleep(100); + } catch (InterruptedException e) { + break; + } } - // the path has two depth - for (int i = 0; i < 2; i++) { - final List directionPaths = new ArrayList(); + root.complete(); + } - Scanners.forDir().scan(baseDir, new FileMatcher() { - @Override - public Direction matches(File base, String path) { - if (new File(base, path).isDirectory()) { - directionPaths.add(path); - } + // the path has two depth + for (int i = 0; i < 2; i++) { + final List directionPaths = new ArrayList(); - return Direction.DOWN; + Scanners.forDir().scan(baseDir, new FileMatcher() { + @Override + public Direction matches(File base, String path) { + if (new File(base, path).isDirectory()) { + directionPaths.add(path); } - }); - for (String path : directionPaths) { - try { - File file = new File(baseDir, path); - file.delete(); - } catch (Exception e) { - } + return Direction.DOWN; + } + }); + for (String path : directionPaths) { + try { + File file = new File(baseDir, path); + + file.delete(); + } catch (Exception e) { } } } diff --git a/cat-home/src/main/java/com/dianping/cat/CatHomeModule.java b/cat-home/src/main/java/com/dianping/cat/CatHomeModule.java index 6666d445dd814cd3defffa8beb3f8f5e90ad0041..8db704a379b551cbcf4a97f4810650dd4dd9b7db 100644 --- a/cat-home/src/main/java/com/dianping/cat/CatHomeModule.java +++ b/cat-home/src/main/java/com/dianping/cat/CatHomeModule.java @@ -9,7 +9,6 @@ import org.unidal.initialization.ModuleContext; import com.dianping.cat.consumer.CatConsumerAdvancedModule; import com.dianping.cat.consumer.CatConsumerModule; -import com.dianping.cat.consumer.problem.aggregation.AggregationConfigManager; import com.dianping.cat.hadoop.hdfs.DumpUploader; import com.dianping.cat.message.spi.core.MessageConsumer; import com.dianping.cat.message.spi.core.TcpSocketReceiver; @@ -21,6 +20,7 @@ import com.dianping.cat.system.alarm.AlarmTask; import com.dianping.cat.system.alarm.threshold.listener.ExceptionDataListener; import com.dianping.cat.system.alarm.threshold.listener.ServiceDataListener; import com.dianping.cat.system.alarm.threshold.listener.ThresholdAlertListener; +import com.dianping.cat.system.config.ConfigReloadTask; import com.dianping.cat.system.event.EventListenerRegistry; import com.dianping.cat.system.notify.ScheduledMailTask; @@ -30,26 +30,30 @@ public class CatHomeModule extends AbstractModule { @Override protected void execute(ModuleContext ctx) throws Exception { ServerConfigManager serverConfigManager = ctx.lookup(ServerConfigManager.class); - ctx.lookup(DumpUploader.class); + ctx.lookup(MessageConsumer.class); - ctx.lookup(DomainNavManager.class); - ctx.lookup(AggregationConfigManager.class); + if (!serverConfigManager.isLocalMode()) { + ConfigReloadTask configReloadTask = ctx.lookup(ConfigReloadTask.class); + DumpUploader uploader = ctx.lookup(DumpUploader.class); + Threads.forGroup("Cat").start(configReloadTask); + Threads.forGroup("Cat").start(uploader); + } + if (serverConfigManager.isJobMachine() && !serverConfigManager.isLocalMode()) { - // MetricAlert metricAlert = ctx.lookup(MetricAlert.class); - // Threads.forGroup("Cat").start(metricAlert); DefaultTaskConsumer taskConsumer = ctx.lookup(DefaultTaskConsumer.class); MetricAlert metricAlert = ctx.lookup(MetricAlert.class); + DomainNavManager domainNavManager = ctx.lookup(DomainNavManager.class); + + Threads.forGroup("Cat").start(domainNavManager); Threads.forGroup("Cat").start(metricAlert); Threads.forGroup("Cat").start(taskConsumer); } - executeAlarmModule(ctx); } private void executeAlarmModule(ModuleContext ctx) throws Exception { ServerConfigManager serverConfigManager = ctx.lookup(ServerConfigManager.class); - EventListenerRegistry registry = ctx.lookup(EventListenerRegistry.class); ExceptionDataListener exceptionDataListener = ctx.lookup(ExceptionDataListener.class); ServiceDataListener serviceDataListener = ctx.lookup(ServiceDataListener.class); diff --git a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java index d4bef36e7f18992e6a98f401ef5d66f530617c69..d0660a8bfc58f7fbf360e0c17e846d970867df77 100755 --- a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java @@ -48,14 +48,14 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { .req(ValueTranslater.class)); all.add(C(PayloadNormalizer.class).req(ServerConfigManager.class)); - + all.add(C(StateGraphs.class, StateGraphs.class).// req(ReportService.class)); all.add(C(Module.class, CatHomeModule.ID, CatHomeModule.class)); all.add(C(ModuleManager.class, DefaultModuleManager.class) // .config(E("topLevelModules").value(CatHomeModule.ID))); - all.add(C(DomainNavManager.class).req(ProjectDao.class, ServerConfigManager.class)); + all.add(C(DomainNavManager.class).req(ProjectDao.class)); all.add(C(EventCollectManager.class).req(EventDao.class, ServerConfigManager.class)); @@ -70,7 +70,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, "dependency")); all.add(C(ConfigReloadTask.class).req(MetricConfigManager.class, ProductLineConfigManager.class)); - + // report serivce all.addAll(new ReportServiceComponentConfigurator().defineComponents()); // task @@ -84,7 +84,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { .config(E("datasourceFile").value("/data/appdatas/cat/datasources.xml"))); all.addAll(new CatDatabaseConfigurator().defineComponents()); all.addAll(new UserDatabaseConfigurator().defineComponents()); - + // for abtest module all.addAll(new ABTestComponentConfigurator().defineComponents()); @@ -93,7 +93,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { // for alarm module all.addAll(new AlarmComponentConfigurator().defineComponents()); - + return all; } } diff --git a/cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java index 4fe8fc08834fe53dc4a8cd5f9a52ea683c54b4a4..6b77cc46058f7d4ee5f0b1ed9a8afdf7c6ac2c22 100644 --- a/cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ReportServiceComponentConfigurator.java @@ -14,7 +14,7 @@ import com.dianping.cat.core.dal.MonthlyReportDao; import com.dianping.cat.core.dal.WeeklyReportDao; import com.dianping.cat.report.service.DailyReportService; import com.dianping.cat.report.service.HourlyReportService; -import com.dianping.cat.report.service.MonthReportCache; +import com.dianping.cat.report.service.MonthlyReportCache; import com.dianping.cat.report.service.MonthlyReportService; import com.dianping.cat.report.service.ReportService; import com.dianping.cat.report.service.WeeklyReportCache; @@ -45,13 +45,13 @@ public class ReportServiceComponentConfigurator extends AbstractResourceConfigur all.add(C(WeeklyReportCache.class)// .req(DailyReportService.class, HourlyReportService.class, ServerConfigManager.class)); - all.add(C(MonthReportCache.class)// + all.add(C(MonthlyReportCache.class)// .req(DailyReportService.class, HourlyReportService.class, ServerConfigManager.class)); all.add(C(ReportService.class, ReportServiceImpl.class)// .req(HourlyReportService.class, DailyReportService.class, WeeklyReportService.class, MonthlyReportService.class)// - .req(WeeklyReportCache.class, MonthReportCache.class)); + .req(WeeklyReportCache.class, MonthlyReportCache.class)); return all; diff --git a/cat-home/src/main/java/com/dianping/cat/report/service/MonthReportCache.java b/cat-home/src/main/java/com/dianping/cat/report/service/MonthlyReportCache.java similarity index 98% rename from cat-home/src/main/java/com/dianping/cat/report/service/MonthReportCache.java rename to cat-home/src/main/java/com/dianping/cat/report/service/MonthlyReportCache.java index 1ffaa221acb3a06094e0414a56476672066b6d62..5a12867bda76c0b471636d3ddada9cb8e3ffe9ea 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/service/MonthReportCache.java +++ b/cat-home/src/main/java/com/dianping/cat/report/service/MonthlyReportCache.java @@ -26,7 +26,7 @@ import com.dianping.cat.consumer.transaction.model.entity.TransactionReport; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.message.Transaction; -public class MonthReportCache implements Initializable { +public class MonthlyReportCache implements Initializable { private long m_end; diff --git a/cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java b/cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java index 5b5137264be253171af7390d8de3f9414cb6d7f7..ac537b6892e596948cedf5dda6d662d0fbd2b279 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java +++ b/cat-home/src/main/java/com/dianping/cat/report/service/impl/ReportServiceImpl.java @@ -23,7 +23,7 @@ import com.dianping.cat.core.dal.WeeklyReport; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.report.service.DailyReportService; import com.dianping.cat.report.service.HourlyReportService; -import com.dianping.cat.report.service.MonthReportCache; +import com.dianping.cat.report.service.MonthlyReportCache; import com.dianping.cat.report.service.MonthlyReportService; import com.dianping.cat.report.service.ReportService; import com.dianping.cat.report.service.WeeklyReportCache; @@ -46,7 +46,7 @@ public class ReportServiceImpl implements ReportService { private WeeklyReportCache m_weeklyReportCache; @Inject - private MonthReportCache m_monthReportCache; + private MonthlyReportCache m_monthReportCache; public static final int s_hourly = 1; diff --git a/cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java b/cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java index 048ca1c8cf9f1d0ff4599375940761c8165c3da5..5ee50552b419627527345f44ed7573d5a744c3ed 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java +++ b/cat-home/src/main/java/com/dianping/cat/report/view/DomainNavManager.java @@ -11,34 +11,25 @@ import java.util.concurrent.ConcurrentHashMap; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import org.unidal.dal.jdbc.DalException; -import org.unidal.helper.Threads; import org.unidal.helper.Threads.Task; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; -import com.dianping.cat.ServerConfigManager; import com.dianping.cat.core.dal.Project; import com.dianping.cat.core.dal.ProjectDao; import com.dianping.cat.core.dal.ProjectEntity; import com.dianping.cat.helper.TimeUtil; -public class DomainNavManager implements Initializable { +public class DomainNavManager implements Task, Initializable { @Inject private ProjectDao m_projectDao; - @Inject - private ServerConfigManager m_serverConfigManager; - // key is domain private Map m_projects = new ConcurrentHashMap(); public static final String DEFAULT = "Default"; - public Collection getDomains() { - return m_projects.keySet(); - } - public Map getDepartment(Collection domains) { Map result = new TreeMap(); @@ -53,7 +44,7 @@ public class DomainNavManager implements Initializable { projectLine = project.getProjectLine(); } Department temp = result.get(department); - + if (temp == null) { temp = new Department(); result.put(department, temp); @@ -65,6 +56,15 @@ public class DomainNavManager implements Initializable { return result; } + public Collection getDomains() { + return m_projects.keySet(); + } + + @Override + public String getName() { + return "Domain-Info-Reload"; + } + public Project getProjectByName(String domain) { synchronized (m_projects) { return m_projects.get(domain); @@ -80,9 +80,6 @@ public class DomainNavManager implements Initializable { @Override public void initialize() throws InitializationException { reloadDomainInfo(); - if (!m_serverConfigManager.isLocalMode()&&m_serverConfigManager.isJobMachine()) { - Threads.forGroup("Cat").start(new DomainReload()); - } } public void reloadDomainInfo() { @@ -101,6 +98,28 @@ public class DomainNavManager implements Initializable { } } + @Override + public void run() { + boolean active = true; + + while (active) { + try { + reloadDomainInfo(); + } catch (Exception e) { + Cat.logError(e); + } + try { + Thread.sleep(3 * TimeUtil.ONE_MINUTE); + } catch (InterruptedException e) { + active = false; + } + } + } + + @Override + public void shutdown() { + } + public static class Department { private Map m_projectLines = new HashMap(); @@ -129,36 +148,6 @@ public class DomainNavManager implements Initializable { } } - public class DomainReload implements Task { - - @Override - public String getName() { - return "Domain-Info-Reload"; - } - - @Override - public void run() { - boolean active = true; - - while (active) { - try { - reloadDomainInfo(); - } catch (Exception e) { - Cat.logError(e); - } - try { - Thread.sleep(3 * TimeUtil.ONE_MINUTE); - } catch (InterruptedException e) { - active = false; - } - } - } - - @Override - public void shutdown() { - } - } - public static class ProjectLine { private List m_lineDomains = new ArrayList(); diff --git a/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java b/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java index 327c9cce7d568f2783202e1eb5d234023886aa66..932707939bd89bfe3c22d53412318fc194b8d537 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java +++ b/cat-home/src/main/java/com/dianping/cat/system/config/ConfigReloadTask.java @@ -1,8 +1,5 @@ package com.dianping.cat.system.config; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.unidal.helper.Threads; import org.unidal.helper.Threads.Task; import org.unidal.lookup.annotation.Inject; @@ -10,7 +7,7 @@ import com.dianping.cat.Cat; import com.dianping.cat.consumer.advanced.MetricConfigManager; import com.dianping.cat.consumer.advanced.ProductLineConfigManager; -public class ConfigReloadTask implements Initializable { +public class ConfigReloadTask implements Task { @Inject private ProductLineConfigManager m_productLineConfigManager; @@ -19,37 +16,30 @@ public class ConfigReloadTask implements Initializable { private MetricConfigManager m_metricConfigManager; @Override - public void initialize() throws InitializationException { - Threads.forGroup("Cat").start(new Reload()); + public String getName() { + return "Config-Reload"; } - public class Reload implements Task { - @Override - public String getName() { - return "Config-Reload"; - } - - @Override - public void run() { - boolean active = true; - while (active) { - try { - m_productLineConfigManager.refreshProductLineConfig(); - m_metricConfigManager.refreshMetricConfig(); - } catch (Exception e) { - Cat.logError(e); - } - try { - Thread.sleep(60 * 1000L); - } catch (InterruptedException e) { - active = false; - } + @Override + public void run() { + boolean active = true; + while (active) { + try { + m_productLineConfigManager.refreshProductLineConfig(); + m_metricConfigManager.refreshMetricConfig(); + } catch (Exception e) { + Cat.logError(e); + } + try { + Thread.sleep(60 * 1000L); + } catch (InterruptedException e) { + active = false; } } + } - @Override - public void shutdown() { - } + @Override + public void shutdown() { } } diff --git a/cat-home/src/main/resources/META-INF/plexus/components.xml b/cat-home/src/main/resources/META-INF/plexus/components.xml index dd3dbe8ef9fcb80517436f070dcb36b18b99aff3..2ed8b93f47af440cad84655ae299d33f32b80a4d 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -50,9 +50,6 @@ com.dianping.cat.core.dal.ProjectDao - - com.dianping.cat.ServerConfigManager - @@ -187,8 +184,8 @@ - com.dianping.cat.report.service.MonthReportCache - com.dianping.cat.report.service.MonthReportCache + com.dianping.cat.report.service.MonthlyReportCache + com.dianping.cat.report.service.MonthlyReportCache com.dianping.cat.report.service.DailyReportService @@ -221,7 +218,7 @@ com.dianping.cat.report.service.WeeklyReportCache - com.dianping.cat.report.service.MonthReportCache + com.dianping.cat.report.service.MonthlyReportCache @@ -2358,9 +2355,6 @@ com.dianping.cat.core.dal.ProjectDao - - com.dianping.cat.ServerConfigManager -