osgi中的事件通知机制,采用了Publish-Subscribe 的模式,首先所有的event Handler都需要在osgi框架中将自己进行注册成服务接口为org.osgi.service.event.EventHandler的服务,在注册的同时,需要将自己希望处理的处理的事件的topic和对事件进行过滤的filter作为所注册服务的属性,完成这个操作后,event admin Service就能在进行事件通知时,查找到合适EventHandler来处理所发生的事件。
在进行事件的发布时,Event Publisher从osgi框架中获取到event admin Service,需要借助于event admin Service的两个方法来通知event Handler来处理所发生的事件,一个是同步的sendEvent,另一个是异步的postEvent。
event admin Service是如何来选择event Handler?这就要通过event对象了,从event对象的构造器中就可以看出,event对象中包含了event topic和event 的属性,这样event Handler就能对所发生的事件进行过滤选择了,而且能从event的属性中获得event发生的相关信息。
从上面可以看出Event Publisher和event Handler是通过event admin Service联系起来的,event admin Service起了一个通道的作用。由于osgi框架动态的特性,event admin Service就需要确保event Handler选择的合理性,如:不能让bundle接收到自己被STARTED事件,同时也需要确保event Handler在处理同一个线程所发布的event的先后顺序,如:不能先接收到bundle被UNINSTALLED,然后在接收到这个bundle被INSTALLED。
分享到:
相关推荐
探索 OSGi 框架的组件运行机制探索 OSGi 框架的组件运行机制
osgi的消息服务运行时先看下截图中所需的bundle.
针对异构遥感算法服务集成方法在元数据和生命周期管理方面的不足,提出了在OSGi框架下基于LDAP的异构服务调用机制。该机制设计了一个异构服务代理,将异构服务封装为OSGi bundle服务,实现服务生命周期管理,并结合...
内容简介: ClassLoader体系结构 类装载器在JVM中并不是唯一的,JVM自带了三个装载器,用户也可以根据自己的需求自定义新的装载器,这些装载器的体系结构可以看作是树状结构,如图1所示:
OSGI框架实战 一. 序..5 二. 体验OSGI..7 2.1. 需求实现..7 2.2. 技术角度..9 三. OSGI带来什么..11 四. OSGI案例..13 五. OSGI框架..15 5.1. Equinox..15 5.2. Oscar..15 5.3. Knopflerfish..15 六. 基于OSGI框架...
包括OSGI的相关书籍及网页: OSGi R4服务平台核心规范中译本 Spring OSGI入门 modular java OSGI原理与最佳实践 OSGI实战 OSGI进阶 OSGI in action Introduce OSGI ...探索 OSGi 框架的组件运行机制
它是一种替代方案,最终将替代OSGi事件处理,因为在OSGi事件机制中,不能保证交付,但是Sling Jobs确保可以保证交付,并且任何事件最多处理一次。 博客: : 使用RabbitMQ管理队列。 这需要RabbitMQ服务器启动并...
个人网上搜集的osgi开发文档,内涵OSGi_框架的组件运行机制.pdf,osgi规范中文版.pdf,OSGiSIP通信中间件架构设计.pdf,类加载器特技:OSGi代码生成.doc等
构建时依赖项(jar文件)的总大小约为3兆字节,额外的运行时包数为10个OSGi捆绑包(也为jar文件),代表着大约2兆字节,包括所有运行时功能,例如OSGi Web控制台,交互式OSGi Shell,OSGi配置机制以及前端和Servlet...
事件管理服务规范,是 OSGi 概要规范的一部分,它定义了一个通用的插件式通信机制。通信遵循流行的发布/订阅模式,并且可以用同步或异步的方式执行。 发布/订阅通信的主要组件有: 事件发布者(Event Publisher)...
基于osgi平台技术,实现离线系统,文档貌似了离线系统的思想机制。
OSGi框架在国外关注率是很高,但在国内的推广和使用却不够广泛,可能是因为OSGi字面上的意思...本文作者通过对OSGi产生背景与特性的描述像大家详细介绍了OSGi,并通过一个Hello World的实力带您详细了解OSGi的运行机制
不仅详细讲解了OSGi服务纲要规范和企业级规范中最常 用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还通过源码分析了Equinox 关键功能的实现机制和原理。...
凡人的 OSGi 这是我在 NA 2011、EU 2012 和 EU 2014 上的“OSGi ...OSGi shell、OSGi 配置机制和前端以及 servlet 引擎。 我的笔记本电脑的启动时间约为 300 毫秒。 Maven 构建也是如何以简单的方式创建 OSGi 包的有
全面解读OSGi规范,深刻揭示OSGi原理,详细讲解OSGi服务,系统地介绍Equinox框架的用法,并通过源代码分析其工作机制,包含大量可操作性极强的解决方案和最佳实践。
该项目使用了一些代码和库,但不使用任何依赖项解析机制,bnd(run)-文件和存储库,它只是根据pom.xml中指定的工件(作为依赖项)创建了启动器。 。 建造 您可能已经猜到了: mvn install 用法 从OSGi项目的pom...
我发现 Akka 的“让它崩溃”原则和 OSGi 动态特性之间有很好的一致性,更大的 Akka 应用程序可以从 OSGi 模块化机制中受益。 我想将这两种工具结合在一起,事实证明这非常具有挑战性。 然而,结果很有希望 IMO 可以...
可扩展序列化 在 OSGi 中使用 CXF 进行可扩展序列化机制测试
Equinox是OSGI R4的一个实现,Equinox这个项目是由Eclipse 开源组织实现并发布的,也是大名鼎鼎的Java开发工具 Eclipse 的底层机制的实现,如果对Eclipse有点熟悉的话,你就知道Equinox 这个东西是多么的棒了,...
OSGi-weaving-hook-examples OSGi WeavingHooks 示例 - 记录方法调用等 请注意,该代码是使用 Java... 我对字节码操作的经验非常有限,所以示例的那部分可能不是很有趣,但它演示了 OSGi 环境中字节码操作的基本机制。