Использование Sling Scheduler с правилами Eclipse Equinox или OSGI @Reference - PullRequest
0 голосов
/ 02 июня 2018

Я хочу использовать планировщик Sling в качестве комплекта в моей среде Eclipse Equinox, и теперь безуспешно пытаюсь просто запустить примеры, как на доске, так и через API.После многих отладок я теперь смог заставить его работать, но мне пришлось внести изменения в комплект планировщика в QuartzScheduler и изменить ссылку на MetricRegistry, чтобы добавить необязательную мощность:

@Reference(cardinality=ReferenceCardinality.OPTIONAL)
MetricRegistry metricsRegistry;

, которая в противном случае делаетслужба не запускается в Equinox.

Запуск тестов в комплекте, кажется, что это также никогда не решается даже с Феликсом, но в этом случае служба все еще запускается.Я должен также отметить, что MetricRegistry не является службой, и я не могу понять, почему он будет создан с помощью @Reference.Фактически изменение строки на:

MetricRegistry metricsRegistry = new MetricRegistry();

будет корректно извлекать metricsRegistry во всех случаях, Феликс или Равноденствие.

Я обнаружил ошибку или есть что-то, чего я не понимаю?

1 Ответ

0 голосов
/ 16 июля 2018

В Apache Sling экземпляр MetricRegistry зарегистрирован из пакета org.apache.sling.commons.metrics, см. MetricsServiceImpl # activ .Вы должны развернуть этот пакет в вашем контейнере OSGi.

...