4

我需要一个 OSGi 化版本的 Apache POI,但找不到,所以我使用 BND 构建了一个。BND 声称 Apache POI 需要 Apache Commons Logging。所以我寻找了一个 OSGi 化的版本,但没有找到。所以我使用 BND 构建了一个。BND 声称 Apache Commons Logging 需要“Apache Excalibur”和“Apache Avalon”,它们显然是与日志相关的已退役 Apache 项目。我猜我将无法找到这些的 OSGi 化版本。

我真的需要这些东西吗?或者仅仅是因为 Apache Commons 可选地支持 Excalibur 和 Avalon,不管它们是什么?在这种情况下,我可以告诉 BND 考虑这些是可选的,而不关心我没有它们的事实吗?

或者,是否有人知道“真正的”OSGi 版本的 Commons Logging,它已经以比我半途而废的“让 BND 弄清楚”方法更深思熟虑的方式处理了这些(和其他)问题?

提前致谢。

编辑:需要明确的是,BND 并没有真正声称 Commons Logging 需要 Avalon 和 Excalibur。相反,它声称它需要包 org.apache.avalon.framework.logger 和 org.apache.log。这些包裹(在我看来)似乎分别来自 Avalon 和 Excalibur。

4

2 回答 2

4

Eclipse Orbit中有一个 OSGi 化版本的 Commons Logging 可用。Excalibur 和 Avalon 的依赖项应该是可选的,并且在运行时不需要。我知道有人也在研究 OSGi-ifying Apache POI,但我们的构建存在一些问题,导致循环依赖。

于 2012-09-07T06:26:18.230 回答
2

您可以尝试使用 pax 日志记录。它为所有流行的日志框架提供了 OSGi 就绪的实现。最简单的测试方法是使用 Apache Karaf。它预装了 pax 日志记录。

http://karaf.apache.org/

于 2012-09-07T07:33:28.083 回答