Java iPOJO和组件iPOJO之间的连接
我有一个关于我的问题的例子。(联合档案:) 我有3个ipojo组件(3个包):Java iPOJO和组件iPOJO之间的连接,java,ipojo,Java,Ipojo,我有一个关于我的问题的例子。(联合档案:) 我有3个ipojo组件(3个包): CallHello使用在HelloDelay或HelloComponentReplace中实现的DelayService服务 HelloDelay和HelloComponentReplace使用在HelloPrint中实现的HelloService服务 在部署时,我部署了5个捆绑包: service.hello.service.jar printer.hello.printer.jar delay.hello.
- CallHello使用在HelloDelay或HelloComponentReplace中实现的DelayService服务
- HelloDelay和HelloComponentReplace使用在HelloPrint中实现的HelloService服务
- service.hello.service.jar
- printer.hello.printer.jar
- delay.hello.delay.jar
- replace.hello.replace.jar
- call.hello.call.jar
- 我在Main.java中实现了一个启动/停止或卸载/安装捆绑包的功能(它运行良好)。但是,HelloDelay或HelloComponentReplace都是有效的
- 如果两者都是有效的,我在iPOJO网站上阅读,我可以使用“comparator”。但我不明白如何应用“比较器”来控制上面两个组件之间的选择。这是为了改变优先级吗?我知道我们可以更改捆绑包的优先级,但我不知道如何应用于我的文件(Main.java)和iPOJO
- 我们能否控制一个需要的组件和多个提供组件(相同的服务或接口)之间的连接(绑定)
非常感谢,您可以使用拦截器操纵服务绑定:
使用拦截器,您可以隐藏服务和/或对服务提供程序进行排序,以强制执行您要使用的提供程序。谢谢您的回复。我可以将这个拦截器实现为一个独立的组件,动态控制服务绑定操作吗?我在网上读了你们的链接和例子,我不明白拦截器是如何影响现有捆绑包的(对于需要捆绑包服务的变更)。在这方面,拦截器是独立的组件,因此它们可以独立于应用程序进行开发和部署。他们使用“目标”属性以“服务依赖项”为目标。此属性是一个LDAP筛选器,用于选择要处理的依赖项。例如:(dependency.id=foo)选择id为foo的依赖项,而(dependency.specification=org.acme.foo)选择需要org.acme.foo服务接口的所有依赖项。