# Class NoDescriptorRegistry

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

All Implemented Interfaces:
  `MBeanRegistration, RegistryMBean`

public class NoDescriptorRegistry extends Registry
An implementation of the MBean registry that effectively disables MBean registration. This is typically used when low memory footprint is a primary concern.

## Constructor Summary

Constructors
Constructor
Description
`NoDescriptorRegistry()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addManagedBean(ManagedBean bean)`
Add a new bean metadata to the set of beans known to this registry.
`ManagedBean`
`findManagedBean(Object bean, Class<?> beanClass, String type)`
Find or load metadata.
`ManagedBean`
`findManagedBean(String name)`
Find and return the managed bean definition for the specified bean name, if any; otherwise return `null`.
`int`
`getId(String domain, String name)`
Return an int ID for faster access.
`MBeanServer`
`getMBeanServer()`
Factory method to create (if necessary) and return our `MBeanServer` instance.
`MBeanOperationInfo`
`getMethodInfo(ObjectName oname, String opName)`
Find the operation info for a method
`String`
`getType(ObjectName oname, String attName)`
Get the type of an attribute of the object, from the metadata.
`void`
`invoke(List<ObjectName> mbeans, String operation, boolean failFirst)`
Invoke an operation on a list of mbeans.
`List<ObjectName>`
`load(String sourceType, Object source, String param)`
Load descriptors.
`void`
`loadDescriptors(String packageName, ClassLoader classLoader)`
Lookup the component descriptor in the package and in the parent packages.
`void`
`registerComponent(Object bean, String oname, String type)`
Register a bean by creating a modeler mbean and adding it to the MBeanServer.
`void`
`registerComponent(Object bean, ObjectName oname, String type)`
Register a component
`void`
`unregisterComponent(String oname)`
Unregister a component.
`void`
`unregisterComponent(ObjectName oname)`
Unregister a component.

### Methods inherited from class Registry

`convertValue, disableRegistry, getMethodInfo, getRegistry, getRegistry, postDeregister, postRegister, preDeregister, preRegister, stop`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### NoDescriptorRegistry

public NoDescriptorRegistry()

## Method Details

### registerComponent

public void registerComponent(Object bean, String oname, String type) throws Exception
Description copied from class: `Registry`
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. its metadata will be converted to a model mbean, and we'll wrap it so modeler services are supported. If the metadata is still not found, introspection will be used to extract it automatically. If a 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`
Overrides:
  `registerComponent` in class `Registry`
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:
  `Exception` - if a registration error occurred

### unregisterComponent

public void unregisterComponent(String oname)
Description copied from class: `Registry`
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`
Overrides:
  `unregisterComponent` in class `Registry`
Parameters:
  `oname` - Name used for unregistration

### invoke

public void invoke(List<ObjectName> mbeans, String operation, boolean failFirst) throws Exception
Description copied from class: `Registry`
Invoke an operation on a list of mbeans. Can be used to implement lifecycle operations.

Specified by:
  `invoke` in interface `RegistryMBean`
Overrides:
  `invoke` in class `Registry`
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:
  `Exception` - Error invoking operation

### getId

public int getId(String domain, String name)
Description copied from class: `Registry`
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`
Overrides:
  `getId` in class `Registry`
Parameters:
  `domain` - Namespace
  `name` - Type of the notification
Returns:
  A unique id for the domain:name combination

### addManagedBean

public void addManagedBean(ManagedBean bean)
Description copied from class: `Registry`
Add a new bean metadata to the set of beans known to this registry. This is used by internal components.

Overrides:
  `addManagedBean` in class `Registry`
Parameters:
  `bean` - The managed bean to be added

### findManagedBean

public ManagedBean findManagedBean(String name)
Description copied from class: `Registry`
Find and return the managed bean definition for the specified bean name, if any; otherwise return `null`.

Overrides:
  `findManagedBean` in class `Registry`
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.
Returns:
  the managed bean

### getType

public String getType(ObjectName oname, String attName)
Description copied from class: `Registry`
Get the type of an attribute of the object, from the metadata.

Overrides:
  `getType` in class `Registry`
Parameters:
  `oname` - The bean name
  `attName` - The attribute name
Returns:
  null if metadata about the attribute is not found

### getMethodInfo

public MBeanOperationInfo getMethodInfo(ObjectName oname, String opName)
Description copied from class: `Registry`
Find the operation info for a method

Overrides:
  `getMethodInfo` in class `Registry`
Parameters:
  `oname` - The bean name
  `opName` - The operation name
Returns:
  the operation info for the specified operation

### findManagedBean

public ManagedBean findManagedBean(Object bean, Class<?> beanClass, String type) throws Exception
Description copied from class: `Registry`
Find or load metadata.

Overrides:
  `findManagedBean` in class `Registry`
Parameters:
  `bean` - The bean
  `beanClass` - The bean class
  `type` - The registry type
Returns:
  the managed bean
Throws:
  `Exception` - An error occurred

### load

public List<ObjectName> load(String sourceType, Object source, String param) throws Exception
Description copied from class: `Registry`
Load descriptors.

Overrides:
  `load` in class `Registry`
Parameters:
  `sourceType` - The source type
  `source` - The bean
  `param` - A type to load
Returns:
  List of descriptors
Throws:
  `Exception` - Error loading descriptors

### loadDescriptors

public void loadDescriptors(String packageName, ClassLoader classLoader)
Description copied from class: `Registry`
Lookup the component descriptor in the package and in the parent packages.

Overrides:
  `loadDescriptors` in class `Registry`
Parameters:
  `packageName` - The package name
  `classLoader` - The class loader

### registerComponent

public void registerComponent(Object bean, ObjectName oname, String type) throws Exception
Description copied from class: `Registry`
Register a component

Overrides:
  `registerComponent` in class `Registry`
Parameters:
  `bean` - The bean
  `oname` - The object name
  `type` - The registry type
Throws:
  `Exception` - Error registering component

### unregisterComponent

public void unregisterComponent(ObjectName oname)
Description copied from class: `Registry`
Unregister a component. This is just a helper that avoids exceptions by checking if the mbean is already registered

Overrides:
  `unregisterComponent` in class `Registry`
Parameters:
  `oname` - The bean name

### getMBeanServer

public MBeanServer getMBeanServer()
Description copied from class: `Registry`
Factory method to create (if necessary) and return our `MBeanServer` instance.

Overrides:
  `getMBeanServer` in class `Registry`
Returns:
  the MBean server