Является ли использование Eclipse OSGI Activators, наследующих друг от друга, хорошей идеей? - PullRequest
1 голос
/ 19 августа 2009

Если у вас есть общая платформа кодов затмения / ОСГИ, на которой вы строите различные продукты, можете / должны ли вы наследовать активаторы от общего кода

* 1003 Е.Г. *

org.test.common.PluginActivator
org.test.common.ui.UIPluginActivator

org.test.product1.Product1PluginActivator
org.test.product1.ui.Product1UIPluginActivator

org.test.product2.Product2PluginActivator
org.test.product2.ui.Product2PluginActivator

Я хочу, чтобы все активаторы пользовательского интерфейса наследовали от общего, и то же самое для не-пользовательских активаторов. Все методы запуска будут вызывать супер ... Тем не менее, мне интересно, если это плохая практика osgi / bundle или может вызвать проблемы.

У кого-нибудь есть идеи / мнения по этому поводу?

Ответы [ 3 ]

4 голосов
/ 19 августа 2009

Если ребенок все равно не может работать без родительского пакета (т. Е. Он имеет функциональную зависимость от него), вы не добавляете никакой дополнительной связи, заставляя Активатор наследовать его.

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

0 голосов
/ 01 февраля 2011

Я бы не стал, я бы на самом деле считал, что злоупотребление подклассами вообще (а не строго с точки зрения OSGi).

ИМХО, лучше всего поддерживать минимальный сам класс-активатор (как в кодеи, как в процессе оценки производительности во время выполнения), в основном делегирование реальной работы - если любой - рабочим классам.если вам нужно что-то сделать подклассом, вы можете сделать это с этими рабочими классами.

0 голосов
/ 25 августа 2009

Я предполагаю, что вы используете Eclipse RCP, потому что в противном случае я бы порекомендовал Spring DM (или iPOJO, Google Guice с Peaberry или декларативные службы, ...). Таким образом, вам больше никогда не придется писать еще один активатор комплектов.

С другой стороны, моя команда пошла с общим абстрактным BundleActivator для наших связок, связанных с RCP. Для меня наличие фактических активаторов связки в центральной связке (ях) увеличивает сцепление.

...