Допустим, у меня есть пакет OSGI, содержащий класс X. Допустим, этот класс содержит ссылку OSGI на конкретную службу. Что-то вроде этого:
ServiceReference[] references = context.getServiceReferences (serviceSpecification,someFilter);
Есть ли способ динамически определить спецификацию службы, к которой привязана ссылка? Есть ли способ также определить фильтр службы (второй параметр выше)?
Например, что-то вроде этого:
System.out.println(references[0].getServiceSpecification);
System.out.println(references[0].getServiceFilter);
Мне нужно узнать эти значения в коде вне пакета.
Проделанная работа:
Я использовал iPOJO, чтобы получить атрибут ссылки, создав экземпляр компонента iPOJO пакета, а затем получив описание его свойства, как показано ниже:
ComponentInstance componentInstance = factory.createComponentInstance(configuration);
instanceDescription= (PrimitiveInstanceDescription) componentInstance.getInstanceDescription();
PropertyDescription[] propertyDescription = instanceDescription.getProperties();
Я могу получить имя ссылки, тип, значение, используя propertyDescription
выше, но значение возвращается как объект, и я не могу получить то, что мне нужно. Кто-нибудь может помочь? Спасибо.