[jboss-as7-dev] "Read" operations

Kabir Khan kabir.khan at jboss.com
Sat Jan 15 06:09:52 EST 2011


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
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}





More information about the jboss-as7-dev mailing list