【发布时间】:2011-02-22 05:41:31
【问题描述】:
我有一个相当简单的场景:
我的应用程序有包含我的应用程序逻辑的核心 jar 文件。这个核心 jar 应该在运行时动态监视文件夹,当插件 jar 被放置在那里时,它应该加载它并准备好使用它。可能有很多插件jar。
在您的经验中,最快且最易于维护的实现方式是什么?我有两个建议:
1) 一些 OSGi 容器,Apache Felix 文件安装(用于监视新包的目录)。而核心 jar 作为捆绑包安装到容器中。
1.1 问题是核心jar 应该如何检测新安装的bundle 是它的插件?有没有办法监视每个添加的捆绑包并使用我的独特字符串(例如“kalazplugin”)寻找某种设置?换句话说:如何区分我的插件包?
2) 只是观察目录的变化,当 jar 被删除时,然后使用 URLClassLoader 动态加载它并自己实现它。我可能需要为每个插件指定某种配置文件,例如指定一些设置...
【问题讨论】: