乱凑的一个osgi的demo

  有网友问我有没有osgi的demo,于是将前段时间给朋友的一个例子拿来整理了一下。

首先,这个demo是在karaf下运行的,项目由三个bundle组成,会涉及自定义的console命令,服务的发布和引用。

项目为maven项目,为方便构建,将三个bundle项目作为一个父项目下的三个子项目。项目经mvn package构建后,在三个子项目的target文件夹下分别生成了Calculator-1.0.jar、AddModule-1.0.jar、SubModule-1.0.jar三个bundle,这三个bundle分别为:

1、Calculator bundle,负责处理console输入的命令;
2、AddModule bundle,负责提供计算加法的服务;
3、SubModule bundle,负责提供计算减法的服务;

到http://karaf.apache.org下载karaf后,解压,将三个bundle复制到在<karaf-root>/deploy下,运行<karaf-root>/bin/karaf.bat(或karaf.sh)启动karaf,输入list,可以看到三个bundle状态均为ACTIVE,而且blueprint也是CREATE的状态。

这时就可以输入

Java代码 复制代码 收藏代码
  1. karaf> calc:add 1 2
  2. 1 + 2 = 3
  3. karaf> calc:sub 10 3
  4. 10 - 3 = 7
    karaf> calc:add 1 2
    1 + 2 = 3
    karaf> calc:sub 10 3
    10 - 3 = 7



可尝试停了AddModule或SubModule后,输入以上命令,看结果如何。 

你可能感兴趣的:(的)