在运行时清除缓存 - Eclipse e4
Clear the cache during runtime - Eclipse e4
我想在 运行 时间内清除 Eclipse e4 缓存(.metadata
目录)。
有很多帖子通过在 运行 配置中设置复选框来清除缓存,但我在代码中找不到任何关于清除缓存的内容。
与编写自己的方法相比,我更愿意使用已经编写好的方法(如果有的话)。
如果我要自己执行此操作,那么我将在 @PostContextCreate
期间在生命周期管理器中执行此操作。
有什么方法可以帮我完成这个操作,还是我应该只删除缓存目录?
更新
这是我正在尝试解决的问题。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment
为了在运行时清除缓存,我覆盖了 ResourceHandler
并将其添加到 loadMostRecentModel
。
final Method m = getClass().getSuperclass().getDeclaredMethod("getWorkbenchSaveLocation", new Class<?>[] {});
m.setAccessible(true);
final File workbenchSaveLocation = (File) m.invoke(this, (Object[]) null);
workbenchSaveLocation.delete();
我使用反射,因为父方法是私有的。最好这样做而不是自己编写代码来获取文件,因为它可以确保我始终获得正确的位置。
首先,删除 .metadata 文件夹会损坏用户数据:首选项、启动配置,谁知道还有什么 - 这取决于特定的 plug-in 实施。
此外,您的更新可能包含带有新服务和扩展的新捆绑包和片段。
并且用户可以重新排列视图并执行 workbench 模型坚持的其他事情。
=>
删除workbench模型并不能解决所有问题,请考虑以下几点:
更新后重新启动以确保应用所有新 bundles/extensions/services Howto restart an e4 RCP application
加载后使用模型处理器操作模型http://blog.vogella.com/2010/10/26/processors-e4-model/
我想在 运行 时间内清除 Eclipse e4 缓存(.metadata
目录)。
有很多帖子通过在 运行 配置中设置复选框来清除缓存,但我在代码中找不到任何关于清除缓存的内容。
与编写自己的方法相比,我更愿意使用已经编写好的方法(如果有的话)。
如果我要自己执行此操作,那么我将在 @PostContextCreate
期间在生命周期管理器中执行此操作。
有什么方法可以帮我完成这个操作,还是我应该只删除缓存目录?
更新 这是我正在尝试解决的问题。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment
为了在运行时清除缓存,我覆盖了 ResourceHandler
并将其添加到 loadMostRecentModel
。
final Method m = getClass().getSuperclass().getDeclaredMethod("getWorkbenchSaveLocation", new Class<?>[] {});
m.setAccessible(true);
final File workbenchSaveLocation = (File) m.invoke(this, (Object[]) null);
workbenchSaveLocation.delete();
我使用反射,因为父方法是私有的。最好这样做而不是自己编写代码来获取文件,因为它可以确保我始终获得正确的位置。
首先,删除 .metadata 文件夹会损坏用户数据:首选项、启动配置,谁知道还有什么 - 这取决于特定的 plug-in 实施。
此外,您的更新可能包含带有新服务和扩展的新捆绑包和片段。 并且用户可以重新排列视图并执行 workbench 模型坚持的其他事情。
=>
删除workbench模型并不能解决所有问题,请考虑以下几点:
更新后重新启动以确保应用所有新 bundles/extensions/services Howto restart an e4 RCP application
加载后使用模型处理器操作模型http://blog.vogella.com/2010/10/26/processors-e4-model/