Package: groovy.jmx.builder

## [Groovy] Class JmxBeanFactory

- groovy.jmx.builder.JmxBeanFactory

- This factory returns the bean() node. This node is used to declaratively expose a POGO/POJO to be exported to the MBeanServer for management. You can use the builder node to declare the descriptor or embed the descriptor directly in the object being exposed using static variable descriptor (or jmx). You should note that embedded descriptor takes precedence over declared builder descriptor.

  The following shows all of the different syntax forms supported by the node.

       bean(instance)
       bean(target:instance, name:ObjectName|"...", desc|description:"...")
       bean(target:instance,
           server:MBeanServerConnection
           name:ObjectName()|"...",
           desc|description:"...",
           attribs|attributes:"*",
           attribs|attributes:[]
           attribs|attributes:["attribName1","attribName2",..."attribNameN"]
           attribs|attributes:[
               "attribName0":"*",
               "attribName1":[desc|description:"...", default:value, writable|editable:true|false,...]
                "attribName2":[onChange:{event->
                    // onChange event callback code here.
                ]
            ],

           ctors|constructors:"*",
           ctors|constructors:[
               "CtorName0":[],
               "CtorName1":["paramType1","paramType2"],
               "CtorName2":[
                   desc|description:"...",
                   params:[
                        "type0":"*"
                        "type1":[desc|description:"...", name:"...", ]
                   ]
               ]
           ],

           ops|operations:"*",
           ops|operations:["opName1", "opName2", "opName3",...,"opNameN"],
           ops|operations:[
               "opName0":"*",
               "opName1":["type1","type2,"type3"]
               "opName2":[
                   desc:"description",
                   params:[
                       "type0":"*"
                       "type1":[desc|description:"...", name:"...", ],
                       "typeN":[desc|description:"...", name:"...", ],
                   ],
               ],
               "opName3":[
                   onCall:{event->
                       // onCall event callback code here.
      }]
               ],

           listeners:[
               ListenerName:[
                   event: "eventType", from:"object name"|ObjectName(),
                   call:{event->
                       // handler code for event
      }],
           ]
       )

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `boolean` | `isLeaf()`
    `` | `Object` | `newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttributes)`
    `` | `boolean` | `onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs)`
    `` | `void` | `onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractFactory` | `setParent, isLeaf, setChild, onNodeCompleted, onNodeChildren, onFactoryRegistration, isHandlesNodeChildren, onHandleNodeAttributes, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll, newInstance`

- - ### Method Detail

    - #### boolean isLeaf()

    - #### Object newInstance(FactoryBuilderSupport builder, Object nodeName, Object nodeParam, Map nodeAttributes)

    - #### boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node, Map nodeAttribs)

    - #### void onNodeCompleted(FactoryBuilderSupport builder, Object parentNode, Object thisNode)