提交 8f61f751 编写于 作者: Y youyong205

fix lookup issue

上级 56add630
......@@ -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<Component> all = new ArrayList<Component>();
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) //
......
......@@ -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<Context> m_context = new ThreadLocal<Context>();
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);
......
......@@ -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<Server> 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;
}
}
......@@ -4,6 +4,10 @@
<role>com.dianping.cat.configuration.ClientConfigManager</role>
<implementation>com.dianping.cat.configuration.ClientConfigManager</implementation>
</component>
<component>
<role>com.dianping.cat.message.internal.MessageIdFactory</role>
<implementation>com.dianping.cat.message.internal.MessageIdFactory</implementation>
</component>
<component>
<role>com.dianping.cat.message.spi.MessageManager</role>
<implementation>com.dianping.cat.message.internal.DefaultMessageManager</implementation>
......@@ -17,6 +21,9 @@
<requirement>
<role>com.dianping.cat.message.spi.MessageStatistics</role>
</requirement>
<requirement>
<role>com.dianping.cat.message.internal.MessageIdFactory</role>
</requirement>
</requirements>
</component>
<component>
......@@ -31,10 +38,6 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.message.internal.MessageIdFactory</role>
<implementation>com.dianping.cat.message.internal.MessageIdFactory</implementation>
</component>
<component>
<role>com.dianping.cat.message.io.MessageSender</role>
<role-hint>tcp-socket-sender</role-hint>
......
......@@ -90,10 +90,42 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
return all;
}
private Collection<Component> defineCrossComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineDependencyComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineDumpComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineMatrixComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineMetricComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineProblemComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineMetricComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineMatrixComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineDependencyComponents() {
final List<Component> all = new ArrayList<Component>();
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<Component> defineCrossComponents() {
final List<Component> all = new ArrayList<Component>();
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;
}
}
......@@ -27,9 +27,6 @@ public class CrossAnalyzer extends AbstractMessageAnalyzer<CrossReport> implemen
@Inject(ID)
protected ReportManager<CrossReport> m_reportManager;
@Inject
private ServerConfigManager m_serverConfigManager;
@Inject
private IpConvertManager m_ipConvertManager;
......
......@@ -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<DependencyReport
@Inject
private DatabaseParser m_parser;
@Inject
private ServerConfigManager m_serverConfigManager;
private Set<String> m_types = new HashSet<String>(Arrays.asList("URL", "SQL", "Call", "PigeonCall", "Service",
"PigeonService"));
......
......@@ -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<MatrixReport> implem
@Inject(ID)
private ReportManager<MatrixReport> m_reportManager;
@Inject
private ServerConfigManager m_serverConfigManager;
@Override
public void doCheckpoint(boolean atEnd) {
if (atEnd && !isLocalMode()) {
......
......@@ -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<StateReport> implemen
@Inject
private HostinfoService m_hostinfoService;
@Inject
private ServerConfigManager m_serverConfigManager;
@Inject
private String m_ip = NetworkInterfaceManager.INSTANCE.getLocalHostAddress();
......
......@@ -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<TopReport> implements L
@Inject(ID)
private ReportManager<TopReport> m_reportManager;
@Inject
private ServerConfigManager m_serverConfigManager;
private TransactionAnalyzer m_transactionAnalyzer;
private ProblemAnalyzer m_problemAnalyzer;
......
......@@ -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<TransactionRepo
@Inject(ID)
private ReportManager<TransactionReport> m_reportManager;
@Inject
private ServerConfigManager m_serverConfigManager;
public static final String ID = "transaction";
private Pair<Boolean, Long> checkForTruncatedMessage(MessageTree tree, Transaction t) {
......
......@@ -77,6 +77,9 @@
<role>com.dianping.cat.service.ReportManager</role>
<role-hint>event</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -144,6 +147,9 @@
<role>com.dianping.cat.service.ReportManager</role>
<role-hint>problem</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.consumer.problem.ProblemHandler</role>
<role-hints>
......@@ -200,6 +206,9 @@
<role>com.dianping.cat.service.ReportManager</role>
<role-hint>heartbeat</role-hint>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -287,6 +296,9 @@
<requirement>
<role>com.dianping.cat.statistic.ServerStatisticManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.storage.message.MessageBucketManager</role>
<role-hint>local</role-hint>
......@@ -591,6 +603,9 @@
<requirement>
<role>com.dianping.cat.task.TaskManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......
......@@ -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<R> 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<R> extends ContainerHolder impleme
}
protected boolean isLocalMode() {
ServerConfigManager manager = lookup(ServerConfigManager.class);
return manager.isLocalMode();
return m_serverConfigManager.isLocalMode();
}
public boolean isRawAnalyzer() {
......
......@@ -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));
......
......@@ -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);
......
......@@ -67,6 +67,11 @@
<component>
<role>com.dianping.cat.message.spi.core.MessageHandler</role>
<implementation>com.dianping.cat.message.spi.core.DefaultMessageHandler</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.config.aggregation.AggregationHandler</role>
......
......@@ -68,91 +68,81 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
List<Component> all = new ArrayList<Component>();
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;
......
......@@ -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<T> extends ModelServiceWithCalSupport implements ModelService<T>,
Initializable {
@Inject
private ServerConfigManager m_manager;
private boolean m_localMode = true;
private String m_name;
......@@ -29,9 +34,7 @@ public abstract class BaseHistoricalModelService<T> extends ModelServiceWithCalS
@Override
public void initialize() throws InitializationException {
ServerConfigManager manager = lookup(ServerConfigManager.class);
m_localMode = manager.isLocalMode();
m_localMode = m_manager.isLocalMode();
}
@Override
......
......@@ -22,6 +22,9 @@ public abstract class BaseLocalModelService<T> 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<T> extends ModelServiceWithCalSuppor
@Override
public void initialize() throws InitializationException {
ServerConfigManager manager = lookup(ServerConfigManager.class);
m_defaultDomain = manager.getConsoleDefaultDomain();
m_defaultDomain = m_manager.getConsoleDefaultDomain();
}
@Override
......
......@@ -1560,6 +1560,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1573,6 +1576,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1603,6 +1609,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1616,6 +1625,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1646,6 +1658,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1659,6 +1674,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1689,6 +1707,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1702,6 +1723,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1732,6 +1756,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1745,6 +1772,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1775,6 +1805,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1788,6 +1821,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1818,6 +1854,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1831,6 +1870,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1861,6 +1903,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1874,6 +1919,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1904,6 +1952,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1917,6 +1968,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1947,6 +2001,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -1960,6 +2017,9 @@
<requirement>
<role>com.dianping.cat.report.service.ReportServiceManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -2005,6 +2065,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.storage.message.MessageBucketManager</role>
<role-hint>local</role-hint>
......@@ -2040,6 +2103,9 @@
<role-hint>waterfall</role-hint>
<field-name>m_waterfall</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3483,6 +3549,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3495,6 +3564,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3507,6 +3579,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3519,6 +3594,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3531,6 +3609,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3552,6 +3633,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3564,6 +3648,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3576,6 +3663,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3588,6 +3678,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3600,6 +3693,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3612,6 +3708,9 @@
<requirement>
<role>com.dianping.cat.message.spi.core.MessageConsumer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册