예제 #1
0
  @Override
  public <I> I decorate(I subject) {
    if (listener == null) {
      listener =
          new RepositoryListener() {

            @Override
            public void opened(Repository repo) {
              service.startAsync().awaitRunning();
            }

            @Override
            public void closed() {
              service.stopAsync();
            }
          };
      ((Repository) subject).addListener(listener);
    }
    return subject;
  }