SGF-609 - Upgrade to Apache Geode 1.2.0-SNAPSHOT.
Adapt to API changes in the Apache Geode Lucene integration after 1.2.0-SNAPSHOT. Set version to 1.2.0.BUILD-SNAPSHOT.
This commit is contained in:
@@ -17,7 +17,6 @@
|
||||
|
||||
package org.springframework.data.gemfire.search.lucene;
|
||||
|
||||
import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray;
|
||||
import static org.springframework.data.gemfire.util.SpringUtils.safeGetValue;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -131,29 +130,16 @@ public abstract class LuceneAccessor extends LuceneOperationsSupport implements
|
||||
return resolveLuceneService().createLuceneQueryFactory();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}.
|
||||
*
|
||||
* @param projectionFields {@link String} array containing the fields of the object to project.
|
||||
* @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}.
|
||||
* @see org.apache.geode.cache.lucene.LuceneQueryFactory
|
||||
* @see #createLuceneQueryFactory(int, int, String...)
|
||||
*/
|
||||
public LuceneQueryFactory createLuceneQueryFactory(String... projectionFields) {
|
||||
return createLuceneQueryFactory(DEFAULT_RESULT_LIMIT, DEFAULT_PAGE_SIZE, projectionFields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}.
|
||||
*
|
||||
* @param resultLimit limit to the number of results returned by the query.
|
||||
* @param projectionFields {@link String} array containing the fields of the object to project.
|
||||
* @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}.
|
||||
* @see org.apache.geode.cache.lucene.LuceneQueryFactory
|
||||
* @see #createLuceneQueryFactory(int, int, String...)
|
||||
* @see #createLuceneQueryFactory(int, int)
|
||||
*/
|
||||
public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, String... projectionFields) {
|
||||
return createLuceneQueryFactory(resultLimit, DEFAULT_PAGE_SIZE, projectionFields);
|
||||
public LuceneQueryFactory createLuceneQueryFactory(int resultLimit) {
|
||||
return createLuceneQueryFactory(resultLimit, DEFAULT_PAGE_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,14 +147,11 @@ public abstract class LuceneAccessor extends LuceneOperationsSupport implements
|
||||
*
|
||||
* @param resultLimit limit to the number of results returned by the query.
|
||||
* @param pageSize number of results appearing on a single page.
|
||||
* @param projectionFields {@link String} array containing the fields of the object to project.
|
||||
* @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}.
|
||||
* @see #createLuceneQueryFactory()
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, int pageSize, String... projectionFields) {
|
||||
return createLuceneQueryFactory().setResultLimit(resultLimit).setPageSize(pageSize)
|
||||
.setProjectionFields(nullSafeArray(projectionFields, String.class));
|
||||
public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, int pageSize) {
|
||||
return createLuceneQueryFactory().setResultLimit(resultLimit).setPageSize(pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,6 +31,7 @@ import java.util.Optional;
|
||||
import org.apache.geode.cache.GemFireCache;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.lucene.LuceneIndex;
|
||||
import org.apache.geode.cache.lucene.LuceneIndexFactory;
|
||||
import org.apache.geode.cache.lucene.LuceneService;
|
||||
import org.apache.geode.cache.lucene.LuceneServiceProvider;
|
||||
import org.apache.lucene.analysis.Analyzer;
|
||||
@@ -49,6 +50,8 @@ import org.springframework.util.StringUtils;
|
||||
* Spring {@link FactoryBean} used to construct {@link LuceneIndex Lucene Indexes} on application domain object fields.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see org.springframework.beans.factory.BeanFactory
|
||||
* @see org.springframework.beans.factory.BeanFactoryAware
|
||||
* @see org.springframework.beans.factory.BeanNameAware
|
||||
* @see org.springframework.beans.factory.DisposableBean
|
||||
* @see org.springframework.beans.factory.FactoryBean
|
||||
@@ -56,8 +59,10 @@ import org.springframework.util.StringUtils;
|
||||
* @see org.apache.geode.cache.GemFireCache
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @see org.apache.geode.cache.lucene.LuceneIndex
|
||||
* @see org.apache.geode.cache.lucene.LuceneIndexFactory
|
||||
* @see org.apache.geode.cache.lucene.LuceneService
|
||||
* @see org.apache.geode.cache.lucene.LuceneServiceProvider
|
||||
* @see org.apache.lucene.analysis.Analyzer
|
||||
* @since 1.1.0
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
@@ -107,8 +112,7 @@ public class LuceneIndexFactoryBean implements FactoryBean<LuceneIndex>,
|
||||
* @param regionPath {@link String} containing the fully-qualified pathname to
|
||||
* the {@link GemFireCache} {@link Region}.
|
||||
* @return a new instance of {@link LuceneIndex} with the given {@code indexName} on the named {@link Region}.
|
||||
* @see org.apache.geode.cache.lucene.LuceneService#createIndex(String, String, Map)
|
||||
* @see org.apache.geode.cache.lucene.LuceneService#createIndex(String, String, String...)
|
||||
* @see org.apache.geode.cache.lucene.LuceneIndexFactory#create(String, String)
|
||||
* @see org.apache.geode.cache.lucene.LuceneService#getIndex(String, String)
|
||||
* @see #resolveLuceneService()
|
||||
* @see #getFieldAnalyzers()
|
||||
@@ -121,10 +125,11 @@ public class LuceneIndexFactoryBean implements FactoryBean<LuceneIndex>,
|
||||
Map<String, Analyzer> fieldAnalyzers = getFieldAnalyzers();
|
||||
|
||||
if (isEmpty(fieldAnalyzers)) {
|
||||
luceneService.createIndex(indexName, regionPath, asArray(resolveFields(getFields())));
|
||||
luceneService.createIndexFactory().setFields(asArray(resolveFields(getFields())))
|
||||
.create(indexName, regionPath);
|
||||
}
|
||||
else {
|
||||
luceneService.createIndex(indexName, regionPath, fieldAnalyzers);
|
||||
luceneService.createIndexFactory().setFields(fieldAnalyzers).create(indexName, regionPath);
|
||||
}
|
||||
|
||||
return luceneService.getIndex(indexName, regionPath);
|
||||
@@ -150,7 +155,7 @@ public class LuceneIndexFactoryBean implements FactoryBean<LuceneIndex>,
|
||||
LuceneIndex luceneIndex = getObject();
|
||||
|
||||
if (isLuceneIndexDestroyable(luceneIndex)) {
|
||||
resolveLuceneService().destroyIndex(luceneIndex);
|
||||
resolveLuceneService().destroyIndex(luceneIndex.getName(), luceneIndex.getRegionPath());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,6 +224,16 @@ public class LuceneIndexFactoryBean implements FactoryBean<LuceneIndex>,
|
||||
return (!isEmpty(fields) ? fields : Collections.singletonList(LuceneService.REGION_VALUE_FIELD));
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves the appropriate {@link LuceneIndexFactory} from the {@link LuceneService}.
|
||||
*
|
||||
* @return a newly created instance of the {@link LuceneIndexFactory} from the resolved {@link LuceneService}.
|
||||
* @see #resolveLuceneService()
|
||||
*/
|
||||
protected LuceneIndexFactory resolveLuceneIndexFactory() {
|
||||
return resolveLuceneService().createIndexFactory();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves the {@link LuceneService} used by this {@link FactoryBean} to create the {@link LuceneIndex}.
|
||||
*
|
||||
|
||||
@@ -50,16 +50,13 @@ public interface LuceneOperations {
|
||||
* @param query {@link String} containing the Lucene query to execute.
|
||||
* @param defaultField {@link String} specifying the default field used in Lucene queries when a field
|
||||
* is not explicitly defined in the Lucene query clause.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link List} of {@link LuceneResultStruct} containing the query results.
|
||||
* @see org.apache.geode.cache.lucene.LuceneResultStruct
|
||||
* @see #query(String, String, int, String...)
|
||||
* @see #query(String, String, int)
|
||||
* @see java.util.List
|
||||
*/
|
||||
default <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField,
|
||||
String... projectionFields) {
|
||||
|
||||
return query(query, defaultField, DEFAULT_RESULT_LIMIT, projectionFields);
|
||||
default <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField) {
|
||||
return query(query, defaultField, DEFAULT_RESULT_LIMIT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,13 +68,11 @@ public interface LuceneOperations {
|
||||
* @param defaultField {@link String} specifying the default field used in Lucene queries when a field
|
||||
* is not explicitly defined in the Lucene query clause.
|
||||
* @param resultLimit limit on the number of query results to return.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link List} of {@link LuceneResultStruct} containing the query results.
|
||||
* @see org.apache.geode.cache.lucene.LuceneResultStruct
|
||||
* @see java.util.List
|
||||
*/
|
||||
<K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField,
|
||||
int resultLimit, String... projectionFields);
|
||||
<K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField, int resultLimit);
|
||||
|
||||
/**
|
||||
* Executes the given Lucene {@link String query} with a limit on the number of results returned
|
||||
@@ -90,12 +85,10 @@ public interface LuceneOperations {
|
||||
* is not explicitly defined in the Lucene query clause.
|
||||
* @param resultLimit limit on the number of query results to return.
|
||||
* @param pageSize number of results per page.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link PageableLuceneQueryResults} data structure containing the results of the Lucene query.
|
||||
* @see org.apache.geode.cache.lucene.PageableLuceneQueryResults
|
||||
*/
|
||||
<K, V> PageableLuceneQueryResults<K, V> query(String query, String defaultField,
|
||||
int resultLimit, int pageSize, String... projectionFields);
|
||||
<K, V> PageableLuceneQueryResults<K, V> query(String query, String defaultField, int resultLimit, int pageSize);
|
||||
|
||||
/**
|
||||
* Executes the given Lucene {@link String query}.
|
||||
@@ -104,17 +97,14 @@ public interface LuceneOperations {
|
||||
* @param <V> {@link Class} type of the value.
|
||||
* @param queryProvider {@link LuceneQueryProvider} is a provider implementation supplying the Lucene query
|
||||
* to execute as well as de/serialize to distribute across the cluster.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link List} of {@link LuceneResultStruct} containing the query results.
|
||||
* @see org.apache.geode.cache.lucene.LuceneQueryProvider
|
||||
* @see org.apache.geode.cache.lucene.LuceneResultStruct
|
||||
* @see #query(LuceneQueryProvider, int, String...)
|
||||
* @see #query(LuceneQueryProvider, int)
|
||||
* @see java.util.List
|
||||
*/
|
||||
default <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider,
|
||||
String... projectionFields) {
|
||||
|
||||
return query(queryProvider, DEFAULT_RESULT_LIMIT, projectionFields);
|
||||
default <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider) {
|
||||
return query(queryProvider, DEFAULT_RESULT_LIMIT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,14 +115,12 @@ public interface LuceneOperations {
|
||||
* @param queryProvider {@link LuceneQueryProvider} is a provider implementation supplying the Lucene query
|
||||
* to execute as well as de/serialize to distribute across the cluster.
|
||||
* @param resultLimit limit on the number of query results to return.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link List} of {@link LuceneResultStruct} containing the query results.
|
||||
* @see org.apache.geode.cache.lucene.LuceneQueryProvider
|
||||
* @see org.apache.geode.cache.lucene.LuceneResultStruct
|
||||
* @see java.util.List
|
||||
*/
|
||||
<K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, String... projectionFields);
|
||||
<K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider, int resultLimit);
|
||||
|
||||
/**
|
||||
* Executes the given Lucene {@link String query} with a limit on the number of results returned
|
||||
@@ -144,13 +132,11 @@ public interface LuceneOperations {
|
||||
* to execute as well as de/serialize to distribute across the cluster.
|
||||
* @param resultLimit limit on the number of query results to return.
|
||||
* @param pageSize number of results per page.
|
||||
* @param projectionFields array of {@link String} values specifying the query projection.
|
||||
* @return a {@link PageableLuceneQueryResults} data structure containing the results of the Lucene query.
|
||||
* @see org.apache.geode.cache.lucene.LuceneQueryProvider
|
||||
* @see org.apache.geode.cache.lucene.PageableLuceneQueryResults
|
||||
*/
|
||||
<K, V> PageableLuceneQueryResults<K, V> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, int pageSize, String... projectionFields);
|
||||
<K, V> PageableLuceneQueryResults<K, V> query(LuceneQueryProvider queryProvider, int resultLimit, int pageSize);
|
||||
|
||||
/**
|
||||
* Executes the given Lucene {@link String query} returning a {@link Collection} of keys
|
||||
|
||||
@@ -36,6 +36,7 @@ import org.springframework.data.gemfire.search.lucene.support.LuceneAccessorSupp
|
||||
* @author John Blum
|
||||
* @see org.springframework.data.gemfire.search.lucene.LuceneAccessor
|
||||
* @see org.springframework.data.gemfire.search.lucene.LuceneOperations
|
||||
* @see org.springframework.data.gemfire.search.lucene.support.LuceneAccessorSupport
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @see org.apache.geode.cache.lucene.LuceneIndex
|
||||
* @see org.apache.geode.cache.lucene.LuceneQuery
|
||||
@@ -91,13 +92,11 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField, int resultLimit) {
|
||||
String indexName = resolveIndexName();
|
||||
String regionPath = resolveRegionPath();
|
||||
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, projectionFields);
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit);
|
||||
|
||||
LuceneQuery<K, V> queryWrapper = queryFactory.create(indexName, regionPath, query, defaultField);
|
||||
|
||||
@@ -109,12 +108,12 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(String query, String defaultField,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
String indexName = resolveIndexName();
|
||||
String regionPath = resolveRegionPath();
|
||||
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize, projectionFields);
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize);
|
||||
|
||||
LuceneQuery<K, V> queryWrapper = queryFactory.create(indexName, regionPath, query, defaultField);
|
||||
|
||||
@@ -125,13 +124,11 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider, int resultLimit) {
|
||||
String indexName = resolveIndexName();
|
||||
String regionPath = resolveRegionPath();
|
||||
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, projectionFields);
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit);
|
||||
|
||||
LuceneQuery<K, V> queryWrapper = queryFactory.create(indexName, regionPath, queryProvider);
|
||||
|
||||
@@ -143,12 +140,12 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
String indexName = resolveIndexName();
|
||||
String regionPath = resolveRegionPath();
|
||||
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize, projectionFields);
|
||||
LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize);
|
||||
|
||||
LuceneQuery<K, V> queryWrapper = queryFactory.create(indexName, regionPath, queryProvider);
|
||||
|
||||
|
||||
@@ -85,9 +85,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor {
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField, int resultLimit) {
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
@@ -96,7 +94,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor {
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(String query, String defaultField,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
@@ -105,9 +103,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor {
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider, int resultLimit) {
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
@@ -116,7 +112,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor {
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
@@ -43,9 +43,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations {
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(String query, String defaultField, int resultLimit) {
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
@@ -54,7 +52,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations {
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(String query, String defaultField,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
@@ -63,9 +61,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations {
|
||||
* @inheritDoc
|
||||
*/
|
||||
@Override
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, String... projectionFields) {
|
||||
|
||||
public <K, V> List<LuceneResultStruct<K, V>> query(LuceneQueryProvider queryProvider, int resultLimit) {
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
@@ -74,7 +70,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations {
|
||||
*/
|
||||
@Override
|
||||
public <K, V> PageableLuceneQueryResults<K, V> query(LuceneQueryProvider queryProvider,
|
||||
int resultLimit, int pageSize, String... projectionFields) {
|
||||
int resultLimit, int pageSize) {
|
||||
|
||||
throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user