问题标签 [bndtools]

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 回答
762 浏览

eclipse - DS 组件不会开始使用 bndtools(缺少要求 osgi.extender=osgi.ds)

我已经为 Eclipse 安装了标准bndtools插件,启动并运行了 apache felix osgi 运行时。我正在尝试了解声明式服务 (DS) 组件。显然,在没有注释之前(bndtools 教程中给出了一个示例),组件是使用 xml 数据编写的。这就是我想要做的。

这是一个简单的类(将作为 DS 组件发布):“HelloComponent.java”

这是进行组件声明的 xml 文件:“minimal.xml”

这是应该由 bndtools 用来生成最终将发布到 OSGi 运行时的 jar 文件的 .bnd 文件:“minimal_ds.bnd”

请注意,我在主机运行时 OSGi 容器中启动并运行了以下捆绑包:

最后,这里是项目目录结构:

问题是,当我尝试为“最小”安装捆绑包时,出现缺少要求的错误。我得到的确切错误是:

网络上的一些资源说这是早期版本的 bndtools 的错误。当然,我仍然能够编译和运行这个包几天,没有任何问题。然后,在某个时候,它就停在了那里!“重新构建”、“重新生成” jar 文件以及将项目完全复制到新的 Eclipse 工作区中似乎没有任何效果。

这是我正在使用的:

OS-X 10.9 Maverics, Eclipse Luna Service Release 1 (4.4.1) BndTools: 2.4.1 (最新)

有人似乎有线索吗?

0 投票
1 回答
793 浏览

java - (错误)理解 osgi 捆绑包依赖项

我对 osgi 和 bndtools 还很陌生,但在过去的几天里,我设法使用 bnd ant 任务创建 jar->bundle,并将我们的第 3 方 jar 包装为 bundle(对于那些尚未定义“Export-包'在清单文件中)。我必须评论说,bndtools 在出口和进口方面完成所有繁重的工作似乎很棒,所以感谢您在这个项目上的辛勤工作!

我有两个问题,也许你可以解释一下:

1

我正在尝试让捆绑包加载到 felix 中,并立即遇到解析错误。在这个基本场景中,我们有一个名为 omniquery_common 的内部包,它使用了几个 3rd 方 jar,包括 gson。当我解决我得到这个:

对我来说,omniquery_common 正在导入 com.google.gson(版本至少为 2.2 且小于 3.0)。gson 包正在导出版本 2.2.4,所以这应该满足它的依赖关系,但不是。

你能帮我理解我是怎么弄错的吗?

omn​​iquery_common 的清单:

gson 的清单:

2

如果我更改“运行要求”列表中捆绑包的顺序,将 gson 捆绑包放在omniquery_common 之前,我会得到

我觉得不直观-我会认为该列表中的捆绑顺序无关紧要...?

0 投票
0 回答
192 浏览

osgi - 如何使用 bndtools 打包 OSGi 子系统

我正在评估 bndtools 作为 eclipse 中 websphere OSGi 工具的替代方案,以打包自由配置文件功能。

Liberty 配置文件使用打包为 .esa 的 OSGi 子系统来扩展运行时。根据 bnd git repo 中的这个文件,似乎可以使用 BND 打包子系统。

https://github.com/bndtools/bnd/blob/master/biz.aQute.bndlib/src/aQute/bnd/exporter/subsystem/SubsystemExporter.java

但我找不到任何关于如何设置 ESA 项目的文档。有人可以给我一些指示吗?

0 投票
2 回答
111 浏览

osgi - 需要在 Bndtools 中添加一个容器

我正在使用 Bndtools 进行一些开发。Bndtools 为 Apache Felix 和(显然)为 Equinox 提供开箱即用的 OSGi 运行时。

但是,假设您想开发包并在 Knopflerfish 的 Bndtools 中对其进行测试?或者对于某些公司的专有容器(是的,它们确实存在,令人惊讶的是!)?Bndtools 可以很容易地将单个包添加到开发环境中,但似乎没有任何明显的方法可以添加完整的运行时进行测试。

有什么方法可以将备用 OSGi 运行时环境添加到 Bndtools?

0 投票
1 回答
477 浏览

osgi - 从 Bndtools 添加和删除存储库或捆绑包

这是关于 Bndtools 存储库的两部分问题:

  1. 假设您在 bndtools 存储库中有一个不需要并且想要删除的包。有没有一种简单的方法可以做到这一点。文档中似乎没有任何关于从存储库中删除不需要的包的内容(有很多关于如何添加包的内容!)。

  2. 是否可以将存储库添加到现有项目?我注意到,当我创建一个使用 Amdatu 配置的项目时,由于没有 osgi.annotation 包,生成的包将无法编译。事实证明,这个包位于名为“Bundle Hub”的存储库中(如果您选择 Bundle Hub 配置,则包含一个存储库),而 Amdatu 配置不包括(Amdatu 人员的严重疏忽!)。有什么方法可以在创建项目后添加 Bundle Hub 存储库?有没有办法创建任何新的“用户定义”存储库?如果不需要存储库,有没有办法从项目中删除它?

有人请指教。

0 投票
0 回答
43 浏览

osgi - '.' 在哪里?包从哪里来?

我一直很高兴在构建过程中使用 Bndtools 在 felix/osgi 上构建应用程序。我已经将我所有的第 3 方非捆绑 jar 包作为捆绑包,将我所有的内部 jar 构建为捆绑包,并且一直在开发 4 个带有激活器和服务的捆绑包。到目前为止,这一切都运作良好......

...然后,昨天突然间,bndtools 开始放一个“。” 在我的 MANIFEST.MF 中的 Import-Package 指令中。这导致了以下错误:

并导致捆绑包无法加载。

现在,大概是因为我昨天对源代码进行了一些更改,但是对于我的生活,我无法弄清楚那可能是什么。我在过去几天所做的唯一更改是在我自己的源代码中。我没有添加任何第 3 方依赖项。

当我让 eclipse bnd 构建器生成包时,它没有放“。” 在导入列表中,但我在构建过程中使用了 ant 任务,它正在放置“。” 在包装清单中。

任何人都可以评论为什么将它放在那里吗?

这是bnd文件:

0 投票
1 回答
156 浏览

java-8 - How to provide additional class for a package on OSGi system classpath for J2SE 1.8 profile

Inside ee.j2se-1.8 the package org.w3c.dom is included.

The bundle xml-apis_1.4.1.20140905-131237.jar contains the same package org.w3c.dom, but with one important class more ... ElementTraversal.class more.

So here my questions...

How can I provide the missing class inside my Equinox OSGi runtime?

0 投票
1 回答
71 浏览

osgi - 有没有办法从内部的宏中引用 bnd 文件名?

我想使用子捆绑 bnd 文件的文件名作为文件本身内部没有扩展名的值。像这里 ${filename_without_extension} 有机会吗?

文件:core.bnd

0 投票
0 回答
133 浏览

eclipse - 使用 Gradle 安装 bndTools 时遇到问题?

我已经安装了 Gradlev2.9。我还从https://github.com/bndtools/bndtools下载了 bndTools 。我在一个封闭的网络上运行,所以没有 Interwebs。我删除了 Ivy 存储库,因为我们没有 Ivy,它位于存储库{} 下的 settings.gradle 文件中。我还在 gradle.properties 文件中注释掉了尝试的连接。

另外,我尝试将丢失的 jar 文件直接放入根 bndTools 文件夹中,但 gradle 仍然没有拾取它们。

我错过了什么……?

C:\Program Files\bndTools\bndtools-master>gradle -v


摇篮 2.9

构建时间:2015-11-17 07:02:17 UTC 内部版本号:无 修订:b463d7980c40d44c4657dc80025275b84a29e31f

Groovy:2.4.4 Ant:2013 年 12 月 23 日编译的 Apache Ant(TM) 版本 1.9.3 JVM:1.8.0_31 (Oracle Corporation 25.31-b07)

操作系统:Windows 8.1 6.3 amd64

C:\Program Files\bndTools\bndtools-master>

我的错误:

FAILURE:构建失败并出现异常。

  • 其中:设置文件 'C:\Program Files\bndTools\bndtools-master\settings.gradle' 行:28

  • 出了什么问题:评估设置“bndtools-master”时出现问题。无法解析配置“类路径”的所有依赖项。无法解析外部依赖 biz.aQute.bnd:biz.aQute.bnd.gradle:latest,因为没有定义存储库。要求:未指定:未指定:未指定

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

总时间:1.482 秒

谢谢!

0 投票
0 回答
208 浏览

osgi - OSGi '使用约束冲突' 与 logback

bndtools Eclipse 插件始终为我无法追踪的logback报告“使用约束违规” (我已经完成了在 StackOverflow 和 Google 上可以找到的所有相关问题)。

每次我修改“运行配置”时都会出现约束冲突,并在足够的项目清理/重建和 Eclipse 重新启动后最终消失(对各种神灵的低声调用和偶尔的鸡牺牲也可能与此有关)。

我的工作区似乎没有直接导出logback,所以不清楚是什么导致了两个冲突链 - 它可能是 Felix 包或 SLF4J 之一,但这似乎也不太可能。

部分捆绑包列表:

约束违规报告:

有没有办法解决这个问题?我什至会为一个一致的解决方法感到非常高兴..