Je travaille sur une application OSGi (avec les annotations scr de felix) qui expose un service. Le service s'enregistre avec des API externes en transmettant des valeurs de chaîne.Transmettre les paramètres d'exécution au service dans les annotations OSGi felix scr
listener.addSchemaChangeListener(new ChangeListener()
{
@Override
public void schemaChange(ChangeEvent changeEvent)
{
String schemaName = changeEvent.getSchemaName();
if (null != myBuilder && schemaList.contains(schemaName))
{
initVariables();
}
}
}, "SCHEMA1");
service utilise la pièce au-dessus du code pour enregistrer les auditeurs pour les valeurs mulitple « de Schema1 », « Schema1 », « schéma3 » ... Je prévois de réutiliser ce service dans différents faisceaux. Mais je veux écouter seulement les changements SCHEMA1 au lieu de tous.
@reference (name = "ServiceListener" », politique = ReferencePolicy.DYNAMIC, cardinalité = ReferenceCardinality.MANDATORY_UNARY, bind = "bind", unbind = "unbind", ReferenceInterface = ServiceListener.class) AtomicReference privé myServiceListener = new AtomicReference <>();
Si je tente de l'utiliser dans un autre service avec @reference alors il n'y a aucune disposition pour transmettre des valeurs au service pour écouter uniquement les changements de schéma particulier afin que la le service peut être r J'ai traversé mon paquet en passant seulement la liste des schémas pour écouter au lieu de tout. Parce que la méthode activate sera appelée une fois que le service est correctement lié dans la classe d'utilisation (composant). Y at-il une disposition dans OSGi pour réaliser cette fonctionnalité?