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

rcp 中使用osgi的事件通信

 
阅读更多

osgi的通信代码

 

 

发布事件

BundleContext ctx = FrameworkUtil.getBundle(this.getClass())

.getBundleContext();

ServiceReference<EventAdmin> ref = ctx.getServiceReference(EventAdmin.class);

EventAdmin eventAdmin = ctx.getService(ref);

Map<String, Object> properties = new HashMap<String, Object>();

properties.put("DATA", new Date());

Event event = new Event("viewcommunication/syncEvent", properties);

eventAdmin.sendEvent(event);

event = new Event("viewcommunication/asyncEvent", properties);

eventAdmin.postEvent(event);

 

 

 

监听(订阅)事件

EventHandler handler = new EventHandler() {

public void handleEvent(final Event event) {

Date  date=(Date) event.getProperty("DATA");

System.out.println("dfdfdfdf"+date);

}

};

Dictionary<String, String> properties = new Hashtable<String, String>();

properties.put(EventConstants.EVENT_TOPIC, "viewcommunication/*");

ctx.registerService(EventHandler.class, handler, properties);

 

在rcp中使用这种方式需要注意的就是:

 org.eclipse.osgi.services;bundle-version="3.3.0",

 org.eclipse.equinox.event;bundle-version="1.2.100"

这两个插件必须依赖

其中 org.eclipse.equinox.event 必须为自动加载

 

分享到:
评论

相关推荐

    RCP,RCP开发

    在RCP中,OSGI作为底层的模块化框架,为RCP提供了动态加载和管理插件的能力。开发者可以通过创建OSGI Bundle来构建RCP插件,这些插件可以在运行时被RCP框架动态加载和卸载。这种结合使得RCP应用具备了高度的灵活性和...

    OSGI的消息机制及注册服务

    在OSGI框架中,bundle之间的通信主要通过服务事件和服务引用来实现。服务事件允许bundle监听其他bundle提供的服务的变化,例如服务的注册、修改或注销。这些事件可以被感兴趣的bundle订阅,以便在服务状态改变时采取...

    RCP 开发实例 源码

    - **事件(Event)**:RCP使用事件驱动模型,组件通过监听和触发事件进行通信。 - **扩展点(Extension Point)**:允许插件之间进行扩展和集成,定义了其他插件可以插入的地方。 - **服务(Service)**:插件...

    基于eclipse RCP实现的邮件管理客户端rcpmail

    6. **服务(Services)**: RCP使用OSGi服务来提供组件间的通信。例如,邮件同步服务可能负责定期检查服务器上的新邮件,而认证服务则处理登录和授权。 7. **扩展点(Extension Points)**: RCP的可扩展性主要通过...

    OSGi 入门+进阶+实战

    5. **故障排查**:学习如何使用日志、诊断工具和调试技巧来定位和解决OSGi应用中的问题。 6. **性能优化**:理解OSGi的内存管理和线程模型,对系统进行性能调优,提高运行效率。 通过深入学习和实践,你可以掌握...

    RCP开发实例

    总的来说,RCP 开发实例涉及到了使用 Eclipse RCP 构建桌面应用的全过程,包括设计组件化的用户界面、编写插件代码、利用 OSGi 进行模块化管理,以及使用 Eclipse PDE 进行开发和调试。虽然具体的博文链接不可用,但...

    RCP程序设计

    8. **事件和服务(Services)**:RCP提供了丰富的事件系统和服务接口,允许插件之间进行通信和协作。事件机制使得插件可以响应其他插件的行为,而服务则提供了共享数据和功能的方式。 9. **国际化(i18n)与本地化...

    rcp工程的描述

    RCP使用扩展点(Extension Points)和扩展(Extensions)机制来实现插件之间的通信和集成。扩展点定义了插件可以提供的服务或功能,而其他插件可以通过声明对这些扩展点的扩展来使用这些服务。例如,一个插件可以...

    osgi4.2 规范

    例如,OSGi企业规范可能包含如何利用JMS(Java Message Service)来实现异步通信,或者如何使用EJB(Enterprise JavaBeans)和JPA(Java Persistence API)在OSGi环境中进行持久化操作。 在学习这些文档时,开发者...

    Eclipse RCP工程包(内附抽取的场景重现)

    7. **事件处理**:在Eclipse RCP中,事件驱动编程是常见的,理解如何正确处理事件和广播事件是关键。 8. **插件更新**:如何实现插件的动态更新,使得用户能够在不重启应用的情况下获取新功能或修复。 综上所述,...

    Eclipse RCP 初级入门教程

    为了确保RCP应用的性能,需要考虑内存管理和线程管理,合理使用事件模型,以及避免不必要的计算和渲染。 **10. 持续学习和进阶** 掌握RCP的基础只是第一步,更深入的学习包括使用MDI(多文档界面)、SWT/JFace高级...

    eclipse插件开发: rcp/swt相关资料

    在Eclipse插件开发中,RCP和SWT结合使用,使得开发者能够利用Eclipse的强大功能和SWT的高效性能来创建功能丰富的桌面应用程序。以下是一些关键知识点: 1. **插件体系结构**:Eclipse插件基于OSGi框架,每个插件都...

    eclipse-rcp开发培训PPT

    使用SWT(Standard Widget Toolkit)和JFace库来创建用户界面,利用OSGi服务实现插件间通信。 5. **配置与部署**:配置插件之间的依赖,打包成可执行的RCP应用,通过配置文件控制启动参数和应用行为。 6. **测试与...

    使用Equinox开发OSGI应用程序工程及源码

    9. **部署与打包**:最后,我们需要将OSGi应用打包成RCP(Rich Client Platform)应用或者部署到服务器环境。Eclipse的PDE(Plug-in Development Environment)工具可以协助完成这个过程。 总之,通过学习和实践...

    一个简单的RCP入门教程

    在本教程中,我们将深入探讨如何使用RCP进行开发,通过一个简单的实例来开启你的RCP之旅。 首先,理解RCP的核心概念至关重要。**RCP应用**是由多个插件组成的,每个插件负责特定的功能。这些插件可以互相协作,共享...

    rcp editor实例的项目代码2

    6. **事件(Events)**:Eclipse使用事件模型来处理组件间的通信。开发者可以通过注册监听器(如`IPropertyChangeListener`)来响应各种工作台事件,例如文件改变或用户界面状态的更新。 7. **扩展点(Extension ...

    Eclipse RCP 应用系统开发方法与实战 源代码

    RCP利用OSGi服务来管理和动态加载这些插件。源代码中可能包括了如何创建基本的RCP项目,定义插件结构,以及配置manifest.mf文件的示例。 2. **视图(Views)和编辑器(Editors)** 视图是显示特定信息或提供交互...

    osgi进阶

    - **远程服务**:了解OSGi Remote Services,它允许bundle在不同OSGi框架之间通信,实现跨容器的服务交互。 - **事件和回调**:学习如何使用OSGi事件模型,当某个事件发生时,bundle可以注册监听器接收通知。 OSGi...

    RCP形式转换成插件形式

    而插件则是RCP框架中的独立功能单元,它们通过OSGi服务进行交互,可以单独安装、更新或卸载,增强了软件的灵活性和可维护性。 **转换步骤:** 1. **分析现有RCP项目**:首先要了解当前RCP项目的结构,包括各个组件...

    OSGi原理与实践

    1. **Spring框架**:Spring支持OSGi,可以使用OSGi Bundle作为Spring的bean容器,实现模块化和依赖注入。 2. **Hibernate**:通过OSGi,可以实现Hibernate的动态加载和升级,便于数据库访问的管理。 3. **Eclipse ...

Global site tag (gtag.js) - Google Analytics