/* * Copyright 2004-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.compass.core.test.engine; import org.compass.core.Compass; import org.compass.core.config.CompassEnvironment; import org.compass.core.config.RuntimeCompassSettings; import org.compass.core.converter.DefaultConverterLookup; import org.compass.core.engine.SearchEngine; import org.compass.core.engine.SearchEngineFactory; import org.compass.core.engine.naming.StaticPropertyNamingStrategy; import org.compass.core.executor.DefaultExecutorManager; import org.compass.core.executor.ExecutorManager; import org.compass.core.impl.DefaultCompass; import org.compass.core.lucene.engine.LuceneSearchEngine; import org.compass.core.lucene.engine.LuceneSearchEngineFactory; import org.compass.core.metadata.impl.DefaultCompassMetaData; import org.compass.core.util.FileHandlerMonitor; /** * @author kimchy */ public abstract class AbstractSearchEngineTests extends AbstractEngineTests { private SearchEngine searchEngine; private SearchEngineFactory searchEngineFactory; private FileHandlerMonitor fileHandlerMonitor; // we have it here for transactional settings protected Compass compass; public SearchEngine getSearchEngine() { return this.searchEngine; } public SearchEngineFactory getSearchEngineFactory() { return searchEngineFactory; } public LuceneSearchEngine getLuceneSearchEngine() { return (LuceneSearchEngine) getSearchEngine(); } protected void setUp() throws Exception { super.setUp(); this.searchEngineFactory = createSearchEngineFactory(); getSettings().setBooleanSetting(CompassEnvironment.DEBUG, true); this.compass = new DefaultCompass(getMapping(), new DefaultConverterLookup(), new DefaultCompassMetaData(), new StaticPropertyNamingStrategy(), getSettings(), (LuceneSearchEngineFactory) searchEngineFactory); this.fileHandlerMonitor = FileHandlerMonitor.getFileHandlerMonitor(compass); fileHandlerMonitor.verifyNoHandlers(); this.searchEngine = searchEngineFactory.openSearchEngine(new RuntimeCompassSettings(compass.getSettings())); } public SearchEngine createNewSearchEngine() { return searchEngineFactory.openSearchEngine(new RuntimeCompassSettings(compass.getSettings())); } protected void tearDown() throws Exception { searchEngine.close(); compass.close(); searchEngineFactory.getIndexManager().deleteIndex(); fileHandlerMonitor.verifyNoHandlers(); super.tearDown(); } protected abstract SearchEngineFactory createSearchEngineFactory(); protected ExecutorManager createExecutorManager() { DefaultExecutorManager executorManager = new DefaultExecutorManager(); executorManager.configure(getSettings()); return executorManager; } }