Live a simple life

沉默(zhu_xing@live.cn)
随笔 - 48, 文章 - 0, 评论 - 132, 引用 - 0
数据加载中……

【Eclipse插件开发】正确处理扩展加载

         说明:文中涉及到的内容比较浅显,熟悉的同志可以闪过了^_^

         扩展点(Extension Point)和扩展(Extension)这两个概念,每个插件开发人员应该再熟悉不过了,前者规定了契约,后者按照契约实现并注册扩展。我们在使用扩展之前必然有个过程就是加载扩展,如果我们在定义扩展点的时候有java类型的属性,那么这个加载扩展的过程就伴随着类加载。下面我们来分析一下这个过程。

          假设我们定义了如下一个扩展点,元素中有一个class属性,要求父类型为java.lang.Object(够灵活^_^)

                
            【扩展加载过程分析】
             我们在加载这个扩展的时候,核心操作就是加载class属性指定类型,这就涉及到了类加载。如果扩展所在的插件还没有被启动,则在类加载之前必须要完成的一个操作就是:启动该提供扩展的插件。有关这个问题的分析,可以参见博客的另外一篇文章:
            【Eclipse插件开发】Eclipse插件Lazy Start实现原理分析 

            我们一般的扩展加载代码如下:
            
            待续。。。
            

            几个关键点:扩展注册表的访问耗时、类加载引起的插件启动
            解决方案:引入中间角色

            待续。。。            

本博客中的所有文章、随笔除了标题中含有引用或者转载字样的,其他均为原创。转载请注明出处,谢谢!

posted on 2008-09-17 18:08 zhuxing 阅读(947) 评论(0)  编辑  收藏 所属分类: Eclipse Plug-in & OSGI


只有注册用户登录后才能发表评论。


网站导航: