org.zodiac.plugin.extension.PluginExtension Maven / Gradle / Ivy
package org.zodiac.plugin.extension;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.zodiac.plugin.factory.process.pipe.PluginPipeProcessorExtend;
import org.zodiac.plugin.factory.process.pipe.PluginPreProcessorExtend;
import org.zodiac.plugin.factory.process.pipe.bean.PluginBeanRegistrarExtend;
import org.zodiac.plugin.factory.process.pipe.classs.PluginClassGroupExtend;
import org.zodiac.plugin.factory.process.pipe.loader.PluginResourceLoader;
import org.zodiac.plugin.factory.process.post.PluginPostProcessorExtend;
import org.zodiac.plugin.integration.application.PluginApplication;
public interface PluginExtension {
/**
* 扩展唯一的key
*
* @return String
*/
String key();
/**
* 返回插件的资源加载者。 主要是加载插件中的某些资源,比如文件、图片等。
*
* @return List PluginResourceLoader
*/
List getPluginResourceLoader();
/**
* 返回扩展的插件中的类分组器。 该扩展主要是对插件中的Class文件分组,然后供 PluginPipeProcessor、PluginPostProcessor 阶段使用。
*
* @param mainApplicationContext 主程序ApplicationContext
* @return List PluginPipeProcessorExtend
*/
List getPluginClassGroup(ApplicationContext mainApplicationContext);
/**
* 返回扩展的插件前置处理者。 该扩展主要是对每一个插件进行处理
*
* @param mainApplicationContext
* 主程序ApplicationContext
* @return List PluginPipeProcessorExtend
*/
List getPluginPreProcessor(ApplicationContext mainApplicationContext);
/**
* 返回扩展的bean定义注册者扩展 该扩展主要是对每一个插件进行处理
*
* @param mainApplicationContext
* 主程序ApplicationContext
* @return List PluginPipeProcessorExtend
*/
List getPluginBeanRegistrar(ApplicationContext mainApplicationContext);
/**
* 返回扩展的流插件处理者。 该扩展主要是对每一个插件进行处理
*
* @param mainApplicationContext
* 主程序ApplicationContext
* @return List PluginPipeProcessorExtend
*/
List getPluginPipeProcessor(ApplicationContext mainApplicationContext);
/**
* 返回扩展的插件后置处理者。 该扩展主要是对全部插件进行处理。
*
* @param mainApplicationContext
* 主程序ApplicationContext
* @return List PluginPostProcessorExtend
*/
List getPluginPostProcessor(ApplicationContext mainApplicationContext);
PluginExtension setPluginApplication(PluginApplication pluginApplication);
PluginExtension initialize(ApplicationContext mainApplicationContext) throws Exception;
}