
OSGi
文章平均质量分 69
Snoopy7713
这个作者很懒,什么都没留下…
展开
-
Eclipse 启动,从EclipseStarter开始
郑重声明:本文是个人的笔记,不一定适用阁下,不过并不介意你阅读。 我一直对Eclipse的架构很感兴趣,很想知道它怎样利用OSGI框架来加载和管理各个插件(OSGI称为Bundle),听起来实现的过程不简单,但我还是决定记录一下其中的细节,所以如果我有什么理解不正确的地方,请提醒我。 Eclipse提供了一个本地可运行方式来启动...原创 2011-04-30 11:35:32 · 345 阅读 · 0 评论 -
OSGi简介
OSGi(Open Service Gateway Initiative)有双重含义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务(业务)规范——OSGi服务平台(Service Platform)。 OSGi Alliance是一个由Sun Microsystems、IBM、爱立信等于1999年3月成立的开放的标准化组织,最初名为Co...原创 2011-02-01 13:40:47 · 137 阅读 · 0 评论 -
OSGi控制台命令
分类命令 含义 控制框架launch 启动框架 shutdown 停止框架 close 关闭、退出框架 exit 立即退出,相当于 Syst...原创 2011-06-21 12:43:04 · 276 阅读 · 0 评论 -
OSGI整合FLEX
一、目标1、可以将flex编译产生的*.swf、*.as、*.css、图片等资源文件按模块分开打包,最后将这些资源发布成web服务2、可以将实现按模块分bundle二、普通方式下的flex实现此处,采用flex的amf协议1、web.xml文件从web.xml中的servlet可以看出,由flex.messaging.MessageBrokerServlet来处理amf协议...原创 2011-07-11 16:24:40 · 122 阅读 · 0 评论 -
OSGI StartLevel explained and using 启动级别机制和使用
OSGI StartLevel explained and using 启动级别机制和使用bundle startlevel实际的应用环境中,我们的 bundle 互相有一定的依赖关系,所以在启动的顺序上要有所区别,好比盖楼,要从打地基开始。实际上,OSGi 框架最初的 start level 是 0,启动顺序如下:将启动级别加一,如果发现有匹配的 bundle(即...原创 2011-10-14 12:51:13 · 196 阅读 · 0 评论 -
三种特殊形式的Bundle
三种特殊形式的Bundle Require Bundles Require Bundle其实不能算什么特殊形式的Bundle,它只是可以直接被其他Bundle通过Require-Bundle来使用的Bundle。 如果使用了Require-Bundle,那么就可以使用该Bundle中所有的资源文件和export的package。 Fragment Bu...原创 2011-10-14 12:52:08 · 146 阅读 · 0 评论 -
一些会导致Bundle安装失败的原因
Bundle-RequiredExecutionEnvironment中的值和可用的执行环境不符; 缺少Bundle-SymbolicName; 重复的导入同一个package; 导出或导入java.*; 导出的package中必须的属性未定义; 安装一个已经安装了的同版本、同样标识名的Bundle; 更新...原创 2011-10-14 12:52:49 · 248 阅读 · 0 评论 -
OSGi介绍
OSGI简介 OSGI (Open Service Gateway Initiative)联盟成立于1999 年,它是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,是开放业务网关的发起者。OSGI联盟的初始目标是构建一个在广域网和局域网或设备上展开业务的基础平台,对OSGI 的最早设计也是针对嵌入式应用的,诸如机顶盒、服务网关...原创 2011-10-14 12:53:55 · 110 阅读 · 0 评论 -
OSGi入门
借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅认识记录如下,由于自己对J2EE比较熟悉,所以借助与J2EE的对比来认识OSGi。ModuleOSGi中具体实现Module的单位是bundle,一个bundle就是一个jar文件,其中包含所需的类文件和资源文件,同时必须包含一个描述文件;每个bundle都可以被独立打包、部署。看到这里,你是否会觉得跟J2EE中的WAR定义很类...原创 2011-10-14 13:02:32 · 104 阅读 · 0 评论 -
equinox 声明式服务包的功能
org.eclipse.equinox.ds //提供SCR功能org.eclipse.equinox.util // ds的依赖org.eclipse.osgi.services //osgi各种服务api原创 2011-10-17 15:11:01 · 148 阅读 · 0 评论 -
OSGI学习手册
1 概述本文是关于OSGI学习的一些资源介绍, 基本的脉络是按照自己的学习进程来的, 希望对进入OSGI学习的人有所启发。 本人具备的学习基础有:1. Java RCP开发经验, 这个并不是必须, 实质上学习的顺序反而是先OSGI,后RCP...原创 2011-10-20 09:40:03 · 107 阅读 · 0 评论 -
基于OSGi的声明式服务
1. 引言 OSGi(Open Services Gateway Initiative)有双重定义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务规范——OSGi服务平台。OSGi Alliance是一个由Sun Microsystems、IBM、爱立信等于1999年3月成立的开放的标准化组织。该组织及其标准原本目的在于使服务提供商通过住...原创 2011-10-28 13:37:58 · 295 阅读 · 0 评论 -
OSGi框架
分为了二个层次,分别为核心层和扩展层。核心层实现核心机制,扩展层提供基本能力,详细架构请见附件图片。 微内核集成框架及一体化管理平台需要制定哪些规范?Jonas如何进行部署?SpringDM对OSGI有哪些扩展?议题1:微内核集成框架及一体化管理平台需要制定哪些规范? 分别提出了7个规范需要制定,分别为:日志规范编程规范开...原创 2011-12-29 08:20:15 · 149 阅读 · 0 评论 -
karaf分析
从四个方面对karf进行了分析,分别为karaf的环境变量、启动级别、karaf中出现的新概念和核心技术。karaf涉及两个环境变量,分别为KARAF_HOME和KARAF_BASE,KARAF_HOME目录下存放的是启动karaf的必需文件,目录结构如下所示:lib目录中包含三个文件,分别为karaf.jar、karaf-client.jar和karaf-jaas-boot....原创 2011-12-29 08:20:35 · 366 阅读 · 0 评论 -
group id及artifact id命名规则
group id及artifact id命名规则术语定义:只需要一个工程的就能完成工作模块称为子模块,如loong-utils需要几个工程才能完成工作的模块称为子项目,如loong-deployment和loong-commandartifact id统一用“loong-”做前缀,并连接模块的英文名,如loong-deployment。当模块英文名由两个或两个以...原创 2011-12-29 08:22:49 · 2570 阅读 · 0 评论 -
OSGi 清单选项
Manifest-Version: 1.0Bundle-Name: %nameBundle-SymbolicName: org.eclipse.pde.ui; singleton:=trueBundle-Version: 3.1.0Bundle-ClassPath: org.eclipse.pde.ui_3.1.0.jarBundle-Activator: org.eclips...原创 2011-12-30 08:25:27 · 118 阅读 · 0 评论 -
OSGi放弃了Snapshot提议
OSGi联盟最近发布了OSGi R5的预览文档。在这个即将发布的规范里,最令人期待的功能之一是鉴于SNAPSHOT对现有工具的影响,规范去掉了SNAPSHOT风格的版本:与现有工具、管理和配置系统之间的交互很让人担心。这些系统处理不了带有预发布(也就是SNAPSHOT)版本字符串的Bundle。它们要做很多修改才能正确处理预发布版本的语法。 问题的根源在于,Maven(以及与Mav...原创 2012-04-23 13:21:09 · 124 阅读 · 0 评论 -
OSGI中的service依赖关系管理
众所周知,对于高动态高可扩展的应用,OSGI是一个非常好的平台。但是,也因此增加了复杂性,开发中对service的依赖变得复杂。这也是service的关系管理成为OSGI中一个非常重要的部分,我们来看看OSGI中service依赖关系管理的方式。篇幅原因,只关注发展历程,不具体介绍每个方式的详细实现细节。 概括的说,目前在OSGI中主要有以下几种service依赖关系...原创 2012-01-26 19:02:30 · 159 阅读 · 0 评论 -
OSGi各层之间的交互关系
此图说明了OSGi各层之间的交互关系。非常清晰。OSGi的层次架构图原创 2012-01-26 19:21:29 · 198 阅读 · 0 评论 -
OSGI入门:Bundles之间的相互依赖性
在我们上次的课程中,我们学习了如何启动和停止一个bundle,以及它们在框架内是如何相互交互的和它们的生命周期。但是bundle真正为了什么(这样翻译对吗)? 每一个bundle是一个模块,它们允许我们将一个完整的项目切分成管理块,这样可以在OSGi运行的时候,加载进去。问题是无论我们是否喜欢,各个模块之间总是存在依赖性。在老式的jar文件中,从来没有一种可...原创 2012-01-26 19:22:37 · 225 阅读 · 0 评论 -
OSGi 规范
规范下载请参考附件核心规范 英文 中文版1 中文版2企业级规范原创 2012-01-30 08:24:51 · 93 阅读 · 0 评论 -
初探 OSGi
初探 OSGi 第一次接触OSGi 是2006年看见的一则网上新闻,该新闻中提到BMW 汽车的通信-娱乐(infotainment)系统采用了OSGi 架构,这套系统主要用来控制汽车上的音箱、灯光、导航和通讯等设备,整 个系统由1000多个模块组成,启动时间却只需要3.5秒钟,这对于一个基于Java 的框架来讲,具有两个重大意义:一、说明了Java...原创 2012-01-30 08:25:27 · 171 阅读 · 0 评论 -
无废话OSGi
原来看过一遍文章,叫无废话AOP,想用尽量少的词语将AOP表述清楚是一件很有挑战的事情。我在刚开始接触OSGi的时候,也没有找到一篇文章能够非常清楚、精确的描述出什么是OSGi。在一年多时间里,我一直在脑子里问自己这个问题,随着OSGi.NET项目取得一些进展后,我对这个问题有了比较清楚的认识(当然,不能100%保证没有问题,一定还有待进一步研究的,我在前文《OSGi——面向服务架...原创 2012-01-30 08:25:38 · 95 阅读 · 0 评论 -
OSGi日志
理想的日志解决方案应该能够满足:1. 能够兼容已有日志输出的方式2. 对osgi环境没有强制的依赖3. 每个bundle能够自行决定默认的日志输出级别4. 通过osgi的admin service能够动态改变每个bundle日志输出的级别 我不仅捕获log4j日志还捕获使用JDK的一些bundles的日志,因此需要jul-to-slf4j-1.5.10....原创 2011-11-07 16:03:40 · 234 阅读 · 0 评论 -
几种OSGI bundle的打包方法及注意事项
前言:我相信做基于OSGI框架开发的朋友,对于OSGI的基本单元Bundle应该并不陌生,平时的开发中,做得最多事情就是bundle的开发和打包了,打包其实属于蛮重要的一个过程,为什么说他重要呢,其实打包的过程就是一个理清bundle依赖关系的过程,在对OSGI的学习和使用过程中,个人觉得最令人头痛的就是bundle之间的依赖关系,而且我到现在为止还没有找到一种比较好的工具能够很好的管理O...原创 2011-11-07 17:31:38 · 491 阅读 · 0 评论 -
OSGi到底给我们带来了什么[附PPT和Demo]
OSGi到底给我们带来了什么[附PPT和Demo] 2011-01-10 14:23 by 道法自然, 1906 visits, 收藏,...原创 2012-01-31 10:58:33 · 159 阅读 · 0 评论 -
在eclipse中调试Felix
因为正看一个基于Felix的开源程序,今天搭配了Felix的开发环境。 如何利用Eclipse调试Felix bundle,在Felix的网站上有介绍。可见网址http://felix.apache.org/site/integrating-felix-with-eclipse.html。另外,在《OSGi原理与最佳实践》上也有关于搭...原创 2011-11-08 08:13:09 · 229 阅读 · 0 评论 -
基于OSGi的软件构件化方法
1 引言当今软件系统复杂性不断增加并且对动态性提出了更高的要求,大型软件项目通常采用构件模型和构件化技术提高系统的可扩展性、易理解性和可重用性。Java技术通过JAR文件、包和命名空间以及类加载机制对基于构件模型的构件化设计开发提供支持,但存在着缺乏动态性、依赖声明、版本控制和信息隐藏等问题[1]。面向服务构件模型将服务计算引入到构...原创 2011-11-08 08:15:11 · 394 阅读 · 0 评论 -
基于CORBA的OSGi分布式扩展
一、引言随着网络技术和Internet的快速发展,软件运行从封闭、静态的主机/桌面逐步走向开放、多变的分布环境[1]。由于OSGi技术最初定位于嵌入式领域,进程间通信需要较为丰富的计算资源,因此OSGi规范只为单个Java虚拟机内的Java应用提供了一个高度动态和设计良好的构件运行环境。OSGi的动态性、模块化和面向服务的特性...原创 2011-11-08 08:17:44 · 185 阅读 · 0 评论 -
基于OSGi的声明式服务
1. 引言 OSGi(Open Services Gateway Initiative)有双重定义。一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务规范——OSGi服务平台。OSGi Alliance是一个由Sun Microsystems、IBM、爱立信等于199...原创 2011-11-08 08:18:51 · 131 阅读 · 0 评论 -
Loong基础平台介绍
一、引言OSGI (Open Service Gateway Initiative)联盟成立于1999 年,是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,是开放业务网关的发起者。OSGI联盟的初始目标是构建一个连接在广域网和局域网上的设备开展业务的基础平台,对OSGi的最早设计也是针对嵌入式应用的,诸如机顶盒...原创 2011-11-08 08:19:51 · 323 阅读 · 0 评论 -
OSGI学习手册
1 概述本文是关于OSGI学习的一些资源介绍, 基本的脉络是按照自己的学习进程来的, 希望对进入OSGI学习的人有所启发。 本人具备的学习基础有:1. Java RCP开发经验, 这个并不是必须, 实质上学习的顺序反而是先OSGI,后RCP...原创 2011-11-09 14:45:26 · 94 阅读 · 0 评论 -
Bnd - Bundle Tool
Bnd - Bundle Tool 介绍BND工具可用于创建符合OSGi R4规范的Bundle和检测Jar文件是否符合OSGi R4规范。其主要功能有: 显示Bundle的manifest信息和其所包含的Jar文件; 将Jar文件打包为Bundle; 按照OSGi R4规范把类路径下的文件打包为OSGi Bundle; 检测Bundl...原创 2011-11-09 14:46:22 · 211 阅读 · 0 评论 -
Bnd - Bundle Tool中文使用手册
在Play OSGi中提及到了Bnd是个非常有用的东西,既然是个好东西,就介绍给大家用,在得到了Peter的授权下,我把这篇使用手册翻译成了中文,大家感兴趣的话可以到这里看看:http://www.aqute.biz/Code/BndCn,同时也会提供一个PDF的版本供大家下载,PDF版本下载地址为:http://www.blogjava.net/Files/BlueDavy/Bnd.zip...原创 2011-11-09 14:46:38 · 657 阅读 · 0 评论 -
4大 Java OSGi 框架比较 (Knopflerfish, Apache Felix, Equinox, Spring DM)
OSGi正在成为一种趋势,越来越多的项目采用了OSGi,越来越多的中间件都开始采取了OSGi的标准。身为一名Java开发人员,如果你还对OSGi结构一无所知,那你真的有点Out了。 什么是OSGi OSGi的名称来源于其开源组织的名称Open Services Gateway initiative,OSGi是一个标准,它致力于提供给Java项目一个模块化...原创 2011-11-09 14:46:58 · 170 阅读 · 0 评论 -
OSGi一小步
网上有很多介绍osgi概念的文章,有兴趣的同学可以去google一下.这里写一个简单的例子,记录自己的学习历程,也希望对初学osgi的同学有所帮助.osgi强调模块化与服务化,我们可以在不重启Java虚拟机的情况下切换一个服务的实现,达到动态更新目的.与spring不同的是,osgi可以动态绑定服务的实现,而Spring容器一旦启动就无法更改服务的实现,要想改变服务的实现,只有重新配置sp...原创 2011-11-10 10:59:14 · 144 阅读 · 0 评论 -
OSGi一小步–声明式服务
OSGi声明式服务是个好东西,有点依赖注入的味道,开发人员以配置的方式去注册或引用服务,你不需要为注册服务而单独写一个BundleActivator了,省去手工注册的繁琐。下面写一个例子改造上一篇代码的运行方式。改造hello.service.consumer去掉HelloServiceConsumer对BundleActivator的实现,变成一个非常普通的java类,部分代码如...原创 2011-11-10 10:59:26 · 273 阅读 · 0 评论 -
OSGi一小步-快速启动Equinox
把写好的bundle加载到equinox中,有以下几种方法通过基本的install命令把bundle一个个装载进去在config.ini文件中配置需要装载的bundle,当equinox启动时会自动装载通过配置org.eclipse.update.configurator bundle自动加载你的bundle前两种方法装一两个还行,当你的bundle很多时,生活就无趣了,第三种...原创 2011-11-10 10:59:35 · 192 阅读 · 0 评论 -
osgi一小步–开发流程与学习方法
学习OSGi有一段时间了,对OSGi项目的开发流程与学习方法做个小总结,也算是自己的学习心得吧,供自己日后学习与参考。OSGi项目开发流程工程建立方式基于eclipse plugin的maven工程这种工程被eclipse原生支持,可以通过eclipse向导页创建插件工程,通过mvn命令也可以为工程加入插件的nature,但生成后的工程有可能需要手动处理依赖关系。公司里...原创 2011-11-10 10:59:45 · 147 阅读 · 0 评论 -
Loong声明式服务使用方法
使用loong的webconsolebundle-plugin打包项目中的资源文件<plugin> <groupId>org.trustie.loong.modules.loong-webconsole</groupId> <artifactId>loong-webconsolebundle-plugin</artifact...2011-11-11 17:23:13 · 249 阅读 · 0 评论