问题标签 [osgi-bundle]
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 - 如何使用 maven bundle 插件在 OSGi 包中包含一个依赖项?
我有一个符合 OSGi 的包(jar),我想在其中添加一个依赖项的 jar。我要添加的依赖是数据库驱动程序。该 jar 不存在于我正在使用的 Karaf 容器的 lib 文件夹中,并且无法手动添加它。我只能访问部署文件夹,我可以在其中部署我的捆绑包。我正在使用 Maven 捆绑插件来打包我的捆绑包。所以,我想知道是否有办法在我的包中添加依赖 jar。目前,我通过在 7zip 中打开包并通过将其复制到 jar 中来添加 jar 来手动将 jar 添加到包中,它工作正常。我尝试使用该<embed-dependency>
标签,但这样做之后捆绑包没有被部署。有什么办法吗?
以下是pom.xml
我要在包中添加的依赖项:
以下是 中的构建标记pom.xml
:
当我尝试部署它时出现以下错误:
aem - 在 osgi 包中使用属性文件
我为我的 CQ5 应用程序创建了一个简单的 OSGi 包。我想从属性文件(常规键值文件)中读取某些属性
我试图将文件放在捆绑包的 /resources 文件夹和外部(在 /etc/designs/ 中),但文件总是无法加载并抛出异常,如下所示:
我想将文件保留在捆绑包之外,以便可以在不更改捆绑包的情况下对其进行编辑
java - osgi容器中的Spring组件扫描损坏
我正在尝试将 spring DI 集成到现有的 jaxws 项目中。我已经在 tomcat 上本地工作了,但是当我部署到远程容器时,它似乎没有进行类路径扫描。我可以在 tomcat 上将我的 @Components 注册为 bean 的日志中看到,但在远程服务器上根本没有提到它们。
我看到的是下面的堆栈跟踪。看起来这取决于我必须使用的古怪 Web 容器。它是“IBM i 的集成应用服务器”。http://www-03.ibm.com/systems/i/software/ias/我相信这是建立在 eclipse 架构上的,当您安装一个 war 文件时,它会将每个应用程序转换为一个包。这很好,但它打破了我的类路径扫描。:(
有人对此有解决方案吗?谢谢
查看引发异常的代码,它正在检查协议是否为 file://。
我可以看到该应用程序已被分解到文件系统中。我想知道是否有办法在春天覆盖这个加载器而不关心协议并且显然仍然有效?我不关心容器的 osgi 特性。我只想部署我的应用程序。
回退似乎是放弃类路径扫描,转而在 xml 中定义 bean,但那是真正的退一步 imo。:(
unit-testing - Sling server side Testing
I have deployed an OSGI bundle which is currently using a running FTP Server import some files , and saved the data in the Resource ( JCR / FS ) as provided . For the time being considering JCR , I have written sling unit test bundle which returns test results after hitting the SlingJunitServlet . What is the best way i can invoke the test bundle from the client side ?
osgi - OSGI 包中 Bundle-Classpath 的预期用例是什么
我试图了解 OSGI 包中 Bundle-Classpath 的预期用例。
这是我的理解,请帮助我理解这是否正确。
假设我正在创建一个 OSGI 包,它将部署在其他包的生态系统中。我正在处理的捆绑包需要一些其他捆绑包,但它们不会在这个生态系统中加载/导出,我无法控制生态系统导出的内容。在这种情况下,我可以将这些包放在某个目录(比如“lib”)中,该目录将成为我的包的一部分。这些包也应该从 Bundle-Classpath 中引用,以便可以加载它们。
- 这是 Bundle-Classpath 的正确用例吗?
- 这些额外的包是否也会加载到 OSGI 容器中,并且由它们导出的包是否可用于其他包?
osgi - 如何处理来自 Bundle-Classpath 上的 jar 的 Import-Package 条目?
我在我的 Bundle-Classpath 上放了几个罐子。下面的行显示了我的 pom.xml 中的条目,它使用 Felix 插件为包创建 manigest.mf。
这些 jar 具有导入包的类,但据我所知,它们都有一个 MANIFEST.MF,它有自己的(准确的)Import-Package 语句列表。
但是,当我构建我的项目(使用 Maven 和捆绑插件)时,它会报告错误,因为它无法解析对某些类的引用。具体错误是:
所有这些错误都来自 com.springsource.org.h2-1.0.71.jar 并且所有这些包都导入到该 jar 的清单中。
我无法理解:
- 为什么 Maven 捆绑插件会抱怨,如果这些包已经在 com.springsource.org.h2-1.0.71.jar 的 MANIFEST>MF 中导入
- 为什么问题仅来自 com.springsource.org.h2-1.0.71.jar ?我尝试删除那个特定的 jar 并且构建顺利进行,即使 com.springsource.org.apache.lucene.search-2.3.2.jar 在它的 MANIFEST.MF 中也有几个 Import-Package 条目?
关于第二点,我做了一些调查,感觉是有规律的。com.springsource.org.apache.lucene.search-2.3.2.jar 在其清单中指定的所有导入都由 com.springsource.org.apache.lucene-2.3.2.jar 满足,这也是指定的在 Bundle-Classpath 上。
com.springsource.org.apache.lucene-2.3.2.jar (在 Bundle-Classpath 上)满足的 com.springsource.org.h2-1.0.71.jar 的依赖项未在但是,错误消息中列出了 Bundle-Classpath 上的 jar 不满足的那些依赖项。
不太确定发生了什么。关于 Bundle-Classpath 上指定的 jar 文件的规则是什么?他们的导入(即使它们在 Import-Package 中指定)是否必须在主项目的 pom 中列出?或者这是 Maven 捆绑插件强制执行的东西?如果是后者,有没有办法摆脱强制执行?
osgi - 如何激活 OSGI 包?
我在 Adobe CQ5 工作。我制作的项目只包含实现,项目名称是 Web Crawler。
这个项目是由一个简单地添加初始种子的类开始的。
我为我的项目制作了 OSGI 捆绑包,我也部署了它。
现在我的问题是如何启动我的捆绑包,即如何添加种子?
为此,我阅读了这个链接,它告诉我制作Activator 类并将您的函数放在start 方法中。我也这样做了。但这并不能帮助我运行捆绑包。
请帮助我如何运行给定的捆绑包。
编辑 1
你能告诉我如何制作给定教程中给出的MANIFEST.MF文件吗?
multithreading - Display.asyncExec() 无法执行?
有 2 个单独的文件 jar
和
Display.asyncExec
当 SWT 浏览器控件执行 javascript 消息对话框时,可以在正常情况下执行方法。
环境:Linux、SWT、OSGi 包
请帮我。
java - 在依赖包重新启动时重新启动依赖的 OSGI 包?
我有实现在另一个包中指定的 API 的 OSGI 包(作为依赖项添加)。有没有办法指定每当重新启动 API 捆绑包时,重新启动实施捆绑包(依赖项)?
java - OSGI 捆绑优先级机制
我有一个使用 OSGI 模型的 java 应用程序:
我有两个预先存在的捆绑包:
- com.mos
- com.login
com.login
具有服务的实现和注册Authenticator
(自己的服务用于身份验证)。com.login
以及com.mos
使用此身份验证服务。
现在我正在编写一个新的包 ( com.new
),我必须添加/修改 Authenticator Service,所以我已经编写了自己的实现。
一旦我启动我的程序/应用程序,如果我的新包com.new
在之后运行,com.login
那么所有包都使用新的Authenticator Service
。但是如果com.new
包在之前运行,com.login
那么旧Authenticator Service
的可用。
有什么机制OSGI
可以让我们优先考虑哪个包应该首先启动。