groovy.jmx.builder

## Class JmxBuilderModelMBean

- java.lang.Object
- - javax.management.modelmbean.RequiredModelMBean
  - - groovy.jmx.builder.JmxBuilderModelMBean

All Implemented Interfaces:
  EventListener, DynamicMBean, MBeanRegistration, ModelMBean, ModelMBeanNotificationBroadcaster, NotificationBroadcaster, NotificationEmitter, NotificationListener, PersistentMBean

    public class JmxBuilderModelMBean
    extends RequiredModelMBean
    implements NotificationListener

The JmxBuilderModelMBean is the MBean class that proxies exported POGO/POJO inside the MBeanServer. When JmxBuilder exports an object instance, an instance of this class is created and exported inside the MBeanServer.

Author:
  Vladimir Vivien

### Constructor Summary

Constructors
Constructor and Description
`JmxBuilderModelMBean()`
`JmxBuilderModelMBean(ModelMBeanInfo mbi)`
`JmxBuilderModelMBean(Object objectRef)`

### Method Summary

Methods
`void` `addEventListeners(MBeanServer server, Map<String,Map> descriptor)` Sets up event listeners for this MBean as described in the descriptor.
`void` `addOperationCallListeners(Map<String,Map> descriptor)` Registers listeners for operation calls (i.e. method, getter, and setter calls) when invoked on this bean from the MBeanServer.
`void` `handleNotification(Notification note, Object handback)`
`Object` `invoke(String opName, Object[] opArgs, String[] signature)`
`void` `setManagedResource(Object obj)`

### Methods inherited from class javax.management.modelmbean.RequiredModelMBean

`addAttributeChangeNotificationListener, addNotificationListener, getAttribute, getAttributes, getClassLoaderRepository, getMBeanInfo, getNotificationInfo, load, postDeregister, postRegister, preDeregister, preRegister, removeAttributeChangeNotificationListener, removeNotificationListener, removeNotificationListener, sendAttributeChangeNotification, sendAttributeChangeNotification, sendNotification, sendNotification, setAttribute, setAttributes, setManagedResource, setModelMBeanInfo, store`

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### JmxBuilderModelMBean

    public JmxBuilderModelMBean(Object objectRef)
                         throws MBeanException,
                                RuntimeOperationsException,
                                InstanceNotFoundException,
                                InvalidTargetObjectTypeException

Throws:
  `MBeanException`
  `RuntimeOperationsException`
  `InstanceNotFoundException`
  `InvalidTargetObjectTypeException`

#### JmxBuilderModelMBean

    public JmxBuilderModelMBean()
                         throws MBeanException,
                                RuntimeOperationsException

Throws:
  `MBeanException`
  `RuntimeOperationsException`

#### JmxBuilderModelMBean

    public JmxBuilderModelMBean(ModelMBeanInfo mbi)
                         throws MBeanException,
                                RuntimeOperationsException

Throws:
  `MBeanException`
  `RuntimeOperationsException`

### Method Detail

#### setManagedResource

    public void setManagedResource(Object obj)

#### addOperationCallListeners

    public void addOperationCallListeners(Map<String,Map> descriptor)

Registers listeners for operation calls (i.e. method, getter, and setter calls) when invoked on this bean from the MBeanServer. Descriptor should contain a map with layout item -> [Map[methodListener:[target:"", tpe:"", callback:&Closure], ... ,]]

Parameters:
  `descriptor` - MetaMap descriptor containing description of operation call listeners

#### addEventListeners

    public void addEventListeners(MBeanServer server,
                         Map<String,Map> descriptor)

Sets up event listeners for this MBean as described in the descriptor. The descriptor contains a map with layout {item -> Map[event:"...", from:ObjectName, callback:&Closure],...,}

Parameters:
  `server` - the MBeanServer is to be registered.
  `descriptor` - a map containing info about the event

#### invoke

    public Object invoke(String opName,
                Object[] opArgs,
                String[] signature)
                  throws MBeanException,
                         ReflectionException

Specified by:
  `invoke` in interface `DynamicMBean`
Overrides:
  `invoke` in class `RequiredModelMBean`
Throws:
  `MBeanException`
  `ReflectionException`

#### handleNotification

    public void handleNotification(Notification note,
                          Object handback)

Specified by:
  `handleNotification` in interface `NotificationListener`