From 52fd65a6edd4a919663912719f186b7a2a993e35 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Mon, 17 Jul 2023 12:11:48 -0700 Subject: [PATCH 1/2] KAFKA-10579: Upgrade reflections from 0.9.12 to 0.10.2 Signed-off-by: Greg Harris --- .../runtime/isolation/ReflectionScanner.java | 31 +++---------------- gradle/dependencies.gradle | 2 +- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/ReflectionScanner.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/ReflectionScanner.java index 9289162b6386..ace4015136d9 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/ReflectionScanner.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/ReflectionScanner.java @@ -25,15 +25,13 @@ import org.apache.kafka.connect.storage.HeaderConverter; import org.apache.kafka.connect.transforms.Transformation; import org.apache.kafka.connect.transforms.predicates.Predicate; -import org.reflections.Configuration; import org.reflections.Reflections; import org.reflections.ReflectionsException; -import org.reflections.scanners.SubTypesScanner; +import org.reflections.scanners.Scanners; import org.reflections.util.ConfigurationBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.net.URL; import java.util.Collections; import java.util.ServiceLoader; import java.util.Set; @@ -79,9 +77,9 @@ protected PluginScanResult scanPlugins(PluginSource source) { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setClassLoaders(new ClassLoader[]{loader}); builder.addUrls(source.urls()); - builder.setScanners(new SubTypesScanner()); - builder.useParallelExecutor(); - Reflections reflections = new InternalReflections(builder); + builder.setScanners(Scanners.SubTypes); + builder.setParallel(true); + Reflections reflections = new Reflections(builder); return new PluginScanResult( getPluginDesc(reflections, SinkConnector.class, loader), @@ -139,25 +137,4 @@ private SortedSet> getPluginDesc( } return result; } - - private static class InternalReflections extends Reflections { - - public InternalReflections(Configuration configuration) { - super(configuration); - } - - // When Reflections is used for parallel scans, it has a bug where it propagates ReflectionsException - // as RuntimeException. Override the scan behavior to emulate the singled-threaded logic. - @Override - protected void scan(URL url) { - try { - super.scan(url); - } catch (ReflectionsException e) { - Logger log = Reflections.log; - if (log != null && log.isWarnEnabled()) { - log.warn("could not create Vfs.Dir from url. ignoring the exception and continuing", e); - } - } - } - } } diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 2116ca5edb6f..d9c4f12779b9 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -131,7 +131,7 @@ versions += [ netty: "4.1.94.Final", pcollections: "4.0.1", powermock: "2.0.9", - reflections: "0.9.12", + reflections: "0.10.2", reload4j: "1.2.25", rocksDB: "7.1.2", scalaCollectionCompat: "2.10.0", From 42a3090426b04cf60dae0b49b5dae73eb663ca18 Mon Sep 17 00:00:00 2001 From: Greg Harris Date: Mon, 17 Jul 2023 14:34:02 -0700 Subject: [PATCH 2/2] fixup: update LICENSE-binary with reflections version and dual license Signed-off-by: Greg Harris --- LICENSE-binary | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/LICENSE-binary b/LICENSE-binary index 1b6ea58afe09..0ad69cefcef0 100644 --- a/LICENSE-binary +++ b/LICENSE-binary @@ -251,6 +251,7 @@ netty-transport-classes-epoll-4.1.94.Final netty-transport-native-epoll-4.1.94.Final netty-transport-native-unix-common-4.1.94.Final plexus-utils-3.3.0 +reflections-0.10.2 reload4j-1.2.25 rocksdbjni-7.1.2 scala-collection-compat_2.13-2.10.0 @@ -329,4 +330,4 @@ paranamer-2.8, see: licenses/paranamer-BSD-3-clause Do What The F*ck You Want To Public License see: licenses/DWTFYWTPL -reflections-0.9.12 +reflections-0.10.2