Extensiones para el servicio metatype de OSGi

El entorno de ejecución de Liberty y las herramientas del desarrollador reconocen algunas extensiones para la especificación metatype de OSGi para configuraciones más complejas y ofrecen una mejor presentación en una interfaz de usuario.

Extensiones metatype de tiempo de ejecución

Añada este espacio de nombres al archivo metatype.xml para poder utilizar las extensiones siguientes:
xmlns:ibm="http://www.ibm.com/xmlns/appservers/osgi/metatype/v1.0.0"
ibm:alias

La extensión de alias se utiliza para definir un nombre fácil para la configuración mientras se reduce el riesgo de conflictos en los nombres de los elementos de configuración en el archivo server.xml.

El ejemplo siguiente muestra la extensión ibm:alias:

<OCD id="com.ibm.ws.jdbc.dataSource.properties"
		  		  name="%properties" 
		  		  description="%properties.desc"
    		ibm:alias="properties">
   <AD id="username".../>
</OCD>

En este ejemplo properties es el nombre sencillo de la configuración. El alias debe ser diferente del ID.

Cuando se utiliza la entrada ibm:alias en el archivo server.xml, se debe añadir el nombre de extensión de producto como prefijo. El nombre de la extensión de producto de las extensiones instalada en la ubicación de usuario predeterminada es usr. En extensiones de producto definidas en la instalación de perfil Liberty mediante un archivo nombre_extensión.properties en el directorio wlp/etc/extension, el nombre de extensión de producto es el nombre elegido en nombre_extensión.

Para metatype que se muestra en el ejemplo anterior, si la característica se instala en la ubicación usr predeterminada, a continuación verá ejemplos de entradas válidas de server.xml:
<usr_properties username="JANE"/>
<com.ibm.ws.jdbc.dataSource.properties username="JANE"/> 
ibm:type

Los tipos de atributo estándar están definidos en la especificación metatype. Están disponibles diversos tipos extendidos de IBM®. Para obtener más información, consulte Tipos extendidos.

ibm:reference

El atributo reference especifica el tipo OCD al que un PID hace referencia. Sólo se utiliza con el tipo ibm:pid y da soporte a la anidación de elementos en el archivo server.xml; consulte el tema Anidamiento de elementos de configuración.

El ejemplo siguiente muestra la extensión ibm:reference:

<AD id="fooRef" type="String" ibm:type="pid" ibm:reference="com.ibm.ws.foo".../>
ibm:final

El atributo final indica que el valor no se puede especificar en la configuración. En su lugar, se utiliza siempre el valor predeterminado de metatype. Utilice name="internal" para indicar que las herramientas no muestran esta propiedad.

El ejemplo siguiente muestra la extensión ibm:final:

<AD id="foo" name="internal" ibm:final="true" type="String" default=${someVariable}"/>
ibm:variable

El atributo variable se utiliza para especificar el uso de una variable como valor predeterminado si no se especifica ninguna. Se elige, por orden:

  • El valor especificado en server.xml
  • El valor especificado como una propiedad del sistema, por ejemplo en bootstrap.properties
  • El valor predeterminado de metatype

El ejemplo siguiente muestra ibm:variable:

<AD id="traceString" ibm:variable="trace.string" default=*.all=enabled".../>
ibm:unique
El atributo unique indica que un valor de configuración debe ser exclusivo entre todas las definiciones de atributos que utilizan el mismo grupo de atributos exclusivo. Se admiten los siguientes grupos de atributos exclusivos:
Sintaxis del valor predeterminado default

Puede utilizar la sintaxis ${prop-name} en expresiones predeterminadas para crear series a partir de otras propiedades de configuración.

El ejemplo siguiente muestra una sintaxis del valor default:

<AD id="httpEndpoint.target"
		  		  name="internal" description="internal use only" 
		  		  ibm:final="true" required="false" type="String"
    		default="(&amp;(virtualHost=${id}) (enabled=true))"/>

Tipos extendidos

Duration

El tipo duration se utiliza para expresar una hora. Se describe en varias unidades de tiempo. Por ejemplo, "1h30m" sería una hora y media. "1d5h10s" sería 1 día, 5 horas y 10 segundos. Las unidades están globalizados, para que los usuarios puedan especificar los valores utilizando las abreviaturas de su idioma local.

Para el inglés, en la lista siguiente se muestran las unidades disponibles:

  • d - Días
  • h - Horas
  • m - Minutos
  • s - Segundos
  • ms - Milisegundos

De forma predeterminada, cuando se utiliza la duración tipo, el valor que especifica el usuario se evalúa en milisegundos. Por ejemplo "10s" sería un valor largo de 10000 en el diccionario. Además, si un usuario especifica un valor sin ninguna unidad, este valor se evaluará en milisegundos. Por ejemplo, un valor de "10" se evaluaría como 10 milisegundos. Sin embargo, también puede especificar el tipo de duración de modo que se evalúe en una unidad diferente. Por ejemplo, si se especifica un valor de "10" con ibm:type="duration(s)" se evaluará como 10 segundos y se almacenará como 10 en el diccionario.

La lista siguiente muestra los tipos posibles:

  • duration(h)
  • duration(m)
  • duration(s)
  • duration(ms)
  • duration

No hay ninguna diferencia entre especificar duration y duration(ms).

Nota:

Procedimiento recomendado: incluya siempre una unidad en el valor y exprese el valor en la unidad resulte más fácil de leer. Por ejemplo, en lugar de especificar un valor de "7200" con ibm:type="duration(s)", especifique el valor como "2h".

Los ejemplos siguientes muestran el tipo de duration:

  • <AD id="timeout" type="String" ibm:type="duration(s)".../>
  • <AD id="timeout" type="String" ibm:type="duration".../>
Ubicación

El tipo location permite que las herramientas de interfaz de usuario ofrezcan una presentación más útil de los atributos que representan diversas ubicaciones de archivos y directorios. No afecta al proceso del entorno de ejecución. El objeto del diccionario es siempre String.

Los ejemplos siguientes muestran los tipos posibles:

location
Hace referencia a un archivo. Esta referencia puede ser un archivo absoluto, relativo o puede ser un URL a un archivo.
location(file)
Hace referencia a un archivo utilizando una vía de acceso de archivo absoluta o relativa.
location(dir)
Hace referencia a un directorio utilizando una vía de acceso de archivo absoluta o relativa.
location(url)
Hace referencia a un archivo al final de un url.

El ejemplo siguiente muestra el tipo de location:

<AD id="location" name="%appmgr.location.name" description="%appmgr.location.desc" type="String" required="true" ibm:type="location"/>
Password

Tipo de contraseña que se utiliza en los campos de contraseña. Cuando se utiliza, el objeto de diccionario es una instancia de com.ibm.wsspi.kernel.service.utils.SerializableProtectedString. El valor del campo de contraseña no se registra en el archivo de rastreo. Las herramientas del desarrollador muestran las opciones de codificación que se pueden utilizar para un campo de contraseña. Las opciones de codificación válidas son xor y aes.

El ejemplo siguiente muestra el tipo de contraseña:

<AD id="password" type="String" ibm:type="password".../>
Contraseña hash

El tipo passwordHash es similar al tipo password de contraseña y se utiliza para los campos de contraseña hash. Cuando se utiliza, el objeto de diccionario es una instancia de com.ibm.wsspi.kernel.service.utils.SerializableProtectedString. El valor del campo de contraseña hash no se registra en el archivo de rastreo. Las herramientas del desarrollador muestran las opciones de codificación que se pueden utilizar para un campo de contraseña con hash. Las opciones de codificación válidas son xor, aes y hash.

Valide una contraseña nueva contra una contraseña hash utilizando el método PasswordUtil.encode(String, String, Map), con los parámetros siguientes:
  1. Nueva contraseña.
  2. Algoritmo hash, que se obtiene llamando al método PasswordUtil.getCryptoAlgorithm. El algoritmo hash debe coincidir con el algoritmo de la contraseña hash.
  3. Objeto de propiedades, donde una de las propiedades utiliza PasswordUtil.PROPERTY_HASH_ENCODED para la clave y la contraseña hash del valor.
Si el valor de retorno de PasswordUtil.encode es igual que la contraseña hash, las contraseñas coinciden.

El ejemplo siguiente muestra el tipo passwordHash:

<AD id="hashedPassword" type="String" ibm:type="passwordHash".../>
Pid

El tipo pid se utiliza para hacer referencia a otro objeto en la configuración. Se utiliza con el atributo ibm:reference y da soporte a la anidación de elementos en server.xml; consulte el tema Anidamiento de elementos de configuración.

El ejemplo siguiente muestra el tipo de pid:

<AD id="fooRef" type="String" ibm:type="pid" ibm:reference="com.ibm.ws.foo".../>
OnError

El tipo onError da como resultado una instancia de enumeración onError en el diccionario. Los valores posibles son WARN, FAIL e IGNORE.

El ejemplo siguiente muestra el tipo onError:

<AD id="errorBehavior" type="String" ibm:type="onError".../>

Extensiones metatype de interfaz de usuario

Añada este espacio de nombres al archivo metatype.xml para poder utilizar las extensiones siguientes:
xmlns:ibmui="http://www.ibm.com/xmlns/appservers/osgi/metatype/ui/v1.0.0"
ibmui:localization

La extensión localization se utiliza para especificar el archivo de localización metatype. El archivo de localización metatype se utiliza para consultar las traducciones de las etiquetas y descripciones de otras extensiones de la interfaz de usuario. En la mayoría de los casos, el valor de la extensión ibmui:localization coincide con el atributo localization del elemento <Metadata>.

El ejemplo siguiente muestra la extensión ibmui:localization:

<OCD id="com.ibm.ws.jdbc.dataSource.properties"
		  		  name="%properties" 
		  		  description="%properties.desc"
    		ibmui:localization="OSGI-INF/l10n/metatype">
   <AD id="username".../>
</OCD>
ibmui:extraProperties

La extensión extraProperties se utiliza para indicar que se puede establecer en esta configuración un conjunto arbitrario de atributos de configuración.

El ejemplo siguiente muestra la extensión ibmui:extraproperties:

<OCD id="com.ibm.ws.jdbc.dataSource.properties"
		  		  name="%properties" 
		  		  description="%properties.desc"
    		ibmui:extraProperties="true">
   <AD id="username".../>
</OCD>

La etiqueta y la descripción que está asociadas con la extensión se buscan en el archivo de localización metatype (si se ha especificado uno mediante la extensión ibmui:localization). Para la etiqueta de extensión se comprueba primero la clave extraProperties.<ocd id>.name y después la clave extraProperties.name. Para la descripción de extensión primero se comprueba la clave extraProperties.<ocd id>.description y después la clave extraProperties.description.

ibmui:group

La extensión group se utiliza para especificar que el atributo pertenece a un grupo. En la interfaz de usuario, los atributos que se anotan con el mismo grupo están agrupados.

Los ejemplos siguientes muestran la extensión ibmui:group:

  • <AD id="username" ibmui:group="userInfo".../>
  • <AD id="password" ibmui:group="userInfo".../>
  • <AD id="port" ibmui:group="hostInfo".../>

La etiqueta de grupo y la información de descripción se buscan en el archivo de localización metatype (si se ha especificado uno mediante la extensión ibmui:localization). Para la etiqueta de grupo se comprueba primero la clave <group>.<ocd id>.name y después la clave <group>.name. Para la descripción de grupo primero se comprueba la clave <group>.<ocd id>.description y después la clave <group>.description.


Icono que indica el tipo de tema Tema de referencia

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=rwlp_extensions_osgi_metatype
Nombre de archivo:rwlp_extensions_osgi_metatype.html