Skip to content

Commit 2a6851e

Browse files
committed
feat(): refactor
2 parents a4da395 + 8a09ec8 commit 2a6851e

27 files changed

+560
-219
lines changed

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,6 @@ public interface ConfigManager {
3838
* @return the config file instance for the namespace
3939
*/
4040
ConfigFile getConfigFile(String namespace, ConfigFileFormat configFileFormat);
41+
42+
4143
}

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigMonitorInitializer.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.ctrip.framework.apollo.monitor.internal.exporter.ApolloClientMetricsExporter;
2525
import com.ctrip.framework.apollo.monitor.internal.jmx.ApolloClientJmxMBeanRegister;
2626
import com.ctrip.framework.apollo.monitor.internal.ApolloClientMonitorContext;
27+
import com.ctrip.framework.apollo.monitor.internal.listener.ApolloClientMonitorEventListener;
2728
import com.ctrip.framework.apollo.monitor.internal.listener.impl.DefaultApolloClientBootstrapArgsApi;
2829
import com.ctrip.framework.apollo.monitor.internal.listener.impl.DefaultApolloClientExceptionApi;
2930
import com.ctrip.framework.apollo.monitor.internal.listener.impl.DefaultApolloClientNamespaceApi;
@@ -37,6 +38,7 @@
3738
import com.ctrip.framework.apollo.tracer.spi.MessageProducer;
3839
import com.ctrip.framework.apollo.util.ConfigUtil;
3940
import com.ctrip.framework.foundation.internals.ServiceBootstrap;
41+
import com.google.common.collect.Lists;
4042
import java.util.List;
4143

4244
/**
@@ -64,39 +66,45 @@ private static void doInit() {
6466
initializeMetricsEventListener();
6567
initializeMetricsExporter();
6668
initializeJmxMonitoring();
67-
hasInitialized = true;
6869
}
6970

7071

7172
private static void initializeJmxMonitoring() {
7273
if (m_configUtil.isClientMonitorJmxEnabled()) {
73-
monitorContext.getCollectors().forEach(metricsCollector ->
74+
monitorContext.getApolloClientMonitorEventListeners().forEach(metricsListener ->
7475
ApolloClientJmxMBeanRegister.register(
75-
MBEAN_NAME + metricsCollector.getName(), metricsCollector)
76+
MBEAN_NAME + metricsListener.getName(), metricsListener)
7677
);
7778
}
7879
}
7980

8081
private static void initializeMetricsEventListener() {
81-
DefaultConfigManager configManager = (DefaultConfigManager) ApolloInjector.getInstance(
82+
ConfigManager configManager = ApolloInjector.getInstance(
8283
ConfigManager.class);
83-
monitorContext.setApolloClientBootstrapArgsMonitorApi(new DefaultApolloClientBootstrapArgsApi(
84-
m_configUtil));
85-
monitorContext.setApolloClientExceptionMonitorApi(new DefaultApolloClientExceptionApi());
86-
monitorContext.setApolloClientNamespaceMonitorApi(new DefaultApolloClientNamespaceApi(
87-
configManager.m_configs, configManager.m_configFiles));
88-
monitorContext.setApolloClientThreadPoolMonitorApi(new DefaultApolloClientThreadPoolApi(
84+
DefaultApolloClientBootstrapArgsApi defaultApolloClientBootstrapArgsApi = new DefaultApolloClientBootstrapArgsApi(
85+
m_configUtil);
86+
DefaultApolloClientExceptionApi defaultApolloClientExceptionApi = new DefaultApolloClientExceptionApi();
87+
DefaultApolloClientNamespaceApi defaultApolloClientNamespaceApi = new DefaultApolloClientNamespaceApi(
88+
configManager);
89+
DefaultApolloClientThreadPoolApi defaultApolloClientThreadPoolApi = new DefaultApolloClientThreadPoolApi(
8990
RemoteConfigRepository.m_executorService,
9091
AbstractConfig.m_executorService, AbstractConfigFile.m_executorService,
91-
AbstractApolloClientMetricsExporter.m_executorService));
92+
AbstractApolloClientMetricsExporter.m_executorService);
93+
94+
monitorContext.setApolloClientBootstrapArgsMonitorApi(defaultApolloClientBootstrapArgsApi);
95+
monitorContext.setApolloClientExceptionMonitorApi(defaultApolloClientExceptionApi);
96+
monitorContext.setApolloClientNamespaceMonitorApi(defaultApolloClientNamespaceApi);
97+
monitorContext.setApolloClientThreadPoolMonitorApi(defaultApolloClientThreadPoolApi);
98+
monitorContext.setApolloClientMonitorEventListeners(Lists.newArrayList(defaultApolloClientBootstrapArgsApi,
99+
defaultApolloClientNamespaceApi,defaultApolloClientThreadPoolApi,defaultApolloClientExceptionApi));
92100
}
93101

94102
private static void initializeMetricsExporter(
95103
) {
96104
ApolloClientMetricsExporterFactory exporterFactory = ApolloInjector.getInstance(
97105
ApolloClientMetricsExporterFactory.class);
98106
ApolloClientMetricsExporter metricsReporter = exporterFactory.getMetricsReporter(
99-
monitorContext.getCollectors());
107+
monitorContext.getApolloClientMonitorEventListeners());
100108
if(metricsReporter != null) {
101109
monitorContext.setApolloClientMetricsExporter(metricsReporter);
102110
}

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/api/ApolloClientNamespaceMonitorApi.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ public interface ApolloClientNamespaceMonitorApi {
3535
*/
3636
Integer getNamespacePropertySize(String namespace);
3737

38-
/**
39-
* get ConfigFile namespaces
40-
*/
41-
List<String> getConfigFileNamespaces();
42-
4338
/**
4439
* get not found namespaces
4540
*/

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/ApolloClientMonitorConstant.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@
2424
*/
2525
public class ApolloClientMonitorConstant {
2626

27-
/**
28-
* util
29-
*/
30-
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
31-
"yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
32-
3327
/**
3428
* common
3529
*/
@@ -61,7 +55,7 @@ public class ApolloClientMonitorConstant {
6155
public static final String APOLLO_CLIENT_NAMESPACE_FIRST_LOAD_SPEND = "Apollo.Client.NamespaceFirstLoadSpendTime";
6256

6357
/**
64-
* collector tag
58+
* listener tag
6559
*/
6660
public static final String TAG_ERROR = "ErrorMonitor";
6761
public static final String TAG_NAMESPACE = "NamespaceMonitor";

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/ApolloClientMonitorContext.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,20 @@ public class ApolloClientMonitorContext {
4040
private ApolloClientBootstrapArgsMonitorApi apolloClientBootstrapArgsMonitorApi = new NullClientBootstrapArgsMonitorApi();
4141
private ApolloClientThreadPoolMonitorApi apolloClientThreadPoolMonitorApi = new NullClientThreadPoolMonitorApi();
4242
private ApolloClientMetricsExporter apolloClientMetricsExporter = new NullApolloClientMetricsExporter();
43-
43+
private List<ApolloClientMonitorEventListener> listener = Lists.newArrayList();
44+
45+
public void addApolloClientMonitorEventListener(ApolloClientMonitorEventListener listener){
46+
this.listener.add(listener);
47+
}
48+
49+
public void setApolloClientMonitorEventListeners(List<ApolloClientMonitorEventListener> listeners){
50+
listener = listeners;
51+
}
52+
53+
public List<ApolloClientMonitorEventListener> getApolloClientMonitorEventListeners(){
54+
return listener;
55+
}
56+
4457
public void setApolloClientExceptionMonitorApi(
4558
ApolloClientExceptionMonitorApi apolloClientExceptionMonitorApi) {
4659
this.apolloClientExceptionMonitorApi = apolloClientExceptionMonitorApi;
@@ -66,14 +79,6 @@ public void setApolloClientMetricsExporter(
6679
this.apolloClientMetricsExporter = apolloClientMetricsExporter;
6780
}
6881

69-
public List<ApolloClientMonitorEventListener> getCollectors() {
70-
return Lists.newArrayList(
71-
(ApolloClientMonitorEventListener) apolloClientBootstrapArgsMonitorApi,
72-
(ApolloClientMonitorEventListener) apolloClientThreadPoolMonitorApi,
73-
(ApolloClientMonitorEventListener) apolloClientExceptionMonitorApi,
74-
(ApolloClientMonitorEventListener) apolloClientNamespaceMonitorApi);
75-
}
76-
7782
public ApolloClientExceptionMonitorApi getExceptionApi() {
7883
return apolloClientExceptionMonitorApi;
7984
}

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/event/ApolloClientMonitorEventFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525
public class ApolloClientMonitorEventFactory {
2626

27-
public static volatile ApolloClientMonitorEventFactory INSTANCE;
27+
private static volatile ApolloClientMonitorEventFactory INSTANCE;
2828

2929
private ApolloClientMonitorEventFactory() {
3030
}

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/event/ApolloClientMonitorEventPublisher.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,23 @@
2626
*/
2727
public class ApolloClientMonitorEventPublisher {
2828

29-
private static ApolloClientMonitorContext COLLECTOR_MANAGER = ApolloInjector.getInstance(
29+
private static ApolloClientMonitorContext MONITOR_CONTEXT = ApolloInjector.getInstance(
3030
ApolloClientMonitorContext.class);
3131
private static ConfigUtil m_configUtil = ApolloInjector.getInstance(ConfigUtil.class);
3232

3333
public static void publish(ApolloClientMonitorEvent event) {
3434
if (m_configUtil.isClientMonitorEnabled()) {
35-
for (ApolloClientMonitorEventListener collector : COLLECTOR_MANAGER.getCollectors()) {
36-
if (collector.isSupported(event)) {
37-
collector.collect(event);
35+
for (ApolloClientMonitorEventListener listener : MONITOR_CONTEXT.getApolloClientMonitorEventListeners()) {
36+
if (listener.isSupported(event)) {
37+
listener.collect(event);
3838
return;
3939
}
4040
}
4141
}
4242
}
4343

4444
protected static void reset() {
45-
COLLECTOR_MANAGER = ApolloInjector.getInstance(
45+
MONITOR_CONTEXT = ApolloInjector.getInstance(
4646
ApolloClientMonitorContext.class);
4747
m_configUtil = ApolloInjector.getInstance(ConfigUtil.class);
4848

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/exporter/AbstractApolloClientMetricsExporter.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ public abstract class AbstractApolloClientMetricsExporter implements ApolloClien
4444
ApolloThreadFactory.create(ApolloClientMetricsExporter.class.getName(), true));
4545
}
4646

47-
protected List<ApolloClientMonitorEventListener> collectors;
47+
protected List<ApolloClientMonitorEventListener> listeners;
4848

4949
@Override
50-
public void init(List<ApolloClientMonitorEventListener> collectors, long collectPeriod) {
51-
log.info("Initializing metrics exporter with {} collectors and collect period of {} seconds.",
52-
collectors.size(), collectPeriod);
50+
public void init(List<ApolloClientMonitorEventListener> listeners, long collectPeriod) {
51+
log.info("Initializing metrics exporter with {} listeners and collect period of {} seconds.",
52+
listeners.size(), collectPeriod);
5353
doInit();
54-
this.collectors = collectors;
54+
this.listeners = listeners;
5555
initScheduleMetricsCollectSync(collectPeriod);
5656
log.info("Metrics collection scheduled with a period of {} seconds.", collectPeriod);
5757
}
@@ -73,10 +73,10 @@ private void initScheduleMetricsCollectSync(long collectPeriod) {
7373

7474
protected void updateMetricsData() {
7575
log.debug("Start to update metrics data job");
76-
collectors.forEach(collector -> {
77-
if (collector.isMetricsSampleUpdated()) {
78-
log.debug("Collector {} has updated samples.", collector.getName());
79-
collector.export().forEach(this::registerSample);
76+
listeners.forEach(listeners -> {
77+
if (listeners.isMetricsSampleUpdated()) {
78+
log.debug("Listener {} has updated samples.", listeners.getName());
79+
listeners.export().forEach(this::registerSample);
8080
}
8181
});
8282
}

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/exporter/ApolloClientMetricsExporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public interface ApolloClientMetricsExporter extends Ordered {
2929
/**
3030
* init method
3131
*/
32-
void init(List<ApolloClientMonitorEventListener> collectors, long collectPeriod);
32+
void init(List<ApolloClientMonitorEventListener> listeners, long collectPeriod);
3333

3434
/**
3535
* Used to access custom monitoring systems

apollo-client/src/main/java/com/ctrip/framework/apollo/monitor/internal/exporter/ApolloClientMetricsExporterFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@
2424
*/
2525
public interface ApolloClientMetricsExporterFactory {
2626

27-
ApolloClientMetricsExporter getMetricsReporter(List<ApolloClientMonitorEventListener> collectors);
27+
ApolloClientMetricsExporter getMetricsReporter(List<ApolloClientMonitorEventListener> listeners);
2828
}

0 commit comments

Comments
 (0)