Я думаю, что это неправильный вопрос :-) Из вопроса я заключаю, что у вас есть метод, который получает сервис от вашей компании, и вы хотите, чтобы этот метод вызывался. То есть где-то в вашем коде вы должны быть проинформированы о конкретном типе com.mycomp.X, то есть вы не заинтересованы в общих услугах вашей компании, у вас есть явная зависимость от типа. В своем вопросе вы предполагаете, что они должны отправляться централизованно, что обычно не является надежным, подверженным ошибкам и горячей точкой обслуживания; каждый раз, когда у вас появляется новый сервис компании, вам необходимо обновить метод отправки.
Гораздо лучшим решением кажется использование декларативных сервисов и использование bndtools с аннотациями. В этой модели каждое место, где вам нужен сервис:
@Component public class SomeMyCompComponent {
...
@Reference
void foo( com.mycomp.X x ) { ... }
...
}
В этой модели вам не нужно централизованно обслуживать диспетчер, любой класс может получать необходимые сервисы, когда им это нужно. Эта модель также точно обрабатывает несколько зависимостей и дает много полезных возможностей.
Может быть, я не правильно понимаю проблему, потому что вывел проблему из решения, которое вы требовали. Тем не менее, я думаю, что вы пытаетесь использовать Service Tracker для выполнения задачи, для которой он не предназначен.
К сожалению, DS не встроен в каркас, как мы должны были сделать: - (