问题标签 [osgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - osgi:片段在 eclipse pde 之外无法工作(并且没有出现错误)
这个问题的背景:OSGi 和 Eclipse 平台。
我有捆绑(插件),它是一些片段的主机。只有当我通过 Eclipse“运行配置”启动它时,片段才会运行(我在插件的运行配置中将它添加到插件依赖项中),但是当我尝试通过 eclipse 或通过 maven tycho 项目导出它时,片段不起作用。在 osgi 的控制台中,我没有发现任何冲突(osgi 命令 diag )并且片段处于“RESOLVED”状态,这意味着它没问题并且已经启动。方法 IStartup#earlyStartup() 中片段中的断点(这是片段的 afaik 入口点)未激活,osgi 的控制台中没有显示错误...没有...
有什么线索吗?我错过了什么吗?
repository - 如何配置 Felix OBR 存储库列表?
有没有办法在 Felix 的config.properties
文件中指定多个 OBR 存储库?我确实可以在运行时添加一个存储库,但我必须在重新启动后这样做。
“Prefrences Service”没有帮助,似乎“Bundle Repository”没有使用它。
integration - 同化现有应用程序?
我阅读了很多关于富客户端平台和 OSGi 框架的内容,但始终坚持这个问题:是否可以在一个应用程序窗口中同化现有应用程序(基于 java 或基于 win32)?
我的目标是在一个应用程序(使用 Eclipse RCP)中连接不同类型的(现有)应用程序,以提供通用窗口管理器功能(如调整窗口大小等),并通过窗口间通信等增强它。
使用 SWT,可以编写(有点)本地外观的应用程序,并且通过使用 OLE 组件,我可以集成一些功能。我真正想知道的是我是否可以吸收整个窗口并将其整合到其他地方?
重点是...
- 视觉整合和
- 听力方法...
谢谢
java - 远程处理和 OSGi
是否有一种优雅的方式在OSGi 容器 之间或之间使用服务?
甚至可能吗?
例如,假设我在本地机器上有一个服务接口。我可以使用哪些方法/技术来通过远程 OSGi 容器的 BundleContext 访问该服务接口?
java - OSGI 声明式服务 (DS):什么是使用服务组件实例的好方法
我刚刚开始使用 Equinox 和 Eclipse PDE 使用 OSGI 和声明式服务 (DS)。
我有 2 个捆绑包,A 和 B。捆绑包 A 公开了一个由捆绑包 B 使用的组件。两个捆绑包也再次将此服务公开给 OSGI 服务注册表。
到目前为止一切正常,Equinox 正在将组件连接在一起,这意味着 Bundle A 和 Bundle B 由 Equinox 实例化(通过调用默认构造函数),然后使用 bind / unbind 方法进行连接。
现在,由于 Equinox 正在创建这些组件/服务的实例,我想知道获取此实例的最佳方法是什么?
所以假设有没有被 OSGI 实例化的第三类:
我现在看到以下选项:
1. 在 Activator 中使用 ServiceTracker来获取 ComponentBundleA.class.getName() 的服务(我已经尝试过了,它可以工作,但对我来说似乎开销很大)并通过静态工厂方法使其可用
2. 创建某种注册表,其中每个组件在调用 activate() 方法后立即注册。
或者
}
3. 使用 osgi / equinox 中的现有注册表,其中包含这些实例?我的意思是 OSGI 已经在创建实例并将它们连接在一起,所以它已经在某个地方拥有了对象。但是哪里?我怎样才能得到它们?
结论WantsToUseComponentB 类(不是组件,也不是由 OSGI 实例化)从哪里获得 ComponentB 的实例?是否有任何模式或最佳实践?正如我所说,我设法在 Activator 中使用了 ServiceTracker,但我认为没有它也是可能的。
我正在寻找的实际上是类似 Springframework 的 BeanContainer 之类的东西,在这里我可以说类似 Container.getBean(ComponentA.BEAN_NAME) 之类的东西。但我不想使用 Spring DS。
我希望这已经足够清楚了。否则我也可以发布一些源代码来更详细地解释。
谢谢克里斯托夫
更新: 对尼尔评论的回答:
感谢您针对原始版本澄清这个问题,但我认为您仍然需要说明为什么不能通过 DS 之类的东西创建第三类。
嗯不知道。也许有一种方法,但我需要将我的整个框架重构为基于 DS,以便不再有“new MyThirdClass(arg1, arg2)”语句。真的不知道该怎么做,但我在 DS 中读到了一些关于 ComponentFactories 的内容。所以而不是做一个
我可能会做一个
在撰写本文时,我并不确切知道如何使用 ComponentFactories 但这应该是某种伪代码 :)
谢谢克里斯托夫
java - 开始使用 osgi + felix
我需要哪些Felix软件包才能开始使用?下载页面上有数不胜数的。
(ps 这个名字是对 Odd Couple + 的引用,与 OSGI 的“Oscar”参考框架形成对比?这是我在阅读了其中一个教程页面后想到的,我从中得到了笑声。)
java - 使用 XML 解析器实现作为 OSGi 服务
我正在使用 OSGi(Equinox 平台)开发一个应用程序,其中一个包需要解析 XML 文件。到目前为止,我使用 SAX (javax.xml.parsers.SAXParserFactory) 实现了这个,我想从平台检索 SAXParserFactory。
我看到 OSGi 标准提供了一个 XMLParserActivator 以允许 JAXP 实现自己注册(http://www.osgi.org/javadoc/r4v41/org/osgi/util/xml/XMLParserActivator.html),所以我的猜测是应该是一些将 SAXParserFactory 作为服务提供的包。
但是,我无法确定要添加哪个包作为依赖项才能找到提供 SAXParserFactory 的服务。我尝试使用检索服务引用
鉴于 XML 解析是一件相当常见的事情,我想有可用的实现或其他方式从平台获取 XML 解析器服务。
非常欢迎任何帮助!
maven-2 - 在 pom.xml 中使用 Maven 插件运行 pax
如何使用可以在文件中指定的Maven 插件执行Pax-Runner任务?pom.xml
即我可以使用 Pax-Runner 在命令行中执行以下操作(将战争文件转换为 OSGi 包)
我应该怎么做才能让它在 pom.xml 文件中发生?
提前致谢!
java - OSGi 的盈亏平衡点
似乎 OSGi 是近来的热门词汇。调用了许多好处:
- 降低复杂性
- 重用
- 易于部署
- 版本控制
(ETC)
我要求一个非常具体的用例 -中小型 Web 应用程序。OSGi 会给这些带来什么好处?这真的值得吗?