org.osgi.framework.storage.clean=onFirstInit 在 Apache Felix OSGi 实现的上下文中是啥意思?
Posted
技术标签:
【中文标题】org.osgi.framework.storage.clean=onFirstInit 在 Apache Felix OSGi 实现的上下文中是啥意思?【英文标题】:What does org.osgi.framework.storage.clean=onFirstInit mean in context of the Apache Felix OSGi implementation?org.osgi.framework.storage.clean=onFirstInit 在 Apache Felix OSGi 实现的上下文中是什么意思? 【发布时间】:2014-12-05 22:16:47 【问题描述】:我试图弄清楚 org.osgi.framework.storage.clean=onFirstInit
在 Felix 框架的上下文中的真正含义。
根据 OSGi 规范:
org.osgi.framework.storage: 文件系统中的有效文件路径 目录...框架可以随意使用它所看到的这个目录 fit,例如,完全擦除其中的所有文件和目录...
org.osgi.framework.storage.clean: 指定是否以及何时存储 应清洁框架区域。如果没有指定值, 框架存储区域不会被清理。
由于根据规范,框架可以随意使用此目录,因此不清楚当 OSGi 规范声明应该清理存储区域时是什么意思。对于每个 OSGi 实现,清理可能意味着不同的东西。
Apache Felix documentation 声明:
onFirstInit 在框架实例运行时刷新包缓存 首先初始化。
特定于 Felix 文档:
-
“刷新捆绑缓存”是什么意思?刷新是否与删除存储目录然后从头开始重建相同?所以它与
rm -rf felix-cache
相同,而 Felix 容器已关闭,以便在启动时重建缓存,就好像这是第一次启动容器一样?
“首次初始化框架实例时”是什么意思?这是否意味着第一次框架仅在容器第一次启动时才被初始化?还是说每次重启容器时都会第一次初始化框架?
【问题讨论】:
【参考方案1】:“刷新捆绑缓存”是什么意思?
表示删除org.osgi.framework.storage指定的目录
刷新与删除存储目录然后从头开始重建它是否相同?
是的
所以在 Felix 容器关闭时它与 rm -rf felix-cache 相同,以便在启动时重建缓存,就好像这是第一次启动容器一样?
是的
当它说“首次初始化框架实例时”是什么意思?
Bundles 可以被初始化多次。该语句表示该目录应该只在 JVM 启动后的第一次被删除,而不是在系统包被初始化的后续时间。
这是否意味着第一次框架只在容器第一次启动时才被初始化?还是说每次重启容器时都会第一次初始化框架?
表示每次重新启动容器时第一次初始化框架
【讨论】:
以上是关于org.osgi.framework.storage.clean=onFirstInit 在 Apache Felix OSGi 实现的上下文中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章