mx4j.server
Class BCELMBeanInvoker

java.lang.Object
  |
  +--mx4j.server.ReflectedMBeanInvoker
        |
        +--mx4j.server.BCELMBeanInvoker
All Implemented Interfaces:
MBeanInvoker

public class BCELMBeanInvoker
extends ReflectedMBeanInvoker

MBeanInvoker that generates on-the-fly implementations to call standard MBeans directly, instead of using reflection.

It uses the BCEL to generate the required bytecode on-the-fly. The generated class is named "mx4j.server.BCELMBeanInvokerGenerated", and it's loaded into the JVM by a different classloader for each MBean. This classloader has the MBean classloader as parent.

Version:
$Revision: 1.4 $
Author:
Simone Bordet

Inner Class Summary
static class BCELMBeanInvoker.BCELClassLoader
           
 
Constructor Summary
protected BCELMBeanInvoker()
           
 
Method Summary
static MBeanInvoker create(MBeanMetaData metadata)
           
protected  Logger getLogger()
           
protected  java.lang.Object invokeImpl(MBeanMetaData metadata, java.lang.String method, java.lang.String[] signature, java.lang.Object[] args)
           
 
Methods inherited from class mx4j.server.ReflectedMBeanInvoker
getAttribute, invoke, setAttribute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BCELMBeanInvoker

protected BCELMBeanInvoker()
Method Detail

create

public static MBeanInvoker create(MBeanMetaData metadata)

getLogger

protected Logger getLogger()
Overrides:
getLogger in class ReflectedMBeanInvoker

invokeImpl

protected java.lang.Object invokeImpl(MBeanMetaData metadata,
                                      java.lang.String method,
                                      java.lang.String[] signature,
                                      java.lang.Object[] args)
                               throws ReflectionException,
                                      MBeanException,
                                      java.lang.IllegalArgumentException
Overrides:
invokeImpl in class ReflectedMBeanInvoker