code: public static Object create(Class<?> iface, Object implementation,
                                Map<String,RetryPolicy> methodNameToPolicyMap) {
      return Proxy.newProxyInstance(
                                    implementation.getClass().getClassLoader(),
                                    new Class<?>[] { iface },
                                    new RetryInvocationHandler(implementation, methodNameToPolicyMap)
                                    );
    }
docs: <p>
  Create a proxy for an interface of an implementation class
  using the a set of retry policies specified by method name.
  If no retry policy is defined for a method then a default of
  {@link RetryPolicies#TRY_ONCE_THEN_FAIL} is used.
  </p>
  @param iface the interface that the retry will implement
  @param implementation the instance whose methods should be retried
  @param methodNameToPolicyMap a map of method names to retry policies
  @return the retry proxy