27 Nisan 2021 Salı

@VisibleForTesting Anotasyonu

Giriş
Şu satırı dahil ederiz
import com.google.common.annotations.VisibleForTesting;
Açıklaması şöyle
... the annotation itself does not prevent production code from calling the annotated method
Örnek
Şöyle yaparız. Böylece testler farklı bir pakette olsa bile Bar sınıfına erişebilir
class Foo {
  ...
  @VisibleForTesting
  static class Bar {
  }
}

6 Nisan 2021 Salı

ServiceManager Sınıfı

Giriş
Şu satırı dahil ederiz
import com.google.common.util.concurrent.ServiceManager;
startAsync metodu
Örnek
Şöyle yaparız
public class ManagedGuavaServices implements Managed {
  @Inject
  private ServiceManager serviceManager;

  @Inject
  public ManagedGuavaServices(ServiceManager serviceManager) {
    this.serviceManager = serviceManager;
  }

  @Override
  public void start() throws Exception {
    serviceManager.startAsync();
    serviceManager.awaitHealthy(2, TimeUnit.SECONDS);
  }

  @Override
  public void stop() throws Exception {
    serviceManager.stopAsync();
    serviceManager.awaitStopped(2, TimeUnit.SECONDS);
 }
}