{"action":"created","issue":{"url":"https://api.github.com/repos/wildfly/wildfly-core/issues/590","labels_url":"https://api.github.com/repos/wildfly/wildfly-core/issues/590/labels{/name}","comments_url":"https://api.github.com/repos/wildfly/wildfly-core/issues/590/comments","events_url":"https://api.github.com/repos/wildfly/wildfly-core/issues/590/events","html_url":"https://github.com/wildfly/wildfly-core/pull/590","id":65562112,"number":590,"title":"Nested attribute groups","user":{"login":"tadamski","id":3254037,"avatar_url":"https://avatars.githubusercontent.com/u/3254037?v=3","gravatar_id":"","url":"https://api.github.com/users/tadamski","html_url":"https://github.com/tadamski","followers_url":"https://api.github.com/users/tadamski/followers","following_url":"https://api.github.com/users/tadamski/following{/other_user}","gists_url":"https://api.github.com/users/tadamski/gists{/gist_id}","starred_url":"https://api.github.com/users/tadamski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tadamski/subscriptions","organizations_url":"https://api.github.com/users/tadamski/orgs","repos_url":"https://api.github.com/users/tadamski/repos","events_url":"https://api.github.com/users/tadamski/events{/privacy}","received_events_url":"https://api.github.com/users/tadamski/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":24,"created_at":"2015-03-31T22:38:34Z","updated_at":"2015-04-09T19:45:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/wildfly/wildfly-core/pulls/590","html_url":"https://github.com/wildfly/wildfly-core/pull/590","diff_url":"https://github.com/wildfly/wildfly-core/pull/590.diff","patch_url":"https://github.com/wildfly/wildfly-core/pull/590.patch"},"body":"Nested attribute groups are introduced. XML parsing extension enables descriptive XML creation without creating arfiticial child resources. Attribute groups are metadata only, they are not used in addressing and operations (except read-attribute-group).\r\n\r\nI have abstracted parsing/persisting xml attributes from PersistentResourceXMLDescription class -\r\nAttributesXMLDescription interface is introduced.\r\n\r\nI have provided two implementations of it:\r\nNestGroupedAttributesXMLDescription - creates nested xml tags based on nested elements of the group; if groups consist only of one element then this class works the same as current implementation;\r\nIgnoreGroupsAttributesXMLDescription - attribute groups are ignored during parsing - equivalent of running current code with useElementsForGroups flag set to false\r\n\r\nBoth classes work correctly with any combination and XML order of root attributes, grouped attributes, property attributes (with wrapping possibility) and children resources (with wrapping possibility).\r\n\r\nPasses: widlfy-core tests, wildfly tests, integration tests. "},"comment":{"url":"https://api.github.com/repos/wildfly/wildfly-core/issues/comments/91338632","html_url":"https://github.com/wildfly/wildfly-core/pull/590#issuecomment-91338632","issue_url":"https://api.github.com/repos/wildfly/wildfly-core/issues/590","id":91338632,"user":{"login":"wildfly-ci","id":939955,"avatar_url":"https://avatars.githubusercontent.com/u/939955?v=3","gravatar_id":"","url":"https://api.github.com/users/wildfly-ci","html_url":"https://github.com/wildfly-ci","followers_url":"https://api.github.com/users/wildfly-ci/followers","following_url":"https://api.github.com/users/wildfly-ci/following{/other_user}","gists_url":"https://api.github.com/users/wildfly-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/wildfly-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wildfly-ci/subscriptions","organizations_url":"https://api.github.com/users/wildfly-ci/orgs","repos_url":"https://api.github.com/users/wildfly-ci/repos","events_url":"https://api.github.com/users/wildfly-ci/events{/privacy}","received_events_url":"https://api.github.com/users/wildfly-ci/received_events","type":"User","site_admin":false},"created_at":"2015-04-09T19:45:54Z","updated_at":"2015-04-09T19:45:54Z","body":"**Linux** [Build 1491](http://brontes.lab.eng.brq.redhat.com/viewLog.html?buildId=49621&buildTypeId=WildFlyCore_PullRequest) is now running using a merge of 668580c8cc2f60cf3758b7a3a6aa453a036e942e\n"}}