OSGI
文章平均质量分 62
Rosen_Luo
这个作者很懒,什么都没留下…
展开
-
OSGI(Felix)项目开发和持续集成流程
一.本机开发在JIRA接受开发任务,在开发者设备(本机)的IDE(推荐使用纯Eclipse3.7及以上,不推荐使用MyEclipse,要求必须安装maven和maven的Eclipse插件),创建Java-Maven项目。编辑pom.xml,确保使用maven-bundle-plugin生成OSGI插件项目。开发功能代码。本部门OSGI插件项目的命名规则初步约定如下:com.ailk.ca原创 2015-08-10 14:43:45 · 1944 阅读 · 0 评论 -
一个服务接口的多个实现的选择
OSGI中使用接口来定义服务,所以每个服务理论上都是可以有多个不同的实现。在这种情况下,如果不做任何指定,Felix框架在通过ServiceReference获取服务对象时,会返回其中一个服务实现。具体Felix如何选择多个实现中的一个,算法尚不明确。但是我们程序中不能指望这个不确定的服务实现,所以必须通过某种方法,指定需要的服务实现。具体方法有一下几种:1.在代码中通过调用context原创 2015-08-10 14:55:59 · 2148 阅读 · 0 评论 -
OSGI中引用外部包的几种方法
在JAVA程序中,用到外部包中的类几乎是必然的事情,在OSGI和MAVEN环境下,引用外部包的方法总结如下:1.java.开头的包,是JDK提供了,代码中直接import。2.org.osgi开头的(包括core、compendium等),是osgi规范提供的,已经包含在osgi框架(Felix)中,开发时需要导入,但是发布程序中不需要包含,由Felix提供,实现方法是添加scop原创 2015-08-10 14:41:23 · 9633 阅读 · 1 评论 -
使用脚本批量执行GOGO命令
FELIX框架自带了GOGO shell,提供命令行,用于OSGI框架和插件的操作。可以使用source filename.tsl的命令,来批量执行编写在filename.tsl文件中的多个命令,方便了多个命令的重复执行。尝试写了一个install.tsl,目的是在启动felix后,把我们自己开发的插件安装好,内容如下:echo refresh local obrr原创 2015-08-10 14:47:11 · 1307 阅读 · 0 评论 -
插件启动顺序控制
在使用obr的时候,用deploy -s命令部署和启动插件,如果一个插件有依赖的插件,felix可以自动计算出来并部署启动所依赖的插件,这样保证了被依赖的启动,由于使用了ipojo,可以自动注入依赖的服务,并启动那些一开始依赖不满足而未启动的pojo,这样就可以在不用特别关注插件启动顺序的情况下,确保所有插件正确启动了。但是在开发groovy插件时,碰到一个情况,就是groovy插件pom原创 2015-08-10 14:54:04 · 1570 阅读 · 0 评论 -
使用BND工具把普通JAR变成OSGI插件
我们自己开发的插件可以使用maven-bundle-plugin来实现插件打包,特别是MENIFEST.MF文件的创建。很多第三方资源jar包已经包含了OSGI信息,可以直接当作插件运行。但是还是有很多必须用到的第三方JAR在MENIFEST.MF中没有插件信息,不能直接在FELIX中运行。虽然我们可以通过把这些jar嵌入到我们自己的插件项目中来使用,但是这样还是不太方便,因为我们仅仅是使用这些j原创 2015-08-10 14:40:00 · 2643 阅读 · 0 评论