declarative-services相关内容
在我当前的应用程序中,我在几个地方遇到了这种模式:我在单个包中有两个服务接口,它们执行不同但相关的工作。 interface Service1 { ... } interface Service2 { ... } 并希望让单例组件同时实现这两个组件,但发现每个组件都需要对另一个组件的引用: public class Service1Impl implements Service1
..
我最近偶然发现 OSGi 中的声明式服务可以将组件的配置设置为 required 以便组件在激活时接收它,消除了组件激活和配置之间的差距.我还意识到您可以通过 modified 方法接收配置更新. 在我看来,此功能与通过实现 ManagedService 接口并将其发布为您提供的“服务"之一所提供的功能非常相似. 似乎我可以完全忽略 ManagedService &只需使用 DS 配置
..
假设我使用OSGi声明式服务,并且我有一个服务,该服务的数字引用的策略为dynamic ... A-强制性一元制。 B-强制一元。 C-强制倍数。 D-可选一元。 E-可选倍数。 在我的服务启动时,所有引用均可用。 有什么方法可以控制调用绑定的顺序吗? 我想让B首先绑定并对每个传入的E进行操作,但我无法确保B在E之前绑定。 是的,更合理的方法是让代
..
鉴于这种情况: 捆绑A:组件1A(启用:false) 套件B:组件2B 如何从捆绑软件B或组件2B中启用组件1A? 我试图通过使用componentContext来做到这一点, dsContext.enableComponent("1A"); 但它似乎仅适用于同一捆绑包中的服务. 解决方案 您正在使用一种用于管理的机制,似乎您想在应用程序级别使用它.声明式服务应
..
我有一个为Apache Karaf 4.0.5开发的组件.但是,事实证明,它需要部署在基于较旧版本的Felix的glassfish 4上.我在尝试部署它时收到此消息: missing requirement [319.0] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))
..
在阅读文章之后在参考目标(以及相应的属性),当在运行时设置了target 时,我仍然不了解如何检索服务(通常目标和属性是在编译时设置,并在运行时由SCR进行评估. 假设有三种服务实现分别定义了@Property(name="type", value="csv"),@Property(name="type", value="xls")和@Property(name="type", value=
..
这是我获得OSGi服务的方式: ServiceReference reference = bundleContext.getServiceReference(Foo.class.getName()); Foo foo=(Foo) bundleContext.getService(reference); 完成服务后,如果不执行bunldeContext.ungetSerivice(ref
..
是否可以使用某种api添加声明式服务? 一些背景: 我有一个基于动态脚本的服务器应用程序(可以随时添加,编辑或删除它们). 这些脚本具有对OSGi服务的依赖关系,并且可能相互依赖.每当脚本获得 编辑后,该脚本将编译为javascript,并检测到其依赖性. 那时候,我想(重新)将其注册为声明性服务,因此它将在其启用时被激活/停用. 依赖来来去去. 这有可能吗?还是我缺少主要
..
是否可以找到或确定与声明式服务的服务绑定顺序?我的问题是我的OSGI中有一个运行日志记录的服务以及其他服务.现在,我的组件将绑定此日志记录服务和其他几个服务.每当服务绑定或未绑定时,我都想写一条日志消息.但是,如果将服务A绑定到我的日志记录服务之前,则无法写入A的日志条目. 我可以以某种方式配置绑定顺序吗?我读过有关将服务的绑定策略设置为“静态"的信息,该策略应确保首先绑定此服务.但这不是我
..
我编写了一个OSGi捆绑包,以在eclipse 4 rcp应用程序中使用它.如果我添加依赖项,将这些服务注册到激活器中,然后将其注入到我的类中,则该服务的用法可以正常工作. 在激活器中 IUserService service = new TestUserService(); context.registerService(IUserService.class.getName(), s
..
假设您有一个带有各种视图的eclipse插件,这些视图应显示来自某些OSGi捆绑软件的数据,该捆绑将数据推送到视图.我有一个中间的Facade类,而不是让每个视图都与OSGi包进行通信,而是充当了视图的黑板并管理视图与其他OSGi包之间的通信-就是这样. 之所以出现此问题,是因为ui捆绑包(包括Views和Facade)使用声明式服务与另一个捆绑包(称为DataStore)进行通信.由于数据
..
在netbeans中,嵌入式felix不支持DS.如何在Netbeans中的嵌入式felix中添加Felix服务组件运行时. 解决方案 声明式服务由称为SCR(服务组件运行时)的普通捆绑包实现.只需安装该捆绑包即可!在Felix下载页面上查找SCR: http://felix.apache.org/downloads.cgi
..
我正在使用Apache Felix,Declarative Services和Maven编写基于OSGI的桌面应用程序.它将使用JavaFX,所以我也使用 Drombler FX . 在我开发的捆绑软件中,我想使用适当的日志记录机制,并且我目前正在尝试制作 网上的字眼是Everit的 osgi-loglistener-slf4j 将完成此任务,并且–足够肯定–在已激活,日志输出将显示在控制台
..
我正在迁移OSGi(Equinox)和Pax-web上运行的现有GWT应用程序,以使用声明式服务而不是程序化服务跟踪器。我使用的是Equinox中的Pax-Web。基于WAR的GWT应用程序没有被PAX-WEB War extender加载,但是你不能在这个模式操作中使用声明式服务。 我成功地重构了所有servlet并将它们转换为声明式OSGi服务(
..
给定使用服务的消费者,消费者如何使用陈述性服务来动态选择特定提供商? 示例 Service.java public interface Service { public void do (); } Provider1.java public class Provider1 implements Service { @Override p
..
我有需要在每个配置基础上创建的服务,每个服务依赖于外部资源,因此应该管理其自己的lifcycle(即(注销)服务)。因此,实现这些作为DS和让SCR产生多个实例不起作用。 可以实现注册ManagedServiceFactory的bundle来完美完成这个任务(参见
..
我最近偶然发现,OSGi中的声明式服务可以将组件的配置设置为必需,以便组件在激活时接收它,消除组件激活和配置之间的差距。我也意识到这一点,你可以通过修改方法接收配置更新。 此功能与通过实现 ManagedService 界面并作为您提供的“服务”之一提供的功能非常相似。 看起来我完全可以忽略 ManagedService &只需使用DS配置注入。 这些技术之一比其他技术更受欢迎还
..