Remove NullApplicationRegistry and promote InternalBrokerBaseCase for broker 
testing
------------------------------------------------------------------------------------

                 Key: QPID-2632
                 URL: https://issues.apache.org/jira/browse/QPID-2632
             Project: Qpid
          Issue Type: Improvement
          Components: Java Tests
            Reporter: Martin Ritchie
            Assignee: Martin Ritchie


Current testing is often plagued with random OOM or ApplicationRegistry 
shutdowns at the end of the full ant test cycle.

Removing the old NullApplicationRegistry(NAR) that was a legacy Mock object 
will help us prevent such rouge application registries hanging around and 
consuming memory.

This will require a fair few changes to existing tests that assume there will 
be a running ApplicationRegistry. However, in most cases it will simply be a 
change from using TestCase to InternalBrokerBaseCase(IBBC). 

The main problem with the NAR is that it sets most of the broker components to 
Null ... hence the name. However, with the scale of changes to the Java broker 
over the last 12 months the use of ApplicationRegistry.getInstance() as started 
appearting thoroughout the main broker code base and assumptions have been made 
that the returned instance will be fully configured. So no Null checks are 
performed.

Removing the NAR will not be major issue as it will actually clean up the code 
base as a number of test relied on to start the broker and then performed some 
configuration themselves. Now they can rely on IBBC to do the heavy lifting and 
override the configure() method if they need to make specifc changes to the way 
the broker runs. AMQQueueAlertTest is one such example. This test requires an 
increase in the Alerting period. This was historically tucked in to NAR so ALL 
test would run this thread every 200ms. Which in turn resulted in OOME issues 
during full tests runs. The solution at the time was to exclude the extra 
logging via log4j.

Now we can hae the AMQQAT simply up the alerting rate for its own purposes.

The use of IBBC will also allow a level of test somewhere between pure unit 
tests and test that use a client in systests. Tests that require a configured 
broker but really don't want to have to connect a client to exercise the broker 
and rely on the client code returning the right exceptions. 

Hopefully will find some time to more fully document how we can leaverage the 
IBBC to create and integrogate components of the broker during a test.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to