OSGi SAT, как мы должны бороться с ошибкой активации? - PullRequest
1 голос
/ 08 мая 2009

Инструментарий eclipse OSGi Service Activator предоставляет среду, упрощающую обработку зависимостей между пакетами.

Можно извлечь из org.eclipse.soda.sat.core.framework.BaseBundleActivator и переопределить (например) метод activ () для выполнения специальной инициализации.

подпись защищена void activ () {}

Что приводит к вопросу: «что мы должны делать, если не работает activ ()?», Предположим, по какой-то причине мы не можем правильно инициализироваться. Я не могу выдать исключение, метод подписи не допустит этого.

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Бросок RuntimeException или Ошибка в методе activ () не поможет вам, если вы используете Equinox (протестировано с org.eclipse.osgi_3.5.1.R35x_v20090827). Независимо от того, что вы бросаете, пакет в конечном итоге окажется в состоянии ACTIVE.

Я предполагаю, что это поведение относится к Equinox (ошибка?), Потому что, насколько я понимаю, это нарушает спецификации OSGi.

0 голосов
/ 09 мая 2009

Все еще возможно выдать RuntimeException и Ошибка (и исключения, которые наследуют их). (Помните, что ошибка указывает на серьезные проблемы, которые не должно пытаться решить разумное приложение.)

Также было бы неплохо вывести что-то на ваше средство регистрации.

Выбранный вами вариант зависит от ситуации; какова основная причина неудачной активации. Если причина является чем-то ненормальным, то это не должно происходить при нормальных обстоятельствах, Error или RuntimeException (и, конечно, вход в систему) кажутся правильными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...