code: protected static <T> ProxyFactory<T> newProxyFactory() {
  
      return new ProxyFactory<T>() {
  
        @Override
        public boolean canProxy(Object target, Class[] proxyInterfaces) {
          return ProxyService.<T>newProxyService().canProxy(target, proxyInterfaces);
        }
  
        @Override
        @SuppressWarnings("unchecked")
        public <R> R newProxy(ClassLoader proxyClassLoader, T target, Class<?>[] proxyInterfaces,
            Iterable<MethodInterceptor<T>> methodInterceptors) {
  
          return (R) stream(newProxyService())
            .filter(proxyFactory -> proxyFactory.canProxy(getTarget(), getProxyInterfaces())).findFirst()
              .flatMap(proxyFactory -> Optional.of(proxyFactory.<R>newProxy(getProxyClassLoader(), getTarget(),
                getProxyInterfaces(), getMethodInterceptors()))).orElse(getTarget());
        }
      };
    }
docs: Returns a reference to a {@link ProxyFactory} service provider implementation provided by Elements that delegates
  all proxy operations to any/all application configured {@link ProxyFactory} service provider implementations.
  
  @param <T> {@link Class} type of the {@link Object} to proxy.
  @return a reference to the Elements-defined {@link ProxyFactory} service provider implementation.
  @see org.cp.elements.lang.reflect.ProxyFactory
  @see org.cp.elements.lang.reflect.ProxyService