This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new fa5d079 upgrade spring to 5.2.8.RELEASE (#6674)
fa5d079 is described below
commit fa5d07961a67a6150b0fecdf76003fe3b073a9a8
Author: TheoneFx <[email protected]>
AuthorDate: Tue Sep 1 16:02:51 2020 +0800
upgrade spring to 5.2.8.RELEASE (#6674)
Co-authored-by: theonefx.chenx <[email protected]>
---
.../factory/config/YamlPropertySourceFactory.java | 61 +++++++++++++++++++---
dubbo-dependencies-bom/pom.xml | 2 +-
.../apache/dubbo/registry/nacos/NacosRegistry.java | 4 +-
3 files changed, 57 insertions(+), 10 deletions(-)
diff --git
a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
index 271b179..229764f 100644
---
a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
+++
b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/config/YamlPropertySourceFactory.java
@@ -16,22 +16,28 @@
*/
package org.apache.dubbo.config.spring.beans.factory.config;
+import java.io.IOException;
+import java.util.AbstractMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Pattern;
+
import org.springframework.beans.factory.config.YamlProcessor;
import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertySourceFactory;
+
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.nodes.MappingNode;
import org.yaml.snakeyaml.nodes.Tag;
+import org.yaml.snakeyaml.parser.ParserException;
import org.yaml.snakeyaml.representer.Representer;
import org.yaml.snakeyaml.resolver.Resolver;
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
-
/**
* YAML {@link PropertySourceFactory} implementation, some source code is
copied Spring Boot
* org.springframework.boot.env.YamlPropertySourceLoader , see {@link
#createYaml()} and {@link #process()}
@@ -48,7 +54,36 @@ public class YamlPropertySourceFactory extends YamlProcessor
implements Property
@Override
protected Yaml createYaml() {
- return new Yaml(new StrictMapAppenderConstructor(), new Representer(),
+ return new Yaml(new Constructor() {
+ @Override
+ protected Map<Object, Object> constructMapping(MappingNode node) {
+ try {
+ return super.constructMapping(node);
+ } catch (IllegalStateException ex) {
+ throw new ParserException("while parsing MappingNode",
+ node.getStartMark(), ex.getMessage(),
node.getEndMark());
+ }
+ }
+
+ @Override
+ protected Map<Object, Object> createDefaultMap() {
+ final Map<Object, Object> delegate = super.createDefaultMap();
+ return new AbstractMap<Object, Object>() {
+ @Override
+ public Object put(Object key, Object value) {
+ if (delegate.containsKey(key)) {
+ throw new IllegalStateException("Duplicate key: "
+ key);
+ }
+ return delegate.put(key, value);
+ }
+
+ @Override
+ public Set<Entry<Object, Object>> entrySet() {
+ return delegate.entrySet();
+ }
+ };
+ }
+ }, new Representer(),
new DumperOptions(), new Resolver() {
@Override
public void addImplicitResolver(Tag tag, Pattern regexp,
@@ -61,10 +96,22 @@ public class YamlPropertySourceFactory extends
YamlProcessor implements Property
});
}
+ /**
+ * {@link Resolver} that limits {@link Tag#TIMESTAMP} tags.
+ */
+ private static class LimitedResolver extends Resolver {
+ @Override
+ public void addImplicitResolver(Tag tag, Pattern regexp, String first)
{
+ if (tag == Tag.TIMESTAMP) {
+ return;
+ }
+ super.addImplicitResolver(tag, regexp, first);
+ }
+ }
+
public Map<String, Object> process() {
final Map<String, Object> result = new LinkedHashMap<String, Object>();
process((properties, map) -> result.putAll(getFlattenedMap(map)));
return result;
}
-
}
diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index 3b232b8..e304361 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -89,7 +89,7 @@
<properties>
<!-- Common libs -->
- <spring_version>4.3.16.RELEASE</spring_version>
+ <spring_version>5.2.8.RELEASE</spring_version>
<javassist_version>3.20.0-GA</javassist_version>
<netty_version>3.2.5.Final</netty_version>
<netty4_version>4.1.51.Final</netty4_version>
diff --git
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
index 187da71..c34eac8 100644
---
a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
+++
b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java
@@ -168,8 +168,8 @@ public class NacosRegistry extends FailbackRegistry {
Instance instance = createInstance(url);
namingService.deregisterInstance(serviceName,
getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP),
- instance.getIp()
- , instance.getPort());
+ instance.getIp(),
+ instance.getPort());
});
}