All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zodiac.plugin.extension.PluginExtension Maven / Gradle / Ivy

There is a newer version: 1.6.8
Show newest version
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;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy