Spark研究笔记8:重要的工厂类PluginManager(原创)
2013-04-27 17:52
316 查看
PluginManager 负责装载所有的插件和Workspaces。
私有域:
几个重要的方法
私有域:
private final List<Plugin> plugins = new ArrayList<Plugin>();//Plugin接口 //PublicPlugin是注册的插件,字面含义是公开 private final List<PublicPlugin> publicPlugins = new CopyOnWriteArrayList<PublicPlugin>(); //单例管理器 private static PluginManager singleton; private static final Object LOCK = new Object(); //Plugins 目录下的文件 public static File PLUGINS_DIRECTORY = new File(Spark.getBinDirectory().getParent(), "plugins").getAbsoluteFile(); private Plugin pluginClass; private PluginClassLoader classLoader; //黑名单插件,也就是被禁用的插件 private Collection<String> _blacklistPlugins;
构造函数:
private PluginManager() { try { //定义PLUGINS_DIRECTORY PLUGINS_DIRECTORY = new File(Spark.getBinDirectory().getParentFile(), "plugins").getCanonicalFile(); } catch (IOException e) { Log.error(e); } // Do not use deployable plugins if not installed. if (System.getProperty("plugin") == null) { movePlugins(); } // Create the extension directory if one does not exist. if (!PLUGINS_DIRECTORY.exists()) { PLUGINS_DIRECTORY.mkdirs(); } _blacklistPlugins = Default.getPluginBlacklist(); //Default.getPluginBlacklist定义了插件黑名单,在default.properties里设置,用于禁用插件,第132行: # Put plugins here that you dont want enabled # comma separated, case insensitive # names of plugins can be found in the plugin.xml # example: Fastpath,Jingle Client,Phone Client,Window Flashing Plugin # default is empty PLUGIN_BLACKLIST = # Disable Plugins by entrypoint Class # Comma seperated, case sensitive # example org.jivesoftware.fastpath.FastpathPlugin # default is empty PLUGIN_BLACKLIST_CLASS = }
几个重要的方法
/** * 载入所有的插件(通过plugins.xml、lib) */ public void loadPlugins() { /** 载入已注册插件*/ private Plugin loadPublicPlugin(File pluginDir) { /** * 插件初始化*/ public void initializePlugins() { /** * 安装新插件*/ public void addPlugin(PublicPlugin plugin) throws Exception {
相关文章推荐
- Spark研究笔记4:重要的工厂类DataManager(原创)
- Spark研究笔记3:重要的工厂类ChatManager(原创)
- Spark研究笔记5:重要的工厂类NativeManager(原创)
- Spark研究笔记6:重要的工厂类SessionManager(原创)
- Spark研究笔记7:重要的工厂类UserManager(原创)
- Spark研究笔记9:重要的工厂类PresenceManager(原创)
- Spark研究笔记10:重要的工厂类SoundManager(原创)
- Spark研究笔记1:重要的静态工厂类SparkManager(原创)
- Spark研究笔记2:重要的工厂类Workspace(原创)
- Spark研究笔记11:实体类
- Spark研究笔记12:监听类
- android ListView本行控件操作本行其它控件的重要方法(绝对原创,本人研究2天成果)
- Spark研究笔记13:Swing 组件类
- Spark研究笔记14:UI设计
- Spark第一个研究笔记1一片 - Spark一个简短的引论
- (原创) fragment生命周期研究(fragment学习系列笔记一)
- Spark开发研究笔记专题[入口必读]
- Spark研究笔记15:资源
- (原创)RFC3927研究笔记(RFC3927,local link addr,LLA)
- 技术研究思路以及Spark基础学习笔记