【问题标题】:Apache felix : Loading bundle files from dir with Felix embeddedApache felix:从嵌入了 Felix 的目录加载捆绑文件
【发布时间】:2016-10-06 11:04:59
【问题描述】:

我正在以嵌入式方式使用 Apache Felix,如 http://felix.apache.org/documentation/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.html 中所述

根据Apache Felix File Install jar from deploy folder中的讨论

1) 开始菲利克斯

2) 安装/启动 felix.fileinstall 包

3) 将系统设置为 hotdiploy 目录,即

System.setProperty("felix.fileinstall.dir", "文件:C:/myrproject/hotdeploy");

我可以看到目录中的包已注册。但是当这个目录改变(添加或删除新的包)时,我可以得到通知吗? 所以在这种情况下,我可以检查未启动的捆绑包并启动它们。这将有助于实时工作热部署功能。

谢谢

【问题讨论】:

  • Java 7 有查看目录的API,但是你的代码可能会在fileinstall 的代码之前被调用。
  • FileInstall 已经自动启动它在加载目录中找到的包——假设您将felix.fileinstall.bundles.new.start 属性设置为 true(这是默认设置)。那么你到底要解决什么问题呢?

标签: java osgi apache-felix osgi-bundle


【解决方案1】:

您可以安装org.apache.felix.eventadmin 捆绑包,然后观看事件主题org/osgi/framework/BundleEvent/STARTED。看看felix eventadmin

请注意,felix Web 控制台是观察事件的好工具,至少用于调试目的。

【讨论】:

  • 没有必要为此去 EventAdmin。您可以直接向框架注册BundleListener
【解决方案2】:

鉴于您的问题包括“当此目录更改(添加或删除新捆绑包)时我可以获得通知的一种方式”,您可能正在寻找the Apache Felix File Install bundle;另请参阅this other question

【讨论】:

    猜你喜欢
    • 2016-01-15
    • 2020-07-29
    • 2014-01-08
    • 1970-01-01
    • 2017-06-16
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多