mirror of https://github.com/halo-dev/halo
chore: cleanup deprecated constructor for base plugin (#6243)
#### What type of PR is this? /kind cleanup /area plugin /milestone 2.17.x #### What this PR does / why we need it: 移除 BasePlugin 中已经过时的构造方法 在 2.6.1 版本中将 `BasePlugin(PluginWrapper wrapper)` 标记为过时并使用 `BasePlugin(PluginContext pluginContext)` 代替,现在已经过了很多版本,是时候移除它了。 see also #4023 #### Does this PR introduce a user-facing change? ```release-note 开发者相关:移除 BasePlugin 中已经过时的构造方法 ```pull/6259/head
parent
3dadd07986
commit
b964c7bb00
|
@ -2,9 +2,7 @@ package run.halo.app.plugin;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.pf4j.Plugin;
|
import org.pf4j.Plugin;
|
||||||
import org.pf4j.PluginWrapper;
|
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.util.Assert;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class will be extended by all plugins and serve as the common class between a plugin and
|
* This class will be extended by all plugins and serve as the common class between a plugin and
|
||||||
|
@ -16,17 +14,10 @@ import org.springframework.util.Assert;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class BasePlugin extends Plugin {
|
public class BasePlugin extends Plugin {
|
||||||
|
|
||||||
protected PluginContext context;
|
protected final PluginContext context;
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public BasePlugin(PluginWrapper wrapper) {
|
|
||||||
super(wrapper);
|
|
||||||
log.info("Initialized plugin {}", wrapper.getPluginId());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor a plugin with the given plugin context.
|
* Constructor a plugin with the given plugin context.
|
||||||
* TODO Mark {@link PluginContext} as final to prevent modification.
|
|
||||||
*
|
*
|
||||||
* @param pluginContext plugin context must not be null.
|
* @param pluginContext plugin context must not be null.
|
||||||
*/
|
*/
|
||||||
|
@ -34,26 +25,6 @@ public class BasePlugin extends Plugin {
|
||||||
this.context = pluginContext;
|
this.context = pluginContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* use {@link #BasePlugin(PluginContext)} instead of.
|
|
||||||
*
|
|
||||||
* @deprecated since 2.10.0
|
|
||||||
*/
|
|
||||||
public BasePlugin() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compatible with old constructors, if the plugin is not use
|
|
||||||
* {@link #BasePlugin(PluginContext)} constructor then base plugin factory will use this
|
|
||||||
* method to set plugin context.
|
|
||||||
*
|
|
||||||
* @param context plugin context must not be null.
|
|
||||||
*/
|
|
||||||
final void setContext(PluginContext context) {
|
|
||||||
Assert.notNull(context, "Plugin context must not be null");
|
|
||||||
this.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public PluginContext getContext() {
|
public PluginContext getContext() {
|
||||||
return context;
|
return context;
|
||||||
|
|
|
@ -86,7 +86,6 @@ public class DefaultPluginApplicationContextFactory implements PluginApplication
|
||||||
sw.start("RegisterBeans");
|
sw.start("RegisterBeans");
|
||||||
var beanFactory = context.getBeanFactory();
|
var beanFactory = context.getBeanFactory();
|
||||||
context.registerBean(AggregatedRouterFunction.class);
|
context.registerBean(AggregatedRouterFunction.class);
|
||||||
beanFactory.registerSingleton("pluginWrapper", pluginWrapper);
|
|
||||||
|
|
||||||
if (pluginWrapper.getPlugin() instanceof SpringPlugin springPlugin) {
|
if (pluginWrapper.getPlugin() instanceof SpringPlugin springPlugin) {
|
||||||
beanFactory.registerSingleton("pluginContext", springPlugin.getPluginContext());
|
beanFactory.registerSingleton("pluginContext", springPlugin.getPluginContext());
|
||||||
|
|
|
@ -15,7 +15,6 @@ import org.pf4j.ExtensionFactory;
|
||||||
import org.pf4j.ExtensionFinder;
|
import org.pf4j.ExtensionFinder;
|
||||||
import org.pf4j.JarPluginLoader;
|
import org.pf4j.JarPluginLoader;
|
||||||
import org.pf4j.JarPluginRepository;
|
import org.pf4j.JarPluginRepository;
|
||||||
import org.pf4j.PluginDescriptor;
|
|
||||||
import org.pf4j.PluginDescriptorFinder;
|
import org.pf4j.PluginDescriptorFinder;
|
||||||
import org.pf4j.PluginFactory;
|
import org.pf4j.PluginFactory;
|
||||||
import org.pf4j.PluginLoader;
|
import org.pf4j.PluginLoader;
|
||||||
|
@ -95,17 +94,6 @@ public class HaloPluginManager extends DefaultPluginManager implements SpringPlu
|
||||||
return new YamlPluginDescriptorFinder();
|
return new YamlPluginDescriptorFinder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected PluginWrapper createPluginWrapper(PluginDescriptor pluginDescriptor, Path pluginPath,
|
|
||||||
ClassLoader pluginClassLoader) {
|
|
||||||
// create the plugin wrapper
|
|
||||||
log.debug("Creating wrapper for plugin '{}'", pluginPath);
|
|
||||||
var pluginWrapper =
|
|
||||||
new HaloPluginWrapper(this, pluginDescriptor, pluginPath, pluginClassLoader);
|
|
||||||
pluginWrapper.setPluginFactory(getPluginFactory());
|
|
||||||
return pluginWrapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PluginLoader createPluginLoader() {
|
protected PluginLoader createPluginLoader() {
|
||||||
var compoundLoader = new CompoundPluginLoader();
|
var compoundLoader = new CompoundPluginLoader();
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
package run.halo.app.plugin;
|
|
||||||
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import org.pf4j.PluginDescriptor;
|
|
||||||
import org.pf4j.PluginManager;
|
|
||||||
import org.pf4j.PluginWrapper;
|
|
||||||
import org.pf4j.RuntimeMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A wrapper over plugin instance for Halo.
|
|
||||||
*
|
|
||||||
* @author guqing
|
|
||||||
* @since 2.10.0
|
|
||||||
*/
|
|
||||||
public class HaloPluginWrapper extends PluginWrapper {
|
|
||||||
|
|
||||||
private final RuntimeMode runtimeMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new plugin wrapper to manage the specified plugin.
|
|
||||||
*/
|
|
||||||
public HaloPluginWrapper(PluginManager pluginManager, PluginDescriptor descriptor,
|
|
||||||
Path pluginPath, ClassLoader pluginClassLoader) {
|
|
||||||
super(pluginManager, descriptor, pluginPath, pluginClassLoader);
|
|
||||||
this.runtimeMode = Files.isDirectory(pluginPath)
|
|
||||||
? RuntimeMode.DEVELOPMENT : RuntimeMode.DEPLOYMENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RuntimeMode getRuntimeMode() {
|
|
||||||
return runtimeMode;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -40,9 +40,6 @@ public class SpringPlugin extends Plugin {
|
||||||
log.info("After publishing plugin starting event for plugin {}", pluginId);
|
log.info("After publishing plugin starting event for plugin {}", pluginId);
|
||||||
if (pluginOpt.isPresent()) {
|
if (pluginOpt.isPresent()) {
|
||||||
this.delegate = pluginOpt.get();
|
this.delegate = pluginOpt.get();
|
||||||
if (this.delegate instanceof BasePlugin basePlugin) {
|
|
||||||
basePlugin.setContext(pluginContext);
|
|
||||||
}
|
|
||||||
log.info("Starting {} for plugin {}", this.delegate, pluginId);
|
log.info("Starting {} for plugin {}", this.delegate, pluginId);
|
||||||
this.delegate.start();
|
this.delegate.start();
|
||||||
log.info("Started {} for plugin {}", this.delegate, pluginId);
|
log.info("Started {} for plugin {}", this.delegate, pluginId);
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
package run.halo.app.plugin.event;
|
|
||||||
|
|
||||||
import org.pf4j.PluginWrapper;
|
|
||||||
import org.springframework.context.ApplicationEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author guqing
|
|
||||||
* @since 2.0.0
|
|
||||||
*/
|
|
||||||
public class HaloPluginLoadedEvent extends ApplicationEvent {
|
|
||||||
private final PluginWrapper pluginWrapper;
|
|
||||||
|
|
||||||
|
|
||||||
public HaloPluginLoadedEvent(Object source, PluginWrapper pluginWrapper) {
|
|
||||||
super(source);
|
|
||||||
this.pluginWrapper = pluginWrapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PluginWrapper getPluginWrapper() {
|
|
||||||
return pluginWrapper;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue