The following changes were performed on the original source code: - removed slf4j, log4j, log4j2 logging - removed internal classes for GraalVM (SCM) - removed internal classes for Blockhound - removed jetbrains annotations - private copy of jctools in io.netty.jctools - removed SecurityManager code - add module info - removed lzma dependency (too old for module) - use JdkZLibDecoder/JdkZlibEncoder in websocketx - removed JettyAlpnSslEngine - removed JettyNpnSslEngine - removed NPN - use of javax.security.cert.X509Certificate replaced by java.security.cert.Certificate (where possible) - unmaintained(?) com.jcraft.zlib copied to io.netty.zlib - precompiled io.netty.util.collection classes added after maven compile to this project - refactored SSL handler to a separate subproject netty-handler-ssl - refactored compression codecs to separate subproject netty-handler-codec-compression - moved netty-tcnative/openssl-classes to netty-internal-tcnative - removed logging handler test - removed all native image stuff and native image handler test (therefore, no graalvm support) - removed all windows related code - removed all macos related code (including kqueue) - removed all aarch64 related code Challenges for Netty build on JDK 21 - unmaintained com.jcraft.jzlib, subproject netty-zlib maintains a copy of com.jcraft.zlib - JCTools uses sun.misc.Unsafe, not VarHandles, subproject netty-jctools maintains a copy of jctools - PlatformDependent uses sun.misc.Unsafe. Tests run successful by -add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED and --add-opens=jdk.unsupported/sun.misc=ALL-UNNAMED - finalize() calls in PoolThreadCache, PoolArena are deprecated - when using boringssl static, setting of SSLContent.useTasks to false makes tests hang. Tests using false setting were removed. Subproject organization Original netty subproject names are not related to package names. I reorganized the names to allow better assignment between subproject name, package name, artifact names, and java module. The following reorgnizations were performed: all -> [todo] bom -> [todo] buffer -> netty-buffer codec -> netty-handler-codec, netty-handler-codec-compression, netty-handler-codec-protobuf codec-dns -> [todo] codec-haproxy -> [todo] codec-http -> netty-handler-codec-http, netty-handler-codec-rtsp, netty-handler-codec-spdy codec-http2 -> codec-memcache -> codec-mqtt -> codec-redis -> codec-smtp -> codec-socks -> codec->stomp -> codec-xml -> common -> netty-util handler -> netty-handler handler-proxy handler-ssl-ocsp resolver -> netty-resolver resolver-dns -> resolver-dns-classes-macos -> [dropped] resolver-dns-native-macos -> [dropped] transport -> netty-channel transport-classes-epoll -> netty-channel-epoll transport-native-kqueue -> [dropped] transport-native-unix-common -> netty-channel-unix transport-native-unix-common-tests -> netty-channel-unix