[jboss-as7-dev] "Read" operations
Kabir Khan
kabir.khan at jboss.com
Sun Jan 16 09:57:30 EST 2011
On 15 Jan 2011, at 21:16, David M. Lloyd wrote:
> Looks good to me as well. +1, approve, yea, etc.
Cool, I'll make it happen on Monday
>
> On 01/15/2011 02:23 PM, Brian Stansberry wrote:
>> So then for the non-subsystem case we could use "*"? Since there won't
Yes, I think so
>> 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 at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>
>>
>>
>
>
> --
> - DML
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
More information about the jboss-as7-dev
mailing list