On 15 Jan 2011, at 21:16, David M. Lloyd wrote:
Looks good to me as well. +1, approve, yea, etc.
On 01/15/2011 02:23 PM, Brian Stansberry wrote:
> So then for the non-subsystem case we could use "*"? Since there won't
> be a ModelNodeRegistration for anything other than *, and all
children
> will have the same model-description. E.g., for the domain root:
>
> {
> "description" => {},
> "attributes" => {},
> "children" => {
> "profile" => {
> "description" => "The profiles",
> "required" => true,
> "model-description" => {
> "*" => {
> "description" => "A profile",
> "attributes" => {},
> "children" => {
> "subsystem" => {
> "description" => "The subsystems",
> "required" => true,
> "model-description" => {
> "jmx" => {
> "description" => "The JMX subsystem",
> "attributes" => {},
> "children? => {}
> },
> "web" => {
> "description" => "The web subsystem",
> "attributes" => {},
> "children? => {}
> }
> }
> }
> }
> }
> }
> }
> }
> }
>
> That seems to work.
>
> On 1/15/11 5:35 AM, Kabir Khan wrote:
>> Actually that output is complete garbage :-) The idea is that for every
children=>model-description to add something like this:
>>
>> model-description => {
>> subsystem1 => {
>> description=>{},
>> attributes=>{},
>> children=> {
>> child => {
>> description=>{},
>> required=>"true",
>> model-description=>{
>> childa=>{
>> description=>{}.
>> attributes=>{}
>> },
>> childb=>{
>> description=>{}.
>> attributes=>{},
>> }
>> }
>> }
>> }
>> },
>> subsystem2 =>{
>> description=>{},
>> attributes=>{},
>> children=> {},
>> },
>> }
>>
>>
>>
>>
>> On 15 Jan 2011, at 11:09, Kabir Khan wrote:
>>
>>> For the recursive read-resource-description operation I have come up with
something which lives at
https://github.com/kabir/jboss-as/tree/detyped-recursive-description. I did not bother
getting the tests to pass until we've decided on something. The model description
elements have an intermediate layer (child-name => actual-model-description}. Getting
the recursive model description for the test model set up in GlobalOperationsTestCase
returns the following:
>>>
>>>
>>>
>>> {
>>> "description" => "The root node of the test
management API",
>>> "children" => {
>>> "profile" => {
>>> "description" => "A list of profiles",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "profileB" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" =>
{"subsystem3" => {
>>> "description" => "A test
subsystem 1",
>>> "attributes" => {"attr1"
=> {
>>> "type" => INT,
>>> "description" => "The
value",
>>> "required" => true
>>> }},
>>> "children" => {}
>>> }}
>>> }
>>> },
>>> "profileC" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "subsystem5" => {
>>> "description" => "A
value",
>>> "attributes" => {
>>> "name" => {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => true
>>> },
>>> "value" => {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => false
>>> }
>>> },
>>> "children" => {
>>> "type1" => {
>>> "description" => "The
children1",
>>> "min-occurs" => 0,
>>> "model-description" =>
undefined
>>> },
>>> "model-description" =>
{"thing1" => {"description" => "A subsystem"}}
>>> }
>>> },
>>> "subsystem4" => {
>>> "description" => "A
subsystem",
>>> "attributes" => {"name"
=> {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => false
>>> }},
>>> "children" => {"type1"
=> {
>>> "description" => "The
children1",
>>> "min-occurs" => 0,
>>> "model-description" =>
undefined
>>> }}
>>> }
>>> }
>>> }
>>> },
>>> "profileA" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "subsystem1" => {
>>> "description" => "A test
subsystem 1",
>>> "attributes" => {"attr1"
=> {
>>> "type" => LIST,
>>> "value-type" => INT,
>>> "description" => "The
values",
>>> "required" => true
>>> }},
>>> "children" => {
>>> "type1" => {
>>> "description" => "The
children1",
>>> "min-occurs" => 1,
>>> "model-description" =>
undefined
>>> },
>>> "type2" => {
>>> "description" => "The
children2",
>>> "min-occurs" => 1,
>>> "model-description" =>
undefined
>>> },
>>> "model-description" => {
>>> "*" => {
>>> "description" =>
"A type 1",
>>> "attributes" => {
>>> "name" => {
>>> "type" =>
STRING,
>>> "description" =>
"The name of the thing",
>>> "required" =>
true
>>> },
>>> "value" => {
>>> "type" =>
INT,
>>> "description" =>
"The value of the thing",
>>> "required" =>
true
>>> }
>>> }
>>> },
>>> "other" => {
>>> "description" =>
"A type 2",
>>> "attributes" =>
{"name" => {
>>> "type" =>
STRING,
>>> "description" =>
"The name of the thing",
>>> "required" =>
true
>>> }}
>>> }
>>> }
>>> }
>>> },
>>> "subsystem2" => {
>>> "description" => "A test
subsystem 2",
>>> "attributes" => {
>>> "bigdecimal" => {
>>> "type" => BIG_DECIMAL,
>>> "description" => "A
big decimal",
>>> "required" => true
>>> },
>>> "biginteger" => {
>>> "type" => BIG_DECIMAL,
>>> "description" => "A
big integer",
>>> "required" => true
>>> },
>>> "boolean" => {
>>> "type" => BOOLEAN,
>>> "description" => "A
boolean",
>>> "required" => true
>>> },
>>> "bytes" => {
>>> "type" => BYTES,
>>> "description" => "A
bytes",
>>> "required" => true
>>> },
>>> "double" => {
>>> "type" => DOUBLE,
>>> "description" => "A
double",
>>> "required" => true
>>> },
>>> "expression" => {
>>> "type" => UNDEFINED,
>>> "description" => "A
double",
>>> "required" => true
>>> },
>>> "int" => {
>>> "type" => INT,
>>> "description" => "A
int",
>>> "required" => true
>>> },
>>> "list" => {
>>> "type" => LIST,
>>> "value-type" => STRING,
>>> "description" => "A
list",
>>> "required" => true
>>> },
>>> "long" => {
>>> "type" => LONG,
>>> "description" => "A
long",
>>> "required" => true
>>> },
>>> "object" => {
>>> "type" => OBJECT,
>>> "value-type" => STRING,
>>> "description" => "A
object",
>>> "required" => true
>>> },
>>> "property" => {
>>> "type" => UNDEFINED,
>>> "value-type" => STRING,
>>> "description" => "A
property",
>>> "required" => true
>>> },
>>> "string1" => {
>>> "type" => STRING,
>>> "description" => "A
string",
>>> "required" => true
>>> },
>>> "string2" => {
>>> "type" => STRING,
>>> "description" => "A
string",
>>> "required" => true
>>> },
>>> "type" => {
>>> "type" => TYPE,
>>> "description" => "A
type",
>>> "required" => true
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> {
>>> "description" => "The root node of the test
management API",
>>> "children" => {
>>> "profile" => {
>>> "description" => "A list of profiles",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "profileB" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" =>
{"subsystem3" => {
>>> "description" => "A test
subsystem 1",
>>> "attributes" => {"attr1"
=> {
>>> "type" => INT,
>>> "description" => "The
value",
>>> "required" => true
>>> }},
>>> "children" => {}
>>> }}
>>> }
>>> },
>>> "profileC" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "subsystem5" => {
>>> "description" => "A
value",
>>> "attributes" => {
>>> "name" => {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => true
>>> },
>>> "value" => {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => false
>>> }
>>> },
>>> "children" => {
>>> "type1" => {
>>> "description" => "The
children1",
>>> "min-occurs" => 0,
>>> "model-description" =>
undefined
>>> },
>>> "model-description" =>
{"thing1" => {"description" => "A subsystem"}}
>>> }
>>> },
>>> "subsystem4" => {
>>> "description" => "A
subsystem",
>>> "attributes" => {"name"
=> {
>>> "type" => STRING,
>>> "description" => "The
name of the thing",
>>> "required" => false
>>> }},
>>> "children" => {"type1"
=> {
>>> "description" => "The
children1",
>>> "min-occurs" => 0,
>>> "model-description" =>
undefined
>>> }}
>>> }
>>> }
>>> }
>>> },
>>> "profileA" => {
>>> "description" => "A named set of
subsystem configs",
>>> "attributes" => {"name" => {
>>> "type" => STRING,
>>> "description" => "The name of the
profile",
>>> "required" => true,
>>> "min-length" => 1
>>> }},
>>> "children" => {
>>> "subsystem" => {
>>> "description" => "The subsystems
that make up the profile",
>>> "min-occurs" => 1,
>>> "model-description" => undefined
>>> },
>>> "model-description" => {
>>> "subsystem1" => {
>>> "description" => "A test
subsystem 1",
>>> "attributes" => {"attr1"
=> {
>>> "type" => LIST,
>>> "value-type" => INT,
>>> "description" => "The
values",
>>> "required" => true
>>> }},
>>> "children" => {
>>> "type1" => {
>>> "description" => "The
children1",
>>> "min-occurs" => 1,
>>> "model-description" =>
undefined
>>> },
>>> "type2" => {
>>> "description" => "The
children2",
>>> "min-occurs" => 1,
>>> "model-description" =>
undefined
>>> },
>>> "model-description" => {
>>> "*" => {
>>> "description" =>
"A type 1",
>>> "attributes" => {
>>> "name" => {
>>> "type" =>
STRING,
>>> "description" =>
"The name of the thing",
>>> "required" =>
true
>>> },
>>> "value" => {
>>> "type" =>
INT,
>>> "description" =>
"The value of the thing",
>>> "required" =>
true
>>> }
>>> }
>>> },
>>> "other" => {
>>> "description" =>
"A type 2",
>>> "attributes" =>
{"name" => {
>>> "type" =>
STRING,
>>> "description" =>
"The name of the thing",
>>> "required" =>
true
>>> }}
>>> }
>>> }
>>> }
>>> },
>>> "subsystem2" => {
>>> "description" => "A test
subsystem 2",
>>> "attributes" => {
>>> "bigdecimal" => {
>>> "type" => BIG_DECIMAL,
>>> "description" => "A
big decimal",
>>> "required" => true
>>> },
>>> "biginteger" => {
>>> "type" => BIG_DECIMAL,
>>> "description" => "A
big integer",
>>> "required" => true
>>> },
>>> "boolean" => {
>>> "type" => BOOLEAN,
>>> "description" => "A
boolean",
>>> "required" => true
>>> },
>>> "bytes" => {
>>> "type" => BYTES,
>>> "description" => "A
bytes",
>>> "required" => true
>>> },
>>> "double" => {
>>> "type" => DOUBLE,
>>> "description" => "A
double",
>>> "required" => true
>>> },
>>> "expression" => {
>>> "type" => UNDEFINED,
>>> "description" => "A
double",
>>> "required" => true
>>> },
>>> "int" => {
>>> "type" => INT,
>>> "description" => "A
int",
>>> "required" => true
>>> },
>>> "list" => {
>>> "type" => LIST,
>>> "value-type" => STRING,
>>> "description" => "A
list",
>>> "required" => true
>>> },
>>> "long" => {
>>> "type" => LONG,
>>> "description" => "A
long",
>>> "required" => true
>>> },
>>> "object" => {
>>> "type" => OBJECT,
>>> "value-type" => STRING,
>>> "description" => "A
object",
>>> "required" => true
>>> },
>>> "property" => {
>>> "type" => UNDEFINED,
>>> "value-type" => STRING,
>>> "description" => "A
property",
>>> "required" => true
>>> },
>>> "string1" => {
>>> "type" => STRING,
>>> "description" => "A
string",
>>> "required" => true
>>> },
>>> "string2" => {
>>> "type" => STRING,
>>> "description" => "A
string",
>>> "required" => true
>>> },
>>> "type" => {
>>> "type" => TYPE,
>>> "description" => "A
type",
>>> "required" => true
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>> }
>>>
>>>
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>
>
--
- DML
_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev