基于Eclipse Mars.2的OSGi环境搭建

来源:互联网 发布:libx264安装 linux 编辑:程序博客网 时间:2024/06/06 04:31

OSGi的基本组件就是形形色色的bundle,在网上看了很多的资料,很多的博文里面介绍的仍然是基于比较老版本的OSGi bundle的环境搭建配置,现在就最新版本的具体环境的改变做一下的阐述。

1.最基本的环境配置

如果下载的Eclipse版本是Mars.2的话,你会发现里面的osgi bundle的版本是3.10.102,按照老的说法只需要这一个bundle就能启动最小的OSGi环境显然已经不行了,要正在启动起来还需要其他四个bundle,他们是org.apache.felix.gogo.command,org.apache.felix.gogo.shell,org.apache.felix.gogo.runtime,org.eclipse.equinox.console,四者缺一不可。

osgi> ss
"Framework is launched."

id State       Bundle
0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700
1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
2 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
3 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
4 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406
osgi>

2.Spring DM的环境设置(不含WEB)

Spring DM 下载地址:spring-osgi-2.0.0.M1-with-dependencies


需要的基础bundle 有:

osgi> ss
"Framework is launched."


id State       Bundle
0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700
1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
2 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
3 ACTIVE      org.springframework.osgi.io_2.0.0.M1
4 ACTIVE      org.springframework.osgi.extender_2.0.0.M1
5 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
6 ACTIVE      org.springframework.osgi.core_2.0.0.M1
7 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406
19 ACTIVE      org.apache.commons.logging_1.1.1.v201101211721
20 ACTIVE      org.springframework.beans_3.0.0.RC1
21 ACTIVE      com.springsource.org.aopalliance_1.0.0
24 ACTIVE      org.springframework.context.support_3.0.0.RC1
25 ACTIVE      org.springframework.aop_3.0.0.RC1
47 ACTIVE      org.springframework.asm_3.0.0.RC1
48 ACTIVE      org.springframework.core_3.0.0.RC1
49 ACTIVE      org.springframework.context_3.0.0.RC1
50 ACTIVE      org.springframework.expression_3.0.0.RC1

简单的使用方法就是新建一个Java Work Set,将上面有关Spring的bundle 都以Plugins and Fragments 导入(右击 import-》)

需要注意的是这边有个比较恶心的事情org.springframework.context是,需要手动更改org.springframework.core中的MANIFEST.MF 将import packages中的org.springframework.asm properties里面的optional钩去掉。同样的org.springframework.context也需要将org.springframework.expression optional钩去掉。

否则在写好xml 自动注入的时候会报错。

3.Spring DM的环境设置(含WEB)

除了2里面所需要的bundle外还需要额外的五个:org.springframework.osgi.catalina.start.osgi,org.springframework.osgi.catalina.osgi,org.springframework.osgi.web.extender,org.springframework.osgi.web,javax.servlet.前四个需要import,最后一个直接在run configuration里面添加。

这里面需要注意的是,由于org.springframework.osgi.catalina.start.osgi是依赖于org.springframework.osgi.catalina.osgi,直接run的话会报错,这里有需要手动改org.springframework.osgi.catalina.osgi里面的MANIFEST.MF文件将import package里面的javax.servlet以及javax.servlet.http改成非optional而将java.servlet.resources改成optional。然后重新run,无报错:

osgi> ss
"Framework is launched."

id State       Bundle
0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700
1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
2 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
3 ACTIVE      org.springframework.osgi.io_2.0.0.M1
4 ACTIVE      org.springframework.osgi.extender_2.0.0.M1
5 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
6 ACTIVE      org.springframework.osgi.core_2.0.0.M1
7 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406
19 ACTIVE      org.apache.commons.logging_1.1.1.v201101211721
20 ACTIVE      org.springframework.beans_3.0.0.RC1
21 ACTIVE      com.springsource.org.aopalliance_1.0.0
24 ACTIVE      org.springframework.context.support_3.0.0.RC1
25 ACTIVE      org.springframework.aop_3.0.0.RC1
47 ACTIVE      org.springframework.asm_3.0.0.RC1
48 ACTIVE      org.springframework.core_3.0.0.RC1
49 ACTIVE      org.springframework.context_3.0.0.RC1
50 ACTIVE      org.springframework.expression_3.0.0.RC1
51 ACTIVE      org.springframework.osgi.catalina.start.osgi_1.0.0
52 ACTIVE      org.springframework.osgi.catalina.osgi_5.5.23.SNAPSHOT
53 ACTIVE      org.springframework.osgi.web.extender_2.0.0.M1
54 ACTIVE      org.springframework.osgi.web_2.0.0.M1
55 ACTIVE      javax.servlet_3.1.0.v201410161800




0 0
原创粉丝点击