OSGI环境中 ,可以通过BundleContext 来获取环境中的bundle, 对bundle我们可以进行start,stop,uninstall,update; 安装可以通过bundleContext.install(路径);来安装; 但插件没有提供refresh的方法,在运行中的bundle通过update操作可能不会更新,安装补丁后,也需要刷新宿主,这样通过程序来控制得特殊处理;实际上提供了refresh方法,但比较不好找而已;
首先在你的Activator 中实现ServiceTrackerCustomizer接口
public class Activator implements BundleActivator, ServiceTrackerCustomizer {
private ServiceTracker packageAdminTracker;
private static PackageAdmin packageAdmin;
private static BundleContext context;
public static BundleContext getContext() {
return context;
}
public static PackageAdmin getPackageAdminInstance() {
return packageAdmin;
}
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
Activator.resumePluginRegistry = new ArrayList();
packageAdminTracker = new ServiceTracker(context, PackageAdmin.class.getName(), this);
packageAdminTracker.open();
}
public void stop(BundleContext bundleContext) throws Exception {
packageAdminTracker.close();
packageAdminTracker = null;
}
public Object addingService(ServiceReference reference) {
synchronized (Activator.class) {
packageAdmin = (PackageAdmin) context.getService(reference);
}
return packageAdmin;
}
public void modifiedService(ServiceReference reference, Object service) {
}
public void removedService(ServiceReference reference, Object service) {
synchronized (Activator.class) {
context.ungetService(reference);
packageAdmin = null;
}
}
}
实现一个跟踪器,这样在程序中可以通过
Activator.getPackageAdminInstance().refreshPackages(new Bundle[] { bundle });
来更新你的要更新的插件
分享到:
相关推荐
osgi插件化开发流程
OSGI 实例 eclipse 插件开发
解答如何基于OSGi怎么来设计/实现/部署/测试项目和产品
开放工厂向您提供了规范化的OSGi.NET插件框架和可复用的插件仓库,通过插件仓库来解决应用系统的持续集成、远程管理、自动更新、敏捷发布,无缝实现开发/QA/运维间无缝协作,并允许您将自定义的插件共享。 插件仓库...
从osgi的介绍,作用,功能,搭建到osgi实例
该界面框架是在ModernUI(http://mui.codeplex.com/)基础上开发的非常现代、漂亮的通用界面框架,通过简单的配置,您可以将自定义的功能注册到页面。...使用的OSGi.NET插件 欢迎感兴趣的用户下载研究
Apache Taverna OSGi 插件系统 基于 OSGi 的插件系统,包括在线更新。 为 Apache Taverna 编写,可能适用于任何基于 OSGi 的命令行/桌面产品。
漂亮的WPF界面框架(OSGi.NET插件)源码 源码描述: 该界面框架是非常现代、漂亮的通用界面框架,通过简单的配置,您可以将自定义的功能注册到页面。它支持三级菜单、支持更换皮肤和字体调整。 使用的OSGi.NET插件 ...
OSGI.net WPF
OSGi.NET插件框架的设计原理和应用
OSGI 整合 Flex 原创, 介绍了Flex跟Java通讯。...Flex集成到OSGI插件里面, 怎么调试插件里面的Flex,非常详细。 我花了2天时间才写完。 Flex整合OSGI讲解材料,包含PPT,word版详尽使用手册和源代码。
很好的osgi入门学习资料 ,详细的实战说明和基础知识描述
动态化模块化框架,可热插拔子模块插件,定义了应用程序的生命周期模式和服务注册。只支持VS2017或以下的版本
Eclipse 3.0采用OSGI作为其插件体系结构
仿Outlook风格界面框架,想要界面优美的,不可错过。
想多前沿技术了解的朋友,一定要看哦.
给出了可用插件bridge和一个可用osgi例子,可以帮助学习osgi的同学学习部署osgi程序到tomcat中。
仿Outlook风格界面框架(OSGi.NET插件)源码 源码描述: 通用WinForm界面框架插件是一个通用的仿Outlook风格的通用界面框架,它为您提供了导航栏和内容区域扩展,支持换肤功能。
ICON UK 的 OSGi 插件演示 一个简单的 OSGi 插件,显示 如何包含第三方 jar 文件 如何从 Util 方法调用它 如何包含来自faces-config的内容 如何创建一个基本组件
osgi+vs2010+qt5.11 谢了几个 常用的 插件之间的 通信实例,内有源代码