问题标签 [bnd]
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.
eclipse-plugin - “uses”和“Import-Package”之间的不一致
我正在使用 bndMANIFEST.MF
为库生成。最后,我得到了一个带有以下冲突的清单:
包A
, B
,C
都驻留在单独的插件中,也称为A
,B
和C
. 在运行时,Eclipse 不加载 plugin C
,所以我遇到了崩溃。此外,Eclipse 工具似乎只查看 . Import-Package
,因为该工具也不知道对C
.
是否应该Import-Package
始终包含uses
声明中的所有包?它是一个 Eclipse 错误,还是(更有可能)我对 bnd 做错了什么,导致它错过了对 C 的依赖?
java - 如何正确启动和关闭 OSGi 容器?
我制作了一个包含 Activator 文件的包,该文件基本上按正确的顺序启动其他包。我需要这个,因为框架会在它们的依赖项完成启动之前启动一些包。例如,取决于我的日志服务的我的包将在它之前启动,因此不会为这些包存储日志消息。有了这个激活器,我可以选择谁先开始,因为在felix中没有明确的方法来做到这一点。
代码在这里:
这就是我在 felix 的 bundle/ 文件夹中组织我的包的方式。
请注意,lumina.launcher-1.0.0-SNAPSHOT.jar是我的 Activator 所在的位置,并且是 felix 自动启动的唯一包。
顺便说一句,这很好用,不知道是否有更聪明的方法来做到这一点。所以上面代码的想法是按以下顺序从每个目录启动所有包:第三方、共享组件、lumina、webconsole 和插件。
另一方面,当我在 OSGi 容器运行时在终端中点击 ^C 时,它开始一个接一个地停止所有包。这没关系,但日志服务是第一个停止的捆绑包之一,我希望它成为最后一个捆绑包之一。有没有办法设置 OSGi 容器关闭时停止捆绑的顺序?
谢谢!
osgi - bndtools 教程中运行时没有 DS
我关注 bndtools 教程。在第 5 步,我应该在运行时看到 9 个捆绑包,包括 DS 捆绑包。
相反,我只得到这些捆绑包,并且 ExampleComponent 不提供 Greetings 服务:
有人知道我在这里做错了什么吗?
我使用 Eclipse Luna 版本:Luna Service Release 2 (4.4.2)
java - OSGi 功能:有效时间:解决 vs 活跃
一个能力应该在什么时候有一个有效的时间“解决”,什么时候“活跃”?
您何时希望在解析资源时忽略功能?你希望他们什么时候得到尊重?
http://bnd.bndtools.org/chapters/230-manifest-annotations.html
https://osgi.org/javadoc/r6/core/org/osgi/resource/Namespace.html#EFFECTIVE_ACTIVE
eclipse - 是否可以将 bnd 与 maven-bundle-plugin 一起使用来生成 eclipse 功能?
我正在使用 maven-bundle-plugin 为 Eclipse 生成插件。现在我需要生成 Eclipse 功能。我怎样才能实现它?
我不想为此使用 PDE。
gradle - 使用 bndtools 部署到 OSGi 容器?
我有一个使用 gradle 和 bnd 插件构建的多捆绑项目。依赖管理是通过bnd。我能够在 Eclipse 中启动和运行我的包。
我想知道通过 bnd 的正确部署工作流程是什么。该release
任务将我所有的包放在一个发布存储库中——我只是使用了一个 filerepo——所以我将所有可部署的包放在一个文件夹中。
- 如何收集正确的依赖项?有 bnd/gradle 任务吗?
- 使用 Jenkins 进行 CI 构建,如何部署到远程 karaf 或 virgo 容器?
java - 是否可以使用 maven-bundle-plugin (bnd) 生成 plugin.xml
我知道 maven-bundle-plugin 中的 bnd 使用 POM first 方法来构建 Eclipse 插件。
这是我宁愿而不是使用 Tycho 和 MANIFEST 第一种方法。但是我的插件还需要该plugin.xml
文件来定义扩展点。
是否有可能使用 maven-bundle-plugin 或 bnd 来生成这个文件?
osgi - osgi (bndtools) 中的 Restlet 包无法启动。激活程序错误 com/sun/net/httpserver/HttpHandler
我正在迁移到bndtools一些我创建并在标准 Eclipse 环境中工作的 osgi 插件。我添加了Felix Web Console和Jetty HTTP Service ,并用Felix等价物 替换了一些Equinox捆绑包。
当我运行一个需要org.restlet.jar的特定包时,该包会解析但不会激活。控制台输出是:
____________________________ 欢迎使用 Apache Felix Gogo
G!2015-05-25 00:06:33.471:INFO:oejs.Server:jetty-7.xy-SNAPSHOT 2015-05-25 00:06:33.545:INFO:oejsh.ContextHandler:started oejsServletContextHandler{/,null} 2015- 05-25 00:06:33.620:INFO:oejs.AbstractConnector:开始 SelectChannelConnector@0.0.0.0:8080 !无法启动捆绑包 org.restlet-2.3.2.v20150501-1520,异常激活器错误 com/sun/net/httpserver/HttpHandler 来自:org.restlet.engine.Engine:registerDefaultConnectors#839
我已经尝试过基于其他问题的解决方案,即这个建议设置运行属性org.osgi.framework.system.packages.extra = com.sun.net.httpserver
(大概在我的 bndtools .bnd 文件中)的解决方案,以及另一个建议使用框架侦听器激活Restlet应用程序的解决方案——但这些不适用于我,和控制台输出是一样的。
我仍在学习,我将不胜感激任何导致解决方案的帮助,或者关于bndtools或Eclipse可能提供的任何方法或功能的提示,以帮助我追踪其原因。
顺便说一句,Felix Web Console正在工作,作为同一个插件的必需捆绑包。
这是我的 bndtools 配置:
java - 为什么 bnd 计算我的捆绑包需要可选服务(*、0..n、ReferenceCardinality.MULTIPLE)?
我的包定义了一个接口,以及一个使用该接口实现来调用它们的组件(如果存在一些......)。
一个很好的类比是 LogService;如果存在一个(或多个),则使用消息调用它们。
这是我的 DS 声明:
所以我希望我的包能够在有或没有该服务实现的情况下进行部署。
然而,这就是日食给我的:
为什么?这根本不是要求!这显然是可选的。
我发现这张票似乎在谈论这个问题,但不清楚为什么它被关闭了。如票证中所述,我将此添加到我的 bnd.bnd 中:
-resolve.effective: 活跃;skip:="osgi.service"
java - 在 osgi 框架中使用阿司匹林发送邮件
我正在尝试发送带有附件的电子邮件,而不使用第 3 方邮件服务器(如 smtp.gmail.com)。
基础/准备
在这个线程中,我按照建议先构造 MimeMessage,然后通过myMailQue.queMail(msg);
.
它在测试包中工作正常。我在终端上得到以下输出:
邮件在几秒钟后到达。
问题
当我尝试在我的 OSGi 框架 (felix) 中使用它时,不会发送任何邮件。没有任何异常或任何其他信息打印,即使是上面提到的输出!
我找不到 aspirin-jar 的捆绑版本,所以我自己用 bnd 转换了它。像这样:
我的测试
在我的捆绑文件夹中使用转换后的 jar,没有接线包问题,所以它应该可以工作吗?问题示例:
我调用queMail(msg)
的代码能够调用阿司匹林包的其他方法。例如,我在myMailQue.getQueueSize()
前后调用一次函数queMail(msg)
。结果是 0 和 1,这很有意义(imo)。
我对这种设置不起作用感到非常困惑,尤其是没有任何异常的情况下,很难理解出了什么问题
所以我认为我的测试包和框架之间的唯一区别是转换后的 jar。有谁知道我该如何解决这个问题?
非常感谢您提前
PS这是我在这里的第一个问题(我已经阅读了很多;)所以如果我遗漏了任何重要信息或者我的问题的格式难以理解,请给我一个提示。