`
brandNewUser
  • 浏览: 457021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Equinox容器的搭建

阅读更多

OSGi是基于Java的服务平台的规范,本质是将Java面向对象的开发转向面向组件和服务的开发,具有服务组件模块化,动态加载应用等特点。Equinox 则是Eclipse所使用的OSGi框架,是Eclipse强大的插件体系的基础,是Eclipse著名的PDE开发环境的底层,Eclipse的稳定可靠性也为该框架带来了声誉。

 

EquinoxEclipseRT工程的一部分,为Eclipse提供基于OSGi的运行时环境。从代码的角度来看,Equinox不仅是OSGi R4核心标准规范的实现,它还借助Eclipse环境的一些自身的特点,提供了扩展OSGi R4提供的Bundle,以及运行基于OSGi的系统的基础架构。

 

本篇文章中我们从单个的eclipse入手,提取一个后台以命令行方式运行的Equinox容器。

 

首先,我们需要一个PDE版本的eclipse,这里以eclipse-indigo(3.7)作介绍。在PDE版本的eclipse中所有的插件都是在eclipse/plugins目录下。

 

新建文件夹用于存放所有的equinox容器中的文件,这里命名为equinox-sample-3.7,其中建立configuration(存放容器配置文件)和plugins(存放容器中的所有插件)子文件夹。

 

plugins文件夹中存放所有的系统启动必须的bundle,后续如果想要在这里存放bundle也可以直接放在该目录下,当前系统中所有必须的bundle列表如下:

 

 

 

configuration文件夹中建立config.ini文件,用于启动bundle的基本配置,配置的基本内容如下:

osgi.framework=file\:plugins\org.eclipse.osgi_3.7.2.v20120110-1415.jar
osgi.parentClassloader=ext
eclipse.ignoreApp=true
osgi.noShutdown=true
osgi.clean=true
osgi.console=
org.osgi.framework.system.packages=javax.naming, javax.naming.directory, javax.naming.spi, javax.management, javax.management.loading, javax.management.modelmbean, javax.net, javax.net.ssl, javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.security.auth, javax.security.auth.spi, javax.security.auth.callback, javax.security.auth.login, javax.security.cert, javax.xml.parsers, javax.xml.xpath, javax.xml.transform.sax, javax.xml.transform.dom, javax.xml.namespace, javax.xml.transform, javax.xml.transform.stream, javax.xml.validation, org.xml.sax, org.xml.sax.helpers, org.xml.sax.ext, com.sun.org.apache.xalan.internal, com.sun.org.apache.xalan.internal.res, com.sun.org.apache.xml.internal.utils, com.sun.org.apache.xpath.internal, com.sun.org.apache.xpath.internal.jaxp, com.sun.org.apache.xpath.internal.objects, com.sun.org.apache.xml.internal, org.w3c.dom, org.w3c.dom.traversal, org.w3c.dom.ls, javax.sql, javax.transaction, sun.misc
org.osgi.framework.bootdelegation=*
osgi.bundles.defaultStartLevel=4
osgi.bundles=reference\:file\:org.eclipse.equinox.registry_3.5.101.R37x_v20110810-1611.jar@start,\
reference\:file\:org.eclipse.equinox.common_3.6.0.v20110523.jar@start,\
reference\:file\:org.eclipse.osgi.services_3.3.0.v20110513.jar@start,\
reference\:file\:org.eclipse.equinox.ds_1.3.1.R37x_v20110701.jar@start,\
reference\:file\:org.eclipse.equinox.util_1.0.300.v20110502.jar@start,\
reference\:file\:org.eclipse.equinox.preferences_3.4.2.v20120111-2020.jar@start

 

 

 

其中最重要的配置项就是osgi.bundles,其中定义了引用的bundle文件,以相对路径的方式引用plugins文件夹中的内容;org.osgi.framework.system.packages定义jdk中的扩展jar包,否则在equinox容器运行时会出现找不到对应的这些类似javax开头的class错误。本文中定义的属性都可以在实现bundle中通过System.getProperty获得。

 

建立完成后,我们需要写一下windows下运行的start.bat脚本:

java -jar plugins\org.eclipse.osgi_3.7.2.v20120110-1415.jar -configuration configuration -console -Xms40m -Xmx512m
 

 

 

 

 

以及Linux下运行的shell脚本:

java -jar plugins\org.eclipse.osgi_3.7.2.v20120110-1415.jar -configuration configuration -console -Xms40m -Xmx512m
 

 

具体的环境信息可以查看: https://github.com/clamaa/equinox-sample-3.7

 

windows下进行start.bat脚本的验证:



 

 

此时就可以使用equinox容器的基本命令与容器中的bundle进行操作了。

 

Equinox的控制台的部分基本命令如下(区分大小写):

install [URL] 将URL表示的bundle安装到框架中
uninstall [bundleID] 将id=bundleID的bundle卸载
start [bundleID] 启动一个bundle
stop [bundleID] 停止一个bundle
refresh [bundleID] 刷新bundle
update [bundleID] 更新bundle 的内容
ss 简单显示所有bundle的状态
status 展示安装的bundle和注册的服务
headers [bundleID] 展示bundle 的manifest中的元数据

 

  • 大小: 24 KB
  • 大小: 47.4 KB
分享到:
评论
2 楼 brandNewUser 2014-08-13  
conkeyn 写道
示例中的包为什么不用高版本的?

公司还有人在用eclipse3.6版本,为了版本的兼容性,当前我们只能基于一个低版本的eclipse进行开发 ,高版本应该过程也差不多
1 楼 conkeyn 2014-08-13  
示例中的包为什么不用高版本的?

相关推荐

    osgi基础demo-搭建servlet

    1. **选择OSGi容器**:有多种OSGi容器可供选择,如Apache Felix、Equinox(由Eclipse提供)或Karaf等。这些容器提供了运行和管理OSGi Bundle的基础。 2. **配置容器**:安装并配置选定的OSGi容器,设置相应的配置...

    以 OSGi 包的形式开发和部署 Web 服务

    4. **部署服务包**:将开发好的服务包部署到Equinox容器中。通过这种方式,服务可以直接在容器内运行,也可以通过网络被其他应用调用。 5. **开发Web客户机**:创建一个简单的Web应用程序作为客户机,用于测试和...

    OSGi Web示例工程

    6. **Equinox配置**:设置Equinox容器的配置,包括定义启动时自动启动的bundle,设置日志记录级别,以及配置HTTP服务等。 7. **开发工具**:Eclipse IDE提供了对OSGi开发的良好支持,例如使用PDE(Plug-in ...

    关于OSGI的详细资料

    Eclipse不仅支持Java开发,还内嵌了Equinox OSGi容器,这使得开发和调试OSGi应用变得非常方便。 3. **Equinox**:Equinox是Eclipse自带的OSGi实现,版本同样为3.4.1。它是本教程的主要OSGi容器。 4. **Jetty**:...

    EclipseMavenSpringDM(译文)- 中文版

    - **安装至OSGi容器**:将打包后的服务安装到Equinox OSGi容器中。 - **验证服务运行状态**:检查服务是否成功启动并在容器中正确运行。 #### 第8章 ECLIPSE PDE TRACING 这部分可能涉及如何使用Eclipse PDE进行...

    Spring基础教程

    2. **创建项目目录和ant build文件**:按照前面所述,使用Equinox提供的工具快速搭建项目结构。 3. **编写功能性测试**:通过JUnit或其他测试框架编写测试案例,确保每个功能模块都能按预期工作。 4. **配置...

    OSGI study

    在Windows 8环境下搭建OSGi环境,通常涉及以下步骤: 1. **选择OSGi框架**:目前主流的OSGi框架有Apache Felix、Equinox等。根据具体需求选择合适的框架。 2. **安装OSGi框架**:下载并安装所选框架,例如Apache ...

    spring-dm-osgi整合jar包

    1. **配置OSGi容器**:设置OSGi容器(如Equinox或Felix),并确保其正确运行。 2. **创建OSGi服务**:定义服务接口和实现,并将它们打包为OSGi bundle。 3. **配置Spring DM**:在bundle中包含Spring DM配置文件,...

    Spring 快速入门教程.doc

    你需要创建并配置这个文件,以启动Spring容器并管理应用中的对象。 **4. 设置业务代理和DAO的依赖性** 在Spring中,业务逻辑通常由业务代理(Business Delegates)处理,它们通过依赖注入与数据访问对象(DAO)进行...

    spring快速入门教程

    13. Equinox简介:Equinox是基于Spring框架快速搭建Web应用的工具,它提供了一套预定义的目录结构和Ant构建脚本,极大地方便了基于Struts和Spring的应用开发。 14. 开发步骤概述:教程详细介绍了从下载Struts和...

    Spring初学入门

    - **如何配置Equinox中的Spring**:可能涉及到在OSGi容器(如Equinox)中部署和管理Spring应用。 - **用Hibernate实现UserDAO**:具体展示了如何使用Hibernate实现用户数据访问对象(UserDAO),并与Spring结合。 ...

    Spring 快速入门教程

    使用Equinox搭建项目基础 - **Equinox介绍**:Equinox是一个为开发者提供基本框架的工具,它包含了用于开发Struts-Spring集成项目的目录结构、Ant构建脚本以及必要的jar文件。 - **下载与解压**:从指定网站下载...

    Spring快速入门教程

    5. **集成Spring到Struts程序**:将Spring框架与Struts框架进行集成,使Struts的Action可以通过Spring容器获取业务逻辑组件。 #### 四、具体开发步骤详解 1. **下载Struts和Spring框架**:确保安装了所有必要的...

    spring入门框架

    ### Spring入门框架知识点详解 ...通过以上步骤,我们可以快速地搭建起一个基于Spring、Struts和Hibernate的Web应用程序。这样的架构不仅有助于提升开发效率,还能确保项目的可扩展性和可维护性。

    Spring OSGI 快速入门中文教程

    1. **环境搭建**:首先需要安装一个支持OSGi的运行时环境,如Apache Felix或Equinox,然后配置Spring OSGi容器,如Spring DM(现在已改名为SpringSource dm Server)。 2. **编写bundle**:创建Spring配置文件,定义...

    OSGi learning materials

    它涵盖了OSGi的开发环境搭建,如Eclipse Equinox或Apache Felix等实现。书中通过一系列实例展示了如何创建、打包和部署OSGi模块,以及如何使用OSGi的命令行工具进行管理和调试。此外,还讨论了如何利用OSGi进行服务...

Global site tag (gtag.js) - Google Analytics