From 8f61f751fdf0d464a18503a8141057b2382153de Mon Sep 17 00:00:00 2001 From: youyong205 Date: Mon, 29 Dec 2014 20:57:24 +0800 Subject: [PATCH] fix lookup issue --- .../cat/build/ComponentsConfigurator.java | 10 +- .../internal/DefaultMessageManager.java | 6 +- .../message/io/DefaultTransportManager.java | 20 +-- .../resources/META-INF/plexus/components.xml | 11 +- .../build/ComponentsConfigurator.java | 128 +++++++++--------- .../cat/consumer/cross/CrossAnalyzer.java | 3 - .../dependency/DependencyAnalyzer.java | 4 - .../cat/consumer/matrix/MatrixAnalyzer.java | 4 - .../cat/consumer/state/StateAnalyzer.java | 4 - .../cat/consumer/top/TopAnalyzer.java | 4 - .../transaction/TransactionAnalyzer.java | 4 - .../resources/META-INF/plexus/components.xml | 15 ++ .../cat/analysis/AbstractMessageAnalyzer.java | 10 +- .../cat/build/ComponentsConfigurator.java | 3 +- .../spi/core/DefaultMessageHandler.java | 6 +- .../resources/META-INF/plexus/components.xml | 5 + .../build/ServiceComponentConfigurator.java | 54 +++----- .../internal/BaseHistoricalModelService.java | 9 +- .../spi/internal/BaseLocalModelService.java | 7 +- .../resources/META-INF/plexus/components.xml | 99 ++++++++++++++ 20 files changed, 245 insertions(+), 161 deletions(-) diff --git a/cat-client/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java b/cat-client/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java index d5ff6d7ff..252e5c448 100644 --- a/cat-client/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java +++ b/cat-client/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java @@ -14,7 +14,6 @@ import com.dianping.cat.message.internal.DefaultMessageManager; import com.dianping.cat.message.internal.DefaultMessageProducer; import com.dianping.cat.message.internal.MessageIdFactory; import com.dianping.cat.message.io.DefaultTransportManager; -import com.dianping.cat.message.io.MessageSender; import com.dianping.cat.message.io.TcpSocketSender; import com.dianping.cat.message.io.TransportManager; import com.dianping.cat.message.spi.MessageCodec; @@ -34,20 +33,19 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { List all = new ArrayList(); all.add(C(ClientConfigManager.class)); + all.add(C(MessageIdFactory.class)); all.add(C(MessageManager.class, DefaultMessageManager.class) // - .req(ClientConfigManager.class, TransportManager.class, MessageStatistics.class)); + .req(ClientConfigManager.class, TransportManager.class, MessageStatistics.class, MessageIdFactory.class)); all.add(C(MessageProducer.class, DefaultMessageProducer.class) // .req(MessageManager.class, MessageIdFactory.class)); - all.add(C(MessageIdFactory.class)); - all.add(C(MessageSender.class, TcpSocketSender.ID, TcpSocketSender.class) // - .is(PER_LOOKUP) // + all.add(C(TcpSocketSender.class) // .req(ClientConfigManager.class, MessageIdFactory.class) // .req(MessageStatistics.class, "default", "m_statistics") // .req(MessageCodec.class, PlainTextMessageCodec.ID, "m_codec")); all.add(C(TransportManager.class, DefaultTransportManager.class) // - .req(ClientConfigManager.class)); + .req(ClientConfigManager.class, TcpSocketSender.class)); all.add(C(MessageStatistics.class, DefaultMessageStatistics.class)); all.add(C(StatusUpdateTask.class) // diff --git a/cat-client/src/main/java/com/dianping/cat/message/internal/DefaultMessageManager.java b/cat-client/src/main/java/com/dianping/cat/message/internal/DefaultMessageManager.java index 13f00b26f..1a6e974aa 100644 --- a/cat-client/src/main/java/com/dianping/cat/message/internal/DefaultMessageManager.java +++ b/cat-client/src/main/java/com/dianping/cat/message/internal/DefaultMessageManager.java @@ -40,11 +40,12 @@ public class DefaultMessageManager extends ContainerHolder implements MessageMan @Inject private MessageStatistics m_statistics; + @Inject + private MessageIdFactory m_factory; + // we don't use static modifier since MessageManager is configured as singleton private ThreadLocal m_context = new ThreadLocal(); - private MessageIdFactory m_factory; - private long m_throttleTimes; private Domain m_domain; @@ -179,7 +180,6 @@ public class DefaultMessageManager extends ContainerHolder implements MessageMan // initialize domain and IP address try { - m_factory = lookup(MessageIdFactory.class); m_factory.initialize(m_domain.getId()); } catch (IOException e) { throw new InitializationException("Error while initializing MessageIdFactory!", e); diff --git a/cat-client/src/main/java/com/dianping/cat/message/io/DefaultTransportManager.java b/cat-client/src/main/java/com/dianping/cat/message/io/DefaultTransportManager.java index 16f74f376..5c176e22b 100644 --- a/cat-client/src/main/java/com/dianping/cat/message/io/DefaultTransportManager.java +++ b/cat-client/src/main/java/com/dianping/cat/message/io/DefaultTransportManager.java @@ -8,17 +8,17 @@ import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.unidal.lookup.ContainerHolder; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.configuration.ClientConfigManager; import com.dianping.cat.configuration.client.entity.Server; -public class DefaultTransportManager extends ContainerHolder implements TransportManager, Initializable, LogEnabled { +public class DefaultTransportManager implements TransportManager, Initializable, LogEnabled { @Inject private ClientConfigManager m_configManager; - private MessageSender m_sender; + @Inject + private TcpSocketSender m_tcpSocketSender; private Logger m_logger; @@ -29,7 +29,7 @@ public class DefaultTransportManager extends ContainerHolder implements Transpor @Override public MessageSender getSender() { - return m_sender; + return m_tcpSocketSender; } @Override @@ -37,7 +37,7 @@ public class DefaultTransportManager extends ContainerHolder implements Transpor List servers = m_configManager.getServers(); if (!m_configManager.isCatEnabled()) { - m_sender = null; + m_tcpSocketSender = null; if (m_configManager.isInitialized()) { m_logger.warn("CAT was DISABLED explicitly!"); @@ -58,16 +58,10 @@ public class DefaultTransportManager extends ContainerHolder implements Transpor if (addresses.isEmpty()) { throw new RuntimeException("All servers in configuration are disabled!\r\n" + servers); } else { - TcpSocketSender sender = (TcpSocketSender) lookup(MessageSender.class, TcpSocketSender.ID); - - sender.setServerAddresses(addresses); - sender.initialize(); - m_sender = sender; + m_tcpSocketSender.setServerAddresses(addresses); + m_tcpSocketSender.initialize(); } } } - public void setSender(MessageSender sender) { - m_sender = sender; - } } diff --git a/cat-client/src/main/resources/META-INF/plexus/components.xml b/cat-client/src/main/resources/META-INF/plexus/components.xml index 95b3041ec..13611b724 100644 --- a/cat-client/src/main/resources/META-INF/plexus/components.xml +++ b/cat-client/src/main/resources/META-INF/plexus/components.xml @@ -4,6 +4,10 @@ com.dianping.cat.configuration.ClientConfigManager com.dianping.cat.configuration.ClientConfigManager + + com.dianping.cat.message.internal.MessageIdFactory + com.dianping.cat.message.internal.MessageIdFactory + com.dianping.cat.message.spi.MessageManager com.dianping.cat.message.internal.DefaultMessageManager @@ -17,6 +21,9 @@ com.dianping.cat.message.spi.MessageStatistics + + com.dianping.cat.message.internal.MessageIdFactory + @@ -31,10 +38,6 @@ - - com.dianping.cat.message.internal.MessageIdFactory - com.dianping.cat.message.internal.MessageIdFactory - com.dianping.cat.message.io.MessageSender tcp-socket-sender diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java index 0b85b907c..52458701c 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/build/ComponentsConfigurator.java @@ -90,10 +90,42 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { return all; } + private Collection defineCrossComponents() { + final List all = new ArrayList(); + final String ID = CrossAnalyzer.ID; + + all.add(C(IpConvertManager.class)); + all.add(C(MessageAnalyzer.class, ID, CrossAnalyzer.class).is(PER_LOOKUP) // + .req(ReportManager.class, ID).req(ServerConfigManager.class, IpConvertManager.class)); + all.add(C(ReportManager.class, ID, DefaultReportManager.class) // + .req(ReportDelegate.class, ID) // + .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // + .config(E("name").value(ID))); + all.add(C(ReportDelegate.class, ID, CrossDelegate.class).req(TaskManager.class)); + + return all; + } + + private Collection defineDependencyComponents() { + final List all = new ArrayList(); + final String ID = DependencyAnalyzer.ID; + + all.add(C(DatabaseParser.class)); + all.add(C(MessageAnalyzer.class, ID, DependencyAnalyzer.class).is(PER_LOOKUP).req(ReportManager.class, ID) + .req(ServerConfigManager.class, DatabaseParser.class)); + all.add(C(ReportManager.class, ID, DefaultReportManager.class) // + .req(ReportDelegate.class, ID) // + .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // + .config(E("name").value(ID))); + all.add(C(ReportDelegate.class, ID, DependencyDelegate.class).req(TaskManager.class)); + + return all; + } + private Collection defineDumpComponents() { final List all = new ArrayList(); all.add(C(MessageAnalyzer.class, DumpAnalyzer.ID, DumpAnalyzer.class).is(PER_LOOKUP) // - .req(ServerStatisticManager.class) // + .req(ServerStatisticManager.class, ServerConfigManager.class) // .req(MessageBucketManager.class, LocalMessageBucketManager.ID)); all.add(C(MessageBucketManager.class, LocalMessageBucketManager.ID, LocalMessageBucketManager.class) // @@ -108,7 +140,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { final String ID = EventAnalyzer.ID; all.add(C(MessageAnalyzer.class, ID, EventAnalyzer.class).is(PER_LOOKUP) // - .req(ReportManager.class, ID)); + .req(ReportManager.class, ID).req(ServerConfigManager.class)); all.add(C(ReportManager.class, ID, DefaultReportManager.class) // .req(ReportDelegate.class, ID) // .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // @@ -123,7 +155,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { final String ID = HeartbeatAnalyzer.ID; all.add(C(MessageAnalyzer.class, ID, HeartbeatAnalyzer.class).is(PER_LOOKUP) // - .req(ReportManager.class, ID)); + .req(ReportManager.class, ID).req(ServerConfigManager.class)); all.add(C(ReportManager.class, ID, DefaultReportManager.class) // .req(ReportDelegate.class, ID) // .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // @@ -133,6 +165,34 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { return all; } + private Collection defineMatrixComponents() { + final List all = new ArrayList(); + final String ID = MatrixAnalyzer.ID; + + all.add(C(MessageAnalyzer.class, ID, MatrixAnalyzer.class).is(PER_LOOKUP) // + .req(ReportManager.class, ID).req(ServerConfigManager.class)); + all.add(C(ReportManager.class, ID, DefaultReportManager.class) // + .req(ReportDelegate.class, ID) // + .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // + .config(E("name").value(ID))); + all.add(C(ReportDelegate.class, ID, MatrixDelegate.class).req(TaskManager.class)); + + return all; + } + + private Collection defineMetricComponents() { + final List all = new ArrayList(); + + all.add(C(ContentFetcher.class, DefaultContentFetcher.class)); + all.add(C(ProductLineConfigManager.class).req(ConfigDao.class, ContentFetcher.class)); + all.add(C(MetricConfigManager.class).req(ConfigDao.class, ContentFetcher.class)); + all.add(C(MessageAnalyzer.class, MetricAnalyzer.ID, MetricAnalyzer.class).is(PER_LOOKUP) // + .req(ReportBucketManager.class, BusinessReportDao.class, MetricConfigManager.class)// + .req(ProductLineConfigManager.class, TaskManager.class, ServerConfigManager.class)); + + return all; + } + private Collection defineProblemComponents() { final List all = new ArrayList(); final String ID = ProblemAnalyzer.ID; @@ -145,7 +205,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { .req(ServerConfigManager.class)); all.add(C(MessageAnalyzer.class, ID, ProblemAnalyzer.class).is(PER_LOOKUP) // - .req(ReportManager.class, ID).req(ProblemHandler.class, // + .req(ReportManager.class, ID).req(ServerConfigManager.class).req(ProblemHandler.class, // new String[] { DefaultProblemHandler.ID, LongExecutionProblemHandler.ID }, "m_handlers")); all.add(C(ReportManager.class, ID, DefaultReportManager.class) // .req(ReportDelegate.class, ID) // @@ -202,64 +262,4 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { return all; } - - private Collection defineMetricComponents() { - final List all = new ArrayList(); - - all.add(C(ContentFetcher.class, DefaultContentFetcher.class)); - all.add(C(ProductLineConfigManager.class).req(ConfigDao.class, ContentFetcher.class)); - all.add(C(MetricConfigManager.class).req(ConfigDao.class, ContentFetcher.class)); - all.add(C(MessageAnalyzer.class, MetricAnalyzer.ID, MetricAnalyzer.class).is(PER_LOOKUP) // - .req(ReportBucketManager.class, BusinessReportDao.class, MetricConfigManager.class)// - .req(ProductLineConfigManager.class, TaskManager.class)); - - return all; - } - - private Collection defineMatrixComponents() { - final List all = new ArrayList(); - final String ID = MatrixAnalyzer.ID; - - all.add(C(MessageAnalyzer.class, ID, MatrixAnalyzer.class).is(PER_LOOKUP) // - .req(ReportManager.class, ID).req(ServerConfigManager.class)); - all.add(C(ReportManager.class, ID, DefaultReportManager.class) // - .req(ReportDelegate.class, ID) // - .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // - .config(E("name").value(ID))); - all.add(C(ReportDelegate.class, ID, MatrixDelegate.class).req(TaskManager.class)); - - return all; - } - - private Collection defineDependencyComponents() { - final List all = new ArrayList(); - final String ID = DependencyAnalyzer.ID; - - all.add(C(DatabaseParser.class)); - all.add(C(MessageAnalyzer.class, ID, DependencyAnalyzer.class).is(PER_LOOKUP).req(ReportManager.class, ID) - .req(ServerConfigManager.class, DatabaseParser.class)); - all.add(C(ReportManager.class, ID, DefaultReportManager.class) // - .req(ReportDelegate.class, ID) // - .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // - .config(E("name").value(ID))); - all.add(C(ReportDelegate.class, ID, DependencyDelegate.class).req(TaskManager.class)); - - return all; - } - - private Collection defineCrossComponents() { - final List all = new ArrayList(); - final String ID = CrossAnalyzer.ID; - - all.add(C(IpConvertManager.class)); - all.add(C(MessageAnalyzer.class, ID, CrossAnalyzer.class).is(PER_LOOKUP) // - .req(ReportManager.class, ID).req(ServerConfigManager.class, IpConvertManager.class)); - all.add(C(ReportManager.class, ID, DefaultReportManager.class) // - .req(ReportDelegate.class, ID) // - .req(ReportBucketManager.class, HourlyReportDao.class, HourlyReportContentDao.class) // - .config(E("name").value(ID))); - all.add(C(ReportDelegate.class, ID, CrossDelegate.class).req(TaskManager.class)); - - return all; - } } diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java index 2c027ba99..3aaf5d848 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/cross/CrossAnalyzer.java @@ -27,9 +27,6 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer implemen @Inject(ID) protected ReportManager m_reportManager; - @Inject - private ServerConfigManager m_serverConfigManager; - @Inject private IpConvertManager m_ipConvertManager; diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/dependency/DependencyAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/dependency/DependencyAnalyzer.java index ce4471500..0fff75ce5 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/dependency/DependencyAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/dependency/DependencyAnalyzer.java @@ -10,7 +10,6 @@ import org.codehaus.plexus.logging.Logger; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.analysis.AbstractMessageAnalyzer; -import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.consumer.dependency.model.entity.Dependency; import com.dianping.cat.consumer.dependency.model.entity.DependencyReport; import com.dianping.cat.consumer.dependency.model.entity.Index; @@ -31,9 +30,6 @@ public class DependencyAnalyzer extends AbstractMessageAnalyzer m_types = new HashSet(Arrays.asList("URL", "SQL", "Call", "PigeonCall", "Service", "PigeonService")); diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/matrix/MatrixAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/matrix/MatrixAnalyzer.java index a46413cd3..d94f08839 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/matrix/MatrixAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/matrix/MatrixAnalyzer.java @@ -10,7 +10,6 @@ import org.codehaus.plexus.logging.Logger; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.analysis.AbstractMessageAnalyzer; -import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.consumer.matrix.model.entity.Matrix; import com.dianping.cat.consumer.matrix.model.entity.MatrixReport; import com.dianping.cat.consumer.matrix.model.entity.Ratio; @@ -26,9 +25,6 @@ public class MatrixAnalyzer extends AbstractMessageAnalyzer implem @Inject(ID) private ReportManager m_reportManager; - @Inject - private ServerConfigManager m_serverConfigManager; - @Override public void doCheckpoint(boolean atEnd) { if (atEnd && !isLocalMode()) { diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java index 14acf71b8..15314120e 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java @@ -12,7 +12,6 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Constants; import com.dianping.cat.analysis.AbstractMessageAnalyzer; import com.dianping.cat.configuration.NetworkInterfaceManager; -import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.consumer.state.model.entity.Detail; import com.dianping.cat.consumer.state.model.entity.Machine; import com.dianping.cat.consumer.state.model.entity.Message; @@ -42,9 +41,6 @@ public class StateAnalyzer extends AbstractMessageAnalyzer implemen @Inject private HostinfoService m_hostinfoService; - @Inject - private ServerConfigManager m_serverConfigManager; - @Inject private String m_ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress(); 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 3ded2f805..a58ef2f6c 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 @@ -13,7 +13,6 @@ import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.Constants; import com.dianping.cat.analysis.AbstractMessageAnalyzer; -import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.consumer.problem.ProblemAnalyzer; import com.dianping.cat.consumer.problem.model.entity.Entity; import com.dianping.cat.consumer.problem.model.entity.ProblemReport; @@ -35,9 +34,6 @@ public class TopAnalyzer extends AbstractMessageAnalyzer implements L @Inject(ID) private ReportManager m_reportManager; - @Inject - private ServerConfigManager m_serverConfigManager; - private TransactionAnalyzer m_transactionAnalyzer; private ProblemAnalyzer m_problemAnalyzer; diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java index 37476943b..269652e75 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java @@ -13,7 +13,6 @@ import org.unidal.tuple.Pair; import com.dianping.cat.Cat; import com.dianping.cat.Constants; import com.dianping.cat.analysis.AbstractMessageAnalyzer; -import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.consumer.transaction.model.entity.Duration; import com.dianping.cat.consumer.transaction.model.entity.Range; import com.dianping.cat.consumer.transaction.model.entity.Range2; @@ -36,9 +35,6 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer m_reportManager; - @Inject - private ServerConfigManager m_serverConfigManager; - public static final String ID = "transaction"; private Pair checkForTruncatedMessage(MessageTree tree, Transaction t) { diff --git a/cat-consumer/src/main/resources/META-INF/plexus/components.xml b/cat-consumer/src/main/resources/META-INF/plexus/components.xml index 91c244395..2a0cb150c 100644 --- a/cat-consumer/src/main/resources/META-INF/plexus/components.xml +++ b/cat-consumer/src/main/resources/META-INF/plexus/components.xml @@ -77,6 +77,9 @@ com.dianping.cat.service.ReportManager event + + com.dianping.cat.configuration.ServerConfigManager + @@ -144,6 +147,9 @@ com.dianping.cat.service.ReportManager problem + + com.dianping.cat.configuration.ServerConfigManager + com.dianping.cat.consumer.problem.ProblemHandler @@ -200,6 +206,9 @@ com.dianping.cat.service.ReportManager heartbeat + + com.dianping.cat.configuration.ServerConfigManager + @@ -287,6 +296,9 @@ com.dianping.cat.statistic.ServerStatisticManager + + com.dianping.cat.configuration.ServerConfigManager + com.dianping.cat.storage.message.MessageBucketManager local @@ -591,6 +603,9 @@ com.dianping.cat.task.TaskManager + + com.dianping.cat.configuration.ServerConfigManager + diff --git a/cat-core/src/main/java/com/dianping/cat/analysis/AbstractMessageAnalyzer.java b/cat-core/src/main/java/com/dianping/cat/analysis/AbstractMessageAnalyzer.java index ab0a78dda..893295fcc 100644 --- a/cat-core/src/main/java/com/dianping/cat/analysis/AbstractMessageAnalyzer.java +++ b/cat-core/src/main/java/com/dianping/cat/analysis/AbstractMessageAnalyzer.java @@ -2,6 +2,7 @@ package com.dianping.cat.analysis; import org.codehaus.plexus.logging.Logger; import org.unidal.lookup.ContainerHolder; +import org.unidal.lookup.annotation.Inject; import com.dianping.cat.Cat; import com.dianping.cat.configuration.ServerConfigManager; @@ -14,7 +15,10 @@ public abstract class AbstractMessageAnalyzer extends ContainerHolder impleme public static final long ONE_HOUR = 60 * 60 * 1000L; public static final long ONE_DAY = 24 * ONE_HOUR; - + + @Inject + protected ServerConfigManager m_serverConfigManager; + private long m_extraTime; protected long m_startTime; @@ -99,9 +103,7 @@ public abstract class AbstractMessageAnalyzer extends ContainerHolder impleme } protected boolean isLocalMode() { - ServerConfigManager manager = lookup(ServerConfigManager.class); - - return manager.isLocalMode(); + return m_serverConfigManager.isLocalMode(); } public boolean isRawAnalyzer() { diff --git a/cat-core/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java b/cat-core/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java index 8b1815995..5bc37c4ba 100644 --- a/cat-core/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java +++ b/cat-core/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java @@ -29,6 +29,7 @@ import com.dianping.cat.message.spi.MessageCodec; import com.dianping.cat.message.spi.codec.PlainTextMessageCodec; import com.dianping.cat.message.spi.core.DefaultMessageHandler; import com.dianping.cat.message.spi.core.DefaultMessagePathBuilder; +import com.dianping.cat.message.spi.core.MessageConsumer; import com.dianping.cat.message.spi.core.MessageHandler; import com.dianping.cat.message.spi.core.MessagePathBuilder; import com.dianping.cat.message.spi.core.TcpSocketReceiver; @@ -61,7 +62,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { all.add(C(TcpSocketReceiver.class).req(ServerConfigManager.class).req(ServerStatisticManager.class) .req(MessageCodec.class, PlainTextMessageCodec.ID).req(MessageHandler.class)); - all.add(C(MessageHandler.class, DefaultMessageHandler.class)); + all.add(C(MessageHandler.class, DefaultMessageHandler.class).req(MessageConsumer.class)); all.add(C(AggregationHandler.class, DefaultAggregationHandler.class)); diff --git a/cat-core/src/main/java/com/dianping/cat/message/spi/core/DefaultMessageHandler.java b/cat-core/src/main/java/com/dianping/cat/message/spi/core/DefaultMessageHandler.java index 81a32f6bf..88d3f69e1 100644 --- a/cat-core/src/main/java/com/dianping/cat/message/spi/core/DefaultMessageHandler.java +++ b/cat-core/src/main/java/com/dianping/cat/message/spi/core/DefaultMessageHandler.java @@ -2,12 +2,11 @@ package com.dianping.cat.message.spi.core; import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; -import org.unidal.lookup.ContainerHolder; import org.unidal.lookup.annotation.Inject; import com.dianping.cat.message.spi.MessageTree; -public class DefaultMessageHandler extends ContainerHolder implements MessageHandler, LogEnabled { +public class DefaultMessageHandler implements MessageHandler, LogEnabled { @Inject private MessageConsumer m_consumer; @@ -20,9 +19,6 @@ public class DefaultMessageHandler extends ContainerHolder implements MessageHan @Override public void handle(MessageTree tree) { - if (m_consumer == null) { - m_consumer = lookup(MessageConsumer.class); - } try { m_consumer.consume(tree); diff --git a/cat-core/src/main/resources/META-INF/plexus/components.xml b/cat-core/src/main/resources/META-INF/plexus/components.xml index d3aa564ef..62dff0908 100644 --- a/cat-core/src/main/resources/META-INF/plexus/components.xml +++ b/cat-core/src/main/resources/META-INF/plexus/components.xml @@ -67,6 +67,11 @@ com.dianping.cat.message.spi.core.MessageHandler com.dianping.cat.message.spi.core.DefaultMessageHandler + + + com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.config.aggregation.AggregationHandler diff --git a/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java index 3588fed19..fd567085a 100755 --- a/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java @@ -68,91 +68,81 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { List all = new ArrayList(); all.add(C(ModelService.class, "transaction-local", LocalTransactionService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "transaction-historical", HistoricalTransactionService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, TransactionAnalyzer.ID, CompositeTransactionService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "transaction-historical" }, "m_services")); all.add(C(ModelService.class, "event-local", LocalEventService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "event-historical", HistoricalEventService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, EventAnalyzer.ID, CompositeEventService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "event-historical" }, "m_services")); all.add(C(ModelService.class, "problem-local", LocalProblemService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "problem-historical", HistoricalProblemService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, ProblemAnalyzer.ID, CompositeProblemService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "problem-historical" }, "m_services")); all.add(C(ModelService.class, "heartbeat-local", LocalHeartbeatService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "heartbeat-historical", HistoricalHeartbeatService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, HeartbeatAnalyzer.ID, CompositeHeartbeatService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "heartbeat-historical" }, "m_services")); all.add(C(ModelService.class, "matrix-local", LocalMatrixService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "matrix-historical", HistoricalMatrixService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, MatrixAnalyzer.ID, CompositeMatrixService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "matrix-historical" }, "m_services")); all.add(C(ModelService.class, "state-local", LocalStateService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "state-historical", HistoricalStateService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, StateAnalyzer.ID, CompositeStateService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "state-historical" }, "m_services")); all.add(C(ModelService.class, "cross-local", LocalCrossService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "cross-historical", HistoricalCrossService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, CrossAnalyzer.ID, CompositeCrossService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "cross-historical" }, "m_services")); all.add(C(ModelService.class, "top-local", LocalTopService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "top-historical", HistoricalTopService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, TopAnalyzer.ID, CompositeTopService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "top-historical" }, "m_services")); all.add(C(ModelService.class, "dependency-local", LocalDependencyService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "dependency-historical", HistoricalDependencyService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, DependencyAnalyzer.ID, CompositeDependencyService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "dependency-historical" }, "m_services")); all.add(C(ModelService.class, "metric-local", LocalMetricService.class) // - .req(ReportBucketManager.class) // - .req(MessageConsumer.class)); + .req(ReportBucketManager.class, MessageConsumer.class, ServerConfigManager.class)); all.add(C(ModelService.class, "metric-historical", HistoricalMetricService.class) // - .req(ReportBucketManager.class, ReportServiceManager.class)); + .req(ReportBucketManager.class, ReportServiceManager.class, ServerConfigManager.class)); all.add(C(ModelService.class, MetricAnalyzer.ID, CompositeMetricService.class) // .req(ServerConfigManager.class) // .req(ModelService.class, new String[] { "metric-historical" }, "m_services")); @@ -162,14 +152,14 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator { .req(ModelService.class, new String[] { "message-historical", "logview-historical" }, "m_services")); all.add(C(ModelService.class, "message-local", LocalMessageService.class) // - .req(MessageConsumer.class) // + .req(MessageConsumer.class, ServerConfigManager.class) // .req(MessageBucketManager.class, LocalMessageBucketManager.ID) // .req(MessageCodec.class, HtmlMessageCodec.ID, "m_html") // .req(MessageCodec.class, WaterfallMessageCodec.ID, "m_waterfall")); all.add(C(ModelService.class, "message-historical", HistoricalMessageService.class) // .req(MessageBucketManager.class, HdfsMessageBucketManager.ID) // .req(MessageCodec.class, HtmlMessageCodec.ID, "m_html") // - .req(MessageCodec.class, WaterfallMessageCodec.ID, "m_waterfall")); + .req(MessageCodec.class, WaterfallMessageCodec.ID, "m_waterfall").req(ServerConfigManager.class)); all.add(C(CachedReportTask.class).req(ReportServiceManager.class, ServerConfigManager.class)); return all; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseHistoricalModelService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseHistoricalModelService.java index 9fab1cbd7..afb8b6fda 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseHistoricalModelService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseHistoricalModelService.java @@ -2,6 +2,7 @@ package com.dianping.cat.report.page.model.spi.internal; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; +import org.unidal.lookup.annotation.Inject; import com.dianping.cat.configuration.ServerConfigManager; import com.dianping.cat.message.Message; @@ -12,6 +13,10 @@ import com.dianping.cat.service.ModelResponse; public abstract class BaseHistoricalModelService extends ModelServiceWithCalSupport implements ModelService, Initializable { + + @Inject + private ServerConfigManager m_manager; + private boolean m_localMode = true; private String m_name; @@ -29,9 +34,7 @@ public abstract class BaseHistoricalModelService extends ModelServiceWithCalS @Override public void initialize() throws InitializationException { - ServerConfigManager manager = lookup(ServerConfigManager.class); - - m_localMode = manager.isLocalMode(); + m_localMode = m_manager.isLocalMode(); } @Override diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseLocalModelService.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseLocalModelService.java index 7a30fae57..5c4414cfd 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseLocalModelService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/spi/internal/BaseLocalModelService.java @@ -22,6 +22,9 @@ public abstract class BaseLocalModelService extends ModelServiceWithCalSuppor Initializable { @Inject(type = MessageConsumer.class) private RealtimeConsumer m_consumer; + + @Inject + private ServerConfigManager m_manager; private String m_defaultDomain = Constants.CAT; @@ -63,9 +66,7 @@ public abstract class BaseLocalModelService extends ModelServiceWithCalSuppor @Override public void initialize() throws InitializationException { - ServerConfigManager manager = lookup(ServerConfigManager.class); - - m_defaultDomain = manager.getConsoleDefaultDomain(); + m_defaultDomain = m_manager.getConsoleDefaultDomain(); } @Override 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 58ce492b6..497155080 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -1560,6 +1560,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1573,6 +1576,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1603,6 +1609,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1616,6 +1625,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1646,6 +1658,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1659,6 +1674,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1689,6 +1707,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1702,6 +1723,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1732,6 +1756,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1745,6 +1772,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1775,6 +1805,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1788,6 +1821,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1818,6 +1854,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1831,6 +1870,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1861,6 +1903,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1874,6 +1919,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1904,6 +1952,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1917,6 +1968,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -1947,6 +2001,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -1960,6 +2017,9 @@ com.dianping.cat.report.service.ReportServiceManager + + com.dianping.cat.configuration.ServerConfigManager + @@ -2005,6 +2065,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + com.dianping.cat.storage.message.MessageBucketManager local @@ -2040,6 +2103,9 @@ waterfall m_waterfall + + com.dianping.cat.configuration.ServerConfigManager + @@ -3483,6 +3549,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3495,6 +3564,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3507,6 +3579,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3519,6 +3594,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3531,6 +3609,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3552,6 +3633,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3564,6 +3648,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3576,6 +3663,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3588,6 +3678,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3600,6 +3693,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + @@ -3612,6 +3708,9 @@ com.dianping.cat.message.spi.core.MessageConsumer + + com.dianping.cat.configuration.ServerConfigManager + -- GitLab