Coding the service to receive configuration properties

Configuration properties are available through the org.osgi.service.component.ComponentContext object that is provided on the activation method.

Avant de commencer

You must complete the task described in Association d'un service à une identité persistante.

Pourquoi et quand exécuter cette tâche

If properties are updated after activation has occurred, the method used for injection depends on the context that the service provides in its OSGi Declarative Services (DS) declaration.

Generally, it is best to declare a method that is to be used specifically for injection of updated properties by using the modified attribute on the service declaration. If a modified method is not available, DS deactivates and then reactivates the service with the new properties.

Deactivating and then activating a service can also cause dependent services to be recycled, and must be avoided unless specifically required. Using the modified attribute is the preferred way to receive configuration updates.

Exemple

In the previous task, Association d'un service à une identité persistante, you defined a service to DS. The following are examples of activate and modified methods from the DS declaration described in that task.
private static Dictionary<String, Object> _props = null;

    protected void activate(ComponentContext cc) {
        _props = cc.getProperties();
    }

    protected void modified(Map<?, ?> newProperties) {
        if (newProperties instanceof Dictionary) {
            _props = (Dictionary<String, Object>) newProperties;
        } else {
            _props = new Hashtable(newProperties);
        }
    }
Lorsque vous obtenez ou lisez les valeurs des propriétés de configuration, servez-vous des mécanismes suivants, qui autorisent une certaine souplesse :
  • Codez les méthodes de sorte qu'elles s'attendent, au minimum, à recevoir les propriétés par défaut incluses dans le même bundle tout en laissant la place aux dérogations de l'utilisateur, le but étant d'éviter la migration de la configuration personnalisée.
  • Ignorez les propriétés redondantes ou non reconnues.
Le service doit être capable de fonctionner avec la configuration par défaut seule. Pour que le niveau de fonctionnalité soit raisonnable, les substitutions de l'utilisateur ne doivent pas être obligatoires.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_setup_service_getprops.html