void createProxy(DistributedMember member, ObjectName objectName,
      Region<String, Object> monitoringRegion, Object newValue) {
    try {
      FederationComponent federation = (FederationComponent) newValue;
      String interfaceClassName = federation.getMBeanInterfaceClass();

      Class interfaceClass = ClassLoadUtils.classFromName(interfaceClassName);

      Object proxy = MBeanProxyInvocationHandler.newProxyInstance(member, monitoringRegion,
          objectName, federation, interfaceClass);

      jmxAdapter.registerMBeanProxy(proxy, objectName);

      if (logger.isDebugEnabled()) {
        logger.debug("Registered ObjectName : {}", objectName);
      }

      ProxyInfo proxyInfo = new ProxyInfo(interfaceClass, proxy, objectName);
      proxyRepo.addProxyToRepository(member, proxyInfo);

      service.afterCreateProxy(objectName, interfaceClass, proxy, (FederationComponent) newValue);

      if (logger.isDebugEnabled()) {
        logger.debug("Proxy Created for : {}", objectName);
      }

    } catch (ClassNotFoundException e) {
      throw new ManagementException(e);
    }
  }
Creates a single proxy and adds a {@link ProxyInfo} to proxy repository
{@link MBeanProxyInfoRepository}
geode-core/src/main/java/org/apache/geode/management/internal/MBeanProxyFactory.java