Package org.springmodules.lucene.index.resource

Source Code of org.springmodules.lucene.index.resource.DefaultResourceManagerTests

package org.springmodules.lucene.index.resource;

import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.springmodules.lucene.index.LuceneIndexingException;
import org.springmodules.lucene.index.core.DefaultLuceneIndexTemplate;
import org.springmodules.lucene.index.factory.IndexFactory;
import org.springmodules.lucene.index.factory.LuceneIndexReader;
import org.springmodules.lucene.index.factory.LuceneIndexWriter;

public class DefaultResourceManagerTests extends AbstractDefaultResourceManagerTests {
 
  public void testTwoResourcesOpened() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(true);
    definition.setIndexWriterOpen(true);
   
    resourceManager.initializeResources(definition);
    ResourceHolder holder = (ResourceHolder)ResourceBindingManager.getResource(indexFactory);
   
    try {
      assertNotNull(holder.getIndexReader());
      assertNotNull(holder.getIndexWriter());
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testOnlyIndexReaderOpened() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(true);
    definition.setIndexWriterOpen(false);
   
    resourceManager.initializeResources(definition);
    ResourceHolder holder = (ResourceHolder)ResourceBindingManager.getResource(indexFactory);
    assertNotNull(holder.getIndexReader());
    try {
      holder.getIndexWriter();
      fail();
    } catch(LuceneIndexingException ex) {
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testOnlyIndexReaderOpenedAndProtected() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(true);
    definition.setWriteOperationsForIndexReaderAuthorized(false);
    definition.setIndexWriterOpen(false);
   
    resourceManager.initializeResources(definition);
    ResourceHolder holder = (ResourceHolder)ResourceBindingManager.getResource(indexFactory);
    assertNotNull(holder.getIndexReader());
    try {
      holder.getIndexWriter();
      fail();
    } catch(LuceneIndexingException ex) {}
   
    LuceneIndexReader indexReader = holder.getIndexReader();
   
    try {
      indexReader.deleteDocument(2);
      fail();
    } catch(LuceneIndexingException ex) {}

    try {
      indexReader.deleteDocuments(new Term("id", "1"));
      fail();
    } catch(LuceneIndexingException ex) {}

    try {
      indexReader.setNorm(2, null, 2);
      fail();
    } catch(LuceneIndexingException ex) {}

    try {
      indexReader.undeleteAll();
      fail();
    } catch(LuceneIndexingException ex) {}
   
    resourceManager.releaseResources();
  }

  public void testOnlyIndexWriterOpened() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(false);
    definition.setIndexWriterOpen(true);
   
    resourceManager.initializeResources(definition);
    ResourceHolder holder = (ResourceHolder)ResourceBindingManager.getResource(indexFactory);
    try {
      holder.getIndexReader();
      fail();
    } catch(LuceneIndexingException ex) {
    } finally {
      resourceManager.releaseResources();
    }
   
    try {
      assertNotNull(holder.getIndexWriter());
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testOnlyIndexWriterOpenedAndProtected() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(false);
    definition.setIndexWriterOpen(true);
    definition.setWriteOperationsForIndexWriterAuthorized(false);
   
    resourceManager.initializeResources(definition);
    ResourceHolder holder = (ResourceHolder)ResourceBindingManager.getResource(indexFactory);
    try {
      holder.getIndexReader();
      fail();
    } catch(LuceneIndexingException ex) {}
    assertNotNull(holder.getIndexWriter());
   
    LuceneIndexWriter indexWriter = holder.getIndexWriter();
   
    try {
      Document document = new Document();
      document.add(new Field("id", "1", Field.Store.YES, Field.Index.UN_TOKENIZED));
      indexWriter.addDocument(document);
      fail();
    } catch(LuceneIndexingException ex) {}
   
    try {
      indexWriter.addIndexes(new Directory[] { new RAMDirectory() });
      fail();
    } catch(LuceneIndexingException ex) {}

    try {
      indexWriter.optimize();
      fail();
    } catch(LuceneIndexingException ex) {}

    try {
      indexWriter.setCommitLockTimeout(2);
      fail();
    } catch(LuceneIndexingException ex) {}
   
    resourceManager.releaseResources();
  }

  public void testTemplateExecutionWithIndexReader() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultLuceneIndexTemplate template = new DefaultLuceneIndexTemplate();
    template.setIndexFactory(indexFactory);
    template.setAnalyzer(new SimpleAnalyzer());
    template.afterPropertiesSet();

    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexReaderOpen(true);
    definition.setWriteOperationsForIndexReaderAuthorized(true);
    try {
      resourceManager.initializeResources(definition);
     
      template.deleteDocuments(new Term("id", "1"));
      template.hasDeletions();
      template.isDeleted(1);
      template.isDeleted(2);
      template.undeleteDocuments();
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testTemplateExecutionWithIndexWriter() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultLuceneIndexTemplate template = new DefaultLuceneIndexTemplate();
    template.setIndexFactory(indexFactory);
    template.setAnalyzer(new SimpleAnalyzer());
    template.afterPropertiesSet();

    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexWriterOpen(true);
    definition.setWriteOperationsForIndexWriterAuthorized(true);
    try {
      resourceManager.initializeResources(definition);
     
      Document document = new Document();
      document.add(new Field("id", "1", Field.Store.YES, Field.Index.UN_TOKENIZED));
      template.addDocument(document);
      template.addDocument(document);
      template.addDocument(document);
      template.optimize();
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testTemplateExecutionWithIndexWriterReaderWithError() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultLuceneIndexTemplate template = new DefaultLuceneIndexTemplate();
    template.setIndexFactory(indexFactory);
    template.setAnalyzer(new SimpleAnalyzer());
    template.afterPropertiesSet();

    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexWriterOpen(true);
    definition.setWriteOperationsForIndexWriterAuthorized(true);
    //definition.setIndexReaderOpen(true);
    definition.setWriteOperationsForIndexReaderAuthorized(false);
    try {
      resourceManager.initializeResources(definition);
     
      Document document = new Document();
      document.add(new Field("id", "3", Field.Store.YES, Field.Index.UN_TOKENIZED));
      template.addDocument(document);
      template.addDocument(document);
      template.addDocument(document);
      try {
        template.deleteDocuments(new Term("id", "1"));
        fail();
      } catch(LuceneIndexingException ex) {}
      template.optimize();
    } finally {
      resourceManager.releaseResources();
    }
  }

  public void testTemplateExecutionWithIndexWriterReader() throws Exception {
    IndexFactory indexFactory = createIndexFactory();
    ResourceManager resourceManager = createResourceManager(indexFactory);
   
    DefaultLuceneIndexTemplate template = new DefaultLuceneIndexTemplate();
    template.setIndexFactory(indexFactory);
    template.setAnalyzer(new SimpleAnalyzer());
    template.afterPropertiesSet();

    DefaultResourceManagementDefinition definition = new DefaultResourceManagementDefinition();
    definition.setIndexWriterOpen(true);
    definition.setWriteOperationsForIndexWriterAuthorized(true);
    definition.setIndexReaderOpen(true);
    definition.setWriteOperationsForIndexReaderAuthorized(false);
    try {
      resourceManager.initializeResources(definition);
     
      Document document = new Document();
      document.add(new Field("id", "3", Field.Store.YES, Field.Index.UN_TOKENIZED));
      template.addDocument(document);
      template.addDocument(document);
      template.addDocument(document);
      try {
        template.deleteDocuments(new Term("id", "1"));
      } catch(LuceneIndexingException ex) {}
      template.optimize();
    } finally {
      resourceManager.releaseResources();
    }
  }
 
}
TOP

Related Classes of org.springmodules.lucene.index.resource.DefaultResourceManagerTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.