Skip to content

Commit e15360f

Browse files
Remove deprecated dnsResolver option (#3328) (#3333)
* chore: remove unnecessary nested static class for AddressResolverGroup instantiation Signed-off-by: The-East-Wind <[email protected]> * chore: remove usages of ClientResource#dnsResolver Signed-off-by: The-East-Wind <[email protected]> * chore: remove dnsResolver option from ClientResources Signed-off-by: The-East-Wind <[email protected]> * chore: delete redundant AddressResolverGroupProvider as netty-dns-resolver is a required dependency Signed-off-by: The-East-Wind <[email protected]> * chore: remove DnsResolver.JVM_DEFAULT and it's usages Signed-off-by: The-East-Wind <[email protected]> * fix: failing tests in RoundRobinSocketAddressSupplierUnitTests.java Signed-off-by: The-East-Wind <[email protected]> --------- Signed-off-by: The-East-Wind <[email protected]>
1 parent c773131 commit e15360f

11 files changed

+34
-170
lines changed

src/main/java/io/lettuce/core/RedisClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ protected <K, V> StatefulRedisConnectionImpl<K, V> newStatefulRedisConnection(Re
687687
*
688688
* @param redisURI must not be {@code null}.
689689
* @return the resolved {@link SocketAddress}.
690-
* @see ClientResources#dnsResolver()
690+
* @see ClientResources#addressResolverGroup()
691691
* @see RedisURI#getSentinels()
692692
* @see RedisURI#getSentinelMasterId()
693693
*/

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

Lines changed: 0 additions & 48 deletions
This file was deleted.

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

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
* @author Mikhael Sokolov
5858
* @author Yohei Ueki
5959
* @author Euiyoung Nam
60+
* @author Hari Mani
6061
* @since 3.4
6162
* @see DefaultClientResources
6263
*/
@@ -163,18 +164,6 @@ default Builder commandLatencyCollector(CommandLatencyCollector commandLatencyCo
163164
*/
164165
Builder computationThreadPoolSize(int computationThreadPoolSize);
165166

166-
/**
167-
* Sets the {@link DnsResolver} that is used to resolve hostnames to {@link java.net.InetAddress}. Defaults to
168-
* {@link DnsResolvers#UNRESOLVED} to use netty's {@link AddressResolverGroup}.
169-
*
170-
* @param dnsResolver the DNS resolver, must not be {@code null}.
171-
* @return {@code this} {@link Builder}.
172-
* @since 4.3
173-
* @deprecated since 6.1. Configure {@link AddressResolverGroup} instead.
174-
*/
175-
@Deprecated
176-
Builder dnsResolver(DnsResolver dnsResolver);
177-
178167
/**
179168
* Sets the {@link EventBus} that can be used across different instances of the RedisClient.
180169
*
@@ -357,16 +346,6 @@ default Builder commandLatencyCollector(CommandLatencyCollector commandLatencyCo
357346
*/
358347
int computationThreadPoolSize();
359348

360-
/**
361-
* Return the {@link DnsResolver}.
362-
*
363-
* @return the DNS resolver.
364-
* @since 4.3
365-
* @deprecated since 6.6 replaced by{@link AddressResolverGroup} instead.
366-
*/
367-
@Deprecated
368-
DnsResolver dnsResolver();
369-
370349
/**
371350
* Return the event bus used to publish events.
372351
*

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

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@
3838
import io.lettuce.core.metrics.MetricCollector;
3939
import io.lettuce.core.resource.Delay.StatefulDelay;
4040
import io.lettuce.core.tracing.Tracing;
41+
import io.netty.channel.socket.SocketChannel;
4142
import io.netty.resolver.AddressResolverGroup;
43+
import io.netty.resolver.dns.DefaultDnsCache;
44+
import io.netty.resolver.dns.DefaultDnsCnameCache;
45+
import io.netty.resolver.dns.DnsAddressResolverGroup;
46+
import io.netty.resolver.dns.DnsNameResolverBuilder;
4247
import io.netty.util.HashedWheelTimer;
4348
import io.netty.util.Timer;
4449
import io.netty.util.concurrent.DefaultEventExecutorGroup;
@@ -80,6 +85,7 @@
8085
* @author Mark Paluch
8186
* @author Yohei Ueki
8287
* @author Euiyoung Nam
88+
* @author Hari Mani
8389
* @since 3.4
8490
*/
8591
public class DefaultClientResources implements ClientResources {
@@ -113,8 +119,10 @@ public class DefaultClientResources implements ClientResources {
113119
/**
114120
* Default {@link AddressResolverGroup}.
115121
*/
116-
public static final AddressResolverGroup<?> DEFAULT_ADDRESS_RESOLVER_GROUP = AddressResolverGroupProvider
117-
.addressResolverGroup();
122+
public static final AddressResolverGroup<?> DEFAULT_ADDRESS_RESOLVER_GROUP = new DnsAddressResolverGroup(
123+
new DnsNameResolverBuilder().datagramChannelType(Transports.datagramChannelClass())
124+
.socketChannelType(Transports.socketChannelClass().asSubclass(SocketChannel.class))
125+
.cnameCache(new DefaultDnsCnameCache()).resolveCache(new DefaultDnsCache()));
118126

119127
static {
120128

@@ -136,8 +144,6 @@ public class DefaultClientResources implements ClientResources {
136144

137145
private final EventPublisherOptions commandLatencyPublisherOptions;
138146

139-
private final DnsResolver dnsResolver;
140-
141147
private final EventBus eventBus;
142148

143149
private final boolean sharedEventLoopGroupProvider;
@@ -250,14 +256,8 @@ protected DefaultClientResources(Builder builder) {
250256
metricEventPublisher = null;
251257
}
252258

253-
if (builder.dnsResolver == null) {
254-
dnsResolver = DnsResolvers.UNRESOLVED;
255-
} else {
256-
dnsResolver = builder.dnsResolver;
257-
}
258-
259259
if (builder.socketAddressResolver == null) {
260-
socketAddressResolver = SocketAddressResolver.create(dnsResolver);
260+
socketAddressResolver = SocketAddressResolver.create(DnsResolvers.UNRESOLVED);
261261
} else {
262262
socketAddressResolver = builder.socketAddressResolver;
263263
}
@@ -304,8 +304,6 @@ public static class Builder implements ClientResources.Builder {
304304

305305
private int computationThreadPoolSize = DEFAULT_COMPUTATION_THREADS;
306306

307-
private DnsResolver dnsResolver = DnsResolvers.UNRESOLVED;
308-
309307
private EventBus eventBus;
310308

311309
private EventExecutorGroup eventExecutorGroup;
@@ -441,25 +439,6 @@ public Builder computationThreadPoolSize(int computationThreadPoolSize) {
441439
return this;
442440
}
443441

444-
/**
445-
* Sets the {@link DnsResolver} that is used to resolve hostnames to {@link java.net.InetAddress}. Defaults to
446-
* {@link DnsResolvers#UNRESOLVED}
447-
*
448-
* @param dnsResolver the DNS resolver, must not be {@code null}.
449-
* @return {@code this} {@link Builder}.
450-
* @since 4.3
451-
* @deprecated since 6.1. Configure {@link AddressResolverGroup} instead.
452-
*/
453-
@Deprecated
454-
@Override
455-
public Builder dnsResolver(DnsResolver dnsResolver) {
456-
457-
LettuceAssert.notNull(dnsResolver, "DnsResolver must not be null");
458-
459-
this.dnsResolver = dnsResolver;
460-
return this;
461-
}
462-
463442
/**
464443
* Sets the {@link EventBus} that can be used across different instances of the RedisClient.
465444
*
@@ -606,10 +585,10 @@ public ClientResources.Builder socketAddressResolver(SocketAddressResolver socke
606585
* @param threadFactoryProvider a provider to obtain a {@link java.util.concurrent.ThreadFactory} for a
607586
* {@code poolName}, must not be {@code null}.
608587
* @return {@code this} {@link ClientResources.Builder}.
609-
* @since 6.1.1
610588
* @see #eventExecutorGroup(EventExecutorGroup)
611589
* @see #eventLoopGroupProvider(EventLoopGroupProvider)
612590
* @see #timer(Timer)
591+
* @since 6.1.1
613592
*/
614593
@Override
615594
public ClientResources.Builder threadFactoryProvider(ThreadFactoryProvider threadFactoryProvider) {
@@ -679,13 +658,12 @@ public DefaultClientResources build() {
679658
* <p>
680659
* Note: The resulting {@link DefaultClientResources} retains shared state for {@link Timer},
681660
* {@link CommandLatencyRecorder}, {@link EventExecutorGroup}, and {@link EventLoopGroupProvider} if these are left
682-
* unchanged. Thus you need only to shut down the last created {@link ClientResources} instances. Shutdown affects any
661+
* unchanged. Thus, you need only to shut down the last created {@link ClientResources} instances. Shutdown affects any
683662
* previously created {@link ClientResources}.
684663
* </p>
685664
*
686665
* @return a {@link DefaultClientResources.Builder} to create new {@link DefaultClientResources} whose settings are
687666
* replicated from the current {@link DefaultClientResources}.
688-
*
689667
* @since 5.1
690668
*/
691669
@Override
@@ -694,8 +672,8 @@ public DefaultClientResources.Builder mutate() {
694672
Builder builder = new Builder();
695673

696674
builder.afterBuild(() -> this.shutdownCheck = false).commandLatencyRecorder(commandLatencyRecorder())
697-
.commandLatencyPublisherOptions(commandLatencyPublisherOptions()).dnsResolver(dnsResolver())
698-
.eventBus(eventBus()).eventExecutorGroup(eventExecutorGroup()).reconnectDelay(reconnectDelay)
675+
.commandLatencyPublisherOptions(commandLatencyPublisherOptions()).eventBus(eventBus())
676+
.eventExecutorGroup(eventExecutorGroup()).reconnectDelay(reconnectDelay)
699677
.socketAddressResolver(socketAddressResolver()).nettyCustomizer(nettyCustomizer())
700678
.threadFactoryProvider(threadFactoryProvider).timer(timer()).tracing(tracing())
701679
.addressResolverGroup(addressResolverGroup());
@@ -787,15 +765,6 @@ public int computationThreadPoolSize() {
787765
return LettuceLists.newList(eventExecutorGroup.iterator()).size();
788766
}
789767

790-
/**
791-
* @deprecated since 6.7 replaced by{@link AddressResolverGroup} instead.
792-
**/
793-
@Deprecated
794-
@Override
795-
public DnsResolver dnsResolver() {
796-
return dnsResolver;
797-
}
798-
799768
@Override
800769
public EventBus eventBus() {
801770
return eventBus;

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.net.InetAddress;
44
import java.net.UnknownHostException;
5-
import io.netty.resolver.AddressResolverGroup;
65

76
/**
87
* Users may implement this interface to override the normal DNS lookup offered by the OS.
@@ -13,16 +12,6 @@
1312
*/
1413
public interface DnsResolver {
1514

16-
/**
17-
* Java VM default resolver.
18-
*
19-
* @deprecated since 6.7, see {@link AddressResolverGroup}
20-
* @since 5.1
21-
*/
22-
static DnsResolver jvmDefault() {
23-
return DnsResolvers.JVM_DEFAULT;
24-
}
25-
2615
/**
2716
* Non-resolving {@link DnsResolver}. Returns an empty {@link InetAddress} to indicate an unresolved address.
2817
*

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

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

3-
import io.netty.resolver.AddressResolverGroup;
4-
53
import java.net.InetAddress;
64
import java.net.UnknownHostException;
75

@@ -13,20 +11,6 @@
1311
*/
1412
public enum DnsResolvers implements DnsResolver {
1513

16-
/**
17-
* Java VM default resolver.
18-
*
19-
* @deprecated since 6.7. Configure {@link AddressResolverGroup} instead.
20-
*/
21-
JVM_DEFAULT {
22-
23-
@Override
24-
public InetAddress[] resolve(String host) throws UnknownHostException {
25-
return InetAddress.getAllByName(host);
26-
}
27-
28-
},
29-
3014
/**
3115
* Non-resolving {@link DnsResolver}. Returns an empty {@link InetAddress} to indicate an unresolved address.
3216
*

src/test/java/io/lettuce/core/cluster/RoundRobinSocketAddressSupplierUnitTests.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,30 +47,31 @@
4747
*
4848
* @author Mark Paluch
4949
* @author Christian Lang
50+
* @author Hari Mani
5051
*/
5152
@Tag(UNIT_TEST)
5253
@ExtendWith(MockitoExtension.class)
5354
class RoundRobinSocketAddressSupplierUnitTests {
5455

55-
private static RedisURI hap1 = new RedisURI("127.0.0.1", 1, Duration.ofSeconds(1));
56+
private static final RedisURI hap1 = new RedisURI("127.0.0.1", 1, Duration.ofSeconds(1));
5657

57-
private static RedisURI hap2 = new RedisURI("127.0.0.1", 2, Duration.ofSeconds(1));
58+
private static final RedisURI hap2 = new RedisURI("127.0.0.1", 2, Duration.ofSeconds(1));
5859

59-
private static RedisURI hap3 = new RedisURI("127.0.0.1", 3, Duration.ofSeconds(1));
60+
private static final RedisURI hap3 = new RedisURI("127.0.0.1", 3, Duration.ofSeconds(1));
6061

61-
private static RedisURI hap4 = new RedisURI("127.0.0.1", 4, Duration.ofSeconds(1));
62+
private static final RedisURI hap4 = new RedisURI("127.0.0.1", 4, Duration.ofSeconds(1));
6263

63-
private static RedisURI hap5 = new RedisURI("127.0.0.0", 5, Duration.ofSeconds(1));
64+
private static final RedisURI hap5 = new RedisURI("127.0.0.0", 5, Duration.ofSeconds(1));
6465

65-
private static InetSocketAddress addr1 = new InetSocketAddress(hap1.getHost(), hap1.getPort());
66+
private static final InetSocketAddress addr1 = InetSocketAddress.createUnresolved(hap1.getHost(), hap1.getPort());
6667

67-
private static InetSocketAddress addr2 = new InetSocketAddress(hap2.getHost(), hap2.getPort());
68+
private static final InetSocketAddress addr2 = InetSocketAddress.createUnresolved(hap2.getHost(), hap2.getPort());
6869

69-
private static InetSocketAddress addr3 = new InetSocketAddress(hap3.getHost(), hap3.getPort());
70+
private static final InetSocketAddress addr3 = InetSocketAddress.createUnresolved(hap3.getHost(), hap3.getPort());
7071

71-
private static InetSocketAddress addr4 = new InetSocketAddress(hap4.getHost(), hap4.getPort());
72+
private static final InetSocketAddress addr4 = InetSocketAddress.createUnresolved(hap4.getHost(), hap4.getPort());
7273

73-
private static InetSocketAddress addr5 = new InetSocketAddress(hap5.getHost(), hap5.getPort());
74+
private static final InetSocketAddress addr5 = InetSocketAddress.createUnresolved(hap5.getHost(), hap5.getPort());
7475

7576
private static Partitions partitions;
7677

@@ -80,7 +81,7 @@ class RoundRobinSocketAddressSupplierUnitTests {
8081
@BeforeEach
8182
void before() {
8283

83-
when(clientResourcesMock.socketAddressResolver()).thenReturn(SocketAddressResolver.create(DnsResolvers.JVM_DEFAULT));
84+
when(clientResourcesMock.socketAddressResolver()).thenReturn(SocketAddressResolver.create(DnsResolvers.UNRESOLVED));
8485

8586
partitions = new Partitions();
8687
partitions.addPartition(new RedisClusterNode(hap1, "1", true, "", 0, 0, 0, new ArrayList<>(), new HashSet<>()));

src/test/java/io/lettuce/core/masterreplica/MasterReplicaSentinelSslIntegrationTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import javax.inject.Inject;
44

55
import io.lettuce.core.*;
6+
import io.lettuce.core.resource.DnsResolvers;
67
import org.junit.jupiter.api.Tag;
78
import org.junit.jupiter.api.Test;
89
import org.junit.jupiter.api.extension.ExtendWith;
@@ -50,7 +51,7 @@ class MasterReplicaSentinelSslIntegrationTests extends TestSupport {
5051
MasterReplicaSentinelSslIntegrationTests(ClientResources clientResources) {
5152

5253
this.clientResources = clientResources.mutate()
53-
.socketAddressResolver(MappingSocketAddressResolver.create(DnsResolver.jvmDefault(), hostAndPort -> {
54+
.socketAddressResolver(MappingSocketAddressResolver.create(DnsResolvers.UNRESOLVED, hostAndPort -> {
5455
int port = hostAndPort.getPort();
5556
if (portMap.containsKey(port)) {
5657
return HostAndPort.of(hostAndPort.getHostText(), portMap.get(port));

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

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,6 @@ void testBuilder() throws Exception {
103103
assertThat(sut.shutdown(0, 0, TimeUnit.MILLISECONDS).get()).isTrue();
104104
}
105105

106-
@Test
107-
void testDnsResolver() {
108-
109-
DirContextDnsResolver dirContextDnsResolver = new DirContextDnsResolver("8.8.8.8");
110-
111-
DefaultClientResources sut = DefaultClientResources.builder().dnsResolver(dirContextDnsResolver).build();
112-
113-
assertThat(sut.dnsResolver()).isEqualTo(dirContextDnsResolver);
114-
}
115-
116106
@Test
117107
void testShouldUseDnsAddressResolverGroup() {
118108
DefaultClientResources sut = DefaultClientResources.create();

0 commit comments

Comments
 (0)