Fix reactor netty latest dep test (#3205)
This commit is contained in:
parent
858eb69abe
commit
6d24c765b6
|
@ -7,6 +7,11 @@ import static io.opentelemetry.instrumentation.test.utils.PortUtils.UNUSABLE_POR
|
||||||
import static io.opentelemetry.instrumentation.test.utils.TraceUtils.basicSpan
|
import static io.opentelemetry.instrumentation.test.utils.TraceUtils.basicSpan
|
||||||
import static io.opentelemetry.instrumentation.test.utils.TraceUtils.runUnderTrace
|
import static io.opentelemetry.instrumentation.test.utils.TraceUtils.runUnderTrace
|
||||||
|
|
||||||
|
import io.netty.resolver.AddressResolver
|
||||||
|
import io.netty.resolver.AddressResolverGroup
|
||||||
|
import io.netty.resolver.InetNameResolver
|
||||||
|
import io.netty.util.concurrent.EventExecutor
|
||||||
|
import io.netty.util.concurrent.Promise
|
||||||
import io.opentelemetry.api.common.AttributeKey
|
import io.opentelemetry.api.common.AttributeKey
|
||||||
import io.opentelemetry.api.trace.Span
|
import io.opentelemetry.api.trace.Span
|
||||||
import io.opentelemetry.api.trace.SpanKind
|
import io.opentelemetry.api.trace.SpanKind
|
||||||
|
@ -97,6 +102,10 @@ abstract class AbstractReactorNettyHttpClientTest extends HttpClientTest<HttpCli
|
||||||
|
|
||||||
abstract HttpClient createHttpClient()
|
abstract HttpClient createHttpClient()
|
||||||
|
|
||||||
|
AddressResolverGroup getAddressResolverGroup() {
|
||||||
|
return CustomNameResolverGroup.INSTANCE
|
||||||
|
}
|
||||||
|
|
||||||
def "should expose context to http client callbacks"() {
|
def "should expose context to http client callbacks"() {
|
||||||
given:
|
given:
|
||||||
def onRequestSpan = new AtomicReference<Span>()
|
def onRequestSpan = new AtomicReference<Span>()
|
||||||
|
@ -179,4 +188,40 @@ abstract class AbstractReactorNettyHttpClientTest extends HttpClientTest<HttpCli
|
||||||
assert expectedSpanContext.traceId == actualSpanContext.traceId
|
assert expectedSpanContext.traceId == actualSpanContext.traceId
|
||||||
assert expectedSpanContext.spanId == actualSpanContext.spanId
|
assert expectedSpanContext.spanId == actualSpanContext.spanId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// custom address resolver that returns at most one address for each host
|
||||||
|
// adapted from io.netty.resolver.DefaultAddressResolverGroup
|
||||||
|
static class CustomNameResolverGroup extends AddressResolverGroup<InetSocketAddress> {
|
||||||
|
public static final CustomNameResolverGroup INSTANCE = new CustomNameResolverGroup()
|
||||||
|
|
||||||
|
private CustomNameResolverGroup() {
|
||||||
|
}
|
||||||
|
|
||||||
|
protected AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception {
|
||||||
|
return (new CustomNameResolver(executor)).asAddressResolver()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class CustomNameResolver extends InetNameResolver {
|
||||||
|
CustomNameResolver(EventExecutor executor) {
|
||||||
|
super(executor)
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void doResolve(String inetHost, Promise<InetAddress> promise) throws Exception {
|
||||||
|
try {
|
||||||
|
promise.setSuccess(InetAddress.getByName(inetHost))
|
||||||
|
} catch (UnknownHostException exception) {
|
||||||
|
promise.setFailure(exception)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void doResolveAll(String inetHost, Promise<List<InetAddress>> promise) throws Exception {
|
||||||
|
try {
|
||||||
|
// default implementation calls InetAddress.getAllByName
|
||||||
|
promise.setSuccess(Collections.singletonList(InetAddress.getByName(inetHost)))
|
||||||
|
} catch (UnknownHostException exception) {
|
||||||
|
promise.setFailure(exception)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class ReactorNettyHttpClientTest extends AbstractReactorNettyHttpClientTest {
|
||||||
HttpClient createHttpClient() {
|
HttpClient createHttpClient() {
|
||||||
return HttpClient.create().tcpConfiguration({ tcpClient ->
|
return HttpClient.create().tcpConfiguration({ tcpClient ->
|
||||||
tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECT_TIMEOUT_MS)
|
tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECT_TIMEOUT_MS)
|
||||||
})
|
}).resolver(getAddressResolverGroup())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -12,6 +12,6 @@ class ReactorNettyHttpClientUsingFromTest extends AbstractReactorNettyHttpClient
|
||||||
HttpClient createHttpClient() {
|
HttpClient createHttpClient() {
|
||||||
return HttpClient.from(TcpClient.create()).tcpConfiguration({ tcpClient ->
|
return HttpClient.from(TcpClient.create()).tcpConfiguration({ tcpClient ->
|
||||||
tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECT_TIMEOUT_MS)
|
tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECT_TIMEOUT_MS)
|
||||||
})
|
}).resolver(getAddressResolverGroup())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue