Codificación del servicio para recibir propiedades de configuración

Las propiedades de configuración están disponibles mediante el objeto org.osgi.service.component.ComponentContext que se proporciona en el método de activación.

Antes de empezar

Debe completar la tarea descrita en Asociación de un servicio con una identidad persistente.

Acerca de esta tarea

Si las propiedades se actualizan después de que se haya producido la activación, el método utilizado para la inyección depende del contexto que el servicio proporciona en su declaración de servicios declarativos (DS) de OSGi.

Normalmente, es mejor declarar el método que se va a utilizar específicamente para la inyección de propiedades actualizadas utilizando el atributo modified en la declaración de servicio. Si un método modificado no está disponible, DS desactiva y vuelve a activar el servicio con las nuevas propiedades.

Desactivar y, después, activar un servicio también puede provocar que los servicios dependientes se reciclen, y se debe evitar, a menos que se especifique que es necesario. El método preferido para recibir las actualizaciones de configuración es utilizar el atributo modified.

Ejemplo

En la tarea anterior, Asociación de un servicio con una identidad persistente, ha definido un servicio en DS. A continuación se muestran ejemplos de métodos de activación y modificación de la declaración DS descrita en esa tarea.
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);
        }
    }
Cuando obtiene valores de las propiedades de configuración, utilice los siguientes mecanismos para permitir cierta flexibilidad:
  • Codifique los métodos para esperar como mínimo las propiedades predeterminadas que están incluidas en el mismo paquete, pero tenga en cuenta las alteraciones temporales del usuario, de forma que la migración de la configuración de usuario no sea necesaria.
  • Ignore las propiedades redundantes o no reconocidas.
El servicio debe poder operar en la configuración predeterminada por sí solo. Para proporcionar un nivel razonable de funcionamiento, las alteraciones temporales del usuario no deben ser obligatorias.

Icono que indica el tipo de tema Tema de tarea



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_setup_service_getprops
Nombre de archivo:twlp_setup_service_getprops.html