Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-3631

Using DMR for generic config application

    XMLWordPrintable

Details

    • Workaround Exists
    • Hide

      Add all subnodes separately, but this means a big effort...

      Show
      Add all subnodes separately, but this means a big effort...

    Description

      We are looking for a generic way on how to apply configuration to a domain. We want to use a way over an xml template, convert the xml template to json and setting the attributes on a ModelNode. This way, we don't need to wrap all possible attributes in java code.

      Example:

      See attached file 'template-data-source.xml'. This file is a possible template for a normal datasource. The intention is that developers fill in that template and over a mechanism, it is applied to their profile. The mechanism converts the xml template to json, which is then applied on a ModelNode:

      private void setXmlAttributes(ModelNode operationNode) {
      	// convert xml to json
      	JSONObject jsonObject;
      	try {
      		jsonObject = XML.toJSONObject(dmrConfigArtifact.getXmlTemplate());
      	} catch (JSONException e) {
      		throw new IllegalArgumentException(e);
      	}
      	// set json attributes on operation
      	ModelNode attributes = ModelNode.fromJSONString(jsonObject.toString());
      	List<Property> properties = attributes.asPropertyList();
      	for (Property property : properties) {
      		operationNode.get(property.getName()).set(property.getValue());
      	}
      }
      

      This node is then added to the configuration using normal 'add' operation (of course address and operation are also set on the operationNode, then executed by 'ModelControllerClient').

      This mechanism works fine for a normal datasource. However, if I try an xa-datasource, it does not work, as it contains subnodes (xa-datasource-properties), see attached file 'template-xa-data-source.xml'.

      When reading a node using 'read-resource', there is the possibility to set 'recursive=true' on the operation. This way, all subnodes are also returned. Is there a way to apply a node in a recursive way?

      I would like to have a statement, if it is a bug, that when adding a node containing subnodes, the subnodes cannot be handled by DMR automatically. Is it correct, that every subnode has to be handled/added separately?

      Thanks in advance for your answers.

      Attachments

        Issue Links

          Activity

            People

              olubyans@redhat.com Alexey Loubyansky
              michael.voegele@cloudops Michael Voegele (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: