package org.infinispan.server.core.test;
import java.util.function.Consumer;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.server.core.AbstractProtocolServer;
import org.infinispan.test.TestingUtil;
/**
* Stoppable implements simple wrappers for objects which need to be stopped in certain way after being used
* @author Galder ZamarreƱo
* @author wburns
*/
public class Stoppable {
public static <T extends EmbeddedCacheManager> void useCacheManager(T stoppable, Consumer<? super T> consumer) {
try {
consumer.accept(stoppable);
} finally {
TestingUtil.killCacheManagers(stoppable);
}
}
public static <T extends AbstractProtocolServer<?>> void useServer(T stoppable, Consumer<? super T> consumer) {
try {
consumer.accept(stoppable);
} finally {
ServerTestingUtil.killServer(stoppable);
}
}
}