[jboss-jira] [JBoss JIRA] (AS7-4090) Opimize organization and management of the Infinispan subsystem

Richard Achmatowicz (JIRA) jira-events at lists.jboss.org
Tue Mar 20 17:22:51 EDT 2012


    [ https://issues.jboss.org/browse/AS7-4090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678155#comment-12678155 ] 

Richard Achmatowicz commented on AS7-4090:
------------------------------------------

Added in a Byteman-based test case called OperationSequenceTestcase.testRemoveRollback() for testing rollback of the remove operation.

This test case uses a Byteman rule to inject a "fault" into the CacheContainerRemove.performRuntime() operation - in fact, we inject the line of code 

{noformat}
context.setRollbackOnly()
{noformat}
 
in the execution of performRuntime() which forces a rollback of the otherwise correctly executing method implementation. The test case checks that (i) a failure results anmd (ii) that the expected services are reinstalled correctly and appear in the service registry.

                
> Opimize organization and management of the Infinispan subsystem
> ---------------------------------------------------------------
>
>                 Key: AS7-4090
>                 URL: https://issues.jboss.org/browse/AS7-4090
>             Project: Application Server 7
>          Issue Type: Task
>          Components: Clustering
>    Affects Versions: 7.1.0.Final
>            Reporter: Richard Achmatowicz
>            Assignee: Richard Achmatowicz
>             Fix For: 7.1.2.Final
>
>
> There are a number of areas where the Infinispan 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: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list