2016-07-22 22:26:35 -04:00
|
|
|
/*
|
|
|
|
* Licensed to Elasticsearch under one or more contributor
|
|
|
|
* license agreements. See the NOTICE file distributed with
|
|
|
|
* this work for additional information regarding copyright
|
|
|
|
* ownership. Elasticsearch licenses this file to you under
|
|
|
|
* the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
* not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing,
|
|
|
|
* software distributed under the License is distributed on an
|
|
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
|
* KIND, either express or implied. See the License for the
|
|
|
|
* specific language governing permissions and limitations
|
|
|
|
* under the License.
|
|
|
|
*/
|
|
|
|
|
2019-11-01 14:33:11 -04:00
|
|
|
|
|
|
|
import org.elasticsearch.gradle.info.BuildParams
|
2019-08-30 14:37:18 -04:00
|
|
|
import org.elasticsearch.gradle.test.RestIntegTestTask
|
|
|
|
|
2016-07-22 22:26:35 -04:00
|
|
|
/*
|
|
|
|
TODOs:
|
|
|
|
* fix permissions such that only netty4 can open sockets etc?
|
|
|
|
* fix the hack in the build framework that copies transport-netty4 into the integ test cluster
|
|
|
|
* maybe figure out a way to run all tests from core with netty4/network?
|
|
|
|
*/
|
|
|
|
esplugin {
|
2019-11-14 06:01:23 -05:00
|
|
|
description 'Netty 4 based transport implementation'
|
|
|
|
classname 'org.elasticsearch.transport.Netty4Plugin'
|
|
|
|
hasClientJar = true
|
2016-07-22 22:26:35 -04:00
|
|
|
}
|
|
|
|
|
2019-04-05 02:01:56 -04:00
|
|
|
compileTestJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked"
|
2016-07-22 22:26:35 -04:00
|
|
|
|
|
|
|
dependencies {
|
2019-11-14 06:01:23 -05:00
|
|
|
// network stack
|
|
|
|
compile "io.netty:netty-buffer:${versions.netty}"
|
|
|
|
compile "io.netty:netty-codec:${versions.netty}"
|
|
|
|
compile "io.netty:netty-codec-http:${versions.netty}"
|
|
|
|
compile "io.netty:netty-common:${versions.netty}"
|
|
|
|
compile "io.netty:netty-handler:${versions.netty}"
|
|
|
|
compile "io.netty:netty-resolver:${versions.netty}"
|
|
|
|
compile "io.netty:netty-transport:${versions.netty}"
|
2016-07-22 22:26:35 -04:00
|
|
|
}
|
|
|
|
|
2017-02-24 17:40:07 -05:00
|
|
|
dependencyLicenses {
|
|
|
|
mapping from: /netty-.*/, to: 'netty'
|
|
|
|
}
|
|
|
|
|
2019-04-09 14:52:50 -04:00
|
|
|
test {
|
2019-11-14 06:01:23 -05:00
|
|
|
/*
|
|
|
|
* We have to disable setting the number of available processors as tests in the same JVM randomize processors and will step on each
|
|
|
|
* other if we allow them to set the number of available processors as it's set-once in Netty.
|
|
|
|
*/
|
|
|
|
systemProperty 'es.set.netty.runtime.available.processors', 'false'
|
2017-05-01 19:27:28 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
integTestRunner {
|
2019-11-14 06:01:23 -05:00
|
|
|
/*
|
|
|
|
* We have to disable setting the number of available processors as tests in the same JVM randomize processors and will step on each
|
|
|
|
* other if we allow them to set the number of available processors as it's set-once in Netty.
|
|
|
|
*/
|
|
|
|
systemProperty 'es.set.netty.runtime.available.processors', 'false'
|
2017-05-01 19:27:28 -04:00
|
|
|
}
|
|
|
|
|
2019-08-30 14:37:18 -04:00
|
|
|
TaskProvider<Test> pooledTest = tasks.register("pooledTest", Test) {
|
|
|
|
include '**/*Tests.class'
|
|
|
|
systemProperty 'es.set.netty.runtime.available.processors', 'false'
|
2019-10-21 21:15:50 -04:00
|
|
|
systemProperty 'es.use_unpooled_allocator', 'false'
|
2019-08-30 14:37:18 -04:00
|
|
|
}
|
2019-10-24 10:04:57 -04:00
|
|
|
|
2019-08-30 14:37:18 -04:00
|
|
|
RestIntegTestTask pooledIntegTest = tasks.create("pooledIntegTest", RestIntegTestTask) {
|
|
|
|
runner {
|
|
|
|
systemProperty 'es.set.netty.runtime.available.processors', 'false'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
testClusters.pooledIntegTest {
|
2019-10-21 21:15:50 -04:00
|
|
|
systemProperty 'es.use_unpooled_allocator', 'false'
|
2019-08-30 14:37:18 -04:00
|
|
|
}
|
|
|
|
check.dependsOn(pooledTest, pooledIntegTest)
|
|
|
|
|
2019-01-07 10:24:19 -05:00
|
|
|
thirdPartyAudit {
|
2019-11-14 06:01:23 -05:00
|
|
|
ignoreMissingClasses(
|
|
|
|
// classes are missing
|
|
|
|
|
|
|
|
// from io.netty.handler.codec.protobuf.ProtobufDecoder (netty)
|
|
|
|
'com.google.protobuf.ExtensionRegistry',
|
|
|
|
'com.google.protobuf.MessageLite$Builder',
|
|
|
|
'com.google.protobuf.MessageLite',
|
|
|
|
'com.google.protobuf.Parser',
|
|
|
|
|
|
|
|
// from io.netty.logging.CommonsLoggerFactory (netty)
|
|
|
|
'org.apache.commons.logging.Log',
|
|
|
|
'org.apache.commons.logging.LogFactory',
|
|
|
|
|
|
|
|
// from Log4j (deliberate, Netty will fallback to Log4j 2)
|
|
|
|
'org.apache.log4j.Level',
|
|
|
|
'org.apache.log4j.Logger',
|
|
|
|
|
|
|
|
// from io.netty.handler.ssl.OpenSslEngine (netty)
|
|
|
|
'io.netty.internal.tcnative.Buffer',
|
|
|
|
'io.netty.internal.tcnative.Library',
|
|
|
|
'io.netty.internal.tcnative.SSL',
|
|
|
|
'io.netty.internal.tcnative.SSLContext',
|
|
|
|
'io.netty.internal.tcnative.SSLPrivateKeyMethod',
|
|
|
|
|
|
|
|
// from io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator (netty)
|
|
|
|
'org.bouncycastle.cert.X509v3CertificateBuilder',
|
|
|
|
'org.bouncycastle.cert.jcajce.JcaX509CertificateConverter',
|
|
|
|
'org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder',
|
|
|
|
'org.bouncycastle.jce.provider.BouncyCastleProvider',
|
|
|
|
'org.bouncycastle.operator.jcajce.JcaContentSignerBuilder',
|
|
|
|
|
|
|
|
// from io.netty.handler.ssl.JettyNpnSslEngine (netty)
|
|
|
|
'org.eclipse.jetty.npn.NextProtoNego$ClientProvider',
|
|
|
|
'org.eclipse.jetty.npn.NextProtoNego$ServerProvider',
|
|
|
|
'org.eclipse.jetty.npn.NextProtoNego',
|
|
|
|
|
|
|
|
// from io.netty.handler.codec.marshalling.ChannelBufferByteInput (netty)
|
|
|
|
'org.jboss.marshalling.ByteInput',
|
|
|
|
|
|
|
|
// from io.netty.handler.codec.marshalling.ChannelBufferByteOutput (netty)
|
|
|
|
'org.jboss.marshalling.ByteOutput',
|
|
|
|
|
|
|
|
// from io.netty.handler.codec.marshalling.CompatibleMarshallingEncoder (netty)
|
|
|
|
'org.jboss.marshalling.Marshaller',
|
|
|
|
|
|
|
|
// from io.netty.handler.codec.marshalling.ContextBoundUnmarshallerProvider (netty)
|
|
|
|
'org.jboss.marshalling.MarshallerFactory',
|
|
|
|
'org.jboss.marshalling.MarshallingConfiguration',
|
|
|
|
'org.jboss.marshalling.Unmarshaller',
|
|
|
|
|
|
|
|
// from io.netty.util.internal.logging.InternalLoggerFactory (netty) - it's optional
|
|
|
|
'org.slf4j.helpers.FormattingTuple',
|
|
|
|
'org.slf4j.helpers.MessageFormatter',
|
|
|
|
'org.slf4j.Logger',
|
|
|
|
'org.slf4j.LoggerFactory',
|
|
|
|
'org.slf4j.spi.LocationAwareLogger',
|
|
|
|
|
|
|
|
'com.google.protobuf.ExtensionRegistryLite',
|
|
|
|
'com.google.protobuf.MessageLiteOrBuilder',
|
|
|
|
'com.google.protobuf.nano.CodedOutputByteBufferNano',
|
|
|
|
'com.google.protobuf.nano.MessageNano',
|
|
|
|
'com.jcraft.jzlib.Deflater',
|
|
|
|
'com.jcraft.jzlib.Inflater',
|
|
|
|
'com.jcraft.jzlib.JZlib$WrapperType',
|
|
|
|
'com.jcraft.jzlib.JZlib',
|
|
|
|
'com.ning.compress.BufferRecycler',
|
|
|
|
'com.ning.compress.lzf.ChunkDecoder',
|
|
|
|
'com.ning.compress.lzf.ChunkEncoder',
|
|
|
|
'com.ning.compress.lzf.LZFEncoder',
|
|
|
|
'com.ning.compress.lzf.util.ChunkDecoderFactory',
|
|
|
|
'com.ning.compress.lzf.util.ChunkEncoderFactory',
|
|
|
|
'lzma.sdk.lzma.Encoder',
|
|
|
|
'net.jpountz.lz4.LZ4Compressor',
|
|
|
|
'net.jpountz.lz4.LZ4Factory',
|
|
|
|
'net.jpountz.lz4.LZ4FastDecompressor',
|
|
|
|
'net.jpountz.xxhash.XXHash32',
|
|
|
|
'net.jpountz.xxhash.XXHashFactory',
|
|
|
|
'io.netty.internal.tcnative.CertificateCallback',
|
|
|
|
'io.netty.internal.tcnative.CertificateVerifier',
|
|
|
|
'io.netty.internal.tcnative.SessionTicketKey',
|
|
|
|
'io.netty.internal.tcnative.SniHostNameMatcher',
|
|
|
|
'io.netty.internal.tcnative.SSL',
|
|
|
|
'org.eclipse.jetty.alpn.ALPN$ClientProvider',
|
|
|
|
'org.eclipse.jetty.alpn.ALPN$ServerProvider',
|
|
|
|
'org.eclipse.jetty.alpn.ALPN',
|
|
|
|
|
|
|
|
|
|
|
|
'org.conscrypt.AllocatedBuffer',
|
|
|
|
'org.conscrypt.BufferAllocator',
|
|
|
|
'org.conscrypt.Conscrypt',
|
|
|
|
'org.conscrypt.HandshakeListener'
|
|
|
|
)
|
|
|
|
|
|
|
|
ignoreViolations(
|
|
|
|
'io.netty.util.internal.PlatformDependent0',
|
|
|
|
'io.netty.util.internal.PlatformDependent0$1',
|
|
|
|
'io.netty.util.internal.PlatformDependent0$2',
|
|
|
|
'io.netty.util.internal.PlatformDependent0$3',
|
|
|
|
'io.netty.util.internal.PlatformDependent0$5',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueConsumerNodeRef',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueProducerNodeRef',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.LinkedQueueNode',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess',
|
|
|
|
'io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess',
|
|
|
|
'io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator'
|
|
|
|
)
|
2019-01-07 10:24:19 -05:00
|
|
|
}
|
2018-08-29 10:43:40 -04:00
|
|
|
|
2019-05-30 13:29:42 -04:00
|
|
|
rootProject.globalInfo.ready {
|
2019-11-14 06:01:23 -05:00
|
|
|
if (BuildParams.inFipsJvm == false) {
|
|
|
|
// BouncyCastleFIPS provides this class, so the exclusion is invalid when running CI in
|
|
|
|
// a FIPS JVM with BouncyCastleFIPS Provider
|
|
|
|
thirdPartyAudit.ignoreMissingClasses(
|
|
|
|
'org.bouncycastle.asn1.x500.X500Name'
|
|
|
|
)
|
|
|
|
}
|
2018-08-29 10:43:40 -04:00
|
|
|
}
|