Proposal for Modeler Package

(0) Rationale

Among the myriad of Java APIs available is the Java Management Extensions (JMX) APIs, which define "an architecture, the design patterns, the APIs, and the services for application and network management in the Java programming language." These APIs include standards for designing "Managed Beans" (MBeans) that are associated with components of your application that you wish to make manageable via a variety of tools (either local or remote.

The JMX architecture includes a variety of design patterns for MBeans. The two most commonly used patterns are:

At first glance, Model MBeans sound incredibly useful -- they require no changes at all to the Java class representing the managed resource, and you can use a standard base class provided with the JMX implementation to perform almost all of your management requirements. However, the developer is still required to provide the metadata, which can be tedious to create when there are many managed resources, with many attributes and operations made available by those resources. This is where the Modeler comes in.

Modeler provides the following services to the application developer who wishes to make their applications manageable via JMX:

(1) Scope of the Package

The Modeler project shall create and maintain a set of Java classes to provide the facilities described in the preceeding section, plus unit tests and small examples of using these facilities to instrument Java classes with Model MBean support.

(1.5) Interaction With Other Packages

Modeler relies on:

(2) Initial Source of the Package

This package represents original code that will be used initially to instrument the Tomcat 4 servlet container with JMX manageability for all major components.

The proposed package name for the new component is org.apache.commons.modeler.

(3) Required Jakarta-Commons Resources

(4) Initial Committers

The initial committers on the Modeler component shall be: