From 9b037d6b1801668810077f2dadcfd96d8ab2ae51 Mon Sep 17 00:00:00 2001 From: lai hui <1353307710@qq.com> Date: Thu, 14 Jul 2022 17:36:14 +0800 Subject: [PATCH 1/2] add ip-type example --- .../src/main/resources/application.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties index e967cd12fb..af8d86d49a 100755 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties @@ -3,6 +3,7 @@ spring.application.name=service-provider spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.enabled=true #spring.cloud.nacos.discovery.instance-enabled=true +#spring.cloud.nacos.discovery.ip-type=IPv6 spring.cloud.nacos.username=nacos spring.cloud.nacos.password=nacos From 186e02ea26ad21f837a49a70a6c4bd7e7077459a Mon Sep 17 00:00:00 2001 From: lai hui <1353307710@qq.com> Date: Tue, 26 Jul 2022 17:02:41 +0800 Subject: [PATCH 2/2] Support register IPv6 --- .../src/main/resources/application.properties | 1 + .../cloud/nacos/NacosDiscoveryProperties.java | 22 ++- .../cloud/nacos/intetuntil/InetIPv6Utils.java | 158 ---------------- .../intetuntil/UtilIPv6AutoConfiguration.java | 28 --- .../cloud/nacos/util/InetIPv6Utils.java | 178 ++++++++++++++++++ .../nacos/util/UtilIPv6AutoConfiguration.java | 44 +++++ .../main/resources/META-INF/spring.factories | 2 +- .../NacosDiscoveryAutoConfigurationTests.java | 2 + ...NacosDiscoveryClientConfigurationTest.java | 4 + ...tiveDiscoveryClientConfigurationTests.java | 2 + 10 files changed, 244 insertions(+), 197 deletions(-) delete mode 100644 spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/InetIPv6Utils.java delete mode 100644 spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/UtilIPv6AutoConfiguration.java create mode 100644 spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/InetIPv6Utils.java create mode 100644 spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/UtilIPv6AutoConfiguration.java diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties index af8d86d49a..408e9d2c2d 100755 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources/application.properties @@ -3,6 +3,7 @@ spring.application.name=service-provider spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.enabled=true #spring.cloud.nacos.discovery.instance-enabled=true +#register IPv6 instance #spring.cloud.nacos.discovery.ip-type=IPv6 spring.cloud.nacos.username=nacos diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java index 8bb7e3d2b6..4d5b1bc874 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/NacosDiscoveryProperties.java @@ -32,7 +32,7 @@ import javax.annotation.PostConstruct; import com.alibaba.cloud.nacos.event.NacosDiscoveryInfoChangedEvent; -import com.alibaba.cloud.nacos.intetuntil.InetIPv6Utils; +import com.alibaba.cloud.nacos.util.InetIPv6Utils; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.PreservedMetadataKeys; import com.alibaba.nacos.client.naming.utils.UtilAndComs; @@ -166,7 +166,7 @@ public class NacosDiscoveryProperties { private String networkInterface = ""; /** - * choose IPV4 or IPV6,if you don't set it will choose IPV4 + * choose IPv4 or IPv6,if you don't set it will choose IPv4. */ private String ipType = "IPv4" ; @@ -223,7 +223,7 @@ public class NacosDiscoveryProperties { private boolean failFast = true; @Autowired - private InetIPv6Utils inetIPUtils; + private InetIPv6Utils inetIPv6Utils; @Autowired private InetUtils inetUtils; @@ -256,14 +256,16 @@ public void init() throws Exception { if (StringUtils.isEmpty(ip)) { // traversing network interfaces if didn't specify a interface if (StringUtils.isEmpty(networkInterface)) { - if (ipType.equalsIgnoreCase("IPv4")){ + if ("IPv4".equalsIgnoreCase(ipType)) { ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); - }else if (ipType.equalsIgnoreCase("IPv6")){ - ip = inetIPUtils.findFirstNonLoopbackHostInfo().getIpAddress(); + } + else if ("IPv6".equalsIgnoreCase(ipType)) { + ip = inetIPv6Utils.findFirstNonLoopbackHostInfo().getIpAddress(); int index = ip.indexOf('%'); ip = index > 0 ? ip.substring(0, index) : ip; - ip = "["+ip+"]"; - }else { + ip = "[" + ip + "]"; + } + else { throw new IllegalArgumentException( "please checking the type of IP " + ipType); } @@ -335,8 +337,8 @@ public void setLogName(String logName) { this.logName = logName; } - public void setInetIPUtils(InetIPv6Utils inetIPUtils){ - this.inetIPUtils = inetIPUtils; + public void setInetIPv6Utils(InetIPv6Utils inetIPv6Utils){ + this.inetIPv6Utils = inetIPv6Utils; } public void setInetUtils(InetUtils inetUtils) { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/InetIPv6Utils.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/InetIPv6Utils.java deleted file mode 100644 index 3a596d7e21..0000000000 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/InetIPv6Utils.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.alibaba.cloud.nacos.intetuntil; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.cloud.commons.util.InetUtils; -import org.springframework.cloud.commons.util.InetUtilsProperties; - -import java.io.Closeable; -import java.io.IOException; - -import java.net.Inet6Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.UnknownHostException; -import java.util.Enumeration; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; - -/** - * @author HH - */ -public class InetIPv6Utils implements Closeable { - private final ExecutorService executorService; - - private final Log log = LogFactory.getLog(InetIPv6Utils.class); - - private final InetUtilsProperties properties; - - public InetIPv6Utils(final InetUtilsProperties properties) { - this.properties = properties; - this.executorService = Executors.newSingleThreadExecutor((r) -> { - Thread thread = new Thread(r); - thread.setName("spring.cloud.alibaba.inetutilsIPV6"); - thread.setDaemon(true); - return thread; - }); - } - - public void close() { - this.executorService.shutdown(); - } - - public InetUtils.HostInfo findFirstNonLoopbackHostInfo() { - InetAddress address = this.findFirstNonLoopbackIPv6Address(); - if (address != null) { - return this.convertAddress(address); - } else { - InetUtils.HostInfo hostInfo = new InetUtils.HostInfo(); - this.properties.setDefaultIpAddress("0:0:0:0:0:0:0:1"); - hostInfo.setHostname(this.properties.getDefaultHostname()); - hostInfo.setIpAddress(this.properties.getDefaultIpAddress()); - return hostInfo; - } - } - - public InetAddress findFirstNonLoopbackIPv6Address() { - InetAddress address = null; - - try { - int lowest = Integer.MAX_VALUE; - for (Enumeration nics = NetworkInterface.getNetworkInterfaces(); - nics.hasMoreElements();) { - NetworkInterface ifc = nics.nextElement(); - if (ifc.isUp()) { - log.trace("Testing interface:" + ifc.getDisplayName()); - if (ifc.getIndex() < lowest || address == null) { - lowest = ifc.getIndex(); - } - else if (address != null) { - continue; - } - - if (!ignoreInterface(ifc.getDisplayName())) { - for (Enumeration addrs = ifc - .getInetAddresses(); addrs.hasMoreElements();) { - InetAddress inetAddress = addrs.nextElement(); - if (inetAddress instanceof Inet6Address - && !inetAddress.isLoopbackAddress() - && isPreferredAddress(inetAddress)) { - log.trace("Found non-loopback interface: " - + ifc.getDisplayName()); - address = inetAddress; - } - } - } - } - } - } - catch (IOException e) { - log.error("Cannot get first non-loopback address", e); - } - - if (address != null) { - return address; - } - - try { - return InetAddress.getLocalHost(); - } - catch (UnknownHostException e) { - log.warn("Unable to retrieve localhost"); - } - - return null; - } - - boolean isPreferredAddress(InetAddress address) { - if (this.properties.isUseOnlySiteLocalInterfaces()) { - final boolean siteLocalAddress = address.isSiteLocalAddress(); - if (!siteLocalAddress) { - log.trace("Ignoring address"+address.getHostAddress()); - } - return siteLocalAddress; - } - final List preferredNetworks = this.properties.getPreferredNetworks(); - if (preferredNetworks.isEmpty()) { - return true; - } - for (String regex : preferredNetworks) { - final String hostAddress = address.getHostAddress(); - if (hostAddress.matches(regex) || hostAddress.startsWith(regex)) { - return true; - } - } - log.trace("Ignoring address: " + address.getHostAddress()); - return false; - } - - boolean ignoreInterface(String interfaceName) { - for (String regex : this.properties.getIgnoredInterfaces()) { - if (interfaceName.matches(regex)) { - log.trace("Ignoring interface: " + interfaceName); - return true; - } - } - return false; - } - - public InetUtils.HostInfo convertAddress(final InetAddress address) { - InetUtils.HostInfo hostInfo = new InetUtils.HostInfo(); - Future result = this.executorService.submit(address::getHostName); - - String hostname; - try { - hostname = result.get(this.properties.getTimeoutSeconds(), TimeUnit.SECONDS); - } - catch (Exception e) { - log.info("Cannot determine local hostname"); - hostname = "localhost"; - } - hostInfo.setHostname(hostname); - hostInfo.setIpAddress(address.getHostAddress()); - return hostInfo; - } -} diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/UtilIPv6AutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/UtilIPv6AutoConfiguration.java deleted file mode 100644 index f7588ec9e4..0000000000 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/intetuntil/UtilIPv6AutoConfiguration.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.alibaba.cloud.nacos.intetuntil; - -import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled; -import org.springframework.cloud.commons.util.InetUtilsProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -/** - * @author HH - */ -@Configuration(proxyBeanMethods = false) -@ConditionalOnDiscoveryEnabled -@ConditionalOnNacosDiscoveryEnabled -public class UtilIPv6AutoConfiguration { - public UtilIPv6AutoConfiguration() { - } - - @Bean - @ConditionalOnMissingBean - public InetIPv6Utils inetUtils(InetUtilsProperties properties) { - return new InetIPv6Utils(properties); - } -} - diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/InetIPv6Utils.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/InetIPv6Utils.java new file mode 100644 index 0000000000..77f30433fa --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/InetIPv6Utils.java @@ -0,0 +1,178 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.nacos.util; + +import java.io.Closeable; +import java.io.IOException; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.UnknownHostException; +import java.util.Enumeration; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.springframework.cloud.commons.util.InetUtils; +import org.springframework.cloud.commons.util.InetUtilsProperties; + +/** + * @author HH + */ +public class InetIPv6Utils implements Closeable { + + private final ExecutorService executorService; + + private final Log log = LogFactory.getLog(InetIPv6Utils.class); + + private final InetUtilsProperties properties; + + @Override + public void close() { + this.executorService.shutdown(); + } + + public InetIPv6Utils(final InetUtilsProperties properties) { + this.properties = properties; + this.executorService = Executors.newSingleThreadExecutor((r) -> { + Thread thread = new Thread(r); + thread.setName("spring.cloud.alibaba.inetutilsIPV6"); + thread.setDaemon(true); + return thread; + }); + } + + public InetUtils.HostInfo findFirstNonLoopbackHostInfo() { + InetAddress address = this.findFirstNonLoopbackIPv6Address(); + if (address != null) { + return this.convertAddress(address); + } + else { + InetUtils.HostInfo hostInfo = new InetUtils.HostInfo(); + this.properties.setDefaultIpAddress("0:0:0:0:0:0:0:1"); + hostInfo.setHostname(this.properties.getDefaultHostname()); + hostInfo.setIpAddress(this.properties.getDefaultIpAddress()); + return hostInfo; + } + } + + public InetAddress findFirstNonLoopbackIPv6Address() { + InetAddress address = null; + + try { + int lowest = Integer.MAX_VALUE; + for (Enumeration nics = NetworkInterface + .getNetworkInterfaces(); nics.hasMoreElements();) { + NetworkInterface ifc = nics.nextElement(); + if (ifc.isUp()) { + log.trace("Testing interface:" + ifc.getDisplayName()); + if (ifc.getIndex() < lowest || address == null) { + lowest = ifc.getIndex(); + } + else if (address != null) { + continue; + } + + if (!ignoreInterface(ifc.getDisplayName())) { + for (Enumeration addrs = ifc + .getInetAddresses(); addrs.hasMoreElements();) { + InetAddress inetAddress = addrs.nextElement(); + if (inetAddress instanceof Inet6Address + && !inetAddress.isLoopbackAddress() + && isPreferredAddress(inetAddress)) { + log.trace("Found non-loopback interface: " + + ifc.getDisplayName()); + address = inetAddress; + } + } + } + } + } + } + catch (IOException e) { + log.error("Cannot get first non-loopback address", e); + } + + if (address != null) { + return address; + } + + try { + return InetAddress.getLocalHost(); + } + catch (UnknownHostException e) { + log.warn("Unable to retrieve localhost"); + } + + return null; + } + + boolean isPreferredAddress(InetAddress address) { + if (this.properties.isUseOnlySiteLocalInterfaces()) { + final boolean siteLocalAddress = address.isSiteLocalAddress(); + if (!siteLocalAddress) { + log.trace("Ignoring address" + address.getHostAddress()); + } + return siteLocalAddress; + } + final List preferredNetworks = this.properties.getPreferredNetworks(); + if (preferredNetworks.isEmpty()) { + return true; + } + for (String regex : preferredNetworks) { + final String hostAddress = address.getHostAddress(); + if (hostAddress.matches(regex) || hostAddress.startsWith(regex)) { + return true; + } + } + log.trace("Ignoring address: " + address.getHostAddress()); + return false; + } + + boolean ignoreInterface(String interfaceName) { + for (String regex : this.properties.getIgnoredInterfaces()) { + if (interfaceName.matches(regex)) { + log.trace("Ignoring interface: " + interfaceName); + return true; + } + } + return false; + } + + public InetUtils.HostInfo convertAddress(final InetAddress address) { + InetUtils.HostInfo hostInfo = new InetUtils.HostInfo(); + Future result = this.executorService.submit(address::getHostName); + + String hostname; + try { + hostname = result.get(this.properties.getTimeoutSeconds(), TimeUnit.SECONDS); + } + catch (Exception e) { + log.info("Cannot determine local hostname"); + hostname = "localhost"; + } + hostInfo.setHostname(hostname); + hostInfo.setIpAddress(address.getHostAddress()); + return hostInfo; + } + +} diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/UtilIPv6AutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/UtilIPv6AutoConfiguration.java new file mode 100644 index 0000000000..423c742f2b --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util/UtilIPv6AutoConfiguration.java @@ -0,0 +1,44 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.nacos.util; + +import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled; +import org.springframework.cloud.commons.util.InetUtilsProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +/** + * @author HH + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnDiscoveryEnabled +@ConditionalOnNacosDiscoveryEnabled +public class UtilIPv6AutoConfiguration { + public UtilIPv6AutoConfiguration() { + } + + @Bean + @ConditionalOnMissingBean + public InetIPv6Utils inetIPv6Utils(InetUtilsProperties properties) { + return new InetIPv6Utils(properties); + } +} + diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories index 92f91f592c..49b3c7a5b6 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF/spring.factories @@ -7,7 +7,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration,\ com.alibaba.cloud.nacos.discovery.configclient.NacosConfigServerAutoConfiguration,\ com.alibaba.cloud.nacos.NacosServiceAutoConfiguration,\ - com.alibaba.cloud.nacos.intetuntil.InetIPv6Utils + com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.alibaba.cloud.nacos.discovery.configclient.NacosDiscoveryClientConfigServiceBootstrapConfiguration org.springframework.context.ApplicationListener=\ diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryAutoConfigurationTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryAutoConfigurationTests.java index ae04cee5ca..5bfb8738b5 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryAutoConfigurationTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryAutoConfigurationTests.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.nacos.discovery; import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -32,6 +33,7 @@ public class NacosDiscoveryAutoConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, + UtilIPv6AutoConfiguration.class, NacosDiscoveryAutoConfiguration.class)); @Test diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClientConfigurationTest.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClientConfigurationTest.java index 862799cd6f..5ea398bece 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClientConfigurationTest.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClientConfigurationTest.java @@ -16,6 +16,8 @@ package com.alibaba.cloud.nacos.discovery; +import com.alibaba.cloud.nacos.NacosServiceAutoConfiguration; +import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -35,6 +37,8 @@ public class NacosDiscoveryClientConfigurationTest { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, + UtilIPv6AutoConfiguration.class, + NacosServiceAutoConfiguration.class, NacosDiscoveryAutoConfiguration.class, NacosDiscoveryClientConfiguration.class, this.getClass())); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/reactive/NacosReactiveDiscoveryClientConfigurationTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/reactive/NacosReactiveDiscoveryClientConfigurationTests.java index 9700581ebc..9ede53c985 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/reactive/NacosReactiveDiscoveryClientConfigurationTests.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/discovery/reactive/NacosReactiveDiscoveryClientConfigurationTests.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.nacos.discovery.reactive; import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration; +import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -33,6 +34,7 @@ public class NacosReactiveDiscoveryClientConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, + UtilIPv6AutoConfiguration.class, NacosDiscoveryAutoConfiguration.class, NacosReactiveDiscoveryClientConfiguration.class));