1 Reply Latest reply on Oct 23, 2009 8:38 AM by emuckenhuber

    management domain model


      Getting started with some initial work on the domain configuration i might just share a few thoughts.

      In case of the domain model it maybe doesn't make much sense using something like JAXB, as it requires all metadata classes available on the bootstrap classpath - which somehow contradicts any modularization effort. Also having other projects built on top of AS to modify some bootstrap descriptors might not be what we want.

      Since the domain configuration is the view which is going to be exposed over the managemend domain - we thought of a direct mapping between elements in the xml and the exposed ManagedObjects. So we should be able to use this mapping to populate ManagedObject as well. The question is how it gets mapped to the component's deployment descriptors.

      A different problem of this configuration is that it's component oriented. Unlike in AS5 where we have a mapping from the deployment to a component. Since ProfileService does not know which deployment contains which component we won't be able to push a deployment descriptor into the deployers.

      In general there are two different use cases of configuration:
      1) overriding existing deployment descriptors (a sort of component-ref)
      - 1.1) which could also include saying not to deploy a component
      2) defining new components without a deployment (e.g. DataSources)

      Additionally we should support value transformation, given the use case of ServiceBindingManager (ports-default, ports01). There was also a discussion about declaring thread-pools in there, which would need to create a component and then a for the specified service.

      In the end i see the main difficulty in getting all the different meta data, deployers and container implementation integrated. We have this issue with ProfileService in AS5 to a certain extend already, so we should think of a better way to handle this integration.

        • 1. Re: management domain model

          Another item which might be important to mention is the differences in building managedObjects. Whereas most spec deployment descriptor (ejbs, wars) mostly represent the desired management view already (excl. metrics). This is different for jboss-beans.xml and -service.xml which are more assembly descriptors than something directly usable for management.
          In AS5 we are already applying some changes based on the managedObject view to the actual deployment descriptor which is quite tricky, as the actual injected value might differ from the deployment descriptor - especially for more complex values - like we had for the ServiceBindingManager. Also those changes would need to get applied earlier not after classloading to support something like offline-edits.

          I'll start with some changes in jboss-man, which we should do regardless of the additional requirements for the domain model. Basically starting with separating the population with the building of ManagedObjects. This should be a separate step, maybe even built on a different managedObject metadata/structure.
          This description represents a model for the managedObject itself and should be reusable for the same type of components - only that the values are going to be different.
          The deployers integration could also be improved, to something a bit more explicit where we don't process the same meta data several times. I also want to move some Component processing (currently done in the ManagementView) more in this model building. Maybe the only thing the ManagementView should do is to create some composite ManagedObjects - containing more managedObjects which cannot be grouped during this building process.