【问题标题】:Do I need to create seperate OSGi bundles for each jar我是否需要为每个 jar 创建单独的 OSGi 包
【发布时间】:2015-04-29 07:44:42
【问题描述】:

我想为 log4j2 创建一个 OSGi 包。我需要与 log4j2 一起使用一些额外的 jar,例如 log4j2-jcl、log4j2-jul、log4j2-web 等。我想澄清下面列出的一些关于此的混淆。 但是,这不是 log4j2 特有的,我将其作为一般程序来问。

  1. 我需要为每个 jar 创建单独的 OSGi 包还是可以为所有 jar 使用一个包? (最佳做法是什么)
  2. 我如何知道这些 jar 包是否已经提供了 OSGi 捆绑包? (这样我就不需要重新创建捆绑包,可以使用现有的捆绑包)

我对 OSGi 很陌生,所以任何人都可以澄清这些事情,不需要专门针对 log4j2。

谢谢!

【问题讨论】:

    标签: maven log4j osgi log4j2 osgi-bundle


    【解决方案1】:
    1. 是否需要为每个 jar 创建单独的 OSGi 包,或者我可以为所有 jar 使用一个包? (最佳做法是什么)

    如果可能,我建议为每个 JAR 创建一个捆绑包。这为您提供了最大的灵活性,并确保每个 JAR 都经过正确设计。

    1. 我如何知道这些 jar 包是否已经提供了 OSGi 包? (这样我就不需要重新创建包,可以使用 现有的)

    看看 Manifest 文件。

    如果它包含 OSGi 元数据 -> 它是一个 OSGi 包。

    如果它不包含 OSGi 元数据 -> 它不是 OSGi 包。

    我认为 Log4J JAR 已经提供了 OSGi 元数据(-> 它们已经是捆绑包),但我没有仔细检查。

    【讨论】:

    • Puce,感谢您的回答非常有帮助。我在 log4j2 jar 的 META-INF 中检查了 MANIFEST.MF。他们提供 OSGi 元数据。
    【解决方案2】:

    只是一个建议。
    在你做任何捆绑之前,检查它是否存在。 https://jpm4j.org/#!/search?q=log4j2

    另外,我推荐 slf4j

    【讨论】:

    • jpm4j.org 非常适合获取有关捆绑包的信息。但请注意,您还会发现还不是 OSGi 捆绑包的库。
    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多