Очистить кеш во время выполнения - Eclipse e4 - PullRequest
0 голосов
/ 27 июня 2019

Я хотел бы очистить кэш Eclipse e4 (каталог .metadata) во время выполнения.

Существует множество сообщений для очистки кэша путем установки флажка в конфигурациях запуска, но я ничего не могу найти при очистке кэша в коде.

Я бы предпочел использовать метод, который уже был написан (если он есть), по сравнению с написанием моего собственного.

Если бы я должен был сделать это сам, я сделаю это в течение @PostContextCreate в менеджере жизненного цикла.

Есть ли способ, который сделает это для меня, или я должен просто удалить каталог кеша?

Обновление Вот проблема, которую я пытаюсь обойти.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Во-первых, удаление папки .metadata может повредить пользовательские данные: настройки, настройки запуска, кто знает, что еще - это зависит от конкретной реализации плагина.

Также ваши обновления могут содержать новые пакеты и фрагменты с новыми услугами и расширениями.И пользователь может изменять вид и делать другие вещи, сохраненные с моделью верстака.

=>

Удаление модели рабочей среды не решит все проблемы, пожалуйста, учтите следующее:

0 голосов
/ 27 июня 2019

Чтобы очистить кэш во время выполнения, я переопределил 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();  

Я использую отражение, поскольку родительский метод является закрытым.Было бы лучше сделать это вместо написания кода, чтобы получить файл самостоятельно, поскольку это гарантирует, что я всегда получаю правильное местоположение.

...