0

我在一个磁盘空间非常有限的平台上运行,我正在查看OpenDaylight的磁盘使用情况。

最大的目录是pluginsconfiguration/org.eclipse.osgi/bundles目录。该plugins目录是我所有捆绑包所在的位置,所以我可以接受。但该configuration/org.eclipse.osgi/bundles目录似乎主要包含我的捆绑包的副本。

例如configuration/org.eclipse.osgi/bundles/117/1/bundlefile,是plugins/org.opendaylight.controller.clustering.services-implementation-0.4.0.jar. 这是对磁盘空间的极大浪费。

我试图找到一个配置选项来禁用它,但什么也没找到。有什么事吗?

我也查看了 Equinox 源代码,但没有找到任何东西。有人可以指出我在代码中完成此操作的位置吗?我想禁用它或至少用硬链接替换它。

4

1 回答 1

0

在询问了 Equinox 邮件列表上的好人之后,我得出了以下结论:

  1. 使用 Equinox 和其他一些 OSDI 实现,您可以在包 URL 前添加“引用:”以避免无用的副本(仍然必须复制嵌入在包中的本机库)。
  2. OpenDaylight 使用 org.apache.felix.fileinstall 来避免必须指定所有要加载的包。它只是加载在一个目录中找到的所有包。FileInstall 不允许在 URL 前添加“引用:”。

我的解决方案是从加载的捆绑包中删除 FileInstall,并将所有捆绑包手动添加到列表中,并将“reference:”字符串添加到“file:”URL 中。

于 2013-11-20T10:45:52.147 回答