2 Replies Latest reply on Jul 11, 2007 2:17 AM by adrian.brock

    Bean metadata views

    starksm64

      One thing I'm starting to work on in the context of the profile service managed objects/properties are annotations for describing which properties in an aggregate metadata bean structure (org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup) should be exposed as managed properties. Its possible that the object tree of exposed as the management interface has a different structure (generally flatter). I can see this being used by jmx, jsr77 aspects as well.

      For example, the security-domain managed property for the nth datasource deployment comes from the ManagedConnectionFactoryDeploymentGroup/deployments[n]/securityMetaData/domain property:

      @ManagedObject(...)
      class ManagedConnectionFactoryDeploymentGroup
      {
       List<ManagedConnectionFactoryDeploymentMetaData> deployments =
       class ManagedConnectionFactoryDeploymentMetaData
       {
       @XmlElement(name="jndi-name")
       @ManagedProperty(name="jndi-name", required=true, description="...", ...)
       private String jndiName;
      
       @XmlElement(name="min-pool-size")
       @ManagedProperty(name="min-pool-size", required=false, ...)
       private int minSize = 0;
      
       private SecurityMetaData securityMetaData = new SecurityMetaData() =
       class SecurityMetaData
       {
       @ManagedProperty(name="security-domain")
       private String domain;
      
       protected SecurityDeploymentType type;
       }
       }
      
      }
      


      There is an xpath like aspect for the metadata property being referenced, plus the managed property info. An xpath type syntax for a java bean object structure is a rather general feature that could be part of an object binding library. Did anything like this come out of the jbossxb/jaxb work?


        • 1. Re: Bean metadata views

          To avoid you duplicating work, I've committed the stuff I'd got working on the
          managed object annotations (its very simplistic) and the surrounding infrastructure
          that lets you override things by registering what I called

          ManagedObjectBuilder/Populator(s)

          Now you know why I changed the name in the deployers to
          ManagedObjectCreator to avoid the confusion. :-)

          I also committed the metatype updates which includes all the infrastructure
          for "serializing/deserializing" class trees to and from metatypes
          and object trees to and from metavalues.
          This is much more complete, although it is not fully tested. :-(

          • 2. Re: Bean metadata views

            There's nothing in what I committed for "flattening" object models which
            is probably what you're interested in for the datasource.
            So at least we are not totally duplicating work. ;-)