package org.infinispan.query.blackbox;
import java.io.File;
import org.infinispan.commons.util.Util;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.configuration.cache.Index;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.query.test.AnotherGrassEater;
import org.infinispan.query.test.Person;
import org.infinispan.test.TestingUtil;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
/**
* Run the basic set of operations with filesystem-based index storage.
* The default FSDirectory implementation for non Windows systems should be NIOFSDirectory.
* SimpleFSDirectory implementation will be used on Windows.
*
* @author Martin Gencur
*/
@Test(groups = "functional", testName = "query.blackbox.LocalCacheFSDirectoryTest")
public class LocalCacheFSDirectoryTest extends LocalCacheTest {
private final String indexDirectory = TestingUtil.tmpDirectory(this.getClass());
@Override
protected EmbeddedCacheManager createCacheManager() throws Exception {
ConfigurationBuilder cfg = getDefaultStandaloneCacheConfig(true);
cfg.indexing().index(Index.ALL)
.addIndexedEntity(Person.class)
.addIndexedEntity(AnotherGrassEater.class)
.addProperty("default.directory_provider", "filesystem")
.addProperty("default.indexBase", indexDirectory)
.addProperty("error_handler", "org.infinispan.query.helper.StaticTestingErrorHandler")
.addProperty("lucene_version", "LUCENE_CURRENT");
return TestCacheManagerFactory.createCacheManager(cfg);
}
@Override
protected void setup() throws Exception {
Util.recursiveFileRemove(indexDirectory);
new File(indexDirectory).mkdirs();
super.setup();
}
@Override
protected void teardown() {
try {
super.teardown();
} finally {
Util.recursiveFileRemove(indexDirectory);
}
}
}