问题标签 [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.

0 投票
1 回答
1112 浏览

eclipse-plugin - 如何使用正确加载的本机库制作 JOGL OSGI 捆绑包?

我已经尝试了好几天:http: //forum.jogamp.org/JOGL-with-OSGi-td3773888.html#a4029139

该库在 jar 中嵌入了原生依赖项。 http://search.maven.org/#artifactdetails|org.jogamp.jogl|jogl-all|2.0-rc11|jar http://search.maven.org/#artifactdetails|org.jogamp.gluegen|gluegen-rt |2.0-rc11|jar

你能提供详细的说明来制作这个的osgified版本吗?如果您可以在此过程中使用 bnd http://www.aqute.biz/Bnd/Bnd或 bndtools http://bndtools.org/ ,那就太好了。

我试图用嵌入的所有东西制作一个巨大的捆绑包,但我无法制作 karaf 来找到本机库:我不断收到错误“java.library.path 中没有 glagegen-rt”

我试图制作一个片段包,但无法使这些片段匹配...尝试使用 bnd,尝试使用 eclipse。需要更有经验的人的帮助。

我一直在尝试将它与 Apache Karaf 一起使用,所以如果您可以使用 Karaf 2.3.1 来实现它会非常好。如果您知道如何使用 Eclipse RCP 4.2 来实现它,那么请帮忙!

0 投票
1 回答
1310 浏览

apache - bnd 如何决定适用于导入包的版本范围?

我有一个问题,我正在使用 maven war 插件构建战争并使用 bnd 插件覆盖它,如将 OSGi 元数据添加到现有项目中所述,而不更改打包类型。 该项目定义了以下依赖项:

当我运行构建时,它会在 MANIFEST.MF 中生成以下条目

一旦我将版本更改为 1.13 或更高版本,Import-Package 条目就会变为:

这对我来说是一个真正的问题,因为我的目标中有 javax.ws.rs.javax.ws.rs-api_2.0.0.m16。这将解决不需要版本的情况下的导入,但在存在范围限制时停止这样做。

所以,我的一般问题是:bnd 如何决定版本范围?两个次要版本之间发生了一些变化,使其从无版本限制变为特定范围,因此我认为了解 bnd 如何做出该决定将有助于我发现这个特定问题是什么。

0 投票
1 回答
128 浏览

osgi - 如何使用 bnd API 指示不需要导出/导入的包

我是 osgi 的新手,我想知道如何使用 bnd API 指示不需要导出/导入的包

0 投票
1 回答
3924 浏览

osgi - 如何为运行时依赖项添加 Import-Package 指令?

我正在使用 Gradle 构建一个 OSGi jar,但清单有点麻烦。这是我的构建脚本的摘录:

使用上述内容,Gradle 会检测我的依赖项并添加Import-Package我所有的编译时依赖项。但是说我的应用程序也有运行时依赖org.springframework.orm,我如何告诉 Gradle 将其作为参数包含在Import-Package?

如果上面的注释行未注释,则生成的Import-Package指令 org.springframework.orm指定. 这让我很困惑,因为OsgiManifest 的 Gradle 文档指出

OsgiManifest instruction(String name, String... values)

向指令添加参数。如果该指令不存在,则创建它。如果确实存在,则将参数附加到现有参数。

但是,这似乎不适用于自动检测到的Import-Package参数。如果我指定instruction 'Import-Package', 'my.dependency.1'等等,并在中间打印,我可以看到它们是如何按顺序添加的,并且它们都出现在生成的清单中,但是如果手动指定jar.manifest.instructions,Gradle 的 OSGi 插件似乎不会添加自动检测的参数Import-Package.

TL;博士:

  • 如果我不手动指定Import-Package指令,它会自动生成我所有的编译时依赖项,而不是运行时依赖项。
  • 如果我这样做manifest { instruction 'Import-Package', 'org.springframework.orm' },则不会自动包含编译时依赖项。

如何告诉 Gradle 我的运行时依赖项以便将它们添加到Import-Package

0 投票
1 回答
148 浏览

declarative-services - 设置不兼容字符串的属性

我正在使用声明式服务并面临以下问题。我想用属性注册我的组件,比如使用

bc.registerService(MyClass.class.getName(), this, props);

但是,对于声明式服务,我必须提供定义这些属性的 XML 文件。现在,问题是我没有字符串兼容的值作为属性值(键是字符串)。属性不是任何类型的数字或字符串,而是“创建”方法返回的对象。这不是问题

bc.registerService(MyClass.class.getName(), this, props);

因为 props 可以包含条目。但是我如何使用声明式服务来管理这个?

BR Ewgenij

0 投票
2 回答
1614 浏览

osgi - 为什么 bnd 为仅在方法主体中使用的包添加使用指令?

我有一个带有单个源文件的项目,此处完整列出:

功能与问题无关。当我使用 Gradle 将项目构建为 OSGi 包时,清单包含以下指令:

令我困惑的是那个uses指令。正如我所理解的指令,它旨在定义对其他包的依赖关系,这些包需要传播到导入此导出包的其他包 -org.apache.commons.el例如,如果我的类定义或方法签名引用包中的类。但是在这个类中,对的依赖org.apache.commons.el完全包含方法体中。它没有在 API 中公开,并且没有其他包导入com.acme.el可以获取ExpressionEvaluatorImpl在该方法中创建的实例。所以依赖项不应该被传播,对吧?

我是否误解了该uses指令的含义,还是没有必要在这里使用它?

我制作了一个用于复制的最小示例 GitHub 存储库,您可以将其克隆并作为 Eclipse 中的 Gradle 项目导入。

0 投票
2 回答
1667 浏览

maven - 如何使用来自 maven-bundle-plugin 的 bnd 指令?

如何使用来自 maven-bundle-plugin 的 bnd 指令指令?bnd 指令以“-”字符开头,这是一个无效的 xml 标记:

我检查了maven-bundle-plugin 的官方页面,他们说它也应该以“-”字符开头:

指令 - 任何以“-”字符开头的指令都被认为是通知 BND 执行某些特殊处理的指令,并且不会复制到清单中。

捆绑目标描述似乎也没有此信息。执行一些特殊处理并且不会复制到清单中。

0 投票
1 回答
374 浏览

scala - 为什么 sbt-osgi 将 Include-Resource 指令添加到我的 MANIFEST.MF?

我有一个sbt项目配置(通过build.sbt)来生成一个 OSGI 包(使用sbt-osgi插件)。

出于某种原因,生成的MANIFEST.MF包含一个Include-Resource指令,指向我的构建目录中的(完全空的)“资源”子目录(特别是 ) src/main/resourcestarget/scala_2.10/resource_managed/main尽管事实上我没有做任何事情来告诉它这样做(而且我绝对不这样做)不希望我的工件指向我的主目录中的位置)。

为什么sbt-osgi这样做,更重要的是,我怎样才能让它停止?

build.sbt可以在这里找到:https ://github.com/reggert/reb4s/blob/1cd91fb82aa978b2f202c618ca6403a66c15f8d7/build.sbt

0 投票
2 回答
345 浏览

java - Java 字符串映射。最好的方法

您好,我有一个无法解决的问题。A 已经从 jar 清单中以 String 的形式导出了 pacakges,我想把它放在 Map 中,其中 key 是包的名称,其余信息在value中。你会说这很简单,但让我们告诉你我到底想做什么。我有一根弦,我从中取一小块

如果我在键中将它拆分为逗号(,),则会出现错误的和平,因为我们有

where 在uses子句中,我们也用逗号分隔依赖包的名称。所以上面的行必须在我的输出映射中:

那么使用哪些字符串方法或正则表达式来完成我的工作?

0 投票
1 回答
101 浏览

osgi - 如何在 OBR 存储库的“资源”元素中获取额外属性?

我们尝试让Apache Felix Web Console OBR 插件与当前BND Tools / Bindex生成的 OBR 存储库一起工作。

问题是生成的存储库(例如,使用来自 Eclipse 的“Release Bundles”生成的存储库)无法被 Felix Web 插件读取。

相反,插件可以正确理解Felix 自己的 OBR 存储库,因为它似乎在“resource”元素中具有其他属性,而我们的存储库中缺少这些属性:

http://www.osgi.org/download/rfc-0112_BundleRepository.pdf中的模式规范为“资源”XML 元素中的属性留出了空间,但是它们被定义为 Java API 的一部分。

这个 gitHub 叉子似乎可以完成这项工作https://github.com/rkrzewski/bindex但有人知道这是什么状态吗?有朝一日这会被整合到 Bindex 中吗?更新:这是 Rafał 的答案,这个分叉的所有者https://github.com/rkrzewski/bindex/issues/3#issuecomment-27784279 所以,我在 bndtools-users 谷歌组上重新提问:https://groups。 google.com/forum/#!topic/bndtools-users/ZdY0ASnLNmc

或者有没有其他方法可以使用缺少的资源属性生成 OBR 存储库?谢谢。