Как оцениваются свойства в eclipse?

Пожалуйста, прочитайте с терпением, я старался изо всех сил объяснить ситуацию, если нет, пожалуйста, прокомментируйте -

У меня есть два плагина: A, B. В обоих плагинах я определил выражение «и» для команды. Одним из условий в выражении «и» является проверка свойства, скажем, myprop. A не зависит от B, а B не зависит от A.

В третьем плагине определен тестер свойств, скажем, C. A , B оба зависят от C.

А в четвертом плагине D определена точка расширения для org.eclipse.core.expressions.propertyTesters, а список свойств, которые должен протестировать тестер, определен в плагине C.

A, B тоже зависят от плагина D.

Я вижу странное поведение в eclipse. Только когда активна перспектива, определенная плагином B, вызывается тестер свойств для myprop. Поэтому, когда запускается RCP, если плагин B еще не активен, тестер свойств не проверяет свойство myprop и возвращает неожиданное значение, когда я смотрю на плагин A.

Позже, когда я расскажу о плагине B, тестер свойств проверит myprop, а плагин A начнет работать правильно.

Вопрос: Почему тестировщику свойств нужен активный плагин B? Как свойства оцениваются фреймворком eclipse, есть ли порядок? или на самом деле я должен спросить: когда и как запускается тестер свойства для определенного свойства? Есть ли документация по этому поводу?


person SomeDude    schedule 29.09.2016    source источник


Ответы (1)


Вероятно, вам нужно указать forcePluginActivation="true" в элементе test вашего выражения, поскольку похоже, что плагин, содержащий тестер свойств, ничем не активирован.

person greg-449    schedule 29.09.2016
comment
минут, прежде чем я понял, что вы ответили на него. Да, мне пришлось указать forcePluginActivation="true", чтобы это сработало. Но я приму ваш ответ. У меня есть один вопрос. Применяется ли forcePluginActivation к подключаемому модулю D, где определен мой класс тестера свойств, или к подключаемому модулю C, в котором определена точка расширения, в которой указан список свойств, подлежащих тестированию? Я думаю, что это должно было быть применено к C, потому что тестер свойств попал для других свойств. - person SomeDude; 29.09.2016
comment
Активируется плагин, содержащий класс тестера. - person greg-449; 30.09.2016
comment
На самом деле это не то, что я обнаружил, когда я установил точку останова в своем классе тестера до того, как указал forcePluginActivation как true, точка останова сработала, что говорит мне о том, что плагин, содержащий класс тестера, уже был активирован, но он не знает о свойстве который плагин D указывает в расширении propertyTester. - person SomeDude; 30.09.2016