Intellij Idea 9是个原生支持OSGI的IDE, 不需要在额外安装插件.
最简约的步骤:(以Apache Felix为例)
1. 下载Felix 发布包
http://felix.apache.org/site/downloads.cgi 中 下载 Felix Framework Distribution
3.0.x ,解压到一个目录中
2. 在Intellij 中添加 Felix目录
Settings --> OSGI --> IDE Settings --> Framework Defininations: 选择 类型为 Felix, 然后浏览选中Felix 的解压目录, 就添加成功了.
3. 创建一个Project, 当然也创建一个Module
在module属性右键添加 OSGI支持
在module依赖设置中添加 Osmorc自动生成的Felix库 作为本模块的依赖.
4. 创建一个类
1 package com.selftest.osgi;
2
3 import org.osgi.framework.BundleActivator;
4 import org.osgi.framework.BundleContext;
5
6 public class HelloWorldActivator implements BundleActivator
7 {
8 public void start(BundleContext bundleContext) throws Exception
9 {
10 System.out.println("Hello World Bundle started!");
11 }
12
13 public void stop(BundleContext bundleContext) throws Exception
14 {
15 System.out.println("Hello World Bundle stop!");
16 }
17 }
18
4. 在module 的属性OSGI中, 设置 Bundle Activator为
HelloWorldActivator , 名字自己随意填写一个.
5. 新建一个 Configuration来测试 OSGI Bundle
- "ADD" 刚刚创建的模块,
- 选中 "Start OSGI Console"
- Run time directory: recreate each time 最简单
- 自动启动 随意选择
6. 启动测试
启动, 经过"漫长"的等待, 界面出来了. 如果你选择了"Start OSGI Console" 则可以命令行交互.
输入help可以查看所有命令, 输入ps可以查看所有启动的bundle.
start, stop 加上相应id即可 启动/停止一个组件.