]
Richard Achmatowicz commented on AS7-4091:
------------------------------------------
The conversion to resources is completed and the subsystem is now considerably simpler.
Improved documentation on optional TRANSPORT and PROTOCOLS parameters to the stack
operation, as well as the optional PROPERTIES parameter to the transport and protocol add
operations.
Added new test case classes to provide more thorough testing:
- OperationsTestCaseBase - helper methods for generating resource addresses and operations
- OperationTestCase - test access to attributes of individual operations
- OperationSequencesTestCase - test sequences of resource creation and deletion
Opimize organization and management of the JGroups subsystem
------------------------------------------------------------
Key: AS7-4091
URL:
https://issues.jboss.org/browse/AS7-4091
Project: Application Server 7
Issue Type: Task
Components: Clustering, Domain Management
Affects Versions: 7.1.0.Final
Reporter: Richard Achmatowicz
Assignee: Richard Achmatowicz
Fix For: 7.2.0.Alpha1
There are a number of areas where the JGroups subsystem is organizationally deficient:
- does not make use of ResourceDefinitions to (i) 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)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: