[jboss-jira] [JBoss JIRA] (AS7-3631) Using DMR for generic config application
Michael Voegele (JIRA)
jira-events at lists.jboss.org
Tue Feb 21 02:43:37 EST 2012
[ https://issues.jboss.org/browse/AS7-3631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669421#comment-12669421 ]
Michael Voegele commented on AS7-3631:
--------------------------------------
As I understand now, you are right, it is not a bug. It is intentional, that subresources are not handled.
Have a look at another example. I attached another xml template, template-ports.xml. This xml was extracted using the read-resource operation with recursive=true. When trying the opposite, adding the xml using the mechanism described above (over json), the operation looks as in add-socket-binding-group-operation.txt. But the result of the operation is just <socket-binding-group name="dmr-sockets" default-interface="public" />. As a conclusion, only the highest flat level is handled, not the subresources.
So if this is intentional, it would rather be a feature request to enable subnode handling, maybe by also allowing to set recursive=true when adding/writing nodes.
> Using DMR for generic config application
> ----------------------------------------
>
> Key: AS7-3631
> URL: https://issues.jboss.org/browse/AS7-3631
> Project: Application Server 7
> Issue Type: Bug
> Components: CLI, Domain Management
> Affects Versions: 7.1.0.CR1b
> Reporter: Michael Voegele
> Assignee: Alexey Loubyansky
> Labels: dmr, recursive, subnode
> Attachments: template-data-source.xml, template-ports.xml, template-xa-data-source.xml
>
>
> 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:
> {code}
> 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());
> }
> }
> {code}
> 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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list