Make a proxy for an MXBean in a local or remote
 MBean Server.
 If you have an MBean Server mbs containing an
 MXBean with ObjectName name, and if the
 MXBean's management interface is described by the Java
 interface MyMXBean, you can construct a proxy for
 the MXBean like this:
 
 MyMXBean proxy = JMX.newMXBeanProxy(mbs, name, MyMXBean.class);
 
 Suppose, for example, MyMXBean looks like this:
 
 public interface MyMXBean {
     public String getSimpleAttribute();
     public void setSimpleAttribute(String value);
     public MemoryUsage getMappedAttribute();
     public void setMappedAttribute(MemoryUsage memoryUsage);
     public MemoryUsage someOperation(String param1, MemoryUsage param2);
 }
 
 Then:
 
 proxy.getSimpleAttribute() will result in a
 call to mbs.getAttribute(name, "SimpleAttribute").
 proxy.setSimpleAttribute("whatever") will result
 in a call to mbs.setAttribute(name,
 new Attribute("SimpleAttribute", "whatever")).
     
Because String is a simple type, in the
     sense of SimpleType, it
     is not changed in the context of an MXBean.  The MXBean
     proxy behaves the same as a Standard MBean proxy (see
     newMBeanProxy) for the attribute SimpleAttribute.
 proxy.getMappedAttribute() will result in a call
 to mbs.getAttribute("MappedAttribute").  The MXBean
 mapping rules mean that the actual type of the attribute MappedAttribute will be CompositeData and
 that is what the mbs.getAttribute call will return.
 The proxy will then convert the CompositeData back into
 the expected type MemoryUsage using the MXBean mapping
 rules.
 Similarly, proxy.setMappedAttribute(memoryUsage)
 will convert the MemoryUsage argument into a CompositeData before calling mbs.setAttribute.
 proxy.someOperation("whatever", memoryUsage)
 will convert the MemoryUsage argument into a CompositeData and call mbs.invoke.  The value returned
 by mbs.invoke will be also be a CompositeData,
 and the proxy will convert this into the expected type MemoryUsage using the MXBean mapping rules.
 
 The object returned by this method is a
 Proxy whose InvocationHandler is an
 MBeanServerInvocationHandler.
 This method is equivalent to newMXBeanProxy(connection, objectName, interfaceClass,
 false).
        
        
Returns:
    the new proxy instance. 
Parameters:
 - 
connection - the MBean server to forward to.
 - 
objectName - the name of the MBean within
 {@code connection} to forward to.
 - 
interfaceClass - the MXBean interface,
 which will also be implemented by the returned proxy.
 - 
T - allows the compiler to know that if the {@code
 interfaceClass} parameter is {@code MyMXBean.class}, for
 example, then the return type is {@code MyMXBean}.