Equinox Incubator - Resource Monitoring

Mission Statement

To provide a framework for monitoring resources that are contributed by bundles installed on the host machine. The term 'resources' is used to describe something as specific as a single object or something as abstract as an OSGI bundle.

See the incubator proposal for more detail.

Latest News

February 28, 2007- Added Extension Registry extension. Moved XMLRPC server code to use JeTTY.
June 6, 2006 - Added a new feature for the common code and removed duplicate bundles from the client and server.
May, 2006 - Initial release.

Documentation

Here is some documentation to get you started.

Working with the resource monitoring framework

The monitoring incubator uses the main incubator resources with the following refinements.

Bugs Summaries start with [monitoring]
Projects
RelEng
Equinox Incubator Release Engineering (org.eclipse.equinox.incubator.releng)
This project contains the Team Project Set files to aid developers in loading the projects into their workspace. Developers interested in loading the monitoring projects into their workspace should load this project, navigate to the monitoring folder, selecting the project set file (.psf) that they are interested in, and then choose Import Project Set... from the context menu.
Common
Common Feature (org.eclipse.equinox.jmx.common.feature)
This is the feature project for the common code.
Common (org.eclipse.equinox.jmx.common)
This bundle contains the resource monitoring code which is common to both the client and the server.
Apache Commons Codec (org.apache.commons.codec)
This bundle contains Apache Common Codec code which is a requirement of the Apache XML-RPC bundle.
Apache Commons HTTP Client (org.apache.commons.httpclient)
This bundle contains Apache Commons HTTP Client code which is a requirement of the Apache XML-RPC bundle.
Apache Commons Logging (org.apache.commons.logging)
This bundle contains Apache Commons Logging code which is a requirement for the Apache XML-RPC bundle.
Apache Web Services Common Utils (org.apache.ws.commons.util)
This bundle contains Apache Web Services Common Utils code which is a requirement for the Apache XML-RPC bundle.
Apache Web Services JaxME (org.apache.ws.jaxme)
This bundle contains Apache Web Services JaxME code which is a requirement for the Apache XML-RPC bundle.
Apache XML-RPC (org.apache.xmlrpc)
This bundle contains the code for Apache XML-RPC. This is an alternative transport for the resource monitoring framework.
Client
Client Feature (org.eclipse.equinox.jmx.client.feature)
This is the feature project for the client.
Client (org.eclipse.equinox.jmx.client)
This project contains the client-specific code.
Client RMI (org.eclipse.equinox.jmx.client.rmi)
This project contains the client portion of the code which contributes RMI as a transport.
Client XML-RPC (org.eclipse.equinox.jmx.client.xmlrpc)
This project contains the client portion of the code which contributes XML-RPC as a transport.
Server
Server Feature (org.eclipse.equinox.jmx.server.feature)
This is the feature project for the server.
Server (org.eclipse.equinox.jmx.server)
This project contains the server-specific code.
Server RMI (org.eclipse.equinox.jmx.server.rmi)
This project contains the server-specific code which contributes RMI as a transport. By default, RMI is the default transport for the resource monitoring server.
Server XML-RPC (org.eclipse.equinox.jmx.server.xmlrpc)
This comment contains the server-specific code which contributes XML-RPC as a transport. To enable XML-RPC as the default transport for the server, you need to set the following system property:
    org.eclipse.equinox.jmx.server.protocol=xmlrpc
Extensions
Extension Registry Extension (org.eclipse.equinox.registry.jmx)
This project contributes information about the Equinox Extension Registry and its contributions.
OSGi Extension (org.eclipse.osgi.jmx)
This project contributes information about OSGi bundles and services.
Preferences Extension (org.eclipse.equinox.preferences.jmx)
This project contributes the server-specific code which contributes information about the preferences including the different scopes and defined key/value pairs.
Resources Extension (org.eclipse.core.resources.jmx)
This project contributes information and methods for manipulation of workspace resources. (as defined by the org.eclipse.core.resources bundle.
SWT Extension (org.eclipse.swt.jmx)
This project contributes information about SWT resources by exposing the Sleak tool and the information it provides.
VM Extension (org.eclipse.equinox.jmx.vm)
This project provides the server-specific code that contributes information about the VM such as the number of classes loaded, the amount of memory used, etc.

Downloads

If you don't want to check the code out of the repository and export your own plug-ins and features, there are some pre-built zip files for the client and server on the Equinox download page in the Incubator section.

Running the Framework

The current implementation consists of a set of features and bundles that are intended to be placed in your eclipse install.
Requirements:
Java runtime version 1.4 or 1.5 depending on which plugins are to be used.
Tested with Eclipse 3.3 (build I20070228).
Note: The XMLRPC server code was recently changed from using the default web server that comes with XMLRPC, to use JeTTY. Because of this, we are still in the process of getting the server code to run on a Foundation VM.
Running the server:
Start the Eclipse application which contains the installed server feature (starting Eclipse by default starts the JMX server).
Use the org.eclipse.equinox.jmx.server.protocol system property to specify which protocol to use. (rmi is the default)
Use the org.eclipse.equinox.jmx.server.port system property to specify which port to use. (8118 is the default)
Running the client:
Start the Eclipse application (if not already running) which contains the installed client feature and switch to the JMX Resource Management perspective.
Select JMX Server -> Open Connection and enter the host and protocol to use to connect to the server. Note, if a server's resources (objects) are found to exist in the same virtual machine as the one which the client is running, a dialog will notify you of this and give you the option of bypassing the setup of a tranport layer to facilitate communication between the client and server.
Once connected, the list of available 'contributions' (mbeans) registered with the server are shown in a tree view. Navigating the tree view allows you to inspect and invoke operations exposed by the resources contributed as mbeans.
To disconnect, select JMX Server -> Disconnect.

Active Investigators

  • Jeff McAffer (IBM)
  • DJ Houghton (IBM)
  • Robert Connell (UNB)