Konfigurationselemente verschachteln

Sie können Metatypenerweiterungen verwenden, um Konfigurationen zu definieren, die als verschachtelte XML-Elemente in der Datei server.xml ausgedrückt werden können.

Beispiele

Das folgende Beispiel zeigt, wie diese Benutzerkonfiguration in der Datei server.xml unterstützt wird:
<family mother="jane" father="john">
  <child name="susie" age="8" />
  <child name="danny" age="5" />
</family>
Die Metatyp-XML verwendet ibm:type="pid" und ibm:reference wie im folgenden Beispiel dargestellt:
<?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>
Das folgende Beispiel zeigt, wie der Code, der die family-Eigenschaften empfängt, den Service ConfigurationAdmin verwendet, um die child-Eigenschaftengruppen zu erhalten:
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;
      }

      // Konfigurationsverwaltungsservice abrufen
      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();
  }
}

Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_nest_config_elem
Dateiname: twlp_nest_config_elem.html