Angenommen, ich habe einen OSGi-Dienst A, der mit DS- und Metatypkonfiguration deklariert wurde.OSGi DS-Dienstkonfiguration und ServiceTracker
Dann nennen wir B einen anderen Dienst, der jedes Objekt auf der Grundlage eines Eigenschaftsfilters verfolgt, der nicht zur Konfiguration von A gehört.
Gibt es in A die Möglichkeit, auf die Diensteigenschaften zuzugreifen und sie zur Laufzeit zu aktualisieren, sodass B die Änderung bemerkt?
Beachten Sie, dass die Eigenschaft, die von B verfolgt wird, keine Konfigurationskomponente ist, sondern dass A die eigene Konfiguration ableiten kann. Daher würde A seine Diensteigenschaften in seiner @Activate-Methode nach der Analyse der Konfiguration aktualisieren.
Würde A nicht zweimal registriert? – cyberz
@cyberz Nein, Sie müssen nur sicherstellen, dass Ihre Komponente die Service-Schnittstelle nicht direkt implementiert. –
Wenn Sie nicht angeben, dass die Komponente einen OSGi-Dienst automatisch registrieren soll, wird sie nicht zweimal registriert. Normalerweise bedeutet dies, dass Sie die @ Service Annotation nicht verwenden sollten. –