[jboss-as7-dev] "Read" operations

David M. Lloyd david.lloyd at redhat.com
Sat Jan 15 16:16:09 EST 2011


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 at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>
>


-- 
- DML



More information about the jboss-as7-dev mailing list