private static InternalCacheClientProxyFactory factory() {
    String proxyClassName = System.getProperty(INTERNAL_FACTORY_PROPERTY);
    if (proxyClassName == null || proxyClassName.isEmpty()) {
      return DEFAULT;
    }
    try {
      Class<InternalCacheClientProxyFactory> proxyClass =
          uncheckedCast(ClassPathLoader.getLatest().forName(proxyClassName));
      return proxyClass.getConstructor().newInstance();
    } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException
        | IllegalAccessException | InvocationTargetException e) {
      return DEFAULT;
    }
  }
Creates instances of CacheClientProxy.

<p>
CacheClientProxyFactory delegates to InternalCacheClientProxyFactory which can be specified by
System Property {@code gemfire.CacheClientProxyFactory.INTERNAL_FACTORY}. This allows tests to
customize CacheClientProxy and/or MessageDispatcher using Property-Injection. See
DeltaPropagationDUnitTest for an example.
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientProxyFactory.java