package com.lambdaworks;
import java.util.concurrent.TimeUnit;
import com.lambdaworks.redis.TestEventLoopGroupProvider;
import com.lambdaworks.redis.resource.ClientResources;
import com.lambdaworks.redis.resource.DefaultClientResources;
/**
* Client-Resources suitable for testing. Uses {@link com.lambdaworks.redis.TestEventLoopGroupProvider} to preserve the event
* loop groups between tests. Every time a new {@link TestClientResources} instance is created, shutdown hook is added
* {@link Runtime#addShutdownHook(Thread)}.
*
* @author Mark Paluch
*/
public class TestClientResources {
public static ClientResources create() {
final DefaultClientResources resources = new DefaultClientResources.Builder().eventLoopGroupProvider(
new TestEventLoopGroupProvider()).build();
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
try {
resources.shutdown(100, 100, TimeUnit.MILLISECONDS).get(10, TimeUnit.SECONDS);
} catch (Exception e) {
e.printStackTrace();
}
}
});
return resources;
}
}