该helloworld例子程序主要的功能是在启动和停止一个Bundle的时候来做些事情(输出信息)。
1、创建bundle工程
(1)在eclipse中创建一个Plug-in工程
(2)输入工程相关信息
(3)输入Bundle的相关元数据信息:
Plug_in ID指的是Bundle的唯一标识,在实际项目中可以采用类似java的包名组织策略来保证标识的唯一性
Plug-in Version 指的是Bundle的版本
Plug-in Name 指的是BundleBundle的更具有意义的名称
Plug-in Provider 指的是Bundle的提供商
Execution Environment 指的是Bundle运行需要的环境
剩下的关键就是Activitor部分了,填入自己的一个类名就可以了,在工程建立时Eclipse会自动建立这个类
(4)完成了Bundle工程的创建后,在Package视图中就可以看到如下图所示,表明工程创建成功:
2、完成Activator的代码
(1)打开默认的Activator.java
这个类实现了BundleActivator接口,其中有两个空的方法--start和stop。start方法是在Bundle被启动的时候调用的,stop是在Bundle被停止时调用的,加入代码:
HelloWorld的例子完成!
3、运行
(1)首先创建一个HelloWorld用的运行配置
(2)然后设置HelloWorldde 的Auto-Start属性为false
(3)点击Run,在Console中出现"osgi>"提示。表明成功启动一个OSGi应用。
在osgi>提示符后面输入 ss,按回车键,如下图:
可以看到,HelloWorld Bundle已经被安装并且完成了解析,但是 还没有启动。下面在osgi>提示符下输入 start 1,然后回车,然后再输入ss:
看到HelloWorld启动了,通过ss可以看到HelloWorld Bundle的状态改变为ACTIVE,说明启动成功。并且在Activitor的start方法中加入的输出信息也正确的打印出来了。
接着 输入 stop 1 ,并且再用ss命令查看bundle的状态:
这个时候Bundle停止。
至此,一个OSGi Bundle顺利完成,第一个OSGi程序顺利运行!