From e4d00571feb88e27151b3cc2d4d62cbf7cb57577 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Mon, 7 Sep 2020 12:17:31 +0100 Subject: [PATCH 1/7] Remove optional dep Blockhound --- common/pom.xml | 5 - .../java/io/netty/util/internal/Hidden.java | 200 ------ ...ockhound.integration.BlockHoundIntegration | 14 - pom.xml | 8 - .../netty/util/internal/localhost_server.key | 28 - .../netty/util/internal/localhost_server.pem | 17 - .../io/netty/util/internal/mutual_auth_ca.pem | 19 - 9 files changed, 1032 deletions(-) delete mode 100644 common/src/main/java/io/netty/util/internal/Hidden.java delete mode 100644 common/src/main/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration delete mode 100644 transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.key delete mode 100644 transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.pem delete mode 100644 transport-blockhound-tests/src/test/resources/io/netty/util/internal/mutual_auth_ca.pem diff --git a/common/pom.xml b/common/pom.xml index d7a5e0cc5f..1ebc9edf35 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -82,11 +82,6 @@ log4j-core test - - io.projectreactor.tools - blockhound - true - org.mockito mockito-core diff --git a/common/src/main/java/io/netty/util/internal/Hidden.java b/common/src/main/java/io/netty/util/internal/Hidden.java deleted file mode 100644 index e227c90c7e..0000000000 --- a/common/src/main/java/io/netty/util/internal/Hidden.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright 2019 The Netty Project - * - * The Netty Project 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: - * - * https://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. - */ - -package io.netty.util.internal; - -import io.netty.util.concurrent.FastThreadLocalThread; -import reactor.blockhound.BlockHound; -import reactor.blockhound.integration.BlockHoundIntegration; - -import java.util.function.Function; -import java.util.function.Predicate; - -/** - * Contains classes that must have public visibility but are not public API. - */ -class Hidden { - - /** - * This class integrates Netty with BlockHound. - *

- * It is public but only because of the ServiceLoader's limitations - * and SHOULD NOT be considered a public API. - */ - @UnstableApi - @SuppressJava6Requirement(reason = "BlockHound is Java 8+, but this class is only loaded by it's SPI") - public static final class NettyBlockHoundIntegration implements BlockHoundIntegration { - - @Override - public void applyTo(BlockHound.Builder builder) { - builder.allowBlockingCallsInside( - "io.netty.channel.nio.NioEventLoop", - "handleLoopException" - ); - - builder.allowBlockingCallsInside( - "io.netty.channel.kqueue.KQueueEventLoop", - "handleLoopException" - ); - - builder.allowBlockingCallsInside( - "io.netty.channel.epoll.EpollEventLoop", - "handleLoopException" - ); - - builder.allowBlockingCallsInside( - "io.netty.util.HashedWheelTimer", - "start" - ); - - builder.allowBlockingCallsInside( - "io.netty.util.HashedWheelTimer", - "stop" - ); - - builder.allowBlockingCallsInside( - "io.netty.util.HashedWheelTimer$Worker", - "waitForNextTick" - ); - - builder.allowBlockingCallsInside( - "io.netty.util.concurrent.SingleThreadEventExecutor", - "confirmShutdown" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.PoolArena", - "lock" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.PoolSubpage", - "lock" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.PoolChunk", - "allocateRun" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.PoolChunk", - "free" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.AdaptivePoolingAllocator$1", - "initialValue" - ); - - builder.allowBlockingCallsInside( - "io.netty.buffer.AdaptivePoolingAllocator$1", - "onRemoval" - ); - - builder.allowBlockingCallsInside( - "io.netty.handler.ssl.SslHandler", - "handshake" - ); - - builder.allowBlockingCallsInside( - "io.netty.handler.ssl.SslHandler", - "runAllDelegatedTasks" - ); - builder.allowBlockingCallsInside( - "io.netty.handler.ssl.SslHandler", - "runDelegatedTasks" - ); - builder.allowBlockingCallsInside( - "io.netty.util.concurrent.GlobalEventExecutor", - "takeTask"); - - builder.allowBlockingCallsInside( - "io.netty.util.concurrent.GlobalEventExecutor", - "addTask"); - - builder.allowBlockingCallsInside( - "io.netty.util.concurrent.SingleThreadEventExecutor", - "takeTask"); - - builder.allowBlockingCallsInside( - "io.netty.util.concurrent.SingleThreadEventExecutor", - "addTask"); - - builder.allowBlockingCallsInside( - "io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback", - "verify"); - - builder.allowBlockingCallsInside( - "io.netty.handler.ssl.JdkSslContext$Defaults", - "init"); - - // Let's whitelist SSLEngineImpl.unwrap(...) for now as it may fail otherwise for TLS 1.3. - // See https://mail.openjdk.java.net/pipermail/security-dev/2020-August/022271.html - builder.allowBlockingCallsInside( - "sun.security.ssl.SSLEngineImpl", - "unwrap"); - - builder.allowBlockingCallsInside( - "sun.security.ssl.SSLEngineImpl", - "wrap"); - - builder.allowBlockingCallsInside( - "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", - "parse"); - - builder.allowBlockingCallsInside( - "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", - "parseEtcResolverSearchDomains"); - - builder.allowBlockingCallsInside( - "io.netty.resolver.dns.UnixResolverDnsServerAddressStreamProvider", - "parseEtcResolverOptions"); - - builder.allowBlockingCallsInside( - "io.netty.resolver.HostsFileEntriesProvider$ParserImpl", - "parse"); - - builder.allowBlockingCallsInside( - "io.netty.util.NetUtil$SoMaxConnAction", - "run"); - - builder.allowBlockingCallsInside("io.netty.util.internal.ReferenceCountUpdater", - "retryRelease0"); - - builder.allowBlockingCallsInside("io.netty.util.internal.PlatformDependent", "createTempFile"); - builder.nonBlockingThreadPredicate(new Function, Predicate>() { - @Override - public Predicate apply(final Predicate p) { - return new Predicate() { - @Override - @SuppressJava6Requirement(reason = "Predicate#test") - public boolean test(Thread thread) { - return p.test(thread) || - thread instanceof FastThreadLocalThread && - !((FastThreadLocalThread) thread).permitBlockingCalls(); - } - }; - } - }); - } - - @Override - public int compareTo(BlockHoundIntegration o) { - return 0; - } - } -} diff --git a/common/src/main/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration b/common/src/main/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration deleted file mode 100644 index e33bea796c..0000000000 --- a/common/src/main/resources/META-INF/services/reactor.blockhound.integration.BlockHoundIntegration +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2019 The Netty Project -# -# The Netty Project 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: -# -# https://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. -io.netty.util.internal.Hidden$NettyBlockHoundIntegration \ No newline at end of file diff --git a/pom.xml b/pom.xml index 855fedf5e2..76f3dc1728 100644 --- a/pom.xml +++ b/pom.xml @@ -816,7 +816,6 @@ testsuite-native-image testsuite-native-image-client testsuite-native-image-client-runtime-init - transport-blockhound-tests microbench bom @@ -1244,13 +1243,6 @@ ${log4j2.version} test - - - - io.projectreactor.tools - blockhound - 1.0.13.RELEASE - diff --git a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.key b/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.key deleted file mode 100644 index 9aa6611400..0000000000 --- a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDYrLtMlZzoe2BP -iCURF3So5XNLfsOLcAVERXXjnxqX6Mex55WdJiy6uWTFKbRHWJdbWELdZxVl5+GX -pMv3OdkKZt+19ZdSfByv6bB5RNdZOEGnKOHSY2XdnzYnF5JBaWEx0fvtvIPZOUlW -DWgsQzJk1UQhu+XnBc7P1hHYNvwsVNOR+HD9LGebDy+UcfiL34XwAyBdHUsbcIr8 -hltABcj6vNbqOLndpU86DxU9z9b1PDmkFVfisElhpDEhpxmTCwI22Us1GC8D81LM -ZzMlbWSzTfNPEuqNzJYGiFt/XPwPkPPyVvti0XWPBQpwzJFFUX5xKsOGERolELRT -0yNQYznFAgMBAAECggEAOFR/xSNITbB1k3ejm1PrwlUUqlXkZIXU+LDOO0UL1t5v -vDKm1Not2sWECzYSZlID132UtJauG3YzUgdH95gUcv3XvyiAFLOriZhJht181vcn -KlwYiWfJ/dn8bCFWpqbM2/TpeB8AcCLSjAqkQI2ftlMziUmeNXdvEt1mej2hRay1 -ULfoxlC0mftNRQptD5gBFzrc47O4mVpVEQt4yS3Qyzp2/9ds9UkhaCIFpXPVCalZ -ds7R+bDDP+wiYTkUcd8fvelaMkD3Wcy8DedGRShhILZvBYTDdWcpJ7+e5EkNlEq4 -+Ys4Y/u6aFDJD53g3zCaJhatmdAZcct2MMmWH1vewQKBgQD3Y2S245cad1D9AqYD -ChZGp95EfRo3EzXk4VkE50bjZXjHq9fD8T0CWEZGWQZrXJCR+vBpEURy0mrPD8se -QQ0Q5+I27RadtfPnMd6ry9nDGMPxyd/10vzU6LazzLNE+uf9ljF1RHZu1iDAvInR -r1cQGbn/wKBF6BurPPIXABZEuQKBgQDgN6JHbIfDzHKhwEoUTvRrYJsTXqplD+h0 -Whg+kSQyhtKdlpINFOoEj8FUNJvTjG8les1aoajyWIqikVdvHto/mrxrSIeRkEmt -X+KG+5ld2n466tzv1DmVcIGXSrBrH3lA0i6R8Ly26FLSqw0Z12fx5GUUa1qaVRqo -rwcrIZovbQKBgHa2mojs9AC+Sv3uvG1u9LuZKJ7jDaZqMI2R2d7xgOH0Op5Ohy6+ -39D1PVvasqroc3Op4J36rEcRVDHi2Uy+WJ/JNpO2+AhcXRuPodP88ZWel8C6aB+V -zL/6oFntnAU5BgR5g2hLny2W0YbLsrMNmhDe15O0AvUo6cYla+K/pu/5AoGACr/g -EdiMMcDthf+4DX0zjqpVBPq25J18oYdoPierOpjoJBIB8oqcJZfWxvi2t8+1zHA0 -xDGX7fZ8vwqEzJkIEaCTg/k4NqxaO+uq6pnJYoyFHMIB0aW1FQsNy3kTOC+MGqV5 -Ahoukf5VajA1MpX3L8upZO84qsmFu6yYhWLZB4kCgYBlgSD5G4q6rX4ELa3XG61h -fDtu75IYEsjWm4vgJzHjeYT2xPIm9OFFYXjPghto0f1oH37ODD3DoXmsnmddgpmn -tH7aRWWHsSpB5zVgftV4urNCIsm87LWw8mvUGgCwYV1CtCX8warKokfeoA2ltz4u -oeuUzo98hN+aKRU5RO6Bmg== ------END PRIVATE KEY----- diff --git a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.pem b/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.pem deleted file mode 100644 index 70759b29e5..0000000000 --- a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/localhost_server.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICozCCAYsCAnS/MA0GCSqGSIb3DQEBDQUAMBgxFjAUBgNVBAMTDU5ldHR5VGVz -dFJvb3QwIBcNMTcwMjE3MDMzMzQ0WhgPMjExNzAxMjQwMzMzNDRaMBQxEjAQBgNV -BAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANis -u0yVnOh7YE+IJREXdKjlc0t+w4twBURFdeOfGpfox7HnlZ0mLLq5ZMUptEdYl1tY -Qt1nFWXn4Zeky/c52Qpm37X1l1J8HK/psHlE11k4Qaco4dJjZd2fNicXkkFpYTHR -++28g9k5SVYNaCxDMmTVRCG75ecFzs/WEdg2/CxU05H4cP0sZ5sPL5Rx+IvfhfAD -IF0dSxtwivyGW0AFyPq81uo4ud2lTzoPFT3P1vU8OaQVV+KwSWGkMSGnGZMLAjbZ -SzUYLwPzUsxnMyVtZLNN808S6o3MlgaIW39c/A+Q8/JW+2LRdY8FCnDMkUVRfnEq -w4YRGiUQtFPTI1BjOcUCAwEAATANBgkqhkiG9w0BAQ0FAAOCAQEAQNXnwE2MJFy5 -ti07xyi8h/mY0Kl1dwZUqx4F9D9eoxLCq2/p3h/Z18AlOmjdW06pvC2sGtQtyEqL -YjuQFbMjXRo9c+6+d+xwdDKTu7+XOTHvznJ8xJpKnFOlohGq/n3efBIJSsaeasTU -slFzmdKYABDZzbsQ4X6YCIOF4XVdEQqmXpS+uEbn5C2sVtG+LXI8srmkVGpCcRew -SuTGanwxLparhBBeN1ARjKzNxXUWuK2UKZ9p8c7n7TXGhd12ZNTcLhk4rCnOFq1J -ySFvP5YL2q29fpEt+Tq0zm3V7An2qtaNDp26cEdevtKPjRyOLkCJx8OlZxc9DZvJ -HjalFDoRUw== ------END CERTIFICATE----- diff --git a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/mutual_auth_ca.pem b/transport-blockhound-tests/src/test/resources/io/netty/util/internal/mutual_auth_ca.pem deleted file mode 100644 index 9c9241bc65..0000000000 --- a/transport-blockhound-tests/src/test/resources/io/netty/util/internal/mutual_auth_ca.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDLDCCAhSgAwIBAgIJAO1m5pioZhLLMA0GCSqGSIb3DQEBDQUAMBgxFjAUBgNV -BAMTDU5ldHR5VGVzdFJvb3QwHhcNMTcwMjE3MDMzMzQ0WhcNMTcwMzE5MDMzMzQ0 -WjAYMRYwFAYDVQQDEw1OZXR0eVRlc3RSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAnC7Y/p/TSWI1KxBKETfFKaRWCPEkoYn5G973WbCF0VDT90PX -xK6yHvhqNdDQZPmddgfDAQfjekHeeIFkjCKlvQu0js0G4Bubz4NffNumd/Mgsix8 -SWJ13lPk+Ly4PDv0bK1zB6BxP1qQm1qxVwsPy9zNP8ylJrM0Div4TXHmnWOfc0JD -4/XPpfeUHH1tt/GMtsS2Gx6EpTVPD2w7LDKUza1/rQ7d9sqmFpgsNcI9Db/sAtFP -lK2iJku5WIXQkmHimn4bqZ9wkiXJ85pm5ggGQqGMPSbe+2Lh24AvZMIBiwPbkjEU -EDFXEJfKOC3Dl71JgWOthtHZ9vcCRDQ3Sky6AQIDAQABo3kwdzAdBgNVHQ4EFgQU -qT+cH8qrebiVPpKCBQDB6At2iOAwSAYDVR0jBEEwP4AUqT+cH8qrebiVPpKCBQDB -6At2iOChHKQaMBgxFjAUBgNVBAMTDU5ldHR5VGVzdFJvb3SCCQDtZuaYqGYSyzAM -BgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBDQUAA4IBAQCEemXTIew4pR2cHEFpVsW2 -bLHXLAnC23wBMT46D3tqyxscukMYjFuWosCdEsgRW8d50BXy9o4dHWeg94+aDo3A -DX4OTRN/veQGIG7dgM6poDzFuVJlSN0ubKKg6gpDD60IhopZpMviFAOsmzr7OXwS -9hjbTqUWujMIEHQ95sPlQFdSaavYSFfqhSltWmVCPSbArxrw0lZ2QcnUqGN47EFp -whc5wFB+rSw/ojU1jBLMvgvgzf/8V8zr1IBTDSiHNlknGqGpOOaookzUh95YRiAT -hH82y9bBeflqroOeztqMpONpWoZjlz0sWbJNvXztXINL7LaNmVYOcoUrCcxPS54T ------END CERTIFICATE----- -- 2.48.1