Registry (Tomcat API Documentation)
Keywords: org.apache.tomcat.util.modeler.Registry class

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.tomcat.util.modeler
Class Registry

    java.lang.Object
      org.apache.tomcat.util.modeler.Registry

All Implemented Interfaces:
  javax.management.MBeanRegistration, RegistryMBean

    public class Registry

extends java.lang.Object
implements RegistryMBean, javax.management.MBeanRegistration

Registry for modeler MBeans. This is the main entry point into modeler. It provides methods to create and manipulate model mbeans and simplify their use. Starting with version 1.1, this is no longer a singleton and the static methods are strongly deprecated. In a container environment we can expect different applications to use different registries. This class is itself an mbean. IMPORTANT: public methods not marked with @since x.x are experimental or internal. Should not be used.

Author:
  Craig R. McClanahan, Costin Manolache

Constructor Summary
`Registry()`

Method Summary
`void` | `addManagedBean(ManagedBean bean)` Add a new bean metadata to the set of beans known to this registry.
`java.lang.Object` | `convertValue(java.lang.String type, java.lang.String value)` EXPERIMENTAL Convert a string to object, based on type.
`ManagedBean` | `findManagedBean(java.lang.Class beanClass, java.lang.String type)`
`ManagedBean` | `findManagedBean(java.lang.Object bean, java.lang.Class beanClass, java.lang.String type)` Find or load metadata.
`ManagedBean` | `findManagedBean(java.lang.String name)` Find and return the managed bean definition for the specified bean name, if any; otherwise return `null`.
`java.lang.String[]` | `findManagedBeans()` Return the set of bean names for all managed beans known to this registry.
`java.lang.String[]` | `findManagedBeans(java.lang.String group)` Return the set of bean names for all managed beans known to this registry that belong to the specified group.
`int` | `getId(java.lang.String domain, java.lang.String name)` Return an int ID for faster access.
`javax.management.MBeanServer` | `getMBeanServer()` Factory method to create (if necessary) and return our `MBeanServer` instance.
`javax.management.MBeanOperationInfo` | `getMethodInfo(javax.management.ObjectName oname, java.lang.String opName)` Find the operation info for a method
`static Registry` | `getRegistry()` Deprecated. Not enough info - use the method that takes CL and domain
`static Registry` | `getRegistry(java.lang.Object key, java.lang.Object guard)` Factory method to create (if necessary) and return our `Registry` instance.
`static javax.management.MBeanServer` | `getServer()` Deprecated. Use the instance method
`java.lang.String` | `getType(javax.management.ObjectName oname, java.lang.String attName)` Get the type of an attribute of the object, from the metadata.
`void` | `invoke(java.util.List mbeans, java.lang.String operation, boolean failFirst)` Invoke a operation on a list of mbeans.
`java.util.List` | `load(java.lang.String sourceType, java.lang.Object source, java.lang.String param)` Deprecated. bad interface, mixing of metadata and mbeans
`void` | `loadCachedDescriptors(java.lang.Object source)` Deprecated. Loaded automatically or using a File or Url ending in .ser
`void` | `loadDescriptors(java.lang.Object source)` Load the registry from the XML input found in the specified input stream.
`void` | `loadDescriptors(java.lang.String packageName, java.lang.ClassLoader classLoader)` Lookup the component descriptor in the package and in the parent packages.
`void` | `loadDescriptors(java.lang.String sourceType, java.lang.Object source, java.lang.String param)` Deprecated.
`java.util.List` | `loadMBeans(java.lang.Object source, java.lang.ClassLoader cl)` Load an extended mlet file.
`void` | `loadMetadata(java.lang.Object source)` Load descriptors.
`static void` | `loadRegistry(java.io.InputStream stream)` Deprecated. use normal class method instead
`void` | `postDeregister()`
`void` | `postRegister(java.lang.Boolean registrationDone)`
`void` | `preDeregister()`
`javax.management.ObjectName` | `preRegister(javax.management.MBeanServer server, javax.management.ObjectName name)`
`void` | `registerComponent(java.lang.Object bean, javax.management.ObjectName oname, java.lang.String type)` Register a component XXX make it private
`void` | `registerComponent(java.lang.Object bean, java.lang.String oname, java.lang.String type)` Register a bean by creating a modeler mbean and adding it to the MBeanServer.
`void` | `registerComponent(java.lang.Object bean, java.lang.String domain, java.lang.String type, java.lang.String name)` Deprecated. - may still be used in code using pre-1.1 builds
`void` | `removeManagedBean(ManagedBean bean)` Remove an existing bean from the set of beans known to this registry.
`void` | `resetMetadata()`
`void` | `setMBeanServer(javax.management.MBeanServer server)` Set the `MBeanServer` to be utilized for our registered management beans.
`static void` | `setServer(javax.management.MBeanServer mbeanServer)` Deprecated. Use the instance method
`static void` | `setUseContextClassLoader(boolean enable)` Allow containers to isolate apps.
`void` | `stop()` Lifecycle method - clean up the registry metadata.
`void` | `unregisterComponent(javax.management.ObjectName oname)` Unregister a component.
`void` | `unregisterComponent(java.lang.String oname)` Unregister a component.
`void` | `unregisterComponent(java.lang.String domain, java.lang.String name)`
`void` | `unregisterRegistry(java.lang.ClassLoader loader)` Called by a registry or by the container to unload a loader

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Registry

    public Registry()

Method Detail

### getRegistry

    public static Registry getRegistry(java.lang.Object key,
                                       java.lang.Object guard)

  Factory method to create (if necessary) and return our `Registry` instance. Use this method to obtain a Registry - all other static methods are deprecated and shouldn't be used. The current version uses a static - future versions could use the thread class loader.

  Parameters:
    `key` - Support for application isolation. If null, the context class loader will be used ( if setUseContextClassLoader is called ) or the default registry is returned.
    `guard` - Prevent access to the registry by untrusted components
  Since:
    1.1

### setUseContextClassLoader

    public static void setUseContextClassLoader(boolean enable)

  Allow containers to isolate apps. Can be called only once. It is highly recommended you call this method if using Registry in a container environment. The default is false for backward compatibility

  Parameters:
    `enable` -
  Since:
    1.1

### stop

    public void stop()

  Lifecycle method - clean up the registry metadata. Called from resetMetadata().

  Specified by:
    `stop` in interface `RegistryMBean`
  Since:
    1.1

### loadMBeans

    public java.util.List loadMBeans(java.lang.Object source,
                                     java.lang.ClassLoader cl)
                              throws java.lang.Exception

  Load an extended mlet file. The source can be an URL, File or InputStream. All mbeans will be instantiated, registered and the attributes will be set. The result is a list of ObjectNames.

  Specified by:
    `loadMBeans` in interface `RegistryMBean`
  Parameters:
    `source` - InputStream or URL of the file
    `cl` - ClassLoader to be used to load the mbeans, or null to use the default JMX mechanism ( i.e. all registered loaders )
  Returns:
    List of ObjectName for the loaded mbeans
  Throws:
    `java.lang.Exception`
  Since:
    1.1

### loadMetadata

    public void loadMetadata(java.lang.Object source)
                      throws java.lang.Exception

  Load descriptors. The source can be a File or URL or InputStream for the descriptors file. In the case of File and URL, if the extension is ".ser" a serialized version will be loaded. This method should be used to explicitely load metadata - but this is not required in most cases. The registerComponent() method will find metadata in the same pacakge.

  Specified by:
    `loadMetadata` in interface `RegistryMBean`
  Parameters:
    `source` -
  Throws:
    `java.lang.Exception`

### registerComponent

    public void registerComponent(java.lang.Object bean,
                                  java.lang.String oname,
                                  java.lang.String type)
                           throws java.lang.Exception

  Register a bean by creating a modeler mbean and adding it to the MBeanServer. If metadata is not loaded, we'll look up and read a file named "mbeans-descriptors.ser" or "mbeans-descriptors.xml" in the same package or parent. If the bean is an instance of DynamicMBean. it's metadata will be converted to a model mbean and we'll wrap it - so modeler services will be supported If the metadata is still not found, introspection will be used to extract it automatically. If an mbean is already registered under this name, it'll be first unregistered. If the component implements MBeanRegistration, the methods will be called. If the method has a method "setRegistry" that takes a RegistryMBean as parameter, it'll be called with the current registry.

  Specified by:
    `registerComponent` in interface `RegistryMBean`
  Parameters:
    `bean` - Object to be registered
    `oname` - Name used for registration
    `type` - The type of the mbean, as declared in mbeans-descriptors. If null, the name of the class will be used. This can be used as a hint or by subclasses.
  Throws:
    `java.lang.Exception`
  Since:
    1.1

### unregisterComponent

    public void unregisterComponent(java.lang.String oname)

  Unregister a component. We'll first check if it is registered, and mask all errors. This is mostly a helper.

  Specified by:
    `unregisterComponent` in interface `RegistryMBean`
  Parameters:
    `oname` -
  Since:
    1.1

### invoke

    public void invoke(java.util.List mbeans,
                       java.lang.String operation,
                       boolean failFirst)
                throws java.lang.Exception

  Invoke a operation on a list of mbeans. Can be used to implement lifecycle operations.

  Specified by:
    `invoke` in interface `RegistryMBean`
  Parameters:
    `mbeans` - list of ObjectName on which we'll invoke the operations
    `operation` - Name of the operation ( init, start, stop, etc)
    `failFirst` - If false, exceptions will be ignored
  Throws:
    `java.lang.Exception`
  Since:
    1.1

### getId

    public int getId(java.lang.String domain,
                     java.lang.String name)

  Return an int ID for faster access. Will be used for notifications and for other operations we want to optimize.

  Specified by:
    `getId` in interface `RegistryMBean`
  Parameters:
    `domain` - Namespace
    `name` - Type of the notification
  Returns:
    An unique id for the domain:name combination
  Since:
    1.1

### addManagedBean

    public void addManagedBean(ManagedBean bean)

  Add a new bean metadata to the set of beans known to this registry. This is used by internal components.

  Parameters:
    `bean` - The managed bean to be added
  Since:
    1.0

### findManagedBean

    public ManagedBean findManagedBean(java.lang.String name)

  Find and return the managed bean definition for the specified bean name, if any; otherwise return `null`.

  Parameters:
    `name` - Name of the managed bean to be returned. Since 1.1, both short names or the full name of the class can be used.
  Since:
    1.0

### findManagedBeans

    public java.lang.String[] findManagedBeans()

  Return the set of bean names for all managed beans known to this registry.

  Since:
    1.0

### findManagedBeans

    public java.lang.String[] findManagedBeans(java.lang.String group)

  Return the set of bean names for all managed beans known to this registry that belong to the specified group.

  Parameters:
    `group` - Name of the group of interest, or `null` to select beans that do not belong to a group
  Since:
    1.0

### removeManagedBean

    public void removeManagedBean(ManagedBean bean)

  Remove an existing bean from the set of beans known to this registry.

  Parameters:
    `bean` - The managed bean to be removed
  Since:
    1.0

### getServer

    public static javax.management.MBeanServer getServer()

  Deprecated. Use the instance method

  Factory method to create (if necessary) and return our `MBeanServer` instance.

  Since:
    1.0

### setServer

    public static void setServer(javax.management.MBeanServer mbeanServer)

  Deprecated. Use the instance method

  Set the `MBeanServer` to be utilized for our registered management beans.

  Parameters:
    `mbeanServer` - The new `MBeanServer` instance
  Since:
    1.0

### loadRegistry

    public static void loadRegistry(java.io.InputStream stream)
                             throws java.lang.Exception

  Deprecated. use normal class method instead

  Load the registry from the XML input found in the specified input stream.

  Parameters:
    `stream` - InputStream containing the registry configuration information
  Throws:
    `java.lang.Exception` - if any parsing or processing error occurs
  Since:
    1.0

### getRegistry

    public static Registry getRegistry()

  Deprecated. Not enough info - use the method that takes CL and domain

  Get a "singelton" registry, or one per thread if setUseContextLoader was called

  Since:
    1.0

### getType

    public java.lang.String getType(javax.management.ObjectName oname,
                                    java.lang.String attName)

  Get the type of an attribute of the object, from the metadata.

  Parameters:
    `oname` -
    `attName` -
  Returns:
    null if metadata about the attribute is not found
  Since:
    1.1

### getMethodInfo

    public javax.management.MBeanOperationInfo getMethodInfo(javax.management.ObjectName oname,
                                                             java.lang.String opName)

  Find the operation info for a method

  Parameters:
    `oname` -
    `opName` -
  Returns:
    the operation info for the specified operation

### unregisterComponent

    public void unregisterComponent(javax.management.ObjectName oname)

  Unregister a component. This is just a helper that avoids exceptions by checking if the mbean is already registered

  Parameters:
    `oname` -

### getMBeanServer

    public javax.management.MBeanServer getMBeanServer()

  Factory method to create (if necessary) and return our `MBeanServer` instance.

### findManagedBean

    public ManagedBean findManagedBean(java.lang.Object bean,
                                       java.lang.Class beanClass,
                                       java.lang.String type)
                                throws java.lang.Exception

  Find or load metadata.

  Throws:
    `java.lang.Exception`

### convertValue

    public java.lang.Object convertValue(java.lang.String type,
                                         java.lang.String value)

  EXPERIMENTAL Convert a string to object, based on type. Used by several components. We could provide some pluggability. It is here to keep things consistent and avoid duplication in other tasks

  Parameters:
    `type` - Fully qualified class name of the resulting value
    `value` - String value to be converted
  Returns:
    Converted value

### load

    public java.util.List load(java.lang.String sourceType,
                               java.lang.Object source,
                               java.lang.String param)
                        throws java.lang.Exception

  Deprecated. bad interface, mixing of metadata and mbeans

  Experimental.

  Parameters:
    `sourceType` -
    `source` -
    `param` -
  Returns:
    List of descriptors
  Throws:
    `java.lang.Exception`

### registerComponent

    public void registerComponent(java.lang.Object bean,
                                  javax.management.ObjectName oname,
                                  java.lang.String type)
                           throws java.lang.Exception

  Register a component XXX make it private

  Parameters:
    `bean` -
    `oname` -
    `type` -
  Throws:
    `java.lang.Exception`

### loadDescriptors

    public void loadDescriptors(java.lang.String packageName,
                                java.lang.ClassLoader classLoader)

  Lookup the component descriptor in the package and in the parent packages.

  Parameters:
    `packageName` -

### loadDescriptors

    public void loadDescriptors(java.lang.String sourceType,
                                java.lang.Object source,
                                java.lang.String param)
                         throws java.lang.Exception

  Deprecated.

  Experimental. Will become private, some code may still use it

  Parameters:
    `sourceType` -
    `source` -
    `param` -
  Throws:
    `java.lang.Exception`

### preRegister

    public javax.management.ObjectName preRegister(javax.management.MBeanServer server,
                                                   javax.management.ObjectName name)
                                            throws java.lang.Exception

  Specified by:
    `preRegister` in interface `javax.management.MBeanRegistration`
  Throws:
    `java.lang.Exception`

### postRegister

    public void postRegister(java.lang.Boolean registrationDone)

  Specified by:
    `postRegister` in interface `javax.management.MBeanRegistration`

### preDeregister

    public void preDeregister()
                       throws java.lang.Exception

  Specified by:
    `preDeregister` in interface `javax.management.MBeanRegistration`
  Throws:
    `java.lang.Exception`

### postDeregister

    public void postDeregister()

  Specified by:
    `postDeregister` in interface `javax.management.MBeanRegistration`

### unregisterRegistry

    public void unregisterRegistry(java.lang.ClassLoader loader)

  Called by a registry or by the container to unload a loader

  Parameters:
    `loader` -

### findManagedBean

    public ManagedBean findManagedBean(java.lang.Class beanClass,
                                       java.lang.String type)
                                throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### setMBeanServer

    public void setMBeanServer(javax.management.MBeanServer server)

  Set the `MBeanServer` to be utilized for our registered management beans.

  Parameters:
    `server` - The new `MBeanServer` instance

### resetMetadata

    public void resetMetadata()

### loadDescriptors

    public void loadDescriptors(java.lang.Object source)
                         throws java.lang.Exception

  Load the registry from the XML input found in the specified input stream.

  Parameters:
    `source` - Source to be used to load. Can be an InputStream or URL.
  Throws:
    `java.lang.Exception` - if any parsing or processing error occurs

### registerComponent

    public void registerComponent(java.lang.Object bean,
                                  java.lang.String domain,
                                  java.lang.String type,
                                  java.lang.String name)
                           throws java.lang.Exception

  Deprecated. - may still be used in code using pre-1.1 builds

  Throws:
    `java.lang.Exception`

### unregisterComponent

    public void unregisterComponent(java.lang.String domain,
                                    java.lang.String name)

### loadCachedDescriptors

    public void loadCachedDescriptors(java.lang.Object source)
                               throws java.lang.Exception

  Deprecated. Loaded automatically or using a File or Url ending in .ser

  Load the registry from a cached .ser file. This is typically 2-3 times faster than parsing the XML.

  Parameters:
    `source` - Source to be used to load. Can be an InputStream or URL.
  Throws:
    `java.lang.Exception` - if any parsing or processing error occurs

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.