Descripción de la configuración mediante OSGi Metatype Service

Las propiedades de configuración para cada servicio pueden describirse en metadatos que satisfagan la especificación OSGi Metatype Service. Los metadatos pueden incluir valores predeterminados, nombres traducibles y descripciones e información para permitir la validación de los valores de entrada. El archivo XML resultante se empaqueta en el paquete que contiene su servicio, en el directorio OSGI-INF/metatype, según la especificación.

Acerca de esta tarea

Es opcional proporcionar metadatos para describir la configuración, pero proporciona las ventajas siguientes:
  • Los valores predeterminados se pueden separar del código de implementación en el archivo XML metatype donde son sencillos de ubicar.
  • Se pueden especificar los tipos de datos adecuados y otros datos de validación para cada atributo, lo que permite que el analizador de configuración y las herramientas del desarrollador realicen la validación y se simplifica el código escrito para procesar los atributos;
  • La configuración se incluirá en el esquema XML que describe la configuración disponible para las herramientas del desarrollador y otros programas de utilidad;
  • Se pueden proporcionar nombres traducibles y descripciones para cada atributo y se mostrarán en las herramientas del desarrollador.

Procedimiento

  1. Cree un archivo xml en el directorio OSGI-INF/metatype del paquete y añada una declaración de espacio de nombres para los espacios de nombres OSGi Metatype:
    <metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0">
    </metatype:MetaData>
  2. Añada un elemento de definición de clase de objeto (OCD) para contener el conjunto de atributos, con un identificador y, de modo opcional, un nombre y una descripción. Proporcione también un elemento Designate para correlacionar el OCD con el PID utilizado en el código y el archivo server.xml.
    <OCD name="b2c" description="bundle two config" id="b2c-id">
    </OCD>
    
    <Designate pid="testBundleTwo">
    <Object ocdref="b2c-id" />
    </Designate>
  3. Añada elementos de definición de atributo (AD) para cada propiedad de configuración, en el OCD. Cada atributo necesita un identificador que se utiliza también en el archivo server.xml y en el código que recibe la configuración inyectada. Puede tener, de modo opcional, un nombre y una descripción, que las herramientas del desarrollador y otras herramientas gráficas pueden utilizar. La especificación de un tipo de datos permite que el entorno de ejecución valide la entrada de ese tipo y simplifique el código de procesamiento. La especificación de un valor predeterminado de utilidad permite que la configuración suministrada por el usuario sea mínima y contiene todos los valores predeterminados de configuración en una ubicación conocida:
    <AD name="boolProperty" description="a boolean property" id="boolProp"
        type="Boolean" default="false" />
  4. A continuación, debe tener el siguiente archivo metatype.xml.
    <?xml version="1.0" encoding="UTF-8"?>
    <metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0">
    
    		<OCD name="b2c" description="bundle two config" id="testBundleTwo-2-id">
    				<AD name="textProperty" description="a text property"
                  id="textProp" type="String" default="default string" />
    				<AD name="boolProperty" description="a boolean property"
                  id="boolProp" type="Boolean" default="false" />
    				<AD name="intProperty" description="an integer property"
                  id="intProp" type="Integer" default="14" />
    	</OCD>
    
    		<Designate pid="testBundleTwo-2">
    				<Object ocdref="testBundleTwo-2-id" />
    	</Designate>
    
    </metatype:MetaData>
  5. Codifique el servicio para recibir las propiedades de configuración. Sin la descripción del metatype, se proporcionarán todas las propiedades como valores de tipo String y se procesarán de este modo:
    String textProp = (String) properties.get("textProp");
    Boolean boolProp = Boolean.parseBoolean((String) properties.get("boolProp"));
    int intProp = Integer.parseInt((String) properties.get("intProp"));
    
    String textProp = (String) properties.get("textProp");
    Boolean boolProp = (Boolean) properties.get("boolProp");
    int intProp = (Integer) properties.get("intProp");

    Además, el entorno de ejecución ya habrá validado que los valores de entrada son de los tipos correctos.


Icono que indica el tipo de tema Tema de tarea

Términos y condiciones para centros de información | Comentarios


Icono de indicación de fecha y hora Última actualización: 15 de junio de 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_setup_values
Nombre de archivo:twlp_setup_values.html