OSGi:更改捆绑包缓存算法

问题描述 投票:0回答:1

我正在尝试找出如何更改 OSGI 捆绑包缓存算法。

我有一个本地存储库,其中包含 NFS 驱动器上的所有 jar。 当我启动应用程序时,OSGI 捆绑缓存算法将所有 Jars 复制到缓存文件夹中,每个应用程序会话最终约为 500MB。 由于所有这些 Jars 都可以在本地使用和访问,因此无需在 OSGI 缓存文件夹中再次缓存它们。我想将算法更改为:

  1. 创建软链接而不是实际复制 Jar 文件
  2. 完全禁用缓存机制,以便从原始位置读取文件

知道如何才能实现这一目标吗?

谢谢!!

我尝试传递以下属性: props.put(Constants.FRAMEWORK_STORAGE_CLEAN, Constants.FRAMEWORK_STORAGE_CLEAN_ONFIRSTINIT); 到: BundleContext::注册服务 但这并没有解决问题。

osgi bundle apache-felix
1个回答
0
投票

问题在于Java锁机制在此类文件系统(NFS)上无法正常工作 尝试指定为 jvm 参数 (-vmargs) -Dosgi.locking=java.io 或 -Dosgi.locking=none

© www.soinside.com 2019 - 2024. All rights reserved.