diff --git a/application/src/main/java/run/halo/app/plugin/loader/DevPluginLoader.java b/application/src/main/java/run/halo/app/plugin/DevPluginLoader.java
similarity index 78%
rename from application/src/main/java/run/halo/app/plugin/loader/DevPluginLoader.java
rename to application/src/main/java/run/halo/app/plugin/DevPluginLoader.java
index e7c0ad64c..9698b711f 100644
--- a/application/src/main/java/run/halo/app/plugin/loader/DevPluginLoader.java
+++ b/application/src/main/java/run/halo/app/plugin/DevPluginLoader.java
@@ -1,12 +1,10 @@
-package run.halo.app.plugin.loader;
+package run.halo.app.plugin;
import java.nio.file.Files;
import java.nio.file.Path;
import org.pf4j.DevelopmentPluginLoader;
-import org.pf4j.PluginClassLoader;
import org.pf4j.PluginDescriptor;
import org.pf4j.PluginManager;
-import run.halo.app.plugin.PluginProperties;
public class DevPluginLoader extends DevelopmentPluginLoader {
@@ -42,11 +40,4 @@ public class DevPluginLoader extends DevelopmentPluginLoader {
// Currently we only support a plugin loading from directory in dev mode.
return Files.isDirectory(pluginPath);
}
-
- @Override
- protected PluginClassLoader createPluginClassLoader(Path pluginPath,
- PluginDescriptor pluginDescriptor) {
- return new HaloPluginClassLoader(this.pluginManager, pluginDescriptor,
- this.getClass().getClassLoader());
- }
}
diff --git a/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java b/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java
index 63c7d741d..4d131d424 100644
--- a/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java
+++ b/application/src/main/java/run/halo/app/plugin/HaloPluginManager.java
@@ -13,7 +13,6 @@ import org.pf4j.ExtensionFactory;
import org.pf4j.ExtensionFinder;
import org.pf4j.JarPluginLoader;
import org.pf4j.JarPluginRepository;
-import org.pf4j.PluginDescriptor;
import org.pf4j.PluginDescriptorFinder;
import org.pf4j.PluginFactory;
import org.pf4j.PluginLoader;
@@ -28,8 +27,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.data.util.Lazy;
import run.halo.app.infra.SystemVersionSupplier;
import run.halo.app.plugin.event.PluginStartedEvent;
-import run.halo.app.plugin.loader.DevPluginLoader;
-import run.halo.app.plugin.loader.HaloPluginClassLoader;
/**
* PluginManager to hold the main ApplicationContext.
@@ -109,15 +106,7 @@ public class HaloPluginManager extends DefaultPluginManager
protected PluginLoader createPluginLoader() {
var compoundLoader = new CompoundPluginLoader();
compoundLoader.add(new DevPluginLoader(this, this.pluginProperties), this::isDevelopment);
- compoundLoader.add(new JarPluginLoader(this) {
- @Override
- public ClassLoader loadPlugin(Path pluginPath, PluginDescriptor pluginDescriptor) {
- var pluginClassLoader = new HaloPluginClassLoader(this.pluginManager,
- pluginDescriptor, this.getClass().getClassLoader());
- pluginClassLoader.addFile(pluginPath.toFile());
- return pluginClassLoader;
- }
- });
+ compoundLoader.add(new JarPluginLoader(this));
return compoundLoader;
}
diff --git a/application/src/main/java/run/halo/app/plugin/SpringPlugin.java b/application/src/main/java/run/halo/app/plugin/SpringPlugin.java
index 0e932f737..0acc14478 100644
--- a/application/src/main/java/run/halo/app/plugin/SpringPlugin.java
+++ b/application/src/main/java/run/halo/app/plugin/SpringPlugin.java
@@ -51,7 +51,7 @@ public class SpringPlugin extends Plugin {
// try to stop plugin for cleaning resources if something went wrong
log.error(
"Cleaning up plugin resources for plugin {} due to not being able to start plugin.",
- pluginId, t);
+ pluginId);
this.stop();
// propagate exception to invoker.
throw t;
diff --git a/application/src/main/java/run/halo/app/plugin/loader/HaloPluginClassLoader.java b/application/src/main/java/run/halo/app/plugin/loader/HaloPluginClassLoader.java
deleted file mode 100644
index 9736c0aaf..000000000
--- a/application/src/main/java/run/halo/app/plugin/loader/HaloPluginClassLoader.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package run.halo.app.plugin.loader;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import lombok.extern.slf4j.Slf4j;
-import org.pf4j.ClassLoadingStrategy;
-import org.pf4j.PluginClassLoader;
-import org.pf4j.PluginDescriptor;
-import org.pf4j.PluginManager;
-
-@Slf4j
-public class HaloPluginClassLoader extends PluginClassLoader {
-
- /**
- * see also gh-4610.
- */
- private final ClassLoadingStrategy resourceLoadingStrategy = ClassLoadingStrategy.PDA;
-
- public HaloPluginClassLoader(PluginManager pluginManager, PluginDescriptor pluginDescriptor,
- ClassLoader parent) {
- super(pluginManager, pluginDescriptor, parent, ClassLoadingStrategy.APD);
- }
-
- @Override
- public URL getResource(String name) {
- for (ClassLoadingStrategy.Source classLoadingSource :
- resourceLoadingStrategy.getSources()) {
- URL url = switch (classLoadingSource) {
- case APPLICATION -> super.getResource(name);
- case PLUGIN -> this.findResource(name);
- case DEPENDENCIES -> this.findResourceFromDependencies(name);
- };
-
- if (url != null) {
- log.trace("Found resource '{}' in {} classpath", name,
- classLoadingSource);
- return url;
- }
-
- log.trace("Couldn't find resource '{}' in {}", name,
- classLoadingSource);
- }
-
- return null;
- }
-
- @Override
- public Enumeration getResources(String name) throws IOException {
- List resources = new ArrayList<>();
- log.trace("Received request to load resources '{}'", name);
-
- for (ClassLoadingStrategy.Source classLoadingSource :
- resourceLoadingStrategy.getSources()) {
- switch (classLoadingSource) {
- case APPLICATION:
- if (this.getParent() != null) {
- resources.addAll(
- Collections.list(this.getParent().getResources(name)));
- }
- break;
- case PLUGIN:
- resources.addAll(Collections.list(this.findResources(name)));
- break;
- case DEPENDENCIES:
- resources.addAll(this.findResourcesFromDependencies(name));
- break;
- default:
- // Do nothing
- }
- }
-
- return Collections.enumeration(resources);
- }
-}