You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/09/25 16:26:51 UTC
[shardingsphere] branch master updated: Revise Nacos impl (#21177)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new b18ace51ea1 Revise Nacos impl (#21177)
b18ace51ea1 is described below
commit b18ace51ea19f04e36a1083543ced78889d9b84c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Sep 26 00:26:43 2022 +0800
Revise Nacos impl (#21177)
* Revise Nacos impl
* Revise Nacos impl
---
.../metadata/database/schema/SchemaManager.java | 1 -
.../mode/manager/ContextManager.java | 4 +-
.../pom.xml | 7 +-
.../repository/cluster/nacos/NacosRepository.java | 183 +++++++++------------
.../cluster/nacos/entity/ServiceMetadata.java | 9 +-
.../nacos/listener/NamingEventListener.java | 117 +++++++------
.../{MetadataUtil.java => NacosMetaDataUtil.java} | 9 +-
.../cluster/nacos/NacosRepositoryTest.java | 68 ++++----
.../cluster/nacos/props/NacosPropertiesTest.java | 2 +-
.../shardingsphere-proxy-bootstrap/pom.xml | 5 -
10 files changed, 179 insertions(+), 226 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
index 6dca5b56e3e..413e60b22ea 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/SchemaManager.java
@@ -30,7 +30,6 @@ import java.util.stream.Collectors;
*/
public final class SchemaManager {
-
/**
* Get to be added tables by schemas.
*
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 9fd75bd78d1..9230e395af2 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -484,8 +484,8 @@ public final class ContextManager implements AutoCloseable {
MetaDataContexts reloadedMetaDataContexts = createMetaDataContexts(databaseName, switchingResource, null);
deletedSchemaNames(databaseName, reloadedMetaDataContexts.getMetaData().getDatabase(databaseName), metaDataContexts.getMetaData().getDatabase(databaseName));
metaDataContexts = reloadedMetaDataContexts;
- metaDataContexts.getMetaData().getDatabases().values().forEach(each -> each.getSchemas().forEach((schemaName, schema) ->
- metaDataContexts.getPersistService().getDatabaseMetaDataService().compareAndPersist(each.getName(), schemaName, schema)));
+ metaDataContexts.getMetaData().getDatabases().values().forEach(
+ each -> each.getSchemas().forEach((schemaName, schema) -> metaDataContexts.getPersistService().getDatabaseMetaDataService().compareAndPersist(each.getName(), schemaName, schema)));
} catch (final SQLException ex) {
log.error("Reload database: {} failed", databaseName, ex);
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/pom.xml b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/pom.xml
index e52070736a1..c7eca44276f 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/pom.xml
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/pom.xml
@@ -27,16 +27,21 @@
<artifactId>shardingsphere-cluster-mode-repository-nacos</artifactId>
<name>${project.artifactId}</name>
+ <properties>
+ <nacos.version>1.4.2</nacos.version>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-cluster-mode-repository-api</artifactId>
<version>${project.version}</version>
</dependency>
+
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
- <version>1.4.2</version>
+ <version>${nacos.version}</version>
</dependency>
</dependencies>
</project>
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepository.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster [...]
index 764a9244fdb..7450cc7dd88 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepository.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepository.java
@@ -24,7 +24,9 @@ import com.alibaba.nacos.api.naming.PreservedMetadataKeys;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
+import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.instance.utils.IpUtils;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
@@ -36,13 +38,15 @@ import org.apache.shardingsphere.mode.repository.cluster.nacos.entity.ServiceMet
import org.apache.shardingsphere.mode.repository.cluster.nacos.listener.NamingEventListener;
import org.apache.shardingsphere.mode.repository.cluster.nacos.props.NacosProperties;
import org.apache.shardingsphere.mode.repository.cluster.nacos.props.NacosPropertyKey;
-import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.MetadataUtil;
+import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.NacosMetaDataUtil;
+import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
import java.util.Properties;
@@ -65,20 +69,18 @@ public final class NacosRepository implements ClusterPersistRepository {
@Override
public void init(final ClusterPersistRepositoryConfiguration config) {
nacosProps = new NacosProperties(config.getProps());
- initClient(config);
+ client = createClient(config);
initServiceMetadata();
}
- private void initClient(final ClusterPersistRepositoryConfiguration config) {
+ private NamingService createClient(final ClusterPersistRepositoryConfiguration config) {
Properties props = new Properties();
props.setProperty("serverAddr", config.getServerLists());
props.setProperty("namespace", config.getNamespace());
try {
- client = NamingFactory.createNamingService(props);
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ return NamingFactory.createNamingService(props);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@@ -93,41 +95,31 @@ public final class NacosRepository implements ClusterPersistRepository {
each.setIp(ip);
each.setPort(new AtomicInteger(port));
}
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@Override
public void persistEphemeral(final String key, final String value) {
try {
- if (Objects.isNull(value)) {
- throw new IllegalArgumentException("Value cannot be null");
- }
- if (!findExisted(key, true).isEmpty()) {
+ Preconditions.checkNotNull(value, "Value can not be null");
+ if (!findExistedInstance(key, true).isEmpty()) {
delete(key);
}
put(key, value, true);
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@Override
public void persistExclusiveEphemeral(final String key, final String value) {
try {
- if (!findExisted(key, true).isEmpty()) {
- throw new IllegalStateException("Key: " + key + " already exists");
- }
+ Preconditions.checkState(findExistedInstance(key, true).isEmpty(), "Key `%s` already exists", key);
put(key, value, true);
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@@ -147,19 +139,17 @@ public final class NacosRepository implements ClusterPersistRepository {
try {
for (ServiceMetadata each : serviceController.getAllServices()) {
NamingEventListener eventListener = each.getListener();
- if (Objects.isNull(eventListener)) {
- eventListener = new NamingEventListener();
- eventListener.put(key, listener);
- each.setListener(eventListener);
- client.subscribe(each.getServiceName(), eventListener);
- } else {
+ if (null != eventListener) {
eventListener.put(key, listener);
+ return;
}
+ eventListener = new NamingEventListener();
+ eventListener.put(key, listener);
+ each.setListener(eventListener);
+ client.subscribe(each.getServiceName(), eventListener);
}
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@@ -167,16 +157,14 @@ public final class NacosRepository implements ClusterPersistRepository {
public String get(final String key) {
try {
for (ServiceMetadata each : serviceController.getAllServices()) {
- Optional<Instance> optional = findExisted(key, each.isEphemeral()).stream().max(Comparator.comparing(MetadataUtil::getTimestamp));
- if (optional.isPresent()) {
- return MetadataUtil.getValue(optional.get());
+ Optional<Instance> instance = findExistedInstance(key, each.isEphemeral()).stream().max(Comparator.comparing(NacosMetaDataUtil::getTimestamp));
+ if (instance.isPresent()) {
+ return NacosMetaDataUtil.getValue(instance.get());
}
}
return null;
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@@ -185,9 +173,9 @@ public final class NacosRepository implements ClusterPersistRepository {
try {
Stream<String> concatKeys = Stream.empty();
for (ServiceMetadata each : serviceController.getAllServices()) {
- Stream<String> keys = findExisted(each.isEphemeral()).stream()
+ Stream<String> keys = findExistedInstance(each.isEphemeral()).stream()
.map(instance -> {
- String fullPath = MetadataUtil.getKey(instance);
+ String fullPath = NacosMetaDataUtil.getKey(instance);
if (fullPath.startsWith(key + PATH_SEPARATOR)) {
String pathWithoutPrefix = fullPath.substring((key + PATH_SEPARATOR).length());
return pathWithoutPrefix.contains(PATH_SEPARATOR) ? pathWithoutPrefix.substring(0, pathWithoutPrefix.indexOf(PATH_SEPARATOR)) : pathWithoutPrefix;
@@ -197,34 +185,28 @@ public final class NacosRepository implements ClusterPersistRepository {
concatKeys = Stream.concat(concatKeys, keys);
}
return concatKeys.distinct().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
@Override
public void persist(final String key, final String value) {
try {
- if (Objects.isNull(value)) {
- throw new IllegalArgumentException("Value cannot be null");
- }
- Optional<Instance> optional = findExisted(key, false).stream().max(Comparator.comparing(MetadataUtil::getTimestamp));
- if (optional.isPresent()) {
- update(optional.get(), value);
+ Preconditions.checkNotNull(value, "Value can not be null");
+ Optional<Instance> instance = findExistedInstance(key, false).stream().max(Comparator.comparing(NacosMetaDataUtil::getTimestamp));
+ if (instance.isPresent()) {
+ update(instance.get(), value);
} else {
put(key, value, false);
}
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
- private void put(final String key, final String value, final boolean ephemeral) throws NacosException, InterruptedException {
- final List<KeyValue> keyValues = buildParentPath(key);
+ private void put(final String key, final String value, final boolean ephemeral) throws NacosException {
+ final Collection<KeyValue> keyValues = buildParentPath(key);
ServiceMetadata serviceMetadata = serviceController.getService(ephemeral);
Instance instance = new Instance();
instance.setIp(serviceMetadata.getIp());
@@ -235,40 +217,40 @@ public final class NacosRepository implements ClusterPersistRepository {
fillEphemeralMetadata(metadataMap);
}
metadataMap.put(key, value);
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(MetadataUtil.getTimestamp()));
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(NacosMetaDataUtil.getTimestamp()));
instance.setMetadata(metadataMap);
client.registerInstance(serviceMetadata.getServiceName(), instance);
keyValues.add(new KeyValue(key, value, ephemeral));
waitValue(keyValues);
}
- private List<KeyValue> buildParentPath(final String key) throws NacosException {
- List<KeyValue> result = new LinkedList<>();
+ private Collection<KeyValue> buildParentPath(final String key) throws NacosException {
+ Collection<KeyValue> result = new LinkedList<>();
StringBuilder parentPath = new StringBuilder();
String[] partPath = key.split(PATH_SEPARATOR);
for (int index = 1; index < partPath.length - 1; index++) {
String path = parentPath.append(PATH_SEPARATOR).append(partPath[index]).toString();
- if (findExisted(path, false).isEmpty()) {
+ if (findExistedInstance(path, false).isEmpty()) {
result.addAll(build(path));
}
}
return result;
}
- private List<KeyValue> build(final String key) throws NacosException {
- List<KeyValue> result = new LinkedList<>();
- if (findExisted(key, false).isEmpty()) {
+ private Collection<KeyValue> build(final String key) throws NacosException {
+ Collection<KeyValue> result = new LinkedList<>();
+ if (findExistedInstance(key, false).isEmpty()) {
Instance instance = new Instance();
ServiceMetadata persistentService = serviceController.getPersistentService();
instance.setIp(persistentService.getIp());
instance.setPort(persistentService.getPort());
instance.setEphemeral(false);
Map<String, String> metadataMap = new HashMap<>(2, 1);
- metadataMap.put(key, MetadataUtil.EMPTY);
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(MetadataUtil.getTimestamp()));
+ metadataMap.put(key, "");
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(NacosMetaDataUtil.getTimestamp()));
instance.setMetadata(metadataMap);
client.registerInstance(persistentService.getServiceName(), instance);
- result.add(new KeyValue(key, MetadataUtil.EMPTY, false));
+ result.add(new KeyValue(key, "", false));
}
return result;
}
@@ -280,15 +262,15 @@ public final class NacosRepository implements ClusterPersistRepository {
metadataMap.put(PreservedMetadataKeys.IP_DELETE_TIMEOUT, String.valueOf(timeToLiveSeconds * 1000));
}
- private void update(final Instance instance, final String value) throws NacosException, InterruptedException {
+ private void update(final Instance instance, final String value) throws NacosException {
Map<String, String> metadataMap = instance.getMetadata();
- String key = MetadataUtil.getKey(instance);
+ String key = NacosMetaDataUtil.getKey(instance);
metadataMap.put(key, value);
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(MetadataUtil.getTimestamp()));
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(NacosMetaDataUtil.getTimestamp()));
instance.setMetadata(metadataMap);
ServiceMetadata persistentService = serviceController.getPersistentService();
client.registerInstance(persistentService.getServiceName(), instance);
- LinkedList<KeyValue> keyValues = new LinkedList<>();
+ Collection<KeyValue> keyValues = new LinkedList<>();
keyValues.add(new KeyValue(key, value, instance.isEphemeral()));
waitValue(keyValues);
}
@@ -297,38 +279,35 @@ public final class NacosRepository implements ClusterPersistRepository {
public void delete(final String key) {
try {
for (ServiceMetadata each : serviceController.getAllServices()) {
- List<Instance> instances = findExisted(each.isEphemeral()).stream()
+ Collection<Instance> instances = findExistedInstance(each.isEphemeral()).stream()
.filter(instance -> {
- String fullPath = MetadataUtil.getKey(instance);
+ String fullPath = NacosMetaDataUtil.getKey(instance);
return fullPath.startsWith(key + PATH_SEPARATOR) || StringUtils.equals(fullPath, key);
})
- .sorted(Comparator.comparing(MetadataUtil::getKey).reversed()).collect(Collectors.toList());
- List<KeyValue> keyValues = new LinkedList<>();
+ .sorted(Comparator.comparing(NacosMetaDataUtil::getKey).reversed()).collect(Collectors.toList());
+ Collection<KeyValue> keyValues = new LinkedList<>();
for (Instance instance : instances) {
client.deregisterInstance(each.getServiceName(), instance);
- keyValues.add(new KeyValue(MetadataUtil.getKey(instance), null, each.isEphemeral()));
+ keyValues.add(new KeyValue(NacosMetaDataUtil.getKey(instance), null, each.isEphemeral()));
}
waitValue(keyValues);
}
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
- private List<Instance> findExisted(final String key, final boolean ephemeral) throws NacosException {
- ServiceMetadata service = serviceController.getService(ephemeral);
- return client.getAllInstances(service.getServiceName(), false).stream()
- .filter(instance -> Objects.equals(key, MetadataUtil.getKey(instance))).collect(Collectors.toList());
+ private Collection<Instance> findExistedInstance(final String key, final boolean ephemeral) throws NacosException {
+ return client.getAllInstances(serviceController.getService(ephemeral).getServiceName(), false).stream()
+ .filter(each -> Objects.equals(key, NacosMetaDataUtil.getKey(each))).collect(Collectors.toList());
}
- private List<Instance> findExisted(final boolean ephemeral) throws NacosException {
- ServiceMetadata service = serviceController.getService(ephemeral);
- return client.getAllInstances(service.getServiceName(), false);
+ private Collection<Instance> findExistedInstance(final boolean ephemeral) throws NacosException {
+ return client.getAllInstances(serviceController.getService(ephemeral).getServiceName(), false);
}
- private void waitValue(final List<KeyValue> keyValues) throws NacosException, InterruptedException {
+ @SneakyThrows(InterruptedException.class)
+ private void waitValue(final Collection<KeyValue> keyValues) throws NacosException {
if (!isAvailable(keyValues)) {
long retryIntervalMilliseconds = nacosProps.getValue(NacosPropertyKey.RETRY_INTERVAL_MILLISECONDS);
int maxRetries = nacosProps.getValue(NacosPropertyKey.MAX_RETRIES);
@@ -342,23 +321,21 @@ public final class NacosRepository implements ClusterPersistRepository {
}
}
- private boolean isAvailable(final List<KeyValue> keyValues) throws NacosException {
+ private boolean isAvailable(final Collection<KeyValue> keyValues) throws NacosException {
Map<Boolean, List<KeyValue>> keyValueMap = keyValues.stream().collect(Collectors.groupingBy(KeyValue::isEphemeral));
- for (Map.Entry<Boolean, List<KeyValue>> entry : keyValueMap.entrySet()) {
+ for (Entry<Boolean, List<KeyValue>> entry : keyValueMap.entrySet()) {
ServiceMetadata service = serviceController.getService(entry.getKey());
- Map<String, List<Instance>> instanceMap = client.getAllInstances(service.getServiceName(), false).stream()
- .collect(Collectors.groupingBy(MetadataUtil::getKey));
+ Map<String, List<Instance>> instanceMap = client.getAllInstances(service.getServiceName(), false).stream().collect(Collectors.groupingBy(NacosMetaDataUtil::getKey));
keyValues.removeIf(keyValue -> {
- List<Instance> instances = instanceMap.get(keyValue.getKey());
+ Collection<Instance> instances = instanceMap.get(keyValue.getKey());
String value = keyValue.getValue();
- return CollectionUtils.isNotEmpty(instances) ? instances.stream().anyMatch(instance -> StringUtils.equals(MetadataUtil.getValue(instance), value)) : Objects.isNull(value);
+ return CollectionUtils.isNotEmpty(instances) ? instances.stream().anyMatch(instance -> StringUtils.equals(NacosMetaDataUtil.getValue(instance), value)) : Objects.isNull(value);
});
}
return keyValues.isEmpty();
}
private long getSleepTimeMs(final int retryCount, final long baseSleepTimeMs) {
- // copied from Hadoop's RetryPolicies.java
return baseSleepTimeMs * Math.max(1, new Random().nextInt(1 << (retryCount + 1)));
}
@@ -366,10 +343,8 @@ public final class NacosRepository implements ClusterPersistRepository {
public void close() {
try {
client.shutDown();
- // CHECKSTYLE:OFF
- } catch (Exception cause) {
- // CHECKSTYLE:ON
- throw new ClusterPersistRepositoryException(cause);
+ } catch (final NacosException ex) {
+ throw new ClusterPersistRepositoryException(ex);
}
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/entity/ServiceMetadata.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere- [...]
index 5dd69dcf90a..3da23488c17 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/entity/ServiceMetadata.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/entity/ServiceMetadata.java
@@ -28,23 +28,18 @@ import java.util.concurrent.atomic.AtomicInteger;
* Service metadata.
*/
@RequiredArgsConstructor
+@Getter
+@Setter
public final class ServiceMetadata {
- @Getter
private final String serviceName;
- @Getter
- @Setter
private String ip;
- @Setter
private AtomicInteger port;
- @Getter
- @Setter
private NamingEventListener listener;
- @Getter
private final boolean ephemeral;
/**
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/listener/NamingEventListener.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardings [...]
index c2b3e97984b..89a10ebd93e 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/listener/NamingEventListener.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/listener/NamingEventListener.java
@@ -22,8 +22,9 @@ import com.alibaba.nacos.api.naming.listener.EventListener;
import com.alibaba.nacos.api.naming.listener.NamingEvent;
import com.alibaba.nacos.api.naming.pojo.Instance;
import org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEvent;
+import org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEventListener;
-import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.MetadataUtil;
+import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.NacosMetaDataUtil;
import java.util.Comparator;
import java.util.HashMap;
@@ -45,84 +46,82 @@ public final class NamingEventListener implements EventListener {
@Override
public void onEvent(final Event event) {
- if (event instanceof NamingEvent) {
- NamingEvent namingEvent = (NamingEvent) event;
- List<Instance> instances = namingEvent.getInstances().stream().sorted(Comparator.comparing(MetadataUtil::getKey)).collect(Collectors.toList());
- List<WatchData> watchDataList = new LinkedList<>();
- synchronized (this) {
- instances.forEach(instance -> prefixListenerMap.forEach((prefixPath, listener) -> {
- String key = MetadataUtil.getKey(instance);
- if (key.startsWith(prefixPath)) {
- Instance preInstance = preInstances.remove(key);
- WatchData watchData = new WatchData(key, preInstance, instance, listener);
- watchDataList.add(watchData);
- }
- }));
- preInstances.values().stream().sorted(Comparator.comparing(MetadataUtil::getKey).reversed()).forEach(instance -> prefixListenerMap.forEach((prefixPath, listener) -> {
- String key = MetadataUtil.getKey(instance);
- if (key.startsWith(prefixPath)) {
- WatchData watchData = new WatchData(key, instance, null, listener);
- watchDataList.add(watchData);
- }
- }));
- watchDataList.forEach(watchData -> {
- String key = watchData.getKey();
- Instance preInstance = watchData.getPreInstance();
- Instance instance = watchData.getInstance();
- DataChangedEventListener listener = watchData.getListener();
- DataChangedEvent.Type changedType = getEventChangedType(preInstance, instance);
- switch (changedType) {
- case ADDED:
- case UPDATED:
- listener.onChange(new DataChangedEvent(key, MetadataUtil.getValue(instance), changedType));
- break;
- case DELETED:
- listener.onChange(new DataChangedEvent(key, MetadataUtil.getValue(preInstance), changedType));
- break;
- default:
- }
- });
- setPreInstances(instances);
- }
+ if (!(event instanceof NamingEvent)) {
+ return;
+ }
+ NamingEvent namingEvent = (NamingEvent) event;
+ List<Instance> instances = namingEvent.getInstances().stream().sorted(Comparator.comparing(NacosMetaDataUtil::getKey)).collect(Collectors.toList());
+ List<WatchData> watchDataList = new LinkedList<>();
+ synchronized (this) {
+ instances.forEach(instance -> prefixListenerMap.forEach((prefixPath, listener) -> {
+ String key = NacosMetaDataUtil.getKey(instance);
+ if (key.startsWith(prefixPath)) {
+ Instance preInstance = preInstances.remove(key);
+ WatchData watchData = new WatchData(key, preInstance, instance, listener);
+ watchDataList.add(watchData);
+ }
+ }));
+ preInstances.values().stream().sorted(Comparator.comparing(NacosMetaDataUtil::getKey).reversed()).forEach(instance -> prefixListenerMap.forEach((prefixPath, listener) -> {
+ String key = NacosMetaDataUtil.getKey(instance);
+ if (key.startsWith(prefixPath)) {
+ WatchData watchData = new WatchData(key, instance, null, listener);
+ watchDataList.add(watchData);
+ }
+ }));
+ watchDataList.forEach(watchData -> {
+ String key = watchData.getKey();
+ Instance preInstance = watchData.getPreInstance();
+ Instance instance = watchData.getInstance();
+ DataChangedEventListener listener = watchData.getListener();
+ DataChangedEvent.Type changedType = getEventChangedType(preInstance, instance);
+ switch (changedType) {
+ case ADDED:
+ case UPDATED:
+ listener.onChange(new DataChangedEvent(key, NacosMetaDataUtil.getValue(instance), changedType));
+ break;
+ case DELETED:
+ listener.onChange(new DataChangedEvent(key, NacosMetaDataUtil.getValue(preInstance), changedType));
+ break;
+ default:
+ }
+ });
+ setPreInstances(instances);
}
}
- private DataChangedEvent.Type getEventChangedType(final Instance preInstance, final Instance instance) {
- DataChangedEvent.Type result;
+ private Type getEventChangedType(final Instance preInstance, final Instance instance) {
if (Objects.isNull(preInstance) && Objects.nonNull(instance)) {
- result = DataChangedEvent.Type.ADDED;
- } else if (Objects.nonNull(preInstance) && Objects.nonNull(instance)
- && MetadataUtil.getTimestamp(preInstance) != MetadataUtil.getTimestamp(instance)) {
- result = DataChangedEvent.Type.UPDATED;
- } else if (Objects.nonNull(preInstance) && Objects.isNull(instance)) {
- result = DataChangedEvent.Type.DELETED;
- } else {
- return DataChangedEvent.Type.IGNORED;
+ return DataChangedEvent.Type.ADDED;
+ }
+ if (Objects.nonNull(preInstance) && Objects.nonNull(instance) && NacosMetaDataUtil.getTimestamp(preInstance) != NacosMetaDataUtil.getTimestamp(instance)) {
+ return DataChangedEvent.Type.UPDATED;
}
- return result;
+ if (Objects.nonNull(preInstance) && Objects.isNull(instance)) {
+ return DataChangedEvent.Type.DELETED;
+ }
+ return DataChangedEvent.Type.IGNORED;
}
/**
- * Update preInstances.
+ * Update pre instances.
*
* @param instances instances
*/
public void setPreInstances(final List<Instance> instances) {
- this.preInstances = instances.stream().filter(instance -> {
- for (String prefixPath : prefixListenerMap.keySet()) {
- String key = MetadataUtil.getKey(instance);
- if (key.startsWith(prefixPath)) {
+ preInstances = instances.stream().filter(instance -> {
+ for (String each : prefixListenerMap.keySet()) {
+ if (NacosMetaDataUtil.getKey(instance).startsWith(each)) {
return true;
}
}
return false;
- }).collect(Collectors.toMap(MetadataUtil::getKey, Function.identity(), (a, b) -> MetadataUtil.getTimestamp(a) > MetadataUtil.getTimestamp(b) ? a : b));
+ }).collect(Collectors.toMap(NacosMetaDataUtil::getKey, Function.identity(), (a, b) -> NacosMetaDataUtil.getTimestamp(a) > NacosMetaDataUtil.getTimestamp(b) ? a : b));
}
/**
- * Put prefixPath and listener.
+ * Put prefix path and listener.
*
- * @param prefixPath prefixPath
+ * @param prefixPath prefix path
* @param listener listener
*/
public synchronized void put(final String prefixPath, final DataChangedEventListener listener) {
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/utils/MetadataUtil.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-clus [...]
similarity index 95%
rename from shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/utils/MetadataUtil.java
rename to shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/utils/NacosMetaDataUtil.java
index c2056759861..bc74ca687ae 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/utils/MetadataUtil.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/main/java/org/apache/shardingsphere/mode/repository/cluster/nacos/utils/NacosMetaDataUtil.java
@@ -28,12 +28,10 @@ import java.time.LocalDateTime;
import java.time.ZoneOffset;
/**
- * Metadata util.
+ * Nacos meta data util.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class MetadataUtil {
-
- public static final String EMPTY = "";
+public final class NacosMetaDataUtil {
public static final ZoneOffset UTC_ZONE_OFFSET = ZoneOffset.of("+8");
@@ -43,7 +41,6 @@ public final class MetadataUtil {
* @param instance instance
* @return timestamp
*/
- @SneakyThrows
public static long getTimestamp(final Instance instance) {
return Long.parseLong(instance.getMetadata().get(UTC_ZONE_OFFSET.toString()));
}
@@ -73,7 +70,7 @@ public final class MetadataUtil {
* @param instance instance
* @return key
*/
- @SneakyThrows
+ @SneakyThrows(NacosException.class)
public static String getKey(final Instance instance) {
return instance.getMetadata().keySet().stream()
.filter(entryKey -> !entryKey.equals(PreservedMetadataKeys.HEART_BEAT_INTERVAL)
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepositoryTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-clu [...]
index 113cac1c176..87949b8b402 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepositoryTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/NacosRepositoryTest.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.mode.repository.cluster.nacos.entity.ServiceCon
import org.apache.shardingsphere.mode.repository.cluster.nacos.entity.ServiceMetadata;
import org.apache.shardingsphere.mode.repository.cluster.nacos.props.NacosProperties;
import org.apache.shardingsphere.mode.repository.cluster.nacos.props.NacosPropertyKey;
-import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.MetadataUtil;
+import org.apache.shardingsphere.mode.repository.cluster.nacos.utils.NacosMetaDataUtil;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -53,6 +53,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
import static org.hamcrest.CoreMatchers.is;
@@ -85,16 +86,15 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertGetLatestKey() {
+ public void assertGetLatestKey() throws NacosException {
int total = 2;
String key = "/test/children/keys/persistent/1";
List<Instance> instances = new LinkedList<>();
for (int count = 1; count <= total; count++) {
Instance instance = new Instance();
- final Map<String, String> metadataMap = new HashMap<>(2, 1);
+ Map<String, String> metadataMap = new HashMap<>(2, 1);
metadataMap.put(key, "value" + count);
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(count));
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(count));
instance.setMetadata(metadataMap);
instances.add(instance);
}
@@ -105,8 +105,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertGetChildrenKeys() {
+ public void assertGetChildrenKeys() throws NacosException {
Instance instance = new Instance();
String key = "/test/children/keys/persistent/0";
instance.setMetadata(Collections.singletonMap(key, "value0"));
@@ -124,8 +123,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertPersistNotExistKey() {
+ public void assertPersistNotExistKey() throws NacosException {
String key = "/test/children/keys/persistent/1";
doAnswer(AdditionalAnswers.answerVoid(getRegisterInstanceAnswer())).when(client).registerInstance(anyString(), any(Instance.class));
REPOSITORY.persist(key, "value4");
@@ -137,12 +135,11 @@ public final class NacosRepositoryTest {
ServiceMetadata persistentService = serviceController.getPersistentService();
assertThat(registerType, is(persistentService.getServiceName()));
assertThat(registerInstance.isEphemeral(), is(false));
- assertThat(MetadataUtil.getValue(registerInstance), is("value4"));
+ assertThat(NacosMetaDataUtil.getValue(registerInstance), is("value4"));
}
@Test
- @SneakyThrows
- public void assertPersistExistKey() {
+ public void assertPersistExistKey() throws NacosException {
String ip = "127.0.0.1";
Instance instance = new Instance();
instance.setIp(ip);
@@ -166,12 +163,11 @@ public final class NacosRepositoryTest {
assertThat(registerType, is(persistentService.getServiceName()));
assertThat(registerInstance.getIp(), is(ip));
assertThat(registerInstance.isEphemeral(), is(false));
- assertThat(MetadataUtil.getValue(registerInstance), is("value4"));
+ assertThat(NacosMetaDataUtil.getValue(registerInstance), is("value4"));
}
@Test
- @SneakyThrows
- public void assertPersistEphemeralExistKey() {
+ public void assertPersistEphemeralExistKey() throws NacosException {
final String key = "/test/children/keys/ephemeral/1";
final Instance instance = new Instance();
instance.setEphemeral(true);
@@ -200,7 +196,7 @@ public final class NacosRepositoryTest {
String registerType = stringArgumentCaptor.getValue();
assertThat(registerType, is(ephemeralService.getServiceName()));
assertThat(registerInstance.isEphemeral(), is(true));
- assertThat(MetadataUtil.getValue(registerInstance), is("value4"));
+ assertThat(NacosMetaDataUtil.getValue(registerInstance), is("value4"));
Map<String, String> metadata = registerInstance.getMetadata();
long timeToLiveSeconds = Long.parseLong(NacosPropertyKey.TIME_TO_LIVE_SECONDS.getDefaultValue());
assertThat(metadata.get(PreservedMetadataKeys.HEART_BEAT_INTERVAL), is(String.valueOf(timeToLiveSeconds * 1000 / 3)));
@@ -223,8 +219,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertPersistEphemeralNotExistKey() {
+ public void assertPersistEphemeralNotExistKey() throws NacosException {
String key = "/test/children/keys/ephemeral/0";
doAnswer(AdditionalAnswers.answerVoid(getRegisterInstanceAnswer())).when(client).registerInstance(anyString(), any(Instance.class));
REPOSITORY.persistEphemeral(key, "value0");
@@ -236,7 +231,7 @@ public final class NacosRepositoryTest {
ServiceMetadata ephemeralService = serviceController.getEphemeralService();
assertThat(registerType, is(ephemeralService.getServiceName()));
assertThat(registerInstance.isEphemeral(), is(true));
- assertThat(MetadataUtil.getValue(registerInstance), is("value0"));
+ assertThat(NacosMetaDataUtil.getValue(registerInstance), is("value0"));
Map<String, String> metadata = registerInstance.getMetadata();
long timeToLiveSeconds = Long.parseLong(NacosPropertyKey.TIME_TO_LIVE_SECONDS.getDefaultValue());
assertThat(metadata.get(PreservedMetadataKeys.HEART_BEAT_INTERVAL), is(String.valueOf(timeToLiveSeconds * 1000 / 3)));
@@ -245,8 +240,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertDeleteExistKey() {
+ public void assertDeleteExistKey() throws NacosException {
int total = 3;
List<Instance> instances = new LinkedList<>();
for (int count = 1; count <= total; count++) {
@@ -272,15 +266,13 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertDeleteNotExistKey() {
+ public void assertDeleteNotExistKey() throws NacosException {
REPOSITORY.delete("/test/children/keys/persistent/1");
verify(client, times(0)).deregisterInstance(anyString(), any(Instance.class));
}
@Test
- @SneakyThrows
- public void assertWatchAdded() {
+ public void assertWatchAdded() throws NacosException, ExecutionException, InterruptedException {
ServiceMetadata ephemeralService = serviceController.getEphemeralService();
ephemeralService.setListener(null);
String key = "key/key";
@@ -298,21 +290,20 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertWatchUpdate() {
+ public void assertWatchUpdate() throws NacosException, ExecutionException, InterruptedException {
ServiceMetadata persistentService = serviceController.getPersistentService();
persistentService.setListener(null);
String key = "key/key";
- long epochMilliseconds = MetadataUtil.getTimestamp();
+ long epochMilliseconds = NacosMetaDataUtil.getTimestamp();
Instance preInstance = new Instance();
Map<String, String> metadataMap = new HashMap<>();
metadataMap.put(key, "value1");
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(epochMilliseconds));
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(epochMilliseconds));
preInstance.setMetadata(metadataMap);
final Instance instance = new Instance();
metadataMap = new HashMap<>();
metadataMap.put(key, "value2");
- metadataMap.put(MetadataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(epochMilliseconds + 1));
+ metadataMap.put(NacosMetaDataUtil.UTC_ZONE_OFFSET.toString(), String.valueOf(epochMilliseconds + 1));
instance.setMetadata(metadataMap);
Event event = new NamingEvent(persistentService.getServiceName(), Collections.singletonList(instance));
doAnswer(AdditionalAnswers.answerVoid(getListenerAnswer(preInstance, event))).when(client).subscribe(anyString(), any(EventListener.class));
@@ -325,8 +316,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertWatchDelete() {
+ public void assertWatchDelete() throws NacosException, ExecutionException, InterruptedException {
ServiceMetadata persistentService = serviceController.getPersistentService();
persistentService.setListener(null);
String key = "key/key";
@@ -343,8 +333,7 @@ public final class NacosRepositoryTest {
}
@Test
- @SneakyThrows
- public void assertClose() {
+ public void assertClose() throws NacosException {
REPOSITORY.close();
verify(client).shutDown();
}
@@ -354,8 +343,8 @@ public final class NacosRepositoryTest {
public void assertPersistNotAvailable() {
try {
REPOSITORY.persist("/test/children/keys/persistent/1", "value4");
- } catch (ClusterPersistRepositoryException cause) {
- throw cause.getCause();
+ } catch (final ClusterPersistRepositoryException ex) {
+ throw ex.getCause();
}
}
@@ -366,8 +355,8 @@ public final class NacosRepositoryTest {
ephemeralService.setPort(new AtomicInteger(Integer.MAX_VALUE));
try {
REPOSITORY.persistEphemeral("/key2", "value");
- } catch (ClusterPersistRepositoryException cause) {
- throw cause.getCause();
+ } catch (final ClusterPersistRepositoryException ex) {
+ throw ex.getCause();
}
}
@@ -376,7 +365,7 @@ public final class NacosRepositoryTest {
MemberAccessor accessor = Plugins.getMemberAccessor();
if (Objects.nonNull(preInstance)) {
Map<String, Instance> preInstances = new HashMap<>();
- preInstances.put(MetadataUtil.getKey(preInstance), preInstance);
+ preInstances.put(NacosMetaDataUtil.getKey(preInstance), preInstance);
accessor.set(listener.getClass().getDeclaredField("preInstances"), listener, preInstances);
}
listener.onEvent(event);
@@ -399,5 +388,4 @@ public final class NacosRepositoryTest {
when(client.getAllInstances(serviceName, false)).thenReturn(instances);
};
}
-
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/props/NacosPropertiesTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphe [...]
index a393b24bb3c..dec672608df 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/props/NacosPropertiesTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-repository/shardingsphere-cluster-mode-repository-provider/shardingsphere-cluster-mode-repository-nacos/src/test/java/org/apache/shardingsphere/mode/repository/cluster/nacos/props/NacosPropertiesTest.java
@@ -22,7 +22,7 @@ import org.junit.Test;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
public final class NacosPropertiesTest {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/pom.xml b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/pom.xml
index 3e1086e1fe2..d0b3f8b514c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/pom.xml
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/pom.xml
@@ -93,11 +93,6 @@
<artifactId>shardingsphere-cluster-mode-repository-etcd</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-cluster-mode-repository-nacos</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core</artifactId>