OSGi框架有三种开源实现来选择:Apache Felix,Knopflerfish和Equinox。这里写的代码在上面的三个实现任意一个上运行都没问题,只是在启动指令上有一些不同。
在这里使用的是Equinox。
一、环境准备
默认已经安装了Java 1.5以上的开发环境。
1、核心框架
如果链接有问题请访问 http://download.eclipse.org/eclipse/equinox/
- 或者你已经安装了eclipse,那么可以在eclipse的安装目录下的plugins目录中找到org.eclipse.osgi_3.3.1.R33x_v20070828.jar
2、目录设置
在C:/下创建目录 osgi-dev,将 org.eclipse.osgi_3.3.1.R33x_v20070828.jar 复制到 C:/osgi-dev 目录中。
二、与OSGi "第一次接触"
1、最小的OSGi运行环境
在命令提示符下进入C:/osgi-dev 目录,执行以下命令:
>java-console-jarorg.eclipse.osgi_3.3.1.R33x_v20070828.jar
几秒钟,osgi>提示符显示出来。
在osgi>提示符下执行 ss :
显示:
C:osgi-dev>java-console-jarorg.eclipse.osgi_3.3.1.R33x_v20070828.jar
osgi>ss
Frameworkislaunched.
idStateBundle
0ACTIVEorg.eclipse.osgi_3.3.1.R33x_v20070828
osgi>
这是最小的OSGi运行环境:equinox 正在运行!
为了保持命令的简短,将org.eclipse.osgi_3.3.1.R33x_v20070828.jar重新命名为equinox.jar。
>java-jarequinox.jar–console
2、编写Hello World的Bundle
- 在C:/osgi-dev目录下创建一个文件,名为 HelloActivator.java
内容为:
importorg.osgi.framework.*;
publicclassHelloActivatorimplementsBundleActivator{
publicvoidstart(BundleContextcontext){
System.out.println("HelloWorld!");
}
publicvoidstop(BundleContextcontext){
System.out.println("GoodbyeWorld!");
}
}
- 在C:/osgi-dev目录下创建另一个文件,名为 HelloWorld.mf
内容为:
Manifest-Version:1.0
Bundle-Name:HelloWorld
Bundle-Activator:HelloActivator
Bundle-SymbolicName:HelloWorld
Bundle-ClassPath:.
Bundle-Version:1.0.0
Import-Package:org.osgi.framework
osgi>close
退出equinox环境。
>javac-classpathequinox.jarHelloActivator.java
>jar-cfmHelloWorld.jarHelloWorld.mfHelloActivator.class
>java-jarequinox.jar–console
osgi>ss
会发现没什么变化,接下来执行install命令并附带参数:
osgi>installfile:HelloWorld.jar
显示:
Bundleidis1
执行ss命令:
osgi>ss
显示:
Frameworkislaunched.
idStateBundle
0ACTIVEorg.eclipse.osgi_3.3.1.R33x_v20070828
1INSTALLEDHelloWorld_1.0.0
osgi>
执行start 1命令:
osgi>start1
显示:
执行close命令:
osgi>close
显示:
GoodbyeWorld!
至此,完成了一个在OSGi的equinox实现环境下的最简单的bundle。
分享到:
相关推荐
深入理解OSGi:Equinox原理、应用与最佳实践.pdfOSGi应用开发
深入理解OSGi:Equinox原理、应用与最佳实践源代码,同时附带equinox-SDK-3.8源代码。
《深入理解OSGi:Equinox原理、应用与最佳实践》,作者周志明 / 谢小明,本书是原创Java技术图书领域继《深入理解Java虚拟机》后的又一实力之作,也是全球首本基于最新OSGi R5.0规范的著作。
深入理解OSGi:Equinox原理、应用与最佳实践源码
《深入理解OSGi:Equinox原理、应用与最佳实践》一书的附赠光盘
深入理解OSGi:Equinox原理、应用与最佳实践,书本源代码
第三部分:OSGi服务与Equinox应用实践(第5~11章),不仅详细讲解了OSGi服务纲要规范和企业级规范中最常 用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还...
在这一部分里,将会把OSGi技术从理论落地到实践之中,结合目前使用范围最广的OSGi实现Equinox和一个穿插整个部分的完整案例来讲解OSGi技术的使用;第四部分最佳实践,针对开发实践中遇到的具体问题进行分析讲解,...
全面解读OSGi规范,深刻揭示OSGi原理,详细讲解OSGi服务,系统地介绍Equinox框架的用法,并通过源代码分析其工作机制,包含大量可操作性极强的解决方案和最佳实践。
读者将首先了解到如何在 Servlet Container 中嵌入 OSGI,并从文章提供的例子中了了解其工作原理, 并提供一个简单的示例。通过学习了解 Servlet Container 中嵌入 OSGI, 我们也可以将这种技术用到其它的已有的系统...
《深入理解OSGi Equinox原理、应用与最佳实践 》完整版。OSGI相关书籍,非扫描版!!!高清文字版!!!
OSGi and Equinox:Creating Highly Modular Java Systems
如何使用OSGi框架的一个实现——Equinox来教你如何配置一个简单的OSGi开发环境,并且在这个环境上开发一个HelloWorld程序.
春分配置生成器equinox-config-builder是一个用于生成的简单实用程序。 更准确地说,它允许从包含插件和片段列表的“ eclipse”目录中生成osgi.bundles属性。 ##构建状态用法Maven坐标< groupId>...
OSGi与Equinox:创建高度模块化的Java系统》分为四个部分。第一部分主要介绍了OSGi和Equinox,以及OSGi标准的Eclipse实现;第二部分采用非正式教程的方式教给读者如何从零开始构建真实的Toast应用,针对每一个步骤都...
基于 equinox 的 OSGI 运行BUNDLE例子,已包含 ECLIPSE 下的OSGI平台包,按步骤运行即可。 当然,设置JAVA_HOME,及BIN环境变量运行JAVAC 就不用说了 ^-^
equinox
equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip equinox-SDK-3.7.zip