This is an automated email from the ASF dual-hosted git repository.

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 81e050887bc Remove usage of AgentPluginClassLoader in 
AdvisorConfigurationLoader (#38013)
81e050887bc is described below

commit 81e050887bc584dde37dd5d4a3767948d7097cbc
Author: Raigor <[email protected]>
AuthorDate: Thu Feb 12 15:48:32 2026 +0800

    Remove usage of AgentPluginClassLoader in AdvisorConfigurationLoader 
(#38013)
    
    * Add auto close for AgentPluginClassLoader
    
    * Add auto close for AgentPluginClassLoader
    
    * Do not use AgentPluginClassLoader in AdvisorConfigurationLoader
---
 .../advisor/config/AdvisorConfigurationLoader.java    | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
index ad5ccf9e6bc..91a17e5b0d2 100644
--- 
a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
+++ 
b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/advisor/config/AdvisorConfigurationLoader.java
@@ -21,7 +21,6 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.agent.core.advisor.config.yaml.loader.YamlAdvisorsConfigurationLoader;
 import 
org.apache.shardingsphere.agent.core.advisor.config.yaml.swapper.YamlAdvisorsConfigurationSwapper;
-import 
org.apache.shardingsphere.agent.core.plugin.classloader.AgentPluginClassLoader;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,6 +28,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
+import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -50,9 +50,8 @@ public final class AdvisorConfigurationLoader {
      */
     public static Map<String, AdvisorConfiguration> load(final 
Collection<JarFile> pluginJars, final Collection<String> pluginTypes) {
         Map<String, AdvisorConfiguration> result = new HashMap<>();
-        AgentPluginClassLoader agentPluginClassLoader = new 
AgentPluginClassLoader(Thread.currentThread().getContextClassLoader(), 
pluginJars);
         for (String each : pluginTypes) {
-            InputStream advisorsResourceStream = 
getResourceStream(agentPluginClassLoader, each);
+            InputStream advisorsResourceStream = getResourceStream(pluginJars, 
each);
             if (null == advisorsResourceStream) {
                 LOGGER.log(Level.WARNING, "The configuration file for advice 
of plugin `{0}` is not found", new String[]{each});
             }
@@ -68,8 +67,18 @@ public final class AdvisorConfigurationLoader {
         return result;
     }
     
-    private static InputStream getResourceStream(final ClassLoader 
pluginClassLoader, final String pluginType) {
-        return pluginClassLoader.getResourceAsStream(String.join("/", 
"META-INF", "conf", getFileName(pluginType)));
+    private static InputStream getResourceStream(final Collection<JarFile> 
pluginJars, final String pluginType) {
+        String entryName = String.join("/", "META-INF", "conf", 
getFileName(pluginType));
+        for (JarFile each : pluginJars) {
+            JarEntry entry = each.getJarEntry(entryName);
+            if (null != entry) {
+                try {
+                    return each.getInputStream(entry);
+                } catch (final IOException ignored) {
+                }
+            }
+        }
+        return null;
     }
     
     private static String getFileName(final String pluginType) {

Reply via email to