gharris1727 commented on code in PR #13165: URL: https://github.com/apache/kafka/pull/13165#discussion_r1161929533
########## connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/DelegatingClassLoader.java: ########## @@ -360,17 +360,22 @@ private PluginScanResult scanPluginPath( builder.useParallelExecutor(); Reflections reflections = new InternalReflections(builder); - return new PluginScanResult( - getPluginDesc(reflections, SinkConnector.class, loader), - getPluginDesc(reflections, SourceConnector.class, loader), - getPluginDesc(reflections, Converter.class, loader), - getPluginDesc(reflections, HeaderConverter.class, loader), - getTransformationPluginDesc(loader, reflections), - getPredicatePluginDesc(loader, reflections), - getServiceLoaderPluginDesc(ConfigProvider.class, loader), - getServiceLoaderPluginDesc(ConnectRestExtension.class, loader), - getServiceLoaderPluginDesc(ConnectorClientConfigOverridePolicy.class, loader) - ); + ClassLoader savedLoader = Plugins.compareAndSwapLoaders(loader); Review Comment: > I don't see a strong reason why it's not [static]. It's non-static to make mocking easier. Rather than having to mock a static method of a class, you mock the Plugins instance, and stub out the loader swapping functionality. It appears that there are only a handful of places where compareAndSwapLoaders (and compareAndSwapWithDelegatingLoader) is used: * In DelegatingClassLoader, during initialization * In AbstractConnectCli and MirrorMaker to swap to the delegating classloader * In EmbeddedConnectCluster to swap back to the saved loader (KAFKA-12229) I think that the EmbeddedConnectCluster call-site is just a result of the open-ended delegating swaps. I'll refactor all of these call-sites to use LoaderSwap, and hide the more dangerous compareAndSwapLoaders now that only LoaderSwap is using it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org