了解下JAVA的使用OSGi办理Eclipse插件困难
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。利用OpenServicesGatewayInitiativeAPI打消Eclipse插件依附性
本文先容了一个接纳XML的插件示例,以便为界说好的扩大点注册扩大。经由过程使插件可以感知ExtentionRegistry并供应OSGi服务,我们能够完成这一完全的组件退耦操纵。
插件、扩大点、OSGi
如您所知,Eclipse的组件架构是基于插件的--这意味着将一组代码组件化为单一的组件,然后利用Eclipse框架注册为其组件之一,其他组件能够绑定该组件或挪用该组件。扩大点是插件同意其他插件向公然扩大点的插件供应附加功效的办法。如今使用一切这些插件并将其包装到受控的运转时,插件可在个中静态收支,而且您能够取得OSGi(基础下去说)。
示例插件
让我们从公然扩大点的基础插件入手下手,如许能够为同义词服务注册新的字符串映照。此项服务同意其他服务注册一个词并将其映照到另外一个词(同义词)。基础扩大包括十分复杂的元素:一个词,固然另有一个新的同义词。此插件扩大点的基础布局如表1所示。
表1.示例插件的元素
插件称号com.company.SynonymRegistry扩大点同义词元素词--您想要为其增加同义词的词同义词--您想要注册的同义词
我们还要将插件注册为OSGi服务。这意味着它只在显式实行此操纵时被加载,并将可供其他客户声明性地利用。为了利用该服务,其他客户只需懂得Interface和OSGi类称号。在我们的示例中,我们不会真正挪用该服务,由于扩大点是假定的。我们将利用OSGiAPI以告诉我们此项服务收支的工夫,所以我们能够准确地注册扩大点。
如今这只是一个示例,而且利用针对此观点的扩大点大概不是最好的办法。我们用此基础示例要到达的目标是怎样静态注册新的扩大,同时申明利用OSGiAPI的插件性命周期事务。
Mediator插件
下一个插件是第三方插件,该插件懂得已知的服务和扩大点,但不想绑定到此插件,由于前面它将依靠该插件举行运转时剖析。这意味着该插件能够驻留在所援用的插件(com.company.SynonymRegistry)大概不存在的呆板上。由于我们如今生存在OSGi和静态运转时天下,以是我们想确保插件在不引发运转时妨碍或毛病的情形下运转。我们的mediator插件将承受同义词的XML文件,而且经由过程利用供应的扩展点用SynonymRegistry插件注册每一个同义词。
清单1.用于观点考证的示例XML文件
Synonyms.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<synonyms>
<entryword="mediator"synonym="broker"/>
<entryword="mediator"synonym="go-between"/>
<entryword="mediator"synonym="interceder"/>
<entryword="mediator"synonym="intermediary"/>
<synonyms>Mediator插件在其start()办法中做的第一件事是用OSGi服务注册为一个服务初始化侦听器。我们要在传进start()办法的BundleContext对象上挪用OSGi服务办法addServiceListener()。以下代码展现了一个经由过程传进代码和我们感乐趣的服务ID挪用此API的示例。
context.addServiceListener(this,"com.company.SynonymRegistry");经由过程供应过滤器,能够告诉OSGi服务注册中央只需关照您指定服务中的形态变动。在本例中,过滤器只是SynonymRegistry类的类称号。
您大概会追本溯源。谜底就在启动序列中。在OSGi范畴,我们不是总晓得另外一服务可用的工夫,因此我们必要对此举行申明。经由过程注册为服务侦听器,我们可得知服务入手下手和中断的工夫。假如服务不成用,则同意我们缓存同义词。当服务的确可用时,我们会失掉关照并注册扩大。
<p>
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 Java 编程语言的风格十分接近C、C++语言。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 是一种语言,用以产生「小应用程序(Applet(s)) 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
页:
[1]