Skip to content

Commit

Permalink
feat(client): add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
Rawven committed Aug 18, 2024
2 parents 77eed66 + 7c6b4db commit 2ec5e87
Show file tree
Hide file tree
Showing 21 changed files with 308 additions and 67 deletions.
11 changes: 3 additions & 8 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,10 @@ Changes by Version
==================
Release Notes.

Apollo Java 2.3.0
Apollo Java 2.4.0

------------------
* [add an initialize method to avoid DefaultProviderManager's logic being triggered when using custom ProviderManager.](https://github.com/apolloconfig/apollo-java/pull/50)
* [Implement parsing time based on pattern for @ApolloJsonValue](https://github.com/apolloconfig/apollo-java/pull/53)
* [Enhance to load mocked properties from apollo.cache-dir](https://github.com/apolloconfig/apollo-java/pull/58)
* [perf: speed up the first loading of namespace when startup meet 404](https://github.com/apolloconfig/apollo-java/pull/61)
* [perf: speed up when startup meets timeout](https://github.com/apolloconfig/apollo-java/pull/64)
* [upgrade spring boot to 2.7.18](https://github.com/apolloconfig/apollo-java/pull/68)
*

------------------
All issues and pull requests are [here](https://github.com/apolloconfig/apollo-java/milestone/3?closed=1)
All issues and pull requests are [here](https://github.com/apolloconfig/apollo-java/milestone/4?closed=1)
11 changes: 11 additions & 0 deletions apollo-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,17 @@
<artifactId>mockserver-netty</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.noconnor</groupId>
<artifactId>junitperf</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- end of test -->
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class ConfigMonitorInitializer {

private static final Logger logger = LoggerFactory.getLogger(ConfigMonitorInitializer.class);
private static final ConfigUtil CONFIG_UTIL = ApolloInjector.getInstance(ConfigUtil.class);
private static boolean hasInitialized = false;
protected static boolean hasInitialized = false;

public static void initialize() {
if (CONFIG_UTIL.getClientMonitorEnabled() && !hasInitialized) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@
/**
* @author Rawven
*/
public class ApolloConfigMetricsEvent {
public class ApolloClientMetricsEvent {

private final String name;
private String tag;
private final Map<String, Object> attachments;

public ApolloConfigMetricsEvent(String name, String tag, Map<String, Object> attachments) {
public ApolloClientMetricsEvent(String name, String tag, Map<String, Object> attachments) {
this.name = name;
this.tag = tag;
this.attachments = attachments != null ? new HashMap<>(attachments) : new HashMap<>();
}

public ApolloConfigMetricsEvent withTag(String tag) {
public ApolloClientMetricsEvent withTag(String tag) {
this.tag = tag;
return this;
}
Expand All @@ -46,7 +46,7 @@ public String getName() {
return name;
}

public ApolloConfigMetricsEvent putAttachment(String key, Object value) {
public ApolloClientMetricsEvent putAttachment(String key, Object value) {
this.attachments.put(key, value);
return this;
}
Expand All @@ -67,7 +67,7 @@ public <T> T getAttachmentValue(String key) {


public void publish() {
ApolloConfigMetricsEventPublisher.publish(this);
ApolloClientMetricsEventPublisher.publish(this);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,25 @@
* @author Rawven
* @date 2024/08/08
*/
public class ApolloConfigMetricsEventFactory {
public class ApolloClientMetricsEventFactory {

public static volatile ApolloConfigMetricsEventFactory INSTANCE;
public static volatile ApolloClientMetricsEventFactory INSTANCE;

private ApolloConfigMetricsEventFactory() {
private ApolloClientMetricsEventFactory() {
}

public static ApolloConfigMetricsEventFactory getInstance() {
public static ApolloClientMetricsEventFactory getInstance() {
if (INSTANCE == null) {
synchronized (ApolloConfigMetricsEventFactory.class) {
synchronized (ApolloClientMetricsEventFactory.class) {
if (INSTANCE == null) {
INSTANCE = new ApolloConfigMetricsEventFactory();
INSTANCE = new ApolloClientMetricsEventFactory();
}
}
}
return INSTANCE;
}

public ApolloConfigMetricsEvent createEvent(String name) {
return new ApolloConfigMetricsEvent(name, null, new HashMap<>(2));
public ApolloClientMetricsEvent createEvent(String name) {
return new ApolloClientMetricsEvent(name, null, new HashMap<>(2));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
/**
* @author Rawven
*/
public class ApolloConfigMetricsEventPublisher {
public class ApolloClientMetricsEventPublisher {

private static final ApolloClientMetricsEventListenerManager COLLECTOR_MANAGER = ApolloInjector.getInstance(
ApolloClientMetricsEventListenerManager.class);
private static final ConfigUtil m_configUtil = ApolloInjector.getInstance(ConfigUtil.class);

public static void publish(ApolloConfigMetricsEvent event) {
public static void publish(ApolloClientMetricsEvent event) {
if (m_configUtil.getClientMonitorEnabled()) {
for (ApolloClientMetricsEventListener collector : COLLECTOR_MANAGER.getCollectors()) {
if (collector.isSupport(event)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
package com.ctrip.framework.apollo.monitor.internal.listener;

import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.model.CounterModel;
import com.ctrip.framework.apollo.monitor.internal.model.GaugeModel;
import com.ctrip.framework.apollo.monitor.internal.model.SampleModel;
Expand Down Expand Up @@ -46,7 +46,7 @@ public AbstractApolloClientMetricsEventListener(String tag) {
/**
* Specific collection logic
*/
protected abstract void collect0(ApolloConfigMetricsEvent event);
protected abstract void collect0(ApolloClientMetricsEvent event);

/**
* Convenient for indicators that can only be obtained from the status object
Expand All @@ -59,12 +59,12 @@ public String mBeanName() {
}

@Override
public boolean isSupport(ApolloConfigMetricsEvent event) {
public boolean isSupport(ApolloClientMetricsEvent event) {
return tag.equals(event.getTag());
}

@Override
public void collect(ApolloConfigMetricsEvent event) {
public void collect(ApolloClientMetricsEvent event) {
collect0(event);
isUpdated.set(true);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
package com.ctrip.framework.apollo.monitor.internal.listener;

import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.model.SampleModel;
import java.util.List;

Expand All @@ -34,12 +34,12 @@ public interface ApolloClientMetricsEventListener {
/**
* is support the event
*/
boolean isSupport(ApolloConfigMetricsEvent event);
boolean isSupport(ApolloClientMetricsEvent event);

/**
* collect metrics from event
*/
void collect(ApolloConfigMetricsEvent event);
void collect(ApolloClientMetricsEvent event);

/**
* is samples updated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import com.ctrip.framework.apollo.monitor.api.ApolloClientBootstrapArgsMonitorApi;
import com.ctrip.framework.apollo.monitor.internal.jmx.mbean.ApolloClientJmxBootstrapArgsMBean;
import com.ctrip.framework.apollo.monitor.internal.listener.AbstractApolloClientMetricsEventListener;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.ctrip.framework.apollo.util.ConfigUtil;
import com.google.common.collect.Maps;
import java.util.Map;
Expand Down Expand Up @@ -83,7 +83,7 @@ public DefaultApolloClientBootstrapArgsApi(ConfigUtil configUtil) {
}

@Override
public void collect0(ApolloConfigMetricsEvent event) {
public void collect0(ApolloClientMetricsEvent event) {
String argName = event.getName();
if (bootstrapArgs.containsKey(argName)) {
bootstrapArgs.put(argName, event.getAttachmentValue(argName));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@
import com.ctrip.framework.apollo.monitor.api.ApolloClientExceptionMonitorApi;
import com.ctrip.framework.apollo.monitor.internal.jmx.mbean.ApolloClientJmxExceptionMBean;
import com.ctrip.framework.apollo.monitor.internal.listener.AbstractApolloClientMetricsEventListener;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.model.CounterModel;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.ctrip.framework.apollo.util.ConfigUtil;
import java.util.ArrayList;
import java.util.Collections;
Expand Down Expand Up @@ -59,7 +58,7 @@ public List<Exception> getApolloConfigExceptionList() {
}

@Override
public void collect0(ApolloConfigMetricsEvent event) {
public void collect0(ApolloClientMetricsEvent event) {
ApolloConfigException exception = event.getAttachmentValue(THROWABLE);
if (exception != null) {
addExceptionToQueue(exception);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import com.ctrip.framework.apollo.monitor.internal.listener.ApolloClientMetricsEventListener;
import com.ctrip.framework.apollo.monitor.internal.listener.ApolloClientMetricsEventListenerManager;
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;

/**
Expand All @@ -27,19 +27,18 @@
public class DefaultApolloClientMetricsEventListenerManager implements
ApolloClientMetricsEventListenerManager {

private List<ApolloClientMetricsEventListener> collectors;
private List<ApolloClientMetricsEventListener> collectors = new ArrayList<>();

public DefaultApolloClientMetricsEventListenerManager() {
collectors = Collections.emptyList();
}
public DefaultApolloClientMetricsEventListenerManager() {}

@Override
public List<ApolloClientMetricsEventListener> getCollectors() {
return collectors;
}

public void setCollectors(List<ApolloClientMetricsEventListener> collectors) {
this.collectors = collectors;
this.collectors.clear();
this.collectors.addAll(collectors);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,14 @@
import com.ctrip.framework.apollo.monitor.internal.jmx.mbean.ApolloClientJmxNamespaceMBean;
import com.ctrip.framework.apollo.monitor.internal.ApolloClientMonitorConstant;
import com.ctrip.framework.apollo.monitor.internal.listener.AbstractApolloClientMetricsEventListener;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.model.CounterModel;
import com.ctrip.framework.apollo.monitor.internal.model.GaugeModel;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import org.slf4j.Logger;

Expand Down Expand Up @@ -64,7 +61,7 @@ public DefaultApolloClientNamespaceApi(Map<String, Config> m_configs,
}

@Override
public void collect0(ApolloConfigMetricsEvent event) {
public void collect0(ApolloClientMetricsEvent event) {
String namespace = event.getAttachmentValue(NAMESPACE);
String eventName = event.getName();

Expand All @@ -83,7 +80,7 @@ public void collect0(ApolloConfigMetricsEvent event) {
}
}

private void handleNamespaceMetricsEvent(ApolloConfigMetricsEvent event,
private void handleNamespaceMetricsEvent(ApolloClientMetricsEvent event,
NamespaceMetrics namespaceMetrics, String namespace) {
String eventName = event.getName();
switch (eventName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
import com.ctrip.framework.apollo.monitor.api.ApolloClientThreadPoolMonitorApi;
import com.ctrip.framework.apollo.monitor.internal.jmx.mbean.ApolloClientJmxThreadPoolMBean;
import com.ctrip.framework.apollo.monitor.internal.listener.AbstractApolloClientMetricsEventListener;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloConfigMetricsEvent;
import com.ctrip.framework.apollo.monitor.internal.model.GaugeModel;
import com.ctrip.framework.apollo.monitor.internal.event.ApolloClientMetricsEvent;
import com.google.common.collect.Maps;
import java.util.Arrays;
import java.util.Collections;
Expand Down Expand Up @@ -60,7 +59,7 @@ public DefaultApolloClientThreadPoolApi(
}

@Override
public void collect0(ApolloConfigMetricsEvent event) {
public void collect0(ApolloClientMetricsEvent event) {
// do nothing
}

Expand Down
Loading

0 comments on commit 2ec5e87

Please sign in to comment.