首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSGi还是URLClassLoader?

OSGi还是URLClassLoader?
EN

Stack Overflow用户
提问于 2011-02-22 13:41:32
回答 2查看 787关注 0票数 2

我有一个相当简单的场景:

我的应用程序有包含应用程序逻辑的核心jar文件。这个核心jar应该在运行时动态监视文件夹,当插件jar放在那里时,它应该加载它并准备好使用它。可能有很多插件jars。

根据您的经验,实现此功能的最快、最可维护的方式是什么?我有两个建议:

1)一些OSGi容器,Apache Felix File Install (查看目录中是否有新的包)。而核心jar是作为包安装到容器中的。

1.1问题是核心jar应该如何检测新安装的包是它的插件?有没有办法观察每个添加的包,并使用我独特的字符串查找某种类型的设置,比如"kalazplugin"?换句话说:如何区分我的插件包?

2)只需观察目录的变化,当jar被删除时,然后用URLClassLoader动态加载它,并自己实现它。我可能需要为每个插件提供某种类型的配置文件,以指定一些设置,例如...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-22 15:25:18

如果您选择OSGi,则可以使用扩展器模式来查看任何包(已经安装和稍后安装),如果确定包是您的插件之一,则采取任何操作。该模式很容易实现,特别是在已经包含BundleTracker的OSGi 4.2上,但在早期的OSGi版本上只是稍微困难一点。

只要谷歌一下“osgi扩展模式”,你就会看到很多参考资料和实现。

票数 2
EN

Stack Overflow用户

发布于 2011-02-22 15:01:56

你可以参考'org.eclipse.equinox.p2.directorywatcher‘的实现,它可以做你想做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5074459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档