Upgrade Azure SDK and Jackson (#72833) (#72995) (#73493)

This commit upgrades the Azure SDK to 12.11.0 and Jackson to 2.12.2. The
Jackson upgrade must happen at the same time due to Azure depending on
this new version of Jackson.

closes #66555
closes #67214

backport #72995
backport #73011

Co-authored-by: Francisco Fernández Castaño <francisco.fernandez.castano@gmail.com>
Co-authored-by: Mark Vieira <portugee@gmail.com>
This commit is contained in:
Ryan Ernst 2021-05-27 16:45:01 -07:00 committed by GitHub
parent 3182482701
commit f454cefc26
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
126 changed files with 139 additions and 143 deletions

View file

@ -99,7 +99,7 @@ if (System.getProperty('idea.active') == 'true') {
tasks.register('buildDependencyArtifacts') {
group = 'ide'
description = 'Builds artifacts needed as dependency for IDE modules'
dependsOn ':plugins:repository-hdfs:hadoop-common:shadowJar', ':plugins:repository-azure:azure-storage-blob:shadowJar'
dependsOn ':plugins:repository-hdfs:hadoop-common:shadowJar'
}
idea {

View file

@ -9,8 +9,8 @@ checkstyle = 8.39
# optional dependencies
spatial4j = 0.7
jts = 1.15.0
jackson = 2.10.4
snakeyaml = 1.26
jackson = 2.12.2
snakeyaml = 1.27
icu4j = 62.1
supercsv = 2.4.0
# when updating log4j, please update also docs/java-api/index.asciidoc
@ -20,7 +20,7 @@ slf4j = 1.6.2
# when updating the JNA version, also update the version in buildSrc/build.gradle
jna = 5.7.0-1
netty = 4.1.49.Final
netty = 4.1.63.Final
joda = 2.10.10
commons_lang3 = 3.9

View file

@ -1 +0,0 @@
8796585e716440d6dd5128b30359932a9eb74d0d

View file

@ -0,0 +1 @@
8df50138521d05561a308ec2799cc8dda20c06df

View file

@ -1 +0,0 @@
8796585e716440d6dd5128b30359932a9eb74d0d

View file

@ -0,0 +1 @@
8df50138521d05561a308ec2799cc8dda20c06df

View file

@ -1 +0,0 @@
c854bb2d46138198cb5d4aae86ef6c04b8bc1e70

View file

@ -0,0 +1 @@
71866a16d9678d8d7718baea0a28c7d0e1a67360

View file

@ -1 +0,0 @@
c872c2e224cfdcc5481037d477f5890f05c001b4

View file

@ -0,0 +1 @@
110be3a2ac0acf51e68967669db47ca9a507e057

View file

@ -1 +0,0 @@
8a7f3c6b640bd89214807af6d8160b4b3b16af93

View file

@ -0,0 +1 @@
8c549fb29f390f6fd0c20cf0a1d83f7e38dc7ffb

View file

@ -1 +0,0 @@
a78a8747147d2c5807683e76ec2b633e95c14fe9

View file

@ -0,0 +1 @@
359d62567480b07a679dc643f82fc926b100eed5

View file

@ -1 +0,0 @@
6ae6028aff033f194c9710ad87c224ccaadeed6c

View file

@ -0,0 +1 @@
0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

View file

@ -1 +0,0 @@
76e9152e93d4cf052f93a64596f633ba5b1c8ed9

View file

@ -0,0 +1 @@
5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

View file

@ -122,6 +122,8 @@ tasks.named("thirdPartyAudit").configure {
'io.netty.internal.tcnative.SSL',
'io.netty.internal.tcnative.SSLContext',
'io.netty.internal.tcnative.SSLPrivateKeyMethod',
'io.netty.internal.tcnative.SSLSession',
'io.netty.internal.tcnative.SSLSessionCache',
// from io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator (netty)
'org.bouncycastle.cert.X509v3CertificateBuilder',

View file

@ -1 +0,0 @@
8e819a81bca88d1e88137336f64531a53db0a4ad

View file

@ -0,0 +1 @@
40028ce5ac7c43f1c9a1439f74637cad04013e23

View file

@ -1 +0,0 @@
20218de83c906348283f548c255650fd06030424

View file

@ -0,0 +1 @@
d4d2fccea88c80e56d59ce1053c53df0f9f4f5db

View file

@ -1 +0,0 @@
4f30dbc462b26c588dffc0eb7552caef1a0f549e

View file

@ -0,0 +1 @@
f8c9b159dcb76452dc98a370a5511ff993670419

View file

@ -1 +0,0 @@
927c8563a1662d869b145e70ce82ad89100f2c90

View file

@ -0,0 +1 @@
e1206b46384d4dcbecee2901f18ce65ecf02e8a4

View file

@ -1 +0,0 @@
c73443adb9d085d5dc2d5b7f3bdd91d5963976f7

View file

@ -0,0 +1 @@
879a43c2325b08e92e8967218b6ddb0ed4b7a0d3

View file

@ -1 +0,0 @@
eb81e1f0eaa99e75983bf3d28cae2b103e0f3a34

View file

@ -0,0 +1 @@
d07cd47c101dfa655d6d5cc304d523742fd78ca8

View file

@ -1 +0,0 @@
415ea7f326635743aec952fe2349ca45959e94a7

View file

@ -0,0 +1 @@
09a8bbe1ba082c9434e6f524d3864a53f340f2df

View file

@ -1 +0,0 @@
6ae6028aff033f194c9710ad87c224ccaadeed6c

View file

@ -0,0 +1 @@
0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

View file

@ -1 +0,0 @@
76e9152e93d4cf052f93a64596f633ba5b1c8ed9

View file

@ -0,0 +1 @@
5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

View file

@ -1,47 +0,0 @@
import org.elasticsearch.gradle.internal.JavaClassPublicifier;
apply plugin: 'elasticsearch.java'
apply plugin: 'com.github.johnrengelman.shadow'
configurations {
originalJar {
transitive = false
}
}
dependencies {
originalJar "com.azure:azure-storage-blob:${project.parent.versions.azure}"
implementation "com.azure:azure-storage-blob:${project.parent.versions.azure}"
}
// We have to rewrite the service classes to make them public to avoid
// granting the permission "java.lang.reflect.ReflectPermission" "newProxyInPackage"
// to this plugin.
//
// There are plans to make those public in the azure sdk side, but in the meanwhile
// we just do this workaround
// https://github.com/Azure/azure-sdk-for-java/issues/12829#issuecomment-736755543
List<String> classesToRewrite = ['com/azure/storage/blob/implementation/AppendBlobsImpl$AppendBlobsService.class',
'com/azure/storage/blob/implementation/BlobsImpl$BlobsService.class',
'com/azure/storage/blob/implementation/BlockBlobsImpl$BlockBlobsService.class',
'com/azure/storage/blob/implementation/ContainersImpl$ContainersService.class',
'com/azure/storage/blob/implementation/DirectorysImpl$DirectorysService.class',
'com/azure/storage/blob/implementation/PageBlobsImpl$PageBlobsService.class',
'com/azure/storage/blob/implementation/ServicesImpl$ServicesService.class']
tasks.register('extractClientClasses', Copy).configure {
from({ zipTree(configurations.originalJar.singleFile) }) {
include "com/azure/storage/blob/implementation/**"
}
into project.file('build/original')
}
def modifiedOutput = project.layout.buildDirectory.dir('modified')
def makePublic = tasks.register('makeClientClassesPublic', JavaClassPublicifier) {
dependsOn 'extractClientClasses'
classFiles = classesToRewrite
inputDir = project.layout.buildDirectory.dir('original')
outputDir = modifiedOutput
}
sourceSets.main.output.dir(modifiedOutput, builtBy: makePublic)

View file

@ -22,38 +22,34 @@ esplugin {
}
versions << [
'azure': '12.9.0',
'azureCore': '1.10.0',
'azureCoreHttpNetty': '1.6.3',
'azure': '12.11.1',
'azureCore': '1.16.0',
'azureCoreHttpNetty': '1.9.1',
'azureAvro': '12.0.4',
'jakartaActivation': '1.2.1',
'jakartaXMLBind': '2.3.2',
'stax2API': '4.2',
'woodstox': '6.0.2',
'woodstox': '6.2.4',
'reactorNetty': '0.9.12.RELEASE',
'reactorCore': '3.3.10.RELEASE',
'reactorNetty': '1.0.6',
'reactorCore': '3.4.5',
'reactiveStreams': '1.0.3',
]
dependencies {
api project(path: 'azure-storage-blob', configuration: 'shadow')
if (isEclipse) {
/*
* Eclipse can't pick up the shadow dependency so we point it at *something*
* so it can compile things.
*/
api project(path: 'azure-storage-blob')
}
api "com.azure:azure-storage-common:${versions.azure}"
api "com.azure:azure-storage-blob:${versions.azure}"
api "com.azure:azure-core-http-netty:${versions.azureCoreHttpNetty}"
api "com.azure:azure-core:${versions.azureCore}"
api "com.azure:azure-storage-internal-avro:${versions.azureAvro}"
// jackson
api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}"
api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
api "com.fasterxml.jackson:jackson-bom:${versions.jackson}"
// jackson xml
api "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}"
@ -64,18 +60,23 @@ dependencies {
// netty
api "io.netty:netty-buffer:${versions.netty}"
api "io.netty:netty-codec:${versions.netty}"
api "io.netty:netty-codec-dns:${versions.netty}"
api "io.netty:netty-codec-http:${versions.netty}"
api "io.netty:netty-codec-http2:${versions.netty}"
api "io.netty:netty-codec-socks:${versions.netty}"
api "io.netty:netty-codec:${versions.netty}"
api "io.netty:netty-common:${versions.netty}"
api "io.netty:netty-handler-proxy:${versions.netty}"
api "io.netty:netty-handler:${versions.netty}"
api "io.netty:netty-handler-proxy:${versions.netty}"
api "io.netty:netty-resolver:${versions.netty}"
api "io.netty:netty-resolver-dns:${versions.netty}"
api "io.netty:netty-transport:${versions.netty}"
api "io.netty:netty-transport-native-unix-common:${versions.netty}"
// reactor
api "io.projectreactor.netty:reactor-netty:${versions.reactorNetty}"
api "io.projectreactor.netty:reactor-netty-core:${versions.reactorNetty}"
api "io.projectreactor.netty:reactor-netty-http:${versions.reactorNetty}"
api "io.projectreactor:reactor-core:${versions.reactorCore}"
api "org.reactivestreams:reactive-streams:${versions.reactiveStreams}"
@ -105,6 +106,7 @@ tasks.named("dependencyLicenses").configure {
mapping from: /netty-.*/, to: 'netty'
mapping from: /jaxb-.*/, to: 'jaxb'
mapping from: /stax-.*/, to: 'stax'
mapping from: /reactor-netty-.*/, to: 'reactor-netty'
mapping from: /reactive-streams.*/, to: 'reactive-streams'
}
@ -238,6 +240,8 @@ tasks.named("thirdPartyAudit").configure {
'io.netty.internal.tcnative.CertificateVerifier',
'io.netty.internal.tcnative.SessionTicketKey',
'io.netty.internal.tcnative.SniHostNameMatcher',
'io.netty.internal.tcnative.SSLSession',
'io.netty.internal.tcnative.SSLSessionCache',
// from io.netty.util.internal.Hidden (netty-common optional dependency)
'reactor.blockhound.BlockHound$Builder',
@ -246,14 +250,23 @@ tasks.named("thirdPartyAudit").configure {
// it uses NIO
'io.netty.channel.kqueue.KQueue',
'io.netty.channel.kqueue.KQueueDatagramChannel',
'io.netty.channel.kqueue.KQueueDomainSocketChannel',
'io.netty.channel.kqueue.KQueueEventLoopGroup',
'io.netty.channel.kqueue.KQueueServerDomainSocketChannel',
'io.netty.channel.kqueue.KQueueServerSocketChannel',
'io.netty.channel.kqueue.KQueueSocketChannel',
'io.netty.channel.epoll.Epoll',
'io.netty.channel.epoll.EpollDatagramChannel',
'io.netty.channel.epoll.EpollDomainSocketChannel',
'io.netty.channel.epoll.EpollEventLoopGroup',
'io.netty.channel.epoll.EpollServerDomainSocketChannel',
'io.netty.channel.epoll.EpollServerSocketChannel',
'io.netty.channel.epoll.EpollSocketChannel',
'io.netty.incubator.channel.uring.IOUring',
'io.netty.incubator.channel.uring.IOUringDatagramChannel',
'io.netty.incubator.channel.uring.IOUringEventLoopGroup',
'io.netty.incubator.channel.uring.IOUringServerSocketChannel',
'io.netty.incubator.channel.uring.IOUringSocketChannel',
// from reactor.netty.http.server.HttpServer (reactor-netty)
'io.netty.handler.codec.haproxy.HAProxyMessage',
@ -265,7 +278,8 @@ tasks.named("thirdPartyAudit").configure {
'org.slf4j.impl.StaticLoggerBinder',
'org.slf4j.impl.StaticMDCBinder',
'org.slf4j.impl.StaticMarkerBinder'
'org.slf4j.impl.StaticMarkerBinder',
'com.ctc.wstx.shaded.msv_core.driver.textui.Driver',
)
if (BuildParams.runtimeJavaVersion <= JavaVersion.VERSION_1_8) {
@ -281,8 +295,6 @@ tasks.named("thirdPartyAudit").configure {
)
} else {
ignoreMissingClasses(
'com.sun.org.apache.xml.internal.resolver.Catalog',
'com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver',
'javax.activation.DataHandler',
'javax.activation.DataSource',
'javax.xml.bind.JAXBElement',
@ -333,11 +345,7 @@ tasks.named("thirdPartyAudit").configure {
'io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess',
'io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess',
'reactor.core.publisher.MultiProducerRingBuffer',
'reactor.core.publisher.RingBufferFields',
'reactor.core.publisher.Traces$SharedSecretsCallSiteSupplierFactory$TracingException',
'reactor.core.publisher.UnsafeSequence',
'reactor.core.publisher.UnsafeSupport'
)
}
boolean useFixture = false

View file

@ -1 +0,0 @@
d5e1258ba153b5e27c90b7c9cad262e6fc171d24

View file

@ -0,0 +1 @@
4942bfa35a89a1fc9cabd18427a9b450d392215b

View file

@ -1 +0,0 @@
1c72bdc36faad65f53dd160becc38dd93a7356e2

View file

@ -0,0 +1 @@
b78134e2715eaef150ae3786806ff640bd0439ba

View file

@ -0,0 +1 @@
ac89edaa19ee481c832970e944af16b3b772881a

View file

@ -0,0 +1 @@
61b336d02e1d8839d68db47d884574fe41535e04

View file

@ -1 +0,0 @@
42d0439a676e51bb1dea809c60e8a925bb07477c

View file

@ -0,0 +1 @@
39733586ba04415ce64b186e17e1f8d9e28f2972

View file

@ -1 +0,0 @@
6ae6028aff033f194c9710ad87c224ccaadeed6c

View file

@ -0,0 +1 @@
0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

View file

@ -1 +0,0 @@
76e9152e93d4cf052f93a64596f633ba5b1c8ed9

View file

@ -0,0 +1 @@
5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

View file

@ -1 +0,0 @@
ffd80322264922e7edb6b35139ec1f2f55824156

View file

@ -0,0 +1 @@
dac1d21b5fe602d492273d35eb28918a91fc5412

View file

@ -1 +0,0 @@
de00203e6fee3493c8978a0064a3dda2e8373545

View file

@ -0,0 +1 @@
00012e36d12f47b4648e2cfe0b12bdcc2c4649bf

View file

@ -1 +0,0 @@
68364602aed552c0dcfc5743b393bad95c85b009

View file

@ -0,0 +1 @@
f226bd0766b4e81493822e8c81eaa6cab27e589f

View file

@ -1 +0,0 @@
8e819a81bca88d1e88137336f64531a53db0a4ad

View file

@ -0,0 +1 @@
40028ce5ac7c43f1c9a1439f74637cad04013e23

View file

@ -1 +0,0 @@
20218de83c906348283f548c255650fd06030424

View file

@ -0,0 +1 @@
d4d2fccea88c80e56d59ce1053c53df0f9f4f5db

View file

@ -0,0 +1 @@
91c445232b12e13bf6757579a39bab81e1233af5

View file

@ -1 +0,0 @@
4f30dbc462b26c588dffc0eb7552caef1a0f549e

View file

@ -0,0 +1 @@
f8c9b159dcb76452dc98a370a5511ff993670419

View file

@ -1 +0,0 @@
ca35293757f80cd2460c80791757db261615dbe7

View file

@ -0,0 +1 @@
294e90696d8d6e20c889511d2484b37158cb9caa

View file

@ -1 +0,0 @@
df75527823f9fd13f6bd9d9098bd9eb786dcafb5

View file

@ -0,0 +1 @@
97707b764c9287836dcf626dd03c81f3bbfc86c6

View file

@ -1 +0,0 @@
927c8563a1662d869b145e70ce82ad89100f2c90

View file

@ -0,0 +1 @@
e1206b46384d4dcbecee2901f18ce65ecf02e8a4

View file

@ -1 +0,0 @@
c73443adb9d085d5dc2d5b7f3bdd91d5963976f7

View file

@ -0,0 +1 @@
879a43c2325b08e92e8967218b6ddb0ed4b7a0d3

View file

@ -1 +0,0 @@
6a2064cc62c7d18719742e1e101199c04c66356c

View file

@ -0,0 +1 @@
d8cbdc537d75f219c04a057b984b2f0b55c1dbff

View file

@ -1 +0,0 @@
eb81e1f0eaa99e75983bf3d28cae2b103e0f3a34

View file

@ -0,0 +1 @@
d07cd47c101dfa655d6d5cc304d523742fd78ca8

View file

@ -0,0 +1 @@
f44dc8ed52ff8528a88c157879c9baffe464fa46

View file

@ -1 +0,0 @@
415ea7f326635743aec952fe2349ca45959e94a7

View file

@ -0,0 +1 @@
09a8bbe1ba082c9434e6f524d3864a53f340f2df

View file

@ -0,0 +1 @@
85bd91382ec54b300ad3ff59efccbb4fccb22a88

View file

@ -1 +0,0 @@
f5787f994a9a810c0986418232e06fcf4afc1216

View file

@ -0,0 +1 @@
c8adeb48f74b16c2dfb4f06a880820b9eaed50cf

View file

@ -1 +0,0 @@
41022546d07f1499fb9d8617bba4a1a89d3549db

View file

@ -0,0 +1 @@
82e9508698715725c3e1882d3056cd3a743d6bfc

View file

@ -0,0 +1 @@
c24e7e989913d50c2ed592892e55ce1284364ac4

View file

@ -0,0 +1 @@
6a76dd233bdb1e6dc5364ae1b5c8627c2cb0288f

View file

@ -1 +0,0 @@
bbd163bbdb4d6340298b61a6789cc174fb589868

View file

@ -0,0 +1 @@
16b9f8ab972e67eb21872ea2c40046249d543989

View file

@ -28,6 +28,7 @@ import io.netty.buffer.PooledByteBufAllocator;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.resolver.DefaultAddressResolverGroup;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.elasticsearch.common.component.AbstractLifecycleComponent;
@ -87,6 +88,7 @@ class AzureClientProvider extends AbstractLifecycleComponent {
private final EventLoopGroup eventLoopGroup;
private final ConnectionProvider connectionProvider;
private final ByteBufAllocator byteBufAllocator;
private final reactor.netty.http.client.HttpClient nettyHttpClient;
private final ClientLogger clientLogger = new ClientLogger(AzureClientProvider.class);
private volatile boolean closed = false;
@ -94,12 +96,14 @@ class AzureClientProvider extends AbstractLifecycleComponent {
String reactorExecutorName,
EventLoopGroup eventLoopGroup,
ConnectionProvider connectionProvider,
ByteBufAllocator byteBufAllocator) {
ByteBufAllocator byteBufAllocator,
reactor.netty.http.client.HttpClient nettyHttpClient) {
this.threadPool = threadPool;
this.reactorExecutorName = reactorExecutorName;
this.eventLoopGroup = eventLoopGroup;
this.connectionProvider = connectionProvider;
this.byteBufAllocator = byteBufAllocator;
this.nettyHttpClient = nettyHttpClient;
}
static int eventLoopThreadsFromSettings(Settings settings) {
@ -117,7 +121,7 @@ class AzureClientProvider extends AbstractLifecycleComponent {
final TimeValue openConnectionTimeout = OPEN_CONNECTION_TIMEOUT.get(settings);
final TimeValue maxIdleTime = MAX_IDLE_TIME.get(settings);
ConnectionProvider provider =
ConnectionProvider connectionProvider =
ConnectionProvider.builder("azure-sdk-connection-pool")
.maxConnections(MAX_OPEN_CONNECTIONS.get(settings))
.pendingAcquireMaxCount(PENDING_CONNECTION_QUEUE_SIZE) // This determines the max outstanding queued requests
@ -127,9 +131,22 @@ class AzureClientProvider extends AbstractLifecycleComponent {
ByteBufAllocator pooledByteBufAllocator = createByteBufAllocator();
reactor.netty.http.client.HttpClient nettyHttpClient = reactor.netty.http.client.HttpClient.create(connectionProvider)
.runOn(eventLoopGroup)
.option(ChannelOption.ALLOCATOR, pooledByteBufAllocator)
.resolver(DefaultAddressResolverGroup.INSTANCE)
.port(80)
.wiretap(false);
// Just to verify that this executor exists
threadPool.executor(REPOSITORY_THREAD_POOL_NAME);
return new AzureClientProvider(threadPool, REPOSITORY_THREAD_POOL_NAME, eventLoopGroup, provider, pooledByteBufAllocator);
return new AzureClientProvider(threadPool,
REPOSITORY_THREAD_POOL_NAME,
eventLoopGroup,
connectionProvider,
pooledByteBufAllocator,
nettyHttpClient
);
}
private static ByteBufAllocator createByteBufAllocator() {
@ -160,17 +177,6 @@ class AzureClientProvider extends AbstractLifecycleComponent {
throw new IllegalStateException("AzureClientProvider is already closed");
}
reactor.netty.http.client.HttpClient nettyHttpClient = reactor.netty.http.client.HttpClient.create(connectionProvider);
nettyHttpClient = nettyHttpClient
.port(80)
.wiretap(false);
nettyHttpClient = nettyHttpClient.tcpConfiguration(tcpClient -> {
tcpClient = tcpClient.runOn(eventLoopGroup);
tcpClient = tcpClient.option(ChannelOption.ALLOCATOR, byteBufAllocator);
return tcpClient;
});
final HttpClient httpClient = new NettyAsyncHttpClientBuilder(nettyHttpClient)
.disableBufferCopy(true)
.proxy(proxyOptions)

View file

@ -34,6 +34,8 @@ import org.elasticsearch.threadpool.ScalingExecutorBuilder;
import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.watcher.ResourceWatcherService;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@ -53,6 +55,17 @@ public class AzureRepositoryPlugin extends Plugin implements RepositoryPlugin, R
// Trigger static initialization with the plugin class loader
// so we have access to the proper xml parser
JacksonAdapter.createDefaultSerializerAdapter();
// Even though we don't use it, we need to force static init
// of the default resolver which reads /etc/hosts so it doesn't init later
AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
try {
Class.forName("io.netty.resolver.HostsFileEntriesResolver");
} catch (Exception e) {
throw new RuntimeException(e);
}
return null;
});
}
// protected for testing

View file

@ -14,4 +14,9 @@ grant {
// Used by jackson bean deserialization
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
// needed by netty dns resolver
permission java.io.FilePermission "/etc/hosts", "read";
permission java.io.FilePermission "/etc/resolv.conf", "read";
permission java.io.FilePermission "/etc/resolver", "read";
permission java.io.FilePermission "/etc/resolver/-", "read";
};

View file

@ -1 +0,0 @@
6ae6028aff033f194c9710ad87c224ccaadeed6c

View file

@ -0,0 +1 @@
0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

View file

@ -1 +0,0 @@
76e9152e93d4cf052f93a64596f633ba5b1c8ed9

View file

@ -0,0 +1 @@
5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

View file

@ -123,6 +123,8 @@ tasks.named("thirdPartyAudit").configure {
'io.netty.internal.tcnative.CertificateVerifier',
'io.netty.internal.tcnative.SessionTicketKey',
'io.netty.internal.tcnative.SniHostNameMatcher',
'io.netty.internal.tcnative.SSLSession',
'io.netty.internal.tcnative.SSLSessionCache',
'reactor.blockhound.BlockHound$Builder',
'reactor.blockhound.integration.BlockHoundIntegration'

View file

@ -1 +0,0 @@
8e819a81bca88d1e88137336f64531a53db0a4ad

View file

@ -0,0 +1 @@
40028ce5ac7c43f1c9a1439f74637cad04013e23

View file

@ -1 +0,0 @@
20218de83c906348283f548c255650fd06030424

View file

@ -0,0 +1 @@
d4d2fccea88c80e56d59ce1053c53df0f9f4f5db

Some files were not shown because too many files have changed in this diff Show more