Skip to content

Commit 967c809

Browse files
authored
Introduce new libs/netty4 module to share common implementation between netty-based plugins and modules (transport-netty4, transport-reactor-netty4) (#20447)
Signed-off-by: Andriy Redko <drreta@gmail.com>
1 parent a7c85f2 commit 967c809

33 files changed

Lines changed: 1210 additions & 307 deletions

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1616
- Add index-level-encryption support for snapshots and remote-store ([#20095](https://github.com/opensearch-project/OpenSearch/pull/20095))
1717
- Adding BackWardCompatibility test for remote publication enabled cluster ([#20221](https://github.com/opensearch-project/OpenSearch/pull/20221))
1818
- Support for hll field mapper to support cardinality rollups ([#20129](https://github.com/opensearch-project/OpenSearch/pull/20129))
19+
- Introduce new libs/netty4 module to share common implementation between netty-based plugins and modules (transport-netty4, transport-reactor-netty4) ([#20447](https://github.com/opensearch-project/OpenSearch/pull/20447))
1920

2021
### Changed
2122
- Handle custom metadata files in subdirectory-store ([#20157](https://github.com/opensearch-project/OpenSearch/pull/20157))

libs/netty4/build.gradle

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*
8+
* Modifications Copyright OpenSearch Contributors. See
9+
* GitHub history for details.
10+
*/
11+
12+
/*
13+
* Licensed to Elasticsearch under one or more contributor
14+
* license agreements. See the NOTICE file distributed with
15+
* this work for additional information regarding copyright
16+
* ownership. Elasticsearch licenses this file to you under
17+
* the Apache License, Version 2.0 (the "License"); you may
18+
* not use this file except in compliance with the License.
19+
* You may obtain a copy of the License at
20+
*
21+
* http://www.apache.org/licenses/LICENSE-2.0
22+
*
23+
* Unless required by applicable law or agreed to in writing,
24+
* software distributed under the License is distributed on an
25+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
26+
* KIND, either express or implied. See the License for the
27+
* specific language governing permissions and limitations
28+
* under the License.
29+
*/
30+
31+
apply plugin: 'opensearch.publish'
32+
33+
dependencies {
34+
api project(':libs:opensearch-common')
35+
api project(':libs:opensearch-core')
36+
37+
api libs.netty.handler
38+
api libs.netty.buffer
39+
api libs.netty.common
40+
api libs.netty.transport
41+
api libs.netty.codec.classes.quic
42+
43+
api libs.lucene.core;
44+
45+
testImplementation project(":test:framework")
46+
}
47+
48+
tasks.named("dependencyLicenses").configure {
49+
mapping from: /netty-.*/, to: 'netty'
50+
mapping from: /lucene-.*/, to: 'lucene'
51+
}
52+
53+
tasks.named('forbiddenApisMain').configure {
54+
// nio does not depend on core, so only jdk signatures should be checked
55+
// es-all is not checked as we connect and accept sockets
56+
replaceSignatureFiles 'jdk-signatures'
57+
}
58+
59+
thirdPartyAudit {
60+
ignoreMissingClasses(
61+
// from io.netty.logging.CommonsLoggerFactory (netty)
62+
'org.apache.commons.logging.Log',
63+
'org.apache.commons.logging.LogFactory',
64+
65+
// from Log4j (deliberate, Netty will fallback to Log4j 2)
66+
'org.apache.log4j.Level',
67+
'org.apache.log4j.Logger',
68+
69+
// from io.netty.handler.ssl.OpenSslEngine (netty)
70+
'io.netty.internal.tcnative.Buffer',
71+
'io.netty.internal.tcnative.CertificateCompressionAlgo',
72+
'io.netty.internal.tcnative.Library',
73+
'io.netty.internal.tcnative.SSL',
74+
'io.netty.internal.tcnative.SSLContext',
75+
'io.netty.internal.tcnative.SSLPrivateKeyMethod',
76+
77+
// from io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator (netty)
78+
'org.bouncycastle.cert.X509v3CertificateBuilder',
79+
'org.bouncycastle.cert.jcajce.JcaX509CertificateConverter',
80+
'org.bouncycastle.operator.jcajce.JcaContentSignerBuilder',
81+
'org.bouncycastle.openssl.PEMEncryptedKeyPair',
82+
'org.bouncycastle.openssl.PEMParser',
83+
'org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter',
84+
'org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder',
85+
'org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder',
86+
'org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo',
87+
88+
// from io.netty.util.internal.logging.InternalLoggerFactory (netty) - it's optional
89+
'org.slf4j.helpers.FormattingTuple',
90+
'org.slf4j.helpers.MessageFormatter',
91+
'org.slf4j.Logger',
92+
'org.slf4j.LoggerFactory',
93+
'org.slf4j.spi.LocationAwareLogger',
94+
95+
'io.netty.channel.unix.FileDescriptor',
96+
'io.netty.channel.unix.UnixChannel',
97+
'io.netty.handler.codec.ByteToMessageDecoder',
98+
'io.netty.handler.codec.ByteToMessageDecoder$Cumulator',
99+
'io.netty.handler.codec.DecoderException',
100+
'io.netty.handler.codec.base64.Base64',
101+
'io.netty.handler.codec.base64.Base64Dialect',
102+
'io.netty.resolver.AddressResolver',
103+
'io.netty.resolver.AddressResolverGroup',
104+
'io.netty.internal.tcnative.AsyncSSLPrivateKeyMethod',
105+
'io.netty.internal.tcnative.AsyncTask',
106+
'io.netty.internal.tcnative.CertificateCallback',
107+
'io.netty.internal.tcnative.CertificateVerifier',
108+
'io.netty.internal.tcnative.ResultCallback',
109+
'io.netty.internal.tcnative.SessionTicketKey',
110+
'io.netty.internal.tcnative.SniHostNameMatcher',
111+
'io.netty.internal.tcnative.SSL',
112+
'io.netty.internal.tcnative.SSLSession',
113+
'io.netty.internal.tcnative.SSLSessionCache',
114+
'io.netty.resolver.DefaultAddressResolverGroup',
115+
116+
'jdk.incubator.vector.ByteVector',
117+
'jdk.incubator.vector.DoubleVector',
118+
'jdk.incubator.vector.FloatVector',
119+
'jdk.incubator.vector.IntVector',
120+
'jdk.incubator.vector.LongVector',
121+
'jdk.incubator.vector.ShortVector',
122+
'jdk.incubator.vector.Vector',
123+
'jdk.incubator.vector.VectorMask',
124+
'jdk.incubator.vector.VectorOperators',
125+
'jdk.incubator.vector.VectorShape',
126+
'jdk.incubator.vector.VectorSpecies',
127+
128+
'org.conscrypt.AllocatedBuffer',
129+
'org.conscrypt.BufferAllocator',
130+
'org.conscrypt.Conscrypt',
131+
'org.conscrypt.HandshakeListener',
132+
133+
'reactor.blockhound.BlockHound$Builder',
134+
'reactor.blockhound.integration.BlockHoundIntegration',
135+
136+
'io.netty.pkitesting.CertificateBuilder',
137+
'io.netty.pkitesting.CertificateBuilder$Algorithm',
138+
'io.netty.pkitesting.X509Bundle',
139+
140+
'io.netty.channel.epoll.SegmentedDatagramPacket'
141+
)
142+
143+
ignoreViolations(
144+
'io.netty.buffer.AbstractAllocatorEvent',
145+
'io.netty.buffer.AbstractBufferEvent',
146+
'io.netty.buffer.AbstractChunkEvent',
147+
'io.netty.buffer.AdaptivePoolingAllocator$AdaptiveByteBuf',
148+
'io.netty.buffer.AdaptivePoolingAllocator$Chunk',
149+
'io.netty.buffer.AllocateBufferEvent',
150+
'io.netty.buffer.AllocateChunkEvent',
151+
'io.netty.buffer.FreeBufferEvent',
152+
'io.netty.buffer.FreeChunkEvent',
153+
'io.netty.buffer.PooledByteBufAllocator',
154+
'io.netty.buffer.ReallocateBufferEvent',
155+
'io.netty.buffer.ReturnChunkEvent',
156+
'io.netty.util.internal.PlatformDependent0',
157+
'io.netty.util.internal.PlatformDependent0$1',
158+
'io.netty.util.internal.PlatformDependent0$2',
159+
'io.netty.util.internal.PlatformDependent0$3',
160+
'io.netty.util.internal.PlatformDependent0$5',
161+
'io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueConsumerNodeRef',
162+
'io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueProducerNodeRef',
163+
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields',
164+
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields',
165+
'io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields',
166+
'io.netty.util.internal.shaded.org.jctools.queues.LinkedQueueNode',
167+
'io.netty.util.internal.shaded.org.jctools.queues.MpmcArrayQueueConsumerIndexField',
168+
'io.netty.util.internal.shaded.org.jctools.queues.MpmcArrayQueueProducerIndexField',
169+
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField',
170+
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField',
171+
'io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField',
172+
'io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueConsumerIndexField',
173+
'io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField',
174+
'io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerLimitField',
175+
'io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess',
176+
'io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess',
177+
'io.netty.util.internal.shaded.org.jctools.util.UnsafeLongArrayAccess'
178+
)
179+
}

0 commit comments

Comments
 (0)