Package 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
Description
`JmxBuilderModelMBean()`
`JmxBuilderModelMBean(Object objectRef)`
`JmxBuilderModelMBean(ModelMBeanInfo mbi)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addEventListeners(MBeanServer server, Map<String,Map<String,Object>> descriptor)`
Sets up event listeners for this MBean as described in the descriptor.
`void`
`addOperationCallListeners(Map<String,Map<String,Map<String,Object>>> descriptor)`
Registers listeners for operation calls (i.e.
`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 Details

### 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 Details

### setManagedResource

public void setManagedResource(Object obj)

### addOperationCallListeners

public void addOperationCallListeners(Map<String,Map<String,Map<String,Object>>> 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<String,Object>> 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`