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 Class<?> clazz = getClass();
033
034 _indexWriter = (IndexWriter)ProxyUtil.newProxyInstance(
035 clazz.getClassLoader(), new Class[] {IndexWriter.class},
036 _queuingInvocationHandler);
037 }
038
039 public void flush() {
040 _queuingInvocationHandler.flush();
041 }
042
043 @Override
044 public IndexSearcher getIndexSearcher() {
045 return _indexSearcher;
046 }
047
048 @Override
049 public IndexWriter getIndexWriter() {
050 return _indexWriter;
051 }
052
053 public void invokeQueued(IndexWriter indexWriter) throws Exception {
054 _queuingInvocationHandler.invokeQueued(indexWriter);
055 }
056
057 private final IndexSearcher _indexSearcher = new DummyIndexSearcher();
058 private final IndexWriter _indexWriter;
059 private final QueuingInvocationHandler _queuingInvocationHandler;
060
061 }