From b52d3574019f9933ff925f760358b70fcf8603ec Mon Sep 17 00:00:00 2001 From: Julien Viet Date: Wed, 30 Aug 2017 16:23:08 +0200 Subject: [PATCH] Upgrade to Netty 4.1.15.Final --- pom.xml | 11 ++++- .../impl/VertxHttp2ConnectionHandler.java | 12 ----- .../impl/resolver/DnsResolverProvider.java | 47 ++++++++++++++----- .../benchmarks/HeadersEncodeBenchmark.java | 2 +- 4 files changed, 46 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index b69b5f299..dce1526ab 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ - 1.1.33.Fork26 + 2.0.6.Final 1.2.17 1.7.21 2.8.2 @@ -79,38 +79,47 @@ io.netty netty-common + 4.1.15.Final io.netty netty-buffer + 4.1.15.Final io.netty netty-transport + 4.1.15.Final io.netty netty-handler + 4.1.15.Final io.netty netty-handler-proxy + 4.1.15.Final io.netty netty-codec-http + 4.1.15.Final io.netty netty-codec-http2 + 4.1.15.Final io.netty netty-resolver + 4.1.15.Final io.netty netty-resolver-dns + 4.1.15.Final diff --git a/src/main/java/io/vertx/core/http/impl/VertxHttp2ConnectionHandler.java b/src/main/java/io/vertx/core/http/impl/VertxHttp2ConnectionHandler.java index 6808c56ac..5a78cc9d7 100644 --- a/src/main/java/io/vertx/core/http/impl/VertxHttp2ConnectionHandler.java +++ b/src/main/java/io/vertx/core/http/impl/VertxHttp2ConnectionHandler.java @@ -149,18 +149,6 @@ class VertxHttp2ConnectionHandler extends Http2Co public void onStreamRemoved(Http2Stream stream) { } - @Override - public void onPriorityTreeParentChanged(Http2Stream stream, Http2Stream oldParent) { - } - - @Override - public void onPriorityTreeParentChanging(Http2Stream stream, Http2Stream newParent) { - } - - @Override - public void onWeightChanged(Http2Stream stream, short oldWeight) { - } - @Override public void onGoAwaySent(int lastStreamId, long errorCode, ByteBuf debugData) { connection.onGoAwaySent(lastStreamId, errorCode, debugData); diff --git a/src/main/java/io/vertx/core/impl/resolver/DnsResolverProvider.java b/src/main/java/io/vertx/core/impl/resolver/DnsResolverProvider.java index 089410fb2..aac68678a 100644 --- a/src/main/java/io/vertx/core/impl/resolver/DnsResolverProvider.java +++ b/src/main/java/io/vertx/core/impl/resolver/DnsResolverProvider.java @@ -20,11 +20,15 @@ import io.netty.channel.EventLoop; import io.netty.channel.socket.DatagramChannel; import io.netty.channel.socket.nio.NioDatagramChannel; import io.netty.resolver.AddressResolverGroup; +import io.netty.resolver.HostsFileEntries; +import io.netty.resolver.HostsFileEntriesResolver; import io.netty.resolver.HostsFileParser; import io.netty.resolver.NameResolver; +import io.netty.resolver.ResolvedAddressTypes; import io.netty.resolver.dns.DnsAddressResolverGroup; import io.netty.resolver.dns.DnsNameResolverBuilder; import io.netty.resolver.dns.DnsServerAddressStream; +import io.netty.resolver.dns.DnsServerAddressStreamProvider; import io.netty.resolver.dns.DnsServerAddresses; import io.netty.util.NetUtil; import io.netty.util.concurrent.EventExecutor; @@ -40,6 +44,8 @@ import io.vertx.core.spi.resolver.ResolverProvider; import java.io.File; import java.io.IOException; import java.io.StringReader; +import java.net.Inet4Address; +import java.net.Inet6Address; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException; @@ -48,7 +54,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; @@ -95,8 +100,9 @@ public class DnsResolverProvider implements ResolverProvider { } } DnsServerAddresses nameServerAddresses = options.isRotateServers() ? DnsServerAddresses.rotational(serverList) : DnsServerAddresses.sequential(serverList); + DnsServerAddressStreamProvider nameServerAddressProvider = hostname -> nameServerAddresses.stream(); - Map entries; + HostsFileEntries entries; if (options.getHostsPath() != null) { File file = vertx.resolveFile(options.getHostsPath()).getAbsoluteFile(); try { @@ -119,23 +125,40 @@ public class DnsResolverProvider implements ResolverProvider { this.vertx = vertx; this.resolverGroup = new AddressResolverGroup() { - @Override protected io.netty.resolver.AddressResolver newResolver(EventExecutor executor) throws Exception { - - DnsAddressResolverGroup group = new DnsAddressResolverGroup(NioDatagramChannel.class, nameServerAddresses) { + DnsAddressResolverGroup group = new DnsAddressResolverGroup(NioDatagramChannel.class, nameServerAddressProvider) { @Override - protected NameResolver newNameResolver(EventLoop eventLoop, ChannelFactory channelFactory, DnsServerAddresses nameServerAddresses) throws Exception { + protected NameResolver newNameResolver(EventLoop eventLoop, ChannelFactory channelFactory, DnsServerAddressStreamProvider nameServerProvider) throws Exception { DnsNameResolverBuilder builder = new DnsNameResolverBuilder((EventLoop) executor); - builder.hostsFileEntriesResolver(inetHost -> { - InetAddress addr = entries.get(inetHost); - if (addr == null) { - addr = entries.get(inetHost.toLowerCase(Locale.ENGLISH)); + builder.hostsFileEntriesResolver(new HostsFileEntriesResolver() { + @Override + public InetAddress address(String inetHost, ResolvedAddressTypes resolvedAddressTypes) { + InetAddress address = lookup(inetHost, resolvedAddressTypes); + if (address == null) { + address = lookup(inetHost.toLowerCase(Locale.ENGLISH), resolvedAddressTypes); + } + return address; + } + InetAddress lookup(String inetHost, ResolvedAddressTypes resolvedAddressTypes) { + switch (resolvedAddressTypes) { + case IPV4_ONLY: + return entries.inet4Entries().get(inetHost); + case IPV6_ONLY: + return entries.inet6Entries().get(inetHost); + case IPV4_PREFERRED: + Inet4Address inet4Address = entries.inet4Entries().get(inetHost); + return inet4Address != null? inet4Address : entries.inet6Entries().get(inetHost); + case IPV6_PREFERRED: + Inet6Address inet6Address = entries.inet6Entries().get(inetHost); + return inet6Address != null? inet6Address : entries.inet4Entries().get(inetHost); + default: + throw new IllegalArgumentException("Unknown ResolvedAddressTypes " + resolvedAddressTypes); + } } - return addr; }); builder.channelType(NioDatagramChannel.class); - builder.nameServerAddresses(nameServerAddresses); + builder.nameServerProvider(nameServerAddressProvider); builder.optResourceEnabled(options.isOptResourceEnabled()); builder.ttl(options.getCacheMinTimeToLive(), options.getCacheMaxTimeToLive()); builder.negativeTtl(options.getCacheNegativeTimeToLive()); diff --git a/src/test/benchmarks/io/vertx/benchmarks/HeadersEncodeBenchmark.java b/src/test/benchmarks/io/vertx/benchmarks/HeadersEncodeBenchmark.java index f34ac45dd..39af07ace 100644 --- a/src/test/benchmarks/io/vertx/benchmarks/HeadersEncodeBenchmark.java +++ b/src/test/benchmarks/io/vertx/benchmarks/HeadersEncodeBenchmark.java @@ -44,7 +44,7 @@ public class HeadersEncodeBenchmark extends BenchmarkBase { // Make it public @Override - public void encodeHeaders(HttpHeaders headers, ByteBuf buf) throws Exception { + public void encodeHeaders(HttpHeaders headers, ByteBuf buf) { super.encodeHeaders(headers, buf); } }