Skip to content

Commit

Permalink
Upgrade the dependencies to their latest stable versions
Browse files Browse the repository at this point in the history
- Brave 3.9.0
- Jackson 2.7.5
- Jetty 9.3.10
- Jetty ALPN agent 2.0.3
- Netty 4.1.2.Final
- Netty TCNative (BoringSSL-static) 1.1.33.Fork18
- Tomcat 8.0.36
- Related changes:
  - Remove the references to the deprecated/removed APIs
  • Loading branch information
trustin committed Jul 4, 2016
1 parent 302868b commit 9bbeeb6
Show file tree
Hide file tree
Showing 14 changed files with 67 additions and 188 deletions.
18 changes: 9 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,14 @@
<maven.compiler.showWarnings>true</maven.compiler.showWarnings>

<!-- Dependency versions -->
<jackson.version>2.7.3</jackson.version>
<jetty.version>9.3.8.v20160314</jetty.version>
<jackson.version>2.7.5</jackson.version>
<jetty.version>9.3.10.v20160621</jetty.version>
<logback.version>1.1.7</logback.version>
<metrics.version>3.1.2</metrics.version>
<netty.version>4.1.0.CR7</netty.version>
<netty.version>4.1.2.Final</netty.version>
<slf4j.version>1.7.21</slf4j.version>
<tomcat.version>8.0.33</tomcat.version>
<jetty.alpnAgent.version>2.0.1</jetty.alpnAgent.version>
<tomcat.version>8.0.36</tomcat.version>
<jetty.alpnAgent.version>2.0.3</jetty.alpnAgent.version>
<jetty.alpnAgent.path>${settings.localRepository}/org/mortbay/jetty/alpn/jetty-alpn-agent/${jetty.alpnAgent.version}/jetty-alpn-agent-${jetty.alpnAgent.version}.jar</jetty.alpnAgent.path>
<argLine.alpnAgent>-javaagent:${jetty.alpnAgent.path}</argLine.alpnAgent>
<argLine.leak>-D_</argLine.leak> <!-- Overridden when 'leak' profile is active -->
Expand All @@ -97,7 +97,7 @@
<thrift.source.test>${project.basedir}/src/test/thrift</thrift.source.test>
<thrift.generated.main>${project.build.directory}/generated-sources</thrift.generated.main>
<thrift.generated.test>${project.build.directory}/generated-test-sources</thrift.generated.test>
<brave.version>3.5.0</brave.version>
<brave.version>3.9.0</brave.version>
<guava.version>19.0</guava.version>
<reflections.version>0.9.10</reflections.version>
</properties>
Expand Down Expand Up @@ -136,7 +136,7 @@
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>1.1.33.Fork17</version>
<version>1.1.33.Fork18</version>
</dependency>

<!-- ALPN -->
Expand Down Expand Up @@ -347,12 +347,12 @@

<!-- distributed tracing -->
<dependency>
<groupId>com.github.kristofa</groupId>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-core</artifactId>
<version>${brave.version}</version>
</dependency>
<dependency>
<groupId>com.github.kristofa</groupId>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave-http</artifactId>
<version>${brave.version}</version>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import io.netty.util.concurrent.Promise;
import io.netty.util.internal.OneTimeTask;

final class HttpRemoteInvoker implements RemoteInvoker {

Expand All @@ -83,7 +82,7 @@ final class HttpRemoteInvoker implements RemoteInvoker {
this.baseBootstrap = requireNonNull(baseBootstrap, "baseBootstrap");
this.options = requireNonNull(options, "options");

assert baseBootstrap.group() == null;
assert baseBootstrap.config().group() == null;
}

@Override
Expand Down Expand Up @@ -245,7 +244,7 @@ private static <T> void scheduleTimeout(
});
}

private static class TimeoutTask extends OneTimeTask {
private static class TimeoutTask implements Runnable {

private final Promise<?> promise;
private final long timeoutMillis;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.EventLoop;
import io.netty.channel.pool.ChannelHealthChecker;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.Promise;
import io.netty.util.internal.OneTimeTask;

class HttpSessionChannelFactory implements Function<PoolKey, Future<Channel>> {

Expand All @@ -49,7 +47,7 @@ class HttpSessionChannelFactory implements Function<PoolKey, Future<Channel>> {

HttpSessionChannelFactory(Bootstrap bootstrap, RemoteInvokerOptions options) {
baseBootstrap = requireNonNull(bootstrap);
eventLoop = (EventLoop) bootstrap.group();
eventLoop = (EventLoop) bootstrap.config().group();

bootstrapMap = Collections.synchronizedMap(new EnumMap<>(SessionProtocol.class));
this.options = options;
Expand Down Expand Up @@ -117,12 +115,7 @@ private Future<Channel> watchSessionActive(SessionProtocol protocol, Channel ch,
if (eventLoop.inEventLoop()) {
watchSessionActive0(protocol, ch, sessionPromise);
} else {
eventLoop.execute(new OneTimeTask() {
@Override
public void run() {
watchSessionActive0(protocol, ch, sessionPromise);
}
});
eventLoop.execute(() -> watchSessionActive0(protocol, ch, sessionPromise));
}
return sessionPromise;
}
Expand All @@ -132,13 +125,10 @@ private void watchSessionActive0(SessionProtocol protocol, final Channel ch,

assert ch.eventLoop().inEventLoop();

final ScheduledFuture<?> timeoutFuture = ch.eventLoop().schedule(new OneTimeTask() {
@Override
public void run() {
if (sessionPromise.tryFailure(new SessionProtocolNegotiationException(
protocol, "connection established, but session creation timed out: " + ch))) {
ch.close();
}
final ScheduledFuture<?> timeoutFuture = ch.eventLoop().schedule(() -> {
if (sessionPromise.tryFailure(new SessionProtocolNegotiationException(
protocol, "connection established, but session creation timed out: " + ch))) {
ch.close();
}
}, options.connectTimeoutMillis(), TimeUnit.MILLISECONDS);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,11 @@

import static java.util.Objects.requireNonNull;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.Collections;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ThreadFactory;
import java.util.function.BiConsumer;
import java.util.function.Function;

import org.slf4j.Logger;
Expand All @@ -37,9 +32,7 @@
import com.linecorp.armeria.common.util.NativeLibraries;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFactory;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoop;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.epoll.EpollDatagramChannel;
import io.netty.channel.epoll.EpollEventLoopGroup;
Expand All @@ -49,16 +42,9 @@
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioDatagramChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.resolver.AddressResolver;
import io.netty.resolver.InetNameResolver;
import io.netty.resolver.dns.DnsAddressResolverGroup;
import io.netty.resolver.dns.DnsNameResolverBuilder;
import io.netty.resolver.dns.DnsServerAddresses;
import io.netty.util.concurrent.DefaultThreadFactory;
import io.netty.util.concurrent.EventExecutor;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import io.netty.util.concurrent.Promise;

/**
* Creates and manages {@link RemoteInvoker}s.
Expand Down Expand Up @@ -153,7 +139,7 @@ private RemoteInvokerFactory(RemoteInvokerOptions options,
baseBootstrap.channel(channelType());
baseBootstrap.resolver(
options.addressResolverGroup()
.orElseGet(() -> new DnsAddressResolverGroup5179(
.orElseGet(() -> new DnsAddressResolverGroup(
datagramChannelType(), DnsServerAddresses.defaultAddresses())));

baseBootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS,
Expand All @@ -172,7 +158,7 @@ private RemoteInvokerFactory(RemoteInvokerOptions options,
final EnumMap<SessionProtocol, RemoteInvoker> remoteInvokers = new EnumMap<>(SessionProtocol.class);
final HttpRemoteInvoker remoteInvoker = new HttpRemoteInvoker(baseBootstrap, options);

SessionProtocol.ofHttp().stream().forEach(
SessionProtocol.ofHttp().forEach(
protocol -> remoteInvokers.put(protocol, remoteInvoker));

this.remoteInvokers = Collections.unmodifiableMap(remoteInvokers);
Expand Down Expand Up @@ -233,85 +219,4 @@ private void close0() {
eventLoopGroup.shutdownGracefully().syncUninterruptibly();
}
}

// TODO(trustin): Remove this once the upstream fixes the problem:
// https://github.com/netty/netty/issues/5179
private static final class DnsAddressResolverGroup5179 extends DnsAddressResolverGroup {

private final Map<String, Promise<InetAddress>> resolveMap = new ConcurrentHashMap<>();
private final Map<String, Promise<List<InetAddress>>> resolveAllMap = new ConcurrentHashMap<>();

DnsAddressResolverGroup5179(Class<? extends DatagramChannel> channelType,
DnsServerAddresses nameServerAddresses) {
super(channelType, nameServerAddresses);
}

@Override
protected AddressResolver<InetSocketAddress> newResolver(
EventLoop eventLoop, ChannelFactory<? extends DatagramChannel> channelFactory,
InetSocketAddress localAddress, DnsServerAddresses nameServerAddresses) throws Exception {

final InetNameResolver delegate = new DnsNameResolverBuilder(eventLoop)
.channelFactory(channelFactory)
.localAddress(localAddress)
.nameServerAddresses(nameServerAddresses)
.build();

return new DnsNameResolver5179(eventLoop, delegate).asAddressResolver();
}

private final class DnsNameResolver5179 extends InetNameResolver {

private final InetNameResolver delegate;

DnsNameResolver5179(EventExecutor executor, InetNameResolver delegate) {
super(executor);
this.delegate = delegate;
}

@Override
protected void doResolve(String inetHost, Promise<InetAddress> promise) throws Exception {
doResolve0(delegate::resolve, resolveMap, inetHost, promise);
}

@Override
protected void doResolveAll(String inetHost, Promise<List<InetAddress>> promise) throws Exception {
doResolve0(delegate::resolveAll, resolveAllMap, inetHost, promise);
}

private <T> void doResolve0(
BiConsumer<String, Promise<T>> resolver, Map<String, Promise<T>> resolveMap,
String inetHost, Promise<T> promise) throws Exception {

final Promise<T> earlyPromise = resolveMap.putIfAbsent(inetHost, promise);
if (earlyPromise != null) {
// Name resolution for the specified inetHost is in progress already.
if (earlyPromise.isDone()) {
transferResult(earlyPromise, promise);
} else {
earlyPromise.addListener((FutureListener<T>) f -> transferResult(f, promise));
}
return;
}

try {
resolver.accept(inetHost, promise);
} finally {
if (promise.isDone()) {
resolveMap.remove(inetHost);
} else {
promise.addListener((FutureListener<T>) f -> resolveMap.remove(inetHost));
}
}
}

private <T> void transferResult(Future<T> src, Promise<T> dst) {
if (src.isSuccess()) {
dst.trySuccess(src.getNow());
} else {
dst.tryFailure(src.cause());
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import io.netty.util.concurrent.Promise;
import io.netty.util.internal.OneTimeTask;

/**
* Default {@link KeyedChannelPool} implementation.
Expand Down Expand Up @@ -99,12 +98,7 @@ public Future<Channel> acquire(final K key, final Promise<Channel> promise) {
if (eventLoop.inEventLoop()) {
acquireHealthyFromPoolOrNew(key, promise);
} else {
eventLoop.execute(new OneTimeTask() {
@Override
public void run() {
acquireHealthyFromPoolOrNew(key, promise);
}
});
eventLoop.execute(() -> acquireHealthyFromPoolOrNew(key, promise));
}

return promise;
Expand All @@ -128,12 +122,7 @@ private Future<Channel> acquireHealthyFromPoolOrNew(final K key, final Promise<C
if (loop.inEventLoop()) {
doHealthCheck(key, ch, promise);
} else {
loop.execute(new OneTimeTask() {
@Override
public void run() {
doHealthCheck(key, ch, promise);
}
});
loop.execute(() -> doHealthCheck(key, ch, promise));
}

return promise;
Expand Down Expand Up @@ -164,12 +153,7 @@ private void doHealthCheck(final K key, final Channel ch, final Promise<Channel>
if (f.isDone()) {
notifyHealthCheck(key, f, ch, promise);
} else {
f.addListener(new FutureListener<Boolean>() {
@Override
public void operationComplete(Future<Boolean> future) throws Exception {
notifyHealthCheck(key, future, ch, promise);
}
});
f.addListener((FutureListener<Boolean>) future -> notifyHealthCheck(key, future, ch, promise));
}
}

Expand Down Expand Up @@ -221,12 +205,7 @@ public Future<Void> release(final K key, final Channel channel, final Promise<Vo
if (loop.inEventLoop()) {
doReleaseChannel(key, channel, promise);
} else {
loop.execute(new OneTimeTask() {
@Override
public void run() {
doReleaseChannel(key, channel, promise);
}
});
loop.execute(() -> doReleaseChannel(key, channel, promise));
}
} catch (Throwable cause) {
closeAndFail(channel, cause, promise);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ protected ClientOptions putTraceData(ClientOptions baseOptions, @Nullable SpanId
headers.add(BraveHttpHeaders.Sampled.getName(), "0");
} else {
headers.add(BraveHttpHeaders.Sampled.getName(), "1");
headers.add(BraveHttpHeaders.TraceId.getName(), IdConversion.convertToString(spanId.getTraceId()));
headers.add(BraveHttpHeaders.SpanId.getName(), IdConversion.convertToString(spanId.getSpanId()));
if (spanId.getParentSpanId() != null) {
headers.add(BraveHttpHeaders.TraceId.getName(), IdConversion.convertToString(spanId.traceId));
headers.add(BraveHttpHeaders.SpanId.getName(), IdConversion.convertToString(spanId.spanId));
if (!spanId.root()) {
headers.add(BraveHttpHeaders.ParentSpanId.getName(),
IdConversion.convertToString(spanId.getParentSpanId()));
IdConversion.convertToString(spanId.parentId));
}
}

Expand Down
Loading

0 comments on commit 9bbeeb6

Please sign in to comment.