Skip to content

Commit d69bdd4

Browse files
authored
Replace Resolver implementations with library solution (#354)
Removes old Resolver implementations. Removes Resolver "hooks" that were added in core code. Adds org.burningwave:tools dependency as the preferred solution. Adds MultimapHostResolver implementation allowing for one-to-many mapping of hostnames to ips. Adds MultimapHostResolverProvider as a replacement for ResolverProvider. Adjusts MockResolverIT to use new replacement.
1 parent c698120 commit d69bdd4

File tree

22 files changed

+173
-485
lines changed

22 files changed

+173
-485
lines changed

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/ContactPoints.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
import com.datastax.oss.driver.api.core.metadata.EndPoint;
2121
import com.datastax.oss.driver.internal.core.metadata.DefaultEndPoint;
22-
import com.datastax.oss.driver.internal.core.resolver.Resolver;
23-
import com.datastax.oss.driver.internal.core.resolver.ResolverProvider;
2422
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableSet;
2523
import com.datastax.oss.driver.shaded.guava.common.collect.Sets;
2624
import java.net.InetAddress;
@@ -37,7 +35,6 @@
3735
/** Utility class to handle the initial contact points passed to the driver. */
3836
public class ContactPoints {
3937
private static final Logger LOG = LoggerFactory.getLogger(ContactPoints.class);
40-
private static Resolver RESOLVER = ResolverProvider.getResolver(ContactPoints.class);
4138

4239
public static Set<EndPoint> merge(
4340
Set<EndPoint> programmaticContactPoints, List<String> configContactPoints, boolean resolve) {
@@ -75,7 +72,7 @@ private static Set<InetSocketAddress> extract(String spec, boolean resolve) {
7572
return ImmutableSet.of(InetSocketAddress.createUnresolved(host, port));
7673
} else {
7774
try {
78-
InetAddress[] inetAddresses = RESOLVER.getAllByName(host);
75+
InetAddress[] inetAddresses = InetAddress.getAllByName(host);
7976
if (inetAddresses.length > 1) {
8077
LOG.info(
8178
"Contact point {} resolves to multiple addresses, will use them all ({})",

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/addresstranslation/Ec2MultiRegionAddressTranslator.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
import com.datastax.oss.driver.api.core.addresstranslation.AddressTranslator;
2121
import com.datastax.oss.driver.api.core.context.DriverContext;
22-
import com.datastax.oss.driver.internal.core.resolver.Resolver;
23-
import com.datastax.oss.driver.internal.core.resolver.ResolverProvider;
2422
import com.datastax.oss.driver.internal.core.util.Loggers;
2523
import com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting;
2624
import edu.umd.cs.findbugs.annotations.NonNull;
@@ -59,8 +57,6 @@
5957
public class Ec2MultiRegionAddressTranslator implements AddressTranslator {
6058

6159
private static final Logger LOG = LoggerFactory.getLogger(Ec2MultiRegionAddressTranslator.class);
62-
private static Resolver RESOLVER =
63-
ResolverProvider.getResolver(Ec2MultiRegionAddressTranslator.class);
6460

6561
private final DirContext ctx;
6662
private final String logPrefix;
@@ -98,7 +94,7 @@ public InetSocketAddress translate(@NonNull InetSocketAddress socketAddress) {
9894
return socketAddress;
9995
}
10096

101-
InetAddress translatedAddress = RESOLVER.getByName(domainName);
97+
InetAddress translatedAddress = InetAddress.getByName(domainName);
10298
LOG.debug("[{}] Resolved {} to {}", logPrefix, address, translatedAddress);
10399
return new InetSocketAddress(translatedAddress, socketAddress.getPort());
104100
} catch (Exception e) {

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/channel/ChannelFactory.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
import com.datastax.oss.driver.internal.core.metrics.SessionMetricUpdater;
4343
import com.datastax.oss.driver.internal.core.protocol.FrameDecoder;
4444
import com.datastax.oss.driver.internal.core.protocol.FrameEncoder;
45-
import com.datastax.oss.driver.internal.core.resolver.Resolver;
46-
import com.datastax.oss.driver.internal.core.resolver.ResolverProvider;
4745
import com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting;
4846
import com.datastax.oss.driver.shaded.guava.common.base.Preconditions;
4947
import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap;
@@ -70,8 +68,6 @@ public class ChannelFactory {
7068

7169
private static final Logger LOG = LoggerFactory.getLogger(ChannelFactory.class);
7270

73-
private static Resolver RESOLVER = ResolverProvider.getResolver(ChannelFactory.class);
74-
7571
/**
7672
* A value for {@link #productType} that indicates that we are connected to DataStax Cloud. This
7773
* value matches the one defined at DSE DB server side at {@code ProductType.java}.
@@ -208,7 +204,7 @@ private void connect(
208204

209205
nettyOptions.afterBootstrapInitialized(bootstrap);
210206

211-
ChannelFuture connectFuture = bootstrap.connect(RESOLVER.resolve(endPoint.resolve()));
207+
ChannelFuture connectFuture = bootstrap.connect(endPoint.resolve());
212208

213209
connectFuture.addListener(
214210
cf -> {

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/metadata/SniEndPoint.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
package com.datastax.oss.driver.internal.core.metadata;
1919

2020
import com.datastax.oss.driver.api.core.metadata.EndPoint;
21-
import com.datastax.oss.driver.internal.core.resolver.Resolver;
22-
import com.datastax.oss.driver.internal.core.resolver.ResolverProvider;
2321
import com.datastax.oss.driver.shaded.guava.common.primitives.UnsignedBytes;
2422
import edu.umd.cs.findbugs.annotations.NonNull;
2523
import java.net.InetAddress;
@@ -32,7 +30,6 @@
3230

3331
public class SniEndPoint implements EndPoint {
3432
private static final AtomicLong OFFSET = new AtomicLong();
35-
private static Resolver RESOLVER = ResolverProvider.getResolver(SniEndPoint.class);
3633

3734
private final InetSocketAddress proxyAddress;
3835
private final String serverName;
@@ -58,7 +55,7 @@ public String getServerName() {
5855
@Override
5956
public InetSocketAddress resolve() {
6057
try {
61-
InetAddress[] aRecords = RESOLVER.getAllByName(proxyAddress.getHostName());
58+
InetAddress[] aRecords = InetAddress.getAllByName(proxyAddress.getHostName());
6259
if (aRecords.length == 0) {
6360
// Probably never happens, but the JDK docs don't explicitly say so
6461
throw new IllegalArgumentException(

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/AbstractResolverFactory.java

-5
This file was deleted.

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/Resolver.java

-48
This file was deleted.

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/ResolverProvider.java

-55
This file was deleted.

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/defaultResolver/DefaultResolver.java

-47
This file was deleted.

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/defaultResolver/DefaultResolverFactory.java

-23
This file was deleted.

Diff for: core/src/main/java/com/datastax/oss/driver/internal/core/resolver/mockResolver/MockResolver.java

-81
This file was deleted.

0 commit comments

Comments
 (0)