欢迎来到天天文库
浏览记录
ID:28565151
大小:641.04 KB
页数:10页
时间:2018-12-11
《equinox_osgi系列之二搭建equinox_osgi核心环境》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1、概述 在上文中讲到,Equinox包括核心框架,标准服务实现,面向J2EE的应用,新的部署更新框架及一些其他的研究方向。本文主要针对Equinox实现的OSGi核心框架及EquinoxOSGi运行环境的搭建过程进行详细讲述。 用户在阅读下文时,应具有基本的Java编程及打包的概念并对OSGi标准的构成有一定的了解,理解OSGi框架及Bundle的概念。2、OSGi核心框架 从OSGi核心框架示意图可以看到,OSGi核心框架主要包括模块层,生命周期层,服务层及安全层组成。完整的OSGi核
2、心框架实现,还包括包管理服务(PackageAdmin)、启动层次服务(StartLevel)、条件许可管理(ConditionalPermissionAdmin)、权限管理(PermissionAdmin)及URL处理服务(URLHandlers)等框架服务。 关于OSGi核心框架的详细介绍请参考OSGi标准规范。3、Equinox的OSGiFramework实现 Equinox的OSGi框架实现包含在org.eclipse.osgi插件项目中。在发布的Eclipse环境中,用户可以在Ecli
3、pse安装目录下的plugins目录中找到该插件。该插件一般以"org.eclipse.osgi_<版本号>.jar"的JAR文件形式打包。由于是从Eclipse3.0以前版本迁移到OSGi核心的缘故,目前的EquinoxOSGi实现中包含的代码非常繁杂。 在org.eclipse.osgi项目源代码中用户可以看到除了OSGi接口及框架实现外,还包括adaptor接口及默认的adaptor(defaultAdaptor),eclipseadaptor(eclipseAdaptor)实现,控制台实现(
4、console),附加服务扩展(supplement),Bundle组件解析(resolver)和BundleJAR文件校验等功能。 在实际使用中,用户使用该Jar文件即可将OSGi框架运行起来(参考下文OSGi运行环境的搭建)。作为一个产品级的应用,往往存在很多系统级的参数可供用户进行配置以调整系统的运行行为而满足不同环境的要求。同样,Equinox运行环境也提供了大量的运行参数以供用户选择配置。配置Equinox运行环境参数的方式主要有两种,一种是使用JVM环境变量;另一种方式是使用Equino
5、x的配置文件(config.ini)。 用户在获取到org.eclipse.osgi_<版本号>.jar文件后,可以尝试以命令行的方式启动该Jar文件。该Jar文件的入库主类是:org.eclipse.core.runtime.adaptor.EclipseStarter。 java-jarorg.eclipse.osgi_3.3.1.R33x_v20070828.jar 用户会发现该程序执行后立即退出,控制台上没有任何
6、输出。这是因为不存在拥有可持续运行的代码功能,框架启动后即退出主线程。下文中,我们会给出OSGi运行环境搭建的详细过程。4、搭建EquinoxOSGi运行环境4.1原始的OSGi环境 从Eclipse官方网站下载EquinoxOSGi框架。将其下载到c:equinox目录中。本文中使用的Equinox版本为3.3.1。直接从命令行运行该jar文件时程序执行后会立即退出,为了更好的了解EquinoxOSGi框架的特点,我们在运行时添加JVM参数"osgi.console"。如下图所示: 执行"j
7、ava-Dosgi.console-jarorg.eclipse.osgi_3.3.1_R33x_v20070828.jar"后,系统给出"osgi>"命令输入提示。输入"ss"命令后回车,用户可以看到上图所示"Frameworkislaunched."的信息。同时,下方显式了系统启动的Bundle列表,id列为该Bundle在OSGi运行环境中的唯一运行标识,State列为该Bundle当前的状态,Bundle列显示了该Bundle组件的SymbolicName。 此时,OSGi框架已经处于运行状
8、态。 EquinoxOSGiConsole提供了很多命令用于与OSGi框架交互,用户可以输入任何非OSGiConsole的内部命令字符,控制太将显示EquinoxConsole提供的所有命令。如下下图所示: 执行"services"命令,用户可以看到当前OSGi框架中发布的所有的服务信息。4.2以运行参数方式向OSGi环境中部署Bundle下载EquinoxSDK,将plugins目录下的org.eclipse.osgi.servi
此文档下载收益归作者所有