У меня странная проблема с моим приложением RCP Eclipse 4, которое иногда не переводит некоторые элементы меню из-за отсутствия contributorURI
.МенюИнтемы, внесенные фрагментом.e4xmi не переводятся, contributorURI отсутствует
Ситуация
В настоящее время я работаю над приложением RCP Eclipse, 4, который состоит из нескольких локализованных плагинов.
Один из этих плагинов - com.mobatime.nms.masterclock.common.ui
. Его fragment.e4xmi
вносит некоторые локализованные MenuItems
в строку главного меню, которая «контролируется» Application.e4xmi
другого плагина (com.mobatime.nms.app
). С локализованным я имею в виду, что метка MenuItem
представляет собой переменную OSGI
(например, %commands.somecommand
), которая определена в файле OSGI-INF/l10n/bundle.properties
.
Однако на около 50% всех запусков моего приложения, то MenuItems
вклад в masterclock
плагин не переводится, так что имя переменной OSGI
используется в качестве метки для MenuItem
.
Вещи, которые я уже узнал
После некоторых исследований в Интернете, я нашел this thread, который, по-видимому описывает проблему относительно похож на мой. Тем не менее, поток уже пять лет, и описанная ошибка, обнаруженная ими, была исправлена в более старой версии Eclipse SDK.
Я импортировал плагин ModelSpy в свое приложение, так как помог найти ошибку в упомянутой выше теме. После проверки
MenuItems
я обнаружил, чтоcontributorURI
каждого элемента не установлен, когда перевод отсутствует.Когда перевод сделан правильно,
contributerURI
предоставленного взносаMenuItem
содержитplatform:/plugin/com.mobatime.nms.masterclock.common.ui
.
Дополнительная информация
- Мы используем новейшую версию библиотеки Eclipse (SDK, RCP и т.д.).
- Проблема также встречается в более старой версии этих библиотек (раньше мы использовали версию 4.4.2).
- Нет никакой разницы между регулярными сборками и сеансами отладки в Eclipse IDE, ошибка происходит везде.
- На других позициях
contributorURI
заполняется правильно. - В файле
workbench.xmi
метаданныхorg.eclipse.e4.workbench
вкладчикURI не сохраняется на пораженномMenuItems
. - При использовании
-clearPersistedState
проблема не возникает.
Есть ли у кого-нибудь идеи, как это можно исправить?
Вы используете сохраненное состояние, так что модель перезагружается из сохраненного состояния или вы используете '-clearPersistedState', чтобы предотвратить это (так модель строится из фрагментов каждый раз)? –
Я не использую 'clearPersistedState', но когда я добавляю его в свою конфигурацию отладки, проблема больше не возникает. Вероятно, ошибка в логике настойчивости Eclipse? – appnic
Вы можете посмотреть сохраненное состояние в файле 'workbench.xmi' в метаданных' org.eclipse.e4.workbench', чтобы узнать, сохраняется ли contributorURI или нет. –