public static <T> RemoteIterator<T> remoteIteratorFromIterable(
      Iterable<T> iterable) {
    return new WrappedJavaIterator<>(iterable.iterator());
  }
@Test
  public void testJavaIterableSupport() throws Throwable {
    CountdownIterable countdown = new CountdownIterable(100);
    RemoteIterator<Integer> it = remoteIteratorFromIterable(
        countdown);
    verifyInvoked(it, 100, c -> counter++);
    assertStringValueContains(it, "CountdownIterator");
    extractStatistics(it);
    // close the iterator
    close(it);
    countdown.assertCloseCount(0);
    // and a new iterator can be crated
    verifyInvoked(remoteIteratorFromIterable(countdown),
        100, c -> counter++);
  }