package org.springmodules.lucene.index.factory.concurrent; import junit.framework.TestCase; import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.store.RAMDirectory; import org.springmodules.lucene.index.factory.IndexFactory; import org.springmodules.lucene.index.factory.LuceneIndexReader; import org.springmodules.lucene.index.factory.LuceneIndexWriter; import org.springmodules.lucene.index.factory.SimpleIndexFactory; public class LockIndexFactoryTests extends TestCase { private void doCloseIndexWriter(LuceneIndexWriter indexWriter) { try { if( indexWriter!=null ) { indexWriter.close(); } } catch(Exception ex) {} } protected void initIndex(IndexFactory indexFactory) { LuceneIndexWriter indexWriter = null; try { Document document = new Document(); document.add(new Field("id", "1", Field.Store.YES, Field.Index.UN_TOKENIZED)); document.add(new Field("field", "a sample", Field.Store.YES, Field.Index.TOKENIZED)); document.add(new Field("filter", "a sample filter", Field.Store.YES, Field.Index.TOKENIZED)); document.add(new Field("sort", "2", Field.Store.YES, Field.Index.UN_TOKENIZED)); indexWriter.addDocument(document); } catch(Exception ex) { } finally { doCloseIndexWriter(indexWriter); } } public void testGetResourceFactory() throws Exception { RAMDirectory directory = new RAMDirectory(); SimpleIndexFactory targetIndexFactory = new SimpleIndexFactory(); targetIndexFactory.setDirectory(directory); targetIndexFactory.setCreate(true); initIndex(targetIndexFactory); LockIndexFactory indexFactory = null; try { indexFactory = new LockIndexFactory(); indexFactory.setTargetIndexFactory(targetIndexFactory); indexFactory.afterPropertiesSet(); LuceneIndexReader indexReader = indexFactory.getIndexReader(); indexReader.hasDeletions(); indexReader.close(); LuceneIndexWriter indexWriter = indexFactory.getIndexWriter(); Document document = new Document(); document.add(new Field("id", "1", Field.Store.YES, Field.Index.UN_TOKENIZED)); document.add(new Field("field", "a sample", Field.Store.YES, Field.Index.TOKENIZED)); document.add(new Field("filter", "a sample filter", Field.Store.YES, Field.Index.TOKENIZED)); document.add(new Field("sort", "2", Field.Store.YES, Field.Index.UN_TOKENIZED)); indexWriter.addDocument(document, new SimpleAnalyzer()); indexWriter.close(); } catch(Exception ex) { ex.printStackTrace(); } finally { if( indexFactory!=null ) { indexFactory.destroy(); } } } }