Question OSGi Declarative Services et ManagedService pour la configuration du service?


Je viens tout juste de découvrir que les services déclaratifs d'OSGi peuvent définir la configuration d'un composant sur requis pour que le composant le reçoive lors de l'activation, éliminant ainsi le fossé entre l'activation et la configuration des composants. J'ai également réalisé avec cela que vous pouvez recevoir des mises à jour de la configuration via le modified-méthode.

Il me semble que cette fonctionnalité est assez similaire à celle fournie par la mise en œuvre du ManagedService l'interface et la publication comme l'un des "services" que vous fournissez.

Il semble que je puisse complètement ignorer ManagedService & juste utiliser l'injection de configuration DS.

L'une de ces techniques est-elle préférable à l'autre ou existe-t-il d'autres compromis que je ne vois pas?


10
2017-10-27 20:26


origine


Réponses:


Oui, vous pouvez complètement ignorer ManagedService et ManagedServiceFactory et utilisez simplement les composants des services déclaratifs. Et oui je recommanderais cette approche.

Pensez simplement à cela comme à différents niveaux d'abstraction. MS / MSF est l'API de bas niveau pour config admin, et elle est disponible même si vous ne disposez pas d'un bundle DS. L'avantage de ceci est que vous pouvez écrire des services configurables sans avoir une dépendance sur DS, ce qui peut être souhaitable pour certains composants "au niveau du système".

Cependant, si vous êtes heureux de dépendre de DS, par exemple pour les composants "niveau application", l'utilisation de l'intégration intégrée de DS avec config admin vous facilitera la vie.


11
2017-11-09 00:38



quelques exemples de construction services déclaratifs des usines:

1) via administrateur de configuration : carotte-osgi-scr-factory-cm 

2) via usine de composants : carotte-osgi-scr-usine-ds

jeter un oeil sur les tests pour les cas d'utilisation;


0
2017-09-06 00:03