您的位置:首页 > 编程语言 > Java开发

使用NetBeans6开发OSGi应用(2)——SecondOSGi[88250原创]

2008-02-14 21:02 381 查看
转载请保留作者信息:

作者:88250

Blog:http:/blog.csdn.net/DL88250

MSN & Gmail & QQ:DL88250@gmail.com

摘要

上一次,我们了解了OSGi的背景并使用NetBeans6,基于Knopflerfish(OSGi的一个RI) 完成了第一个OSGi应用——FirstOSGi。这一次,我们将对OSGi进行深入一点学习——SecondOSGi,让我们掌握Bundles之间的调用!

准备

上一次 :-)

开工:

1. 创建工程

打开NetBeans6 IDE,创建两个普通的Java App——SecondOSGi、SecondOSGiClient。把KF下的Sources拷贝到两个工程下(记得加入asm3.0的Jar):

daniel@daniel-laptop:~/Work/knopflerfish_osgi_2.0.4/knopflerfish.org/osgi$ java -jar framework.jar

打开构建好的SecondOSGi.jar以及SecondOSGiClient.jar,运行!



总结

这一次,我们对OSGi的了解更深了一步。

从设计的角度:一个可扩展的Service-Oriented组件服务模型

从开发的角度:我们发布接口给客户,实现了“针对接口编程”的OO核心实践

不足之处

我们一直都是在KF的控制台下启动的应用,如何做成独立的(standalone)可运行的Jar发布呢?

1. 在命令行下启动OSGi框架

首先,编写一个启动参数文件:secondosgi.xargs

-launch
-istart /home/daniel/Work/Sources/Java/SecondOSGi/dist/SecondOSGi.jar
-istart /home/daniel/Work/Sources/Java/SecondOSGiClient/dist/SecondOSGiClient.jar

然后,进入KF的安装目录,启动我们的应用:



现在,我们只是脱离了KF的图形界面控制中心,在命令行下面启动的KF框架,并把SecondOSGi与SeondOSGiClient安装运行在KF框架里。一切的主动权还是在KF手里。
结合以前JavaEE的实践,JSP/Servlets,EJBs不都是被控制在容器(container)里的吗?
不过,话又说回来了,我希望自己的框架应用构建于OSGi之上,而不是之内。
之内的部分应该是可扩展的Plug-ins部分,让OSGi作为底层框架,为我们提供稳定的插件机制。
之外的部分应该是我们应用的框架,构建在OSGi之上。对OSGi做一个封装,就KF而言,就是封装它的命令接口,让我们的框架可以对插件随时安装、卸载、运行、停止、更新。。。。
当然,以上是个设想,学习OSGi第二天的设想。。。。
总之不足的地方很多,要把这个示例慢慢演化成正真具有价值的应用可能还需要一些时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: