public abstract class SpringBootPlugin
extends org.pf4j.Plugin
SpringBootstrap to initialize Spring environment
in spring-boot style. Some AutoConfiguration need to be excluded explicitly
to make sure plugin resource could be inject to main ApplicationContext
* Share beans from main ApplicationContext to
plugin ApplicationContext in order to share resources.
This is done by SpringBootstrap
* Register Controller and @RestController beans to
RequestMapping of main ApplicationContext, so Spring will forward
request to plugin controllers correctly.
* Register Extension to main ApplicationContext
----
### And following actions will be taken when plugin is stopped:
* Unregister Extension in main ApplicationContext
* Unregister controller beans from main RequestMapping
* Close plugin ApplicationContextSpringBootstrap,
SharedDataSourceSpringBootstrap| Constructor and Description |
|---|
SpringBootPlugin(org.pf4j.PluginWrapper wrapper) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract SpringBootstrap |
createSpringBootstrap() |
org.springframework.context.support.GenericApplicationContext |
getApplicationContext() |
org.springframework.context.support.GenericApplicationContext |
getMainApplicationContext() |
SpringBootPluginManager |
getPluginManager() |
void |
registerBeanToMainContext(java.lang.String beanName,
java.lang.Object bean) |
void |
releaseAdditionalResources()
Release plugin holding release on stop.
|
static void |
releaseRegisteredResources(org.pf4j.PluginWrapper plugin,
org.springframework.context.support.GenericApplicationContext mainAppCtx) |
void |
start() |
void |
stop() |
static void |
unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx,
java.lang.Object bean) |
static void |
unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx,
java.lang.String beanName) |
void |
unregisterBeanFromMainContext(java.lang.Object bean) |
void |
unregisterBeanFromMainContext(java.lang.String beanName) |
public void releaseAdditionalResources()
public void start()
start in class org.pf4j.Pluginpublic void stop()
stop in class org.pf4j.Pluginpublic static void releaseRegisteredResources(org.pf4j.PluginWrapper plugin,
org.springframework.context.support.GenericApplicationContext mainAppCtx)
protected abstract SpringBootstrap createSpringBootstrap()
public org.springframework.context.support.GenericApplicationContext getApplicationContext()
public SpringBootPluginManager getPluginManager()
public org.springframework.context.support.GenericApplicationContext getMainApplicationContext()
public void registerBeanToMainContext(java.lang.String beanName,
java.lang.Object bean)
public void unregisterBeanFromMainContext(java.lang.String beanName)
public void unregisterBeanFromMainContext(java.lang.Object bean)
public static void unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx,
java.lang.String beanName)
public static void unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx,
java.lang.Object bean)