OSGI简介—HelloWorld

         本次介绍的 HelloWorld 例子程序主要的功能是在启动和停止一个 Bundle 的时候输出开始和结束信息。下面我们就来完成第一个 Bundle。

         第一步,创建 Bundle 工程。


         在 Eclipse 中创建一个 Plug-in 工程。

         输入工程相关的信息,这里和创建普通的 Java工程唯一的不同点就是要选择 this plug-in is targeted to run with,在这里选择 an OSGi framework 的 standard 选项,也就是说建立一个标准的 OSGi Bundle 工程。

    

        输入 Bundle 的相关元数据信息 。

        Plug-inID 指的是 Bundle 的唯一标识,在实际的项目中可以采用类似 java 的包名组织策略来保证标识的唯一性;

        Plug-inVersion 指的是 Bundle 的版本;

        Plug-inName 指的是 Bundle 的更具有意义的名称;

        Plug-inProvider 指的是 Bundle 的提供商;

        ExecutionEnvironment 指的是 Bundle 运行需要的环境;

        然后就是 Activator 部分了,这里填入自己的一个类名就可以了,在工程建立时 Eclipse 会自动建立这个类。

        完成了 Bundle 工程的创建后,在 Package 视图中就可以看到此Bundle的结构。

 

         第二步,完成 Activator 的代码。

         打开默认的Activator.java 代码。

         可以看到Activator 实现了 BundleActivator接口,然后 Activator 中有两个空的方法:start 和 stop,其中,start 方法是在 Bundle被启动的时候调用的,stop 是在 Bundle被停止的时候调用的,下面我们在这两个方法中加入代码。

 

           HelloWorld的例子已经完成了,下面看这个例子的运行效果。

           第三步,运行。

           首先配置一下 HelloWorld 用的运行配置。

           设置 HelloWorld 的 Auto-Start 属性为 false,并且将 Target Platform 中不需要的Bundle 去掉。


         这样就完成了运行配置的设置最后点击“Run”,在 Console中出现“osgi>”提示。这表明已经成功启动了我们的第一个OSGi 应用。

         在 osgi>提示符下输入 ss,然后回车,我们可以看到如下所示的显示。


         可以看到,HelloWorld Bundle 已经被安装并且完成了解析,但是还没有启动。下面我们在osgi> 提示符下输入 start 15(15是bundle的编号),回车,再输入 ss。如下图所示。

 

         我们可以看到输出了“My OSGITest Start!!”,并且通过 ss命令,看到 HelloWorld Bundle 的状态从前面的 RESOVLED 变成了 ACTIVE,说明我们的 HelloWorld Bundle 已经成功启动了。并且在Activator 的 start 方法中加入的输出信息也正确打印出来了。

         接着,我们输入 stop 15,并且再用 ss 命令查看 Bundle 的状态,会得到如下图所示的反馈。


        这个时候 HelloWorld Bundle 已经被停止。我们在 Activator 中加入的输出信息正确地输出在了Console,并且通过 ss 命令看到 HelloWorld Bundle 的状态从刚才的 ACTIVE 变为了 RESOLVED。

 

        这是最简单的一个例子,主要展示了怎样创建一个bundle,并启动和停止。项目中,此bundle是依附于主项目存在的,类似于一个热插拔的插件。这个再后续介绍。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值