Skip to content

Commit 0d48e88

Browse files
young0264tishun
andauthored
Deprecate DnsResolver in favor of AddressResolverGroup(#1572) (#3291)
* Deprecate DnsResolver in favor of AddressResolverGroup(#1572) * Mark DnsResolver and related API as @deprecated * DefaultClientResources now unconditionally uses DnsAddressResolverGroup * Update test coverage to reflect new default behavior * Polishing --------- Co-authored-by: Tihomir Mateev <[email protected]>
1 parent 2fd5297 commit 0d48e88

File tree

7 files changed

+30
-21
lines changed

7 files changed

+30
-21
lines changed

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,6 @@
256256
<dependency>
257257
<groupId>io.netty</groupId>
258258
<artifactId>netty-resolver-dns</artifactId>
259-
<optional>true</optional>
260259
</dependency>
261260

262261
<dependency>

src/main/java/io/lettuce/core/resource/AddressResolverGroupProvider.java

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
11
package io.lettuce.core.resource;
22

3-
import io.lettuce.core.internal.LettuceClassUtils;
43
import io.netty.channel.socket.SocketChannel;
54
import io.netty.resolver.AddressResolverGroup;
65
import io.netty.resolver.DefaultAddressResolverGroup;
76
import io.netty.resolver.dns.DefaultDnsCache;
87
import io.netty.resolver.dns.DefaultDnsCnameCache;
98
import io.netty.resolver.dns.DnsAddressResolverGroup;
109
import io.netty.resolver.dns.DnsNameResolverBuilder;
11-
import io.netty.util.internal.logging.InternalLogger;
12-
import io.netty.util.internal.logging.InternalLoggerFactory;
1310

1411
/**
1512
* Wraps and provides {@link AddressResolverGroup} classes. This is to protect the user from {@link ClassNotFoundException}'s
1613
* caused by the absence of the {@literal netty-dns-resolver} library during runtime. This class will be deleted when
1714
* {@literal netty-dns-resolver} becomes mandatory. Internal API.
15+
* <p>
16+
* Since Lettuce 6.7, {@literal netty-dns-resolver} became a required dependency so this class now unconditionally uses
17+
* {@link DnsAddressResolverGroup}
1818
*
1919
* @author Yohei Ueki
2020
* @author Mark Paluch
21+
* @author Euiyoung Nam
2122
* @since 6.1
2223
*/
2324
class AddressResolverGroupProvider {
2425

25-
private static final InternalLogger logger = InternalLoggerFactory.getInstance(AddressResolverGroupProvider.class);
26-
27-
private static final AddressResolverGroup<?> ADDRESS_RESOLVER_GROUP;
28-
29-
static {
30-
boolean dnsResolverAvailable = LettuceClassUtils.isPresent("io.netty.resolver.dns.DnsAddressResolverGroup");
31-
32-
AddressResolverGroup<?> group;
33-
if (dnsResolverAvailable) {
34-
logger.debug("Starting with netty's non-blocking DNS resolver library");
35-
group = DefaultDnsAddressResolverGroupWrapper.INSTANCE;
36-
} else {
37-
logger.debug("Starting without optional netty's non-blocking DNS resolver library");
38-
group = DefaultAddressResolverGroup.INSTANCE;
39-
}
40-
ADDRESS_RESOLVER_GROUP = group;
41-
}
26+
private static final AddressResolverGroup<?> ADDRESS_RESOLVER_GROUP = DefaultDnsAddressResolverGroupWrapper.INSTANCE;
4227

4328
/**
4429
* Returns the {@link AddressResolverGroup} for DNS resolution.

src/main/java/io/lettuce/core/resource/ClientResources.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
* @author Mark Paluch
5757
* @author Mikhael Sokolov
5858
* @author Yohei Ueki
59+
* @author Euiyoung Nam
5960
* @since 3.4
6061
* @see DefaultClientResources
6162
*/
@@ -361,7 +362,9 @@ default Builder commandLatencyCollector(CommandLatencyCollector commandLatencyCo
361362
*
362363
* @return the DNS resolver.
363364
* @since 4.3
365+
* @deprecated since 6.6 replaced by{@link AddressResolverGroup} instead.
364366
*/
367+
@Deprecated
365368
DnsResolver dnsResolver();
366369

367370
/**

src/main/java/io/lettuce/core/resource/DefaultClientResources.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
*
8080
* @author Mark Paluch
8181
* @author Yohei Ueki
82+
* @author Euiyoung Nam
8283
* @since 3.4
8384
*/
8485
public class DefaultClientResources implements ClientResources {
@@ -786,6 +787,10 @@ public int computationThreadPoolSize() {
786787
return LettuceLists.newList(eventExecutorGroup.iterator()).size();
787788
}
788789

790+
/**
791+
* @deprecated since 6.7 replaced by{@link AddressResolverGroup} instead.
792+
**/
793+
@Deprecated
789794
@Override
790795
public DnsResolver dnsResolver() {
791796
return dnsResolver;

src/main/java/io/lettuce/core/resource/DnsResolver.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22

33
import java.net.InetAddress;
44
import java.net.UnknownHostException;
5+
import io.netty.resolver.AddressResolverGroup;
56

67
/**
78
* Users may implement this interface to override the normal DNS lookup offered by the OS.
89
*
910
* @author Mark Paluch
11+
* @author Euiyoung Nam
1012
* @since 4.2
1113
*/
1214
public interface DnsResolver {
1315

1416
/**
1517
* Java VM default resolver.
1618
*
19+
* @deprecated since 6.7, see {@link AddressResolverGroup}
1720
* @since 5.1
1821
*/
1922
static DnsResolver jvmDefault() {

src/main/java/io/lettuce/core/resource/DnsResolvers.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.lettuce.core.resource;
22

3+
import io.netty.resolver.AddressResolverGroup;
4+
35
import java.net.InetAddress;
46
import java.net.UnknownHostException;
57

@@ -13,6 +15,8 @@ public enum DnsResolvers implements DnsResolver {
1315

1416
/**
1517
* Java VM default resolver.
18+
*
19+
* @deprecated since 6.7. Configure {@link AddressResolverGroup} instead.
1620
*/
1721
JVM_DEFAULT {
1822

src/test/java/io/lettuce/core/resource/DefaultClientResourcesUnitTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.concurrent.atomic.AtomicInteger;
2828
import java.util.concurrent.atomic.AtomicReference;
2929

30+
import io.netty.resolver.dns.DnsAddressResolverGroup;
3031
import org.junit.jupiter.api.Tag;
3132
import org.junit.jupiter.api.Test;
3233

@@ -112,6 +113,15 @@ void testDnsResolver() {
112113
assertThat(sut.dnsResolver()).isEqualTo(dirContextDnsResolver);
113114
}
114115

116+
@Test
117+
void testShouldUseDnsAddressResolverGroup() {
118+
DefaultClientResources sut = DefaultClientResources.create();
119+
AddressResolverGroup<?> addressResolverGroup = sut.addressResolverGroup();
120+
121+
assertThat(addressResolverGroup).as("Default AddressResolverGroup should be DnsAddressResolverGroup")
122+
.isInstanceOf(DnsAddressResolverGroup.class);
123+
}
124+
115125
@Test
116126
void testProvidedResources() {
117127

0 commit comments

Comments
 (0)