package org.infinispan.all.embeddedquery; import org.infinispan.all.embeddedquery.testdomain.Person; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.cache.Index; import org.infinispan.configuration.global.GlobalConfigurationBuilder; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.transaction.TransactionMode; import org.junit.Before; import org.junit.Test; /** * Tests that undeclared indexed entities are autodetected. * * @author anistor@redhat.com * @since 8.2 */ public class IndexedEntityAutodetectTest extends LocalCacheTest { protected static EmbeddedCacheManager createCacheManager() throws Exception { GlobalConfigurationBuilder gcfg = new GlobalConfigurationBuilder(); gcfg.globalJmxStatistics().allowDuplicateDomains(true); // this configuration does not declare any indexed types on purpose, so they are autodetected ConfigurationBuilder cfg = new ConfigurationBuilder(); cfg.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .indexing() .index(Index.ALL) .addProperty("default.directory_provider", "ram") .addProperty("error_handler", "org.infinispan.all.embeddedquery.testdomain.StaticTestingErrorHandler") .addProperty("lucene_version", "LUCENE_CURRENT"); EmbeddedCacheManager cm = new DefaultCacheManager(gcfg.build(), cfg.build()); return cm; } @Before public void init() throws Exception { cache = createCacheManager().getCache(); } @Override protected void loadTestingData() { assertIndexingKnows(cache); super.loadTestingData(); assertIndexingKnows(cache, Person.class); } @Test public void testEntityDiscovery() { assertIndexingKnows(cache); Person p = new Person(); p.setName("Lucene developer"); p.setAge(30); p.setBlurb("works best on weekends"); cache.put(p.getName(), p); assertIndexingKnows(cache, Person.class); } }