gpt4 book ai didi

java - OSGi应用程序修补机制

转载 作者:行者123 更新时间:2023-11-30 03:59:34 27 4
gpt4 key购买 nike

是否有推荐的方法在运行时修补 OSGi 应用程序?我正在使用 OSGi 的 Equinox 实现。

如果我停止特定 bundle 并安装修补后的 bundle 。它会如何影响运行时的其他包?..

我看到了这个OSGi Application Patching Strategy并且没有给出明确的答案。

谢谢。

最佳答案

我想这取决于 bundle 的质量。

“OSGi in Action”一书中的第 73 页有一个很好的示例。

亲自尝试一下:

  1. 下载examples ,
  2. 解压缩文件并使用 Ant 构建“chapter03”示例 (osgi-in-action/chapter03/build.xml),
  3. chapter03/paint-example/bundles/*-3.0.jar 文件复制到例如chapter03/shell-example/1,

为了使示例正常工作(请参阅 issue ),您需要执行以下操作:

  1. this page 下载最新的 Apache Felix Framework 发行版,目前是 4.2.1,
  2. 解压 org.apache.felix.main.distribution-4.2.1.zip 文件,
  3. 解压 felix-framework-4.2.1/bin/felix.jar 文件,
  4. default.properties 文件复制到 OSGi 示例的 chapter03/shell-example/launcher.jar 中。

现在一切准备就绪:

// In console window #1:
$ cd chapter03/shell-example/
$ java -jar launcher.jar bundles

// In console window #2:
$ telnet localhost 7070
-> install file:1/paint-3.0.jar
-> install file:1/shape-3.0.jar
-> start 2
-> install file:1/circle-3.0.jar
-> install file:1/square-3.0.jar
-> start 4
-> start 5
-> install file:1/triangle-3.0.jar
-> start 6
// You can now draw all three shapes.

// Simulate upgrade/patch of "circle" bundle:
-> stop 4
// A "work in progress" sign is in place of the circles.
// You can still move them.

// Start the "circle" bundle again and they're back in the UI:
-> start 4

您可以查看示例源代码以了解他们是如何做到的。我希望这能回答您的问题。

关于java - OSGi应用程序修补机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22294965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com