Anidamiento de elementos de configuración

Puede utilizar extensiones metatype para definir la configuración que se puede expresar como elementos XML anidados en el archivo server.xml.

Ejemplos

En el ejemplo siguiente se muestra cómo realizar esta configuración de usuario en el archivo server.xml:
<family mother="jane" father="john">
  <child name="susie" age="8" />
  <child name="danny" age="5" />
</family>
El XML metatype utiliza ibm:type="pid" e ibm:reference como se muestra en el ejemplo siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<metatype:MetaData
  xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0"
  xmlns:ibm="http://www.ibm.com/xmlns/appservers/osgi/metatype/v1.0.0">

  <OCD id="family" name="family">
    <AD id="mother" name="mother" type="String" default="Ma" />
    <AD id="father" name="father" type="String" default="Pa" />
    <AD id="child" name="child" ibm:type="pid" ibm:reference="child-pid"
      required="false" type="String" cardinality="6" />       
  </OCD>

  <Designate pid="family">
    <Object ocdref="family" />
  </Designate>
    
  <OCD id="child" name="child" >
    <AD id="name" name="name" type="String" />
    <AD id="age" name="age" type="Integer" />
  </OCD>

  <Designate factoryPid="child-pid">
    <Object ocdref="child" />
  </Designate>
  
</metatype:MetaData>
En el ejemplo siguiente se muestra cómo el código que recibe las propiedades family utiliza el servicio ConfigurationAdmin para obtener los conjuntos de propiedades child:
public void updated(Dictionary<String, ?> properties)
  			throws ConfigurationException {

  Set<String> pids = new HashSet<String>();
  String mother = "null";
  String father = "null";

  try {
    if (properties != null) {
      mother = (String) properties.get("mother");
      father = (String) properties.get("father");
      String[] children = (String[]) properties.get("child");
      if (children == null || children.length == 0) {	
        return;
      }

      // Obtener el servicio de administración de configuración
      ConfigurationAdmin configAdmin = null;
      ServiceReference configurationAdminReference = 
        bundleContext.getServiceReference(ConfigurationAdmin.class.getName());
		                   
      if (configurationAdminReference != null) {
        configAdmin = (ConfigurationAdmin)
          bundleContext.getService(configurationAdminReference);
      }	

      for (String childPid : children) {
        pids.add(childPid);
        Configuration config = configAdmin.getConfiguration(childPid);
        String name = (String) config.getProperties().get("name";
        Integer age = (Integer) config.getProperties().get("age");
      }
    }
  }

  catch (Exception e) {
    e.printStackTrace();
  }
}

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_nest_config_elem
Nombre de archivo:twlp_nest_config_elem.html