@@ -0,0 +1,840 @@
+package com.metamx.common.guava;%0A%0Aimport java.io.Closeable;%0Aimport java.io.IOException;%0A%0A/**%0A */%0Apublic class ResourceClosingYielder%3COutType%3E implements Yielder%3COutType%3E%0A%7B%0A  private final Yielder%3COutType%3E baseYielder;%0A  private final Closeable closeable;%0A%0A  public ResourceClosingYielder(Yielder%3COutType%3E baseYielder, Closeable closeable)%0A  %7B%0A    this.baseYielder = baseYielder;%0A    this.closeable = closeable;%0A  %7D%0A%0A  @Override%0A  public OutType get()%0A  %7B%0A    return baseYielder.get();%0A  %7D%0A%0A  @Override%0A  public Yielder%3COutType%3E next(OutType initValue)%0A  %7B%0A    return new ResourceClosingYielder%3COutType%3E(baseYielder.next(initValue), closeable);%0A  %7D%0A%0A  @Override%0A  public boolean isDone()%0A  %7B%0A    return baseYielder.isDone();%0A  %7D%0A%0A  @Override%0A  public void close() throws IOException%0A  %7B%0A    closeable.close();%0A    baseYielder.close();%0A  %7D%0A%7D%0A

add a resource closing yielder