Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-4091

Optimize organization and management of the JGroups subsystem

XMLWordPrintable

      There are a number of areas where the JGroups subsystem is organizationally deficient:

      • does not make use of ResourceDefinitions to simplify the generation of DescriptionProviders and (ii) localize the definition of AttributeDefinitions
      • handlers are in some cases written from scratch rather than subclassing helper handlers such as AbstractWriteAttributeHandler, AbstractAddStepHandler, AbstractRemoveStepHandler, etc.
      • collections of services are defined monolithically, rather than in distinct units which makes stopping/restarting them error prone (c.f. CacheContainerAdd, CacheAdd install three or four services each with complex processing - stopping and restarting this in another handler is next to impossible)
      • ServiceNames are not always easy to reconstruct

      These issues make maintenance of the subsystem hard. These matters can be helped by:

      • making use of ResourceDefinitions
      • defining for each service X a static method installX(context, operation, model) and removeX(context, operation, model) which can be made use of in installServices(context, operation, model) and removeServices(operation, context, model)
      • define the static method populate(), used to populate a model from an operation, which can be reused in populateModel(), creating describe operations, as well as other contexts
      • define a static method installServices(context, operation, model) which can be used in performRuntime(), and in contexts where all services for a resource need to be stopped and restarted; similarly define removeServices(context, operation, model)
      • make sure each ServiceName can be regenerated easily (c.f. regenerating JNDI names can involve model processing)

              rachmato@redhat.com Richard Achmatowicz
              rachmato@redhat.com Richard Achmatowicz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: