Recepción de datos de configuración utilizando la interfaz ManagedService

El servicio de administración de configuración OSGi gestiona la configuración de Liberty y puede acceder a él según la especificación de dicho servicio. Los conjuntos de propiedades de configuración se identifican mediante una identidad persistente (PID) que se utiliza para asociar un elemento en el archivo server.xml, donde el PID se utiliza como el nombre de elemento, a un componente que registra para recibir las propiedades.

Acerca de esta tarea

Para un paquete OSGi cuyo ciclo se gestiona utilizando la interfaz BundleActivator, una forma sencilla de recibir las propiedades de configuración es implementar la interfaz org.osgi.service.cm.ManagedService, que especifica el PID como una de sus propiedades.

Ejemplo

Recuerde:
  1. En Eclipse, debe seleccionar un tiempo de ejecución de destino SPI en Ventana > Preferencias > Desarrollo de plug-ins > Plataforma de destino.

  2. Añada la siguiente sentencia al archivo MANIFEST.MF:
    Import-Package: org.osgi.service.cm;version="1.5.0"
  3. Pulse Control + Mayús + O para actualizar el activador de paquete.

En este ejemplo, la clase Activator implementa la interfaz ManagedService, además de la interfaz BundleActivator, y recibe las propiedades de configuración utilizando el método updated. Puede proporcionar valores de propiedades predeterminadas para simplificar lo que debe especificarse en la configuración del usuario.

public class Activator implements BundleActivator, ManagedService {

  public void start(BundleContext context) throws Exception {
    System.out.println("Sample bundle starting");
    // register to receive configuration
    ServiceRegistration<ManagedService> configRef = context.registerService(
      ManagedService.class,
      this,
      getDefaults()
      );
  }

  public void stop(BundleContext context) throws Exception {
    System.out.println("Sample bundle stopping");
    configRef.unregister();
  }

  Hashtable getDefaults() {
    Hashtable defaults = new Hashtable();
    defaults.put(org.osgi.framework.Constants.SERVICE_PID, "simpleBundle");
    return defaults;
  }

  public void updated(Dictionary<String, ?> properties) throws ConfigurationException {
    if (properties != null)
    {
      String configColor = (String) properties.get("color");
      String configFlavor = (String) properties.get("flavor");
    }
  }

}
La configuración de usuario para el paquete se puede proporcionar opcionalmente en el archivo server.xml o en un archivo incluido, mediante la entrada siguiente:
<simpleBundle color="red" flavor="raspberry" />
Nota: El nombre de elemento de la configuración de usuario, simpleBundle coincide con el valor de la propiedad org.osgi.framework.Constants.SERVICE_PID utilizado en el registro de ManagedService.

Para utilizar una configuración más avanzada, consulte Descripción de la configuración mediante OSGi Metatype Service.


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_receive_config_data_managedservice
Nombre de archivo:twlp_receive_config_data_managedservice.html