`
michales003
  • 浏览: 405219 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

OSGI的bundle监听类

 
阅读更多
http://blog.csdn.net/lfsf802/article/details/19773533

近忙于产品的报警功能,采用的是esper的java事件处理框架来实现的这个功能,关于esper的介绍参照前面对esper介绍的博客。

       那么如果利用OSGI的功能和epser框架集成呢?

       其实在OSGI中有这样一个BundleLinstener类,就是用这个类来进行集成的,首先在OSGI其实是有两个BundleListener类的一个是同步的一个是异步的,其中BundleListener是异步的,而SynchronousBundleListener是异步的。

       两个类都可以监听bundle的installed, resolved, starting, started, stopping, stopped, updated,unresolved,  uninstalled时的事件。

       这样就可以了,这时候可以自定一个listener接口,并且实现一个changeBundle方法,就可以监听到bundle的各个状态,通过getType方法来获得bundle的状态,如果是2就是bundle启动的状态。

      具体代码为,

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
public class AlarmBundleListener implements BundleListener { 
 
    @Override 
    public void bundleChanged(BundleEvent event) { 
         
        System.out.println(event.getType()); 
        System.out.println("-------------------------------"+event.getBundle().getSymbolicName()); 
    } 
 


      这时候就可以在bundle开启的时候进行报警引擎的开启,也就是在之前epser博客中介绍的引擎开启的代码。并且将所有的报警的EPL语句进行监听,如果报警信息进入esper引擎并且符合EPL的语句我们就可以进行相应的报警的业务处理了。
分享到:
评论

相关推荐

    OSGI bundle change listener

    `OSGI bundle change listener`是指用于监听OSGi环境中bundle状态变化的机制。 在OSGi框架中,bundle的状态可以是`INSTALLED`、`RESOLVED`、`STARTING`、`ACTIVE`、`STOPPING`或`UNINSTALLED`。开发者通常需要知道...

    osgi helloworld

    在OSGi环境中,每个bundle都有自己的类加载器,这使得bundle可以加载自己特有的类库,而不会与系统中的其他bundle冲突。同时,OSGi提供了动态性,允许bundle在运行时安装、启动、更新或停止,这对于软件的维护和升级...

    基于Eclipse开发OSGI的简单实例

    OSGi的核心是模块化,每个模块称为一个Bundle,它包含类、资源和元数据。每个Bundle都是自包含的,可以独立运行。OSGi框架负责管理这些Bundle的生命周期,包括启动、停止、更新和卸载。此外,OSGi提供服务注册和查找...

    利用felix和struts2实现osgi web

    - 结构原理:Web容器注册Struts OSGi监听器,监听器控制Apache Felix Host,Felix Host启动和管理Felix Framework,而Struts OSGi Plugin监听bundle的变化,当检测到Struts bundle时,加载相应的Struts配置。...

    基于OSGi的 webbundle

    **基于OSGi的Web Bundle详解** 在Java世界中,OSGi(Open Service Gateway Initiative)是一种模块化系统和Java服务框架,它允许动态地部署、发现、依赖管理和卸载软件组件。OSGi的核心概念是Bundle,它类似于Java...

    基于gemini的blueprint(原生是Spring DM)实现对bundle生命周期的监听

    在实际开发中,`listener-test`这个文件可能是一个测试用例,用于验证你所实现的bundle监听器是否能够正确地接收到并处理bundle生命周期事件。测试通常会模拟不同的bundle状态变化,然后检查监听器的方法是否被正确...

    OSGi in Practice 完整版

    类空间一致性是OSGi中一个重要的概念,它确保了bundle之间的类加载不会产生冲突。“使用”约束则用于指定一个bundle必须依赖的其他bundle。 #### 四、服务介绍 **4.1 Java中的后期绑定** 后期绑定是指在运行时...

    OSGI-Jetty示例,Java源码,很得劲

    首先,理解OSGI的关键在于其模块化系统,每个模块称为一个bundle,它们有自己的类加载器,可以独立加载和运行。这种设计使得OSGI能够实现动态依赖管理和版本控制,为开发者提供了更细粒度的控制和更高的灵活性。 ...

    OSGI 经典实例,入门

    OSGI框架由一组称为"bundle"的模块组成,每个bundle都是一个自包含的Java程序单元,包含类、资源以及元数据。这些bundle可以通过导出和导入包来声明它们提供的服务和依赖的服务。这种模块化设计使得开发者能够轻松地...

    OSGI 开发文档中文的

    1. **OSGI基本概念**:包括bundle、服务、生命周期(启动、停止、暂停、更新和卸载)以及类加载器的工作原理。理解这些概念是使用OSGI的基础。 2. **模块化系统**:OSGI如何实现模块化,如何定义模块间的依赖关系,...

    OSGI简单示例

    - **包管理和依赖解析**:每个bundle都有自己的类加载器,负责加载自身的类,并通过OSGI框架请求其他bundle的类。理解如何声明和管理依赖关系至关重要。 - **服务**:OSGI服务是模块间通信的主要方式。理解如何注册...

    很久之前的osgi整理

    服务注册在OSGi服务注册表中,通过监听服务事件,Bundle可以动态地发现和使用服务,增加了软件组件之间的交互能力。 4. **生命周期管理**: OSGi提供了完整的生命周期管理API,包括安装(install)、启动(start)...

    OSGi实战 实例源代码

    5. **事件机制**:OSGi框架提供了一个事件模型,允许Bundle监听和响应其他Bundle或框架事件,如服务的添加、修改和删除。 6. **动态模块更新**:OSGi允许在不中断服务的情况下更新Bundle,这对于持续集成和热修复...

    OSGI常用通信实例

    每个bundle都有自己的类路径,并且可以独立加载、启动、停止和卸载,这使得系统具有高度的灵活性和可扩展性。 2. C++与OSGI的结合: 尽管OSGI最初设计用于Java,但通过使用C++的OSGI绑定库,如CppMicroServices或...

    osgi集成servlet在karaf容器发布

    1. **创建Servlet Bundle**:首先,我们需要创建一个OSGi Bundle,包含Servlet类。这可以通过使用Maven的BND插件或者使用Apache Felix的Maven Bundle Plugin实现。在bundle的MANIFEST.MF文件中,需要声明Servlet的类...

    OSGI相关

    5. **事件机制**:当Bundle的状态改变或服务注册/注销时,OSGI会发布相应的事件,允许其他模块监听并作出响应。 **三、OSGI在实际开发中的应用** 1. **大型项目模块化**:OSGI可以帮助大型项目实现模块化,每个...

    org.osgi.core-4.2.0

    3. **生命周期管理**:OSGi 提供了启动、停止、更新和卸载 Bundle 的控制,使得应用程序可以在运行时动态地添加或移除模块。 现在,让我们详细探讨 OSGi Core 4.2.0 版本的关键特性: **1. Bundle 生命周期**: -...

    OSGi_with_Eclipse_Equinox_-_Tutorial

    创建一个OSGi bundle涉及到几个步骤:创建、编码、运行和导出。 **4.1 创建** 首先,在Eclipse IDE中创建一个新的OSGi bundle项目。 **4.2 编码** 接着,编写bundle的代码。这可能包括实现服务接口、定义服务类...

    OSGi 入门+进阶+实战

    1. **模块系统**:OSGi的核心是模块化,每个模块称为一个Bundle,它包含类、资源和元数据。Bundle之间通过导出和导入包来实现依赖关系。 2. **生命周期管理**:OSGi Bundle有启动、停止、安装、更新和卸载等状态,...

    OSGI规范(中文版)

    5. **包解析**:OSGI规范定义了一种机制,使得bundle可以在运行时解析和访问其他bundle提供的类和资源,而无需将所有代码打包到单个大 jar 文件中。 6. **安全模型**:OSGI提供了细粒度的安全控制,允许管理员为每...

Global site tag (gtag.js) - Google Analytics