Package org.laxture.sbp
Class SpringBootPlugin
- java.lang.Object
-
- org.pf4j.Plugin
-
- org.laxture.sbp.SpringBootPlugin
-
public abstract class SpringBootPlugin extends org.pf4j.PluginBase Pf4j Plugin for Spring Boot. ---- ### Following actions will be taken after plugin is started: * UseSpringBootstrapto initialize Spring environment in spring-boot style. Some AutoConfiguration need to be excluded explicitly to make sure plugin resource could be inject to mainApplicationContext* Share beans from mainApplicationContextto pluginApplicationContextin order to share resources. This is done bySpringBootstrap* RegisterControllerand @RestControllerbeans to RequestMapping of mainApplicationContext, so Spring will forward request to plugin controllers correctly. * RegisterExtensionto main ApplicationContext ---- ### And following actions will be taken when plugin is stopped: * UnregisterExtensionin mainApplicationContext* Unregister controller beans from main RequestMapping * Close pluginApplicationContext- See Also:
SpringBootstrap,SharedDataSourceSpringBootstrap
-
-
Constructor Summary
Constructors Constructor Description SpringBootPlugin(org.pf4j.PluginWrapper wrapper)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract SpringBootstrapcreateSpringBootstrap()org.springframework.context.support.GenericApplicationContextgetApplicationContext()org.springframework.context.support.GenericApplicationContextgetMainApplicationContext()SpringBootPluginManagergetPluginManager()voidregisterBeanToMainContext(java.lang.String beanName, java.lang.Object bean)voidreleaseAdditionalResources()Release plugin holding release on stop.static voidreleaseLegacyResources(org.pf4j.PluginWrapper plugin, org.springframework.context.support.GenericApplicationContext mainAppCtx)Clean legacy resources left behind by failed plugin starting.voidstart()voidstop()voidunregisterBeanFromMainContext(java.lang.Object bean)voidunregisterBeanFromMainContext(java.lang.String beanName)static voidunregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx, java.lang.Object bean)static voidunregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx, java.lang.String beanName)
-
-
-
Method Detail
-
releaseAdditionalResources
public void releaseAdditionalResources()
Release plugin holding release on stop.
-
start
public void start()
- Overrides:
startin classorg.pf4j.Plugin
-
stop
public void stop()
- Overrides:
stopin classorg.pf4j.Plugin
-
releaseLegacyResources
public static void releaseLegacyResources(org.pf4j.PluginWrapper plugin, org.springframework.context.support.GenericApplicationContext mainAppCtx)Clean legacy resources left behind by failed plugin starting.- Parameters:
plugin-mainAppCtx-
-
createSpringBootstrap
protected abstract SpringBootstrap createSpringBootstrap()
-
getApplicationContext
public org.springframework.context.support.GenericApplicationContext getApplicationContext()
-
getPluginManager
public SpringBootPluginManager getPluginManager()
-
getMainApplicationContext
public org.springframework.context.support.GenericApplicationContext getMainApplicationContext()
-
registerBeanToMainContext
public void registerBeanToMainContext(java.lang.String beanName, java.lang.Object bean)
-
unregisterBeanFromMainContext
public void unregisterBeanFromMainContext(java.lang.String beanName)
-
unregisterBeanFromMainContext
public void unregisterBeanFromMainContext(java.lang.Object bean)
-
unregisterBeanFromMainContext
public static void unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx, java.lang.String beanName)
-
unregisterBeanFromMainContext
public static void unregisterBeanFromMainContext(org.springframework.context.support.GenericApplicationContext mainCtx, java.lang.Object bean)
-
-