You are viewing a plain text version of this content. The canonical link for it is here.
Posted to phoenix-dev@avalon.apache.org by Huw Roberts <Hu...@mmlive.com> on 2002/07/13 08:40:58 UTC

Patch to Create a 'Local' Management Context (= SystemManager)

This patch implements the concept of a 'local' management context that
objects are registered with.  I think its better than spreading the JMX
naming scheme in different parts of the code.  The big change is the
addition of the getSubContext() method to SystemManager.  The contexts are
organized into hierarchy like this:

Phoenix
	Component List
		Component 1
		Component 2
	Application List
		Application 1
			Block List
				Block 1
				Block 2
		Application 2
			Block List
				Block 1
				Block 2

JMX naming is then derived by 'walking' up to the top level context, which
is the 'real' SystemManager.

I've tested it with NoOpSystemManager and MX4JSystemManager and haven't
encountered any problems.

An itemized list of changes:

org/apache/avalon/phoenix/interfaces/SystemManager.java
- Added method getSubContext( String parent, String type ) to create a
subcontext

org/apache/avalon/phoenix/components/manager/MX4JSystemManager.java
- Modified naming code slightly to be compatible with new scheme

org/apache/avalon/phoenix/components/manager/AbstractSystemManager.java
- Added inner class SubContext, which implements SystemManager and acts as
the local context

org/apache/avalon/phoenix/components/kernel/DefaultKernel.java
- Changed so applications register with the 'application' list context

org/apache/avalon/phoenix/components/kernel/DefaultApplicationContext.java
- Changed so blocks register with the application's block list context

org/apache/avalon/phoenix/components/embeddor/DefaultEmbeddor.java
- Changed so components are registered with the component list context

The diff was made with the cvs diff -u >> patch diff from the
jakarta-avalon-phoenix/src/java directory.  I hope this is right - or is it
better to diff each class seperately?

This is part of the Management Proposal idea i sent out last week.  I think
these are the only interfaces changes that are required and all the rest of
the work would be isolated behind SystemManager interface.

Please let me know what you think.

- Huw