001
014
015 package com.liferay.portal.kernel.search.queue;
016
017 import com.liferay.portal.kernel.search.BaseSearchEngine;
018 import com.liferay.portal.kernel.search.IndexSearcher;
019 import com.liferay.portal.kernel.search.IndexWriter;
020 import com.liferay.portal.kernel.search.dummy.DummyIndexSearcher;
021 import com.liferay.portal.kernel.util.ProxyUtil;
022 import com.liferay.portal.kernel.util.QueuingInvocationHandler;
023
024
027 public class QueuingSearchEngine extends BaseSearchEngine {
028
029 public QueuingSearchEngine(int capacity) {
030 _queuingInvocationHandler = new QueuingInvocationHandler(capacity);
031
032 _indexWriter = (IndexWriter)ProxyUtil.newProxyInstance(
033 getClass().getClassLoader(), new Class[] {IndexWriter.class},
034 _queuingInvocationHandler);
035 }
036
037 public void flush() {
038 _queuingInvocationHandler.flush();
039 }
040
041 @Override
042 public IndexSearcher getIndexSearcher() {
043 return _indexSearcher;
044 }
045
046 @Override
047 public IndexWriter getIndexWriter() {
048 return _indexWriter;
049 }
050
051 public void invokeQueued(IndexWriter indexWriter) throws Exception {
052 _queuingInvocationHandler.invokeQueued(indexWriter);
053 }
054
055 private final IndexSearcher _indexSearcher = new DummyIndexSearcher();
056 private final IndexWriter _indexWriter;
057 private final QueuingInvocationHandler _queuingInvocationHandler;
058
059 }