You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by hi...@apache.org on 2016/09/13 22:44:40 UTC
[52/61] [abbrv] incubator-geode git commit: GEODE-37 change package
name from com.gemstone.gemfire (for
./geode-lucene/src/main/java/com/gemstone/gemfire)to org.apache.geode for(to
./geode-lucene/src/main/java/org/apache/geode)
GEODE-37 change package name from com.gemstone.gemfire (for ./geode-lucene/src/main/java/com/gemstone/gemfire)to org.apache.geode for(to ./geode-lucene/src/main/java/org/apache/geode)
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/05e6d966
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/05e6d966
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/05e6d966
Branch: refs/heads/feature/GEODE-37_2
Commit: 05e6d966a2244ef48beb7e45f6b58b5b32a5b97d
Parents: c47228e
Author: Hitesh Khamesra <hk...@pivotal.io>
Authored: Tue Sep 13 15:43:20 2016 -0700
Committer: Hitesh Khamesra <hk...@pivotal.io>
Committed: Tue Sep 13 15:43:20 2016 -0700
----------------------------------------------------------------------
.../gemfire/cache/lucene/LuceneIndex.java | 66 ---
.../gemfire/cache/lucene/LuceneQuery.java | 66 ---
.../cache/lucene/LuceneQueryException.java | 40 --
.../cache/lucene/LuceneQueryFactory.java | 98 ----
.../cache/lucene/LuceneQueryProvider.java | 47 --
.../cache/lucene/LuceneResultStruct.java | 61 ---
.../gemfire/cache/lucene/LuceneService.java | 129 -----
.../cache/lucene/LuceneServiceProvider.java | 45 --
.../lucene/PageableLuceneQueryResults.java | 58 ---
.../AbstractPartitionedRepositoryManager.java | 124 -----
.../cache/lucene/internal/IndexListener.java | 35 --
.../lucene/internal/IndexListenerAdapter.java | 41 --
.../lucene/internal/IndexRepositoryFactory.java | 66 ---
.../lucene/internal/InternalLuceneIndex.java | 34 --
.../lucene/internal/InternalLuceneService.java | 29 --
.../lucene/internal/LuceneEventListener.java | 107 -----
.../internal/LuceneIndexCreationProfile.java | 172 -------
.../lucene/internal/LuceneIndexFactory.java | 30 --
.../LuceneIndexForPartitionedRegion.java | 176 -------
.../cache/lucene/internal/LuceneIndexImpl.java | 236 ----------
.../cache/lucene/internal/LuceneIndexStats.java | 202 --------
.../lucene/internal/LuceneQueryFactoryImpl.java | 71 ---
.../cache/lucene/internal/LuceneQueryImpl.java | 148 ------
.../cache/lucene/internal/LuceneRawIndex.java | 43 --
.../lucene/internal/LuceneRawIndexFactory.java | 27 --
.../lucene/internal/LuceneResultStructImpl.java | 94 ----
.../lucene/internal/LuceneServiceImpl.java | 334 -------------
.../PageableLuceneQueryResultsImpl.java | 147 ------
.../internal/PartitionedRepositoryManager.java | 50 --
.../internal/RawIndexRepositoryFactory.java | 63 ---
.../internal/RawLuceneRepositoryManager.java | 46 --
.../lucene/internal/StringQueryProvider.java | 116 -----
.../lucene/internal/cli/LuceneCliStrings.java | 79 ----
.../internal/cli/LuceneIndexCommands.java | 470 -------------------
.../lucene/internal/cli/LuceneIndexDetails.java | 153 ------
.../lucene/internal/cli/LuceneIndexInfo.java | 63 ---
.../lucene/internal/cli/LuceneQueryInfo.java | 70 ---
.../internal/cli/LuceneSearchResults.java | 76 ---
.../functions/LuceneCreateIndexFunction.java | 112 -----
.../functions/LuceneDescribeIndexFunction.java | 74 ---
.../cli/functions/LuceneListIndexFunction.java | 71 ---
.../functions/LuceneSearchIndexFunction.java | 107 -----
.../internal/directory/DumpDirectoryFiles.java | 116 -----
.../internal/directory/FileIndexInput.java | 131 ------
.../internal/directory/RegionDirectory.java | 132 ------
.../lucene/internal/directory/package-info.java | 23 -
.../internal/distributed/CollectorManager.java | 54 ---
.../lucene/internal/distributed/EntryScore.java | 84 ----
.../internal/distributed/LuceneFunction.java | 126 -----
.../distributed/LuceneFunctionContext.java | 115 -----
.../lucene/internal/distributed/TopEntries.java | 135 ------
.../distributed/TopEntriesCollector.java | 102 ----
.../distributed/TopEntriesCollectorManager.java | 178 -------
.../TopEntriesFunctionCollector.java | 158 -------
.../internal/distributed/package-info.java | 25 -
.../lucene/internal/filesystem/ChunkKey.java | 123 -----
.../cache/lucene/internal/filesystem/File.java | 170 -------
.../internal/filesystem/FileInputStream.java | 166 -------
.../internal/filesystem/FileOutputStream.java | 103 ----
.../lucene/internal/filesystem/FileSystem.java | 196 --------
.../internal/filesystem/FileSystemStats.java | 128 -----
.../filesystem/SeekableInputStream.java | 43 --
.../internal/filesystem/package-info.java | 26 -
.../internal/management/LuceneIndexMetrics.java | 218 ---------
.../management/LuceneIndexStatsMonitor.java | 93 ----
.../management/LuceneServiceBridge.java | 86 ----
.../internal/management/LuceneServiceMBean.java | 62 ---
.../management/LuceneServiceMXBean.java | 59 ---
.../management/ManagementIndexListener.java | 38 --
.../lucene/internal/management/StatsKey.java | 35 --
.../cache/lucene/internal/package-info.java | 23 -
.../internal/repository/IndexRepository.java | 89 ----
.../repository/IndexRepositoryImpl.java | 182 -------
.../repository/IndexResultCollector.java | 47 --
.../internal/repository/RepositoryManager.java | 44 --
.../internal/repository/package-info.java | 25 -
.../HeterogeneousLuceneSerializer.java | 107 -----
.../repository/serializer/LuceneSerializer.java | 35 --
.../serializer/PdxLuceneSerializer.java | 57 ---
.../serializer/PrimitiveSerializer.java | 35 --
.../serializer/ReflectionLuceneSerializer.java | 85 ----
.../repository/serializer/SerializerUtil.java | 190 --------
.../repository/serializer/package-info.java | 23 -
.../internal/xml/LuceneIndexCreation.java | 113 -----
.../internal/xml/LuceneIndexXmlGenerator.java | 70 ---
.../internal/xml/LuceneServiceXmlGenerator.java | 39 --
.../lucene/internal/xml/LuceneXmlConstants.java | 32 --
.../lucene/internal/xml/LuceneXmlParser.java | 119 -----
.../cache/lucene/internal/xml/package-info.java | 24 -
.../gemfire/cache/lucene/package-info.java | 32 --
.../apache/geode/cache/lucene/LuceneIndex.java | 66 +++
.../apache/geode/cache/lucene/LuceneQuery.java | 66 +++
.../cache/lucene/LuceneQueryException.java | 40 ++
.../geode/cache/lucene/LuceneQueryFactory.java | 98 ++++
.../geode/cache/lucene/LuceneQueryProvider.java | 47 ++
.../geode/cache/lucene/LuceneResultStruct.java | 61 +++
.../geode/cache/lucene/LuceneService.java | 129 +++++
.../cache/lucene/LuceneServiceProvider.java | 45 ++
.../lucene/PageableLuceneQueryResults.java | 58 +++
.../AbstractPartitionedRepositoryManager.java | 124 +++++
.../cache/lucene/internal/IndexListener.java | 35 ++
.../lucene/internal/IndexListenerAdapter.java | 41 ++
.../lucene/internal/IndexRepositoryFactory.java | 66 +++
.../lucene/internal/InternalLuceneIndex.java | 34 ++
.../lucene/internal/InternalLuceneService.java | 29 ++
.../lucene/internal/LuceneEventListener.java | 107 +++++
.../internal/LuceneIndexCreationProfile.java | 172 +++++++
.../lucene/internal/LuceneIndexFactory.java | 30 ++
.../LuceneIndexForPartitionedRegion.java | 176 +++++++
.../cache/lucene/internal/LuceneIndexImpl.java | 236 ++++++++++
.../cache/lucene/internal/LuceneIndexStats.java | 202 ++++++++
.../lucene/internal/LuceneQueryFactoryImpl.java | 71 +++
.../cache/lucene/internal/LuceneQueryImpl.java | 148 ++++++
.../cache/lucene/internal/LuceneRawIndex.java | 43 ++
.../lucene/internal/LuceneRawIndexFactory.java | 27 ++
.../lucene/internal/LuceneResultStructImpl.java | 94 ++++
.../lucene/internal/LuceneServiceImpl.java | 334 +++++++++++++
.../PageableLuceneQueryResultsImpl.java | 147 ++++++
.../internal/PartitionedRepositoryManager.java | 50 ++
.../internal/RawIndexRepositoryFactory.java | 63 +++
.../internal/RawLuceneRepositoryManager.java | 46 ++
.../lucene/internal/StringQueryProvider.java | 116 +++++
.../lucene/internal/cli/LuceneCliStrings.java | 79 ++++
.../internal/cli/LuceneIndexCommands.java | 470 +++++++++++++++++++
.../lucene/internal/cli/LuceneIndexDetails.java | 153 ++++++
.../lucene/internal/cli/LuceneIndexInfo.java | 63 +++
.../lucene/internal/cli/LuceneQueryInfo.java | 70 +++
.../internal/cli/LuceneSearchResults.java | 76 +++
.../functions/LuceneCreateIndexFunction.java | 112 +++++
.../functions/LuceneDescribeIndexFunction.java | 74 +++
.../cli/functions/LuceneListIndexFunction.java | 71 +++
.../functions/LuceneSearchIndexFunction.java | 107 +++++
.../internal/directory/DumpDirectoryFiles.java | 116 +++++
.../internal/directory/FileIndexInput.java | 131 ++++++
.../internal/directory/RegionDirectory.java | 132 ++++++
.../lucene/internal/directory/package-info.java | 23 +
.../internal/distributed/CollectorManager.java | 54 +++
.../lucene/internal/distributed/EntryScore.java | 84 ++++
.../internal/distributed/LuceneFunction.java | 126 +++++
.../distributed/LuceneFunctionContext.java | 115 +++++
.../lucene/internal/distributed/TopEntries.java | 135 ++++++
.../distributed/TopEntriesCollector.java | 102 ++++
.../distributed/TopEntriesCollectorManager.java | 178 +++++++
.../TopEntriesFunctionCollector.java | 158 +++++++
.../internal/distributed/package-info.java | 25 +
.../lucene/internal/filesystem/ChunkKey.java | 123 +++++
.../cache/lucene/internal/filesystem/File.java | 170 +++++++
.../internal/filesystem/FileInputStream.java | 166 +++++++
.../internal/filesystem/FileOutputStream.java | 103 ++++
.../lucene/internal/filesystem/FileSystem.java | 196 ++++++++
.../internal/filesystem/FileSystemStats.java | 128 +++++
.../filesystem/SeekableInputStream.java | 43 ++
.../internal/filesystem/package-info.java | 26 +
.../internal/management/LuceneIndexMetrics.java | 218 +++++++++
.../management/LuceneIndexStatsMonitor.java | 93 ++++
.../management/LuceneServiceBridge.java | 86 ++++
.../internal/management/LuceneServiceMBean.java | 62 +++
.../management/LuceneServiceMXBean.java | 59 +++
.../management/ManagementIndexListener.java | 38 ++
.../lucene/internal/management/StatsKey.java | 35 ++
.../cache/lucene/internal/package-info.java | 23 +
.../internal/repository/IndexRepository.java | 89 ++++
.../repository/IndexRepositoryImpl.java | 182 +++++++
.../repository/IndexResultCollector.java | 47 ++
.../internal/repository/RepositoryManager.java | 44 ++
.../internal/repository/package-info.java | 25 +
.../HeterogeneousLuceneSerializer.java | 107 +++++
.../repository/serializer/LuceneSerializer.java | 35 ++
.../serializer/PdxLuceneSerializer.java | 57 +++
.../serializer/PrimitiveSerializer.java | 35 ++
.../serializer/ReflectionLuceneSerializer.java | 85 ++++
.../repository/serializer/SerializerUtil.java | 190 ++++++++
.../repository/serializer/package-info.java | 23 +
.../internal/xml/LuceneIndexCreation.java | 113 +++++
.../internal/xml/LuceneIndexXmlGenerator.java | 70 +++
.../internal/xml/LuceneServiceXmlGenerator.java | 39 ++
.../lucene/internal/xml/LuceneXmlConstants.java | 32 ++
.../lucene/internal/xml/LuceneXmlParser.java | 119 +++++
.../cache/lucene/internal/xml/package-info.java | 24 +
.../apache/geode/cache/lucene/package-info.java | 32 ++
180 files changed, 8572 insertions(+), 8572 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneIndex.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneIndex.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneIndex.java
deleted file mode 100644
index 6b1a4b4..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneIndex.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene;
-
-import java.util.Map;
-
-import org.apache.lucene.analysis.Analyzer;
-
-import com.gemstone.gemfire.annotations.Experimental;
-
-
-/**
- * An lucene index is built over the data stored in a GemFire Region.
- * <p>
- * An index is specified using a index name, field names, region name.
- * <p>
- * The index name and region name together uniquely identifies the lucene index.
- * <p>
- *
- */
-@Experimental
-public interface LuceneIndex {
-
- /**
- * @return the index name of this index
- */
- public String getName();
-
- /**
- * @return the region name for this index
- */
- public String getRegionPath();
-
- /**
- * @return the indexed field names in a Set
- */
- public String[] getFieldNames();
-
- /**
- * @return the field to analyzer map
- */
- public Map<String, Analyzer> getFieldAnalyzers();
-
- /*
- * wait until the current entries in cache are indexed
- * @param maxWaitInMilliseconds max wait time in millisecond
- * @return if entries are flushed within maxWait
- */
- public boolean waitUntilFlushed(int maxWaitInMillisecond);
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQuery.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQuery.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQuery.java
deleted file mode 100644
index 7cc0977..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQuery.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene;
-
-import java.util.Collection;
-import java.util.List;
-
-import com.gemstone.gemfire.annotations.Experimental;
-
-/**
- * Provides wrapper object of Lucene's Query object and execute the search.
- * <p>Instances of this interface are created using
- * {@link LuceneQueryFactory#create}.
- *
- */
-@Experimental
-public interface LuceneQuery<K, V> {
- /**
- * Execute search and return keys.
- */
- public Collection<K> findKeys() throws LuceneQueryException;
-
- /**
- * Execute search and return values.
- */
- public Collection<V> findValues() throws LuceneQueryException;
-
- /**
- * Execute search and return list of LuceneResultStruct.
- */
- public List<LuceneResultStruct<K, V>> findResults() throws LuceneQueryException;
- /**
- * Execute the search and get results.
- */
- public PageableLuceneQueryResults<K, V> findPages() throws LuceneQueryException;
-
- /**
- * Get page size setting of current query.
- */
- public int getPageSize();
-
- /**
- * Get limit size setting of current query.
- */
- public int getLimit();
-
- /**
- * Get projected fields setting of current query.
- */
- public String[] getProjectedFieldNames();
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryException.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryException.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryException.java
deleted file mode 100644
index fb03b4a..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene;
-
-import com.gemstone.gemfire.GemFireCheckedException;
-
-/**
- * Thrown when a lucene query fails.
- */
-public class LuceneQueryException extends GemFireCheckedException {
-
- public LuceneQueryException(final String message) {
- super(message);
- }
-
- public LuceneQueryException(final String message, final Throwable cause) {
- super(message, cause);
- }
-
- public LuceneQueryException(final Throwable cause) {
- super(cause);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryFactory.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryFactory.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryFactory.java
deleted file mode 100644
index 8e36bbb..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryFactory.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene;
-
-import org.apache.lucene.queryparser.classic.ParseException;
-
-import com.gemstone.gemfire.annotations.Experimental;
-
-/**
- * Factory for creating instances of {@link LuceneQuery}.
- * To get an instance of this factory call {@link LuceneService#createLuceneQueryFactory}.
- * <P>
- * To use this factory configure it with the <code>set</code> methods and then
- * call {@link #create} to produce a {@link LuceneQuery} instance.
- *
- */
-@Experimental
-public interface LuceneQueryFactory {
-
- /**
- * Default query result limit is 100
- */
- public static final int DEFAULT_LIMIT = 100;
-
- /**
- * Default page size of result is 0, which means no pagination
- */
- public static final int DEFAULT_PAGESIZE = 0;
-
- /**
- * Set page size for a query result. The default page size is 0 which means no pagination.
- * If specified negative value, throw IllegalArgumentException
- * @param pageSize
- * @return itself
- */
- LuceneQueryFactory setPageSize(int pageSize);
-
- /**
- * Set max limit of result for a query
- * If specified limit is less or equal to zero, throw IllegalArgumentException
- * @param limit
- * @return itself
- */
- LuceneQueryFactory setResultLimit(int limit);
-
- /**
- * Set a list of fields for result projection.
- *
- * @param fieldNames
- * @return itself
- *
- * @deprecated TODO This feature is not yet implemented
- */
- @Deprecated
- LuceneQueryFactory setProjectionFields(String... fieldNames);
-
- /**
- * Create wrapper object for lucene's QueryParser object using default standard analyzer.
- * The queryString is using lucene QueryParser's syntax. QueryParser is for easy-to-use
- * with human understandable syntax.
- *
- * @param regionName region name
- * @param indexName index name
- * @param queryString query string in lucene QueryParser's syntax
- * @param defaultField default field used by the Lucene Query Parser
- * @param <K> the key type in the query results
- * @param <V> the value type in the query results
- * @return LuceneQuery object
- */
- public <K, V> LuceneQuery<K, V> create(String indexName, String regionName, String queryString, String defaultField);
-
- /**
- * Creates a wrapper object for Lucene's Query object. This {@link LuceneQuery} builder method could be used in
- * advanced cases, such as cases where Lucene's Query object construction needs Lucene's API over query string.
- *
- * @param indexName index name
- * @param regionName region name
- * @param provider constructs and provides a Lucene Query object
- * @param <K> the key type in the query results
- * @param <V> the value type in the query results
- * @return LuceneQuery object
- */
- public <K, V> LuceneQuery<K, V> create(String indexName, String regionName, LuceneQueryProvider provider);
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryProvider.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryProvider.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryProvider.java
deleted file mode 100644
index 7f1c269..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneQueryProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene;
-
-import java.io.Serializable;
-
-import org.apache.lucene.search.Query;
-
-import com.gemstone.gemfire.annotations.Experimental;
-import com.gemstone.gemfire.cache.query.QueryException;
-
-/**
- * The instances of this class will be used for distributing Lucene Query objects and re-constructing the Query object.
- * If necessary the implementation needs to take care of serializing and de-serializing Lucene Query object. Geode
- * respects the DataSerializable contract to provide optimal object serialization. For instance,
- * {@link LuceneQueryProvider}'s toData method will be used to serialize it when it is sent to another member of the
- * distributed system. Implementation of DataSerializable can provide a zero-argument constructor that will be invoked
- * when they are read with DataSerializer.readObject.
- */
-@Experimental
-public interface LuceneQueryProvider extends Serializable {
- /**
- * @return A Lucene Query object which could be used for executing Lucene Search on indexed data
- * @param index local lucene index the query is being constructed against.
- * @throws LuceneQueryException if the provider fails to construct the query object
- */
-
- public Query getQuery(LuceneIndex index) throws LuceneQueryException;
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneResultStruct.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneResultStruct.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneResultStruct.java
deleted file mode 100644
index bc587f5..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneResultStruct.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene;
-
-import com.gemstone.gemfire.annotations.Experimental;
-
-/**
- * <p>
- * Abstract data structure for one item in query result.
- *
- */
-@Experimental
-public interface LuceneResultStruct<K, V> {
- /**
- * Return the value associated with the given field name
- *
- * @param fieldName the String name of the field
- * @return the value associated with the specified field
- * @throws IllegalArgumentException If this struct does not have a field named fieldName
- */
- public Object getProjectedField(String fieldName);
-
- /**
- * Return key of the entry
- *
- * @return key
- * @throws IllegalArgumentException If this struct does not contain key
- */
- public K getKey();
-
- /**
- * Return value of the entry
- *
- * @return value the whole domain object
- * @throws IllegalArgumentException If this struct does not contain value
- */
- public V getValue();
-
- /**
- * Return score of the query
- *
- * @return score
- * @throws IllegalArgumentException If this struct does not contain score
- */
- public float getScore();
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneService.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneService.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneService.java
deleted file mode 100644
index cf1f735..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneService.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.apache.lucene.analysis.Analyzer;
-
-import com.gemstone.gemfire.annotations.Experimental;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.lucene.internal.LuceneIndexCreationProfile;
-
-/**
- * LuceneService instance is a singleton for each cache.
- *
- * It provides handle for managing the {@link LuceneIndex} and create the {@link LuceneQuery}
- * via {@link LuceneQueryFactory}
- *
- * </p>
- * Example: <br>
- *
- * <pre>
- * At client and server JVM, initializing cache will create the LuceneServiceImpl object,
- * which is a singleton at each JVM.
- *
- * At each server JVM, for data region to create index, create the index on fields with default analyzer:
- * LuceneIndex index = luceneService.createIndex(indexName, regionName, "field1", "field2", "field3");
- * or create index on fields with specified analyzer:
- * LuceneIndex index = luceneService.createIndex(indexName, regionName, analyzerPerField);
- *
- * We can also create index via cache.xml or gfsh.
- *
- * At client side, create query and run the search:
- *
- * LuceneQuery query = luceneService.createLuceneQueryFactory().setLimit(200).setPageSize(20)
- * .setResultTypes(SCORE, VALUE, KEY).setFieldProjection("field1", "field2")
- * .create(indexName, regionName, querystring, analyzer);
- *
- * The querystring is using lucene's queryparser syntax, such as "field1:zhou* AND field2:gzhou@pivotal.io"
- *
- * PageableLuceneQueryResults results = query.search();
- *
- * If pagination is not specified:
- * List list = results.getNextPage(); // return all results in one getNextPage() call
- * or if paging is specified:
- * if (results.hasNextPage()) {
- * List page = results.nextPage(); // return resules page by page
- * }
- *
- * The item of the list is either the domain object or instance of {@link LuceneResultStruct}
- * </pre>
- *
- *
- */
-@Experimental
-public interface LuceneService {
-
- /**
- * A special field name that indicates that the entire region value should
- * be indexed. This will only work if the region value is a String or Number, in
- * which case a lucene document will be created with a single field with this name.
- */
- String REGION_VALUE_FIELD = "__REGION_VALUE_FIELD";
-
- /**
- * Create a lucene index using default analyzer.
- * @param fields The fields of the object to index. Only fields listed here will be stored
- * in the index. Fields should map to PDX fieldNames if the object is serialized with PDX, or
- * to java fields on the object otherwise. The special field name {{@link #REGION_VALUE_FIELD}}
- * indicates that the entire value should be stored as a single field in the index.
- */
- public void createIndex(String indexName, String regionPath, String... fields);
-
- /**
- * Create a lucene index using specified analyzer per field
- *
- * @param indexName index name
- * @param regionPath region name
- * @param analyzerPerField A map of fields to analyzers. See {{@link #createIndex(String, String, String...)}}
- * for details on valid values for fields. Each field will be tokenized using the provided Analyzer.
- */
- public void createIndex(String indexName, String regionPath,
- Map<String, Analyzer> analyzerPerField);
-
- /**
- * Destroy the lucene index
- *
- * @param index index object
- * @deprecated TODO This feature is not yet implemented
- */
- @Deprecated
- public void destroyIndex(LuceneIndex index);
-
- /**
- * Get the lucene index object specified by region name and index name
- * @param indexName index name
- * @param regionPath region name
- * @return LuceneIndex object
- */
- public LuceneIndex getIndex(String indexName, String regionPath);
-
- /**
- * get all the lucene indexes.
- * @return all index objects in a Collection
- */
- public Collection<LuceneIndex> getAllIndexes();
-
- /**
- * create LuceneQueryFactory
- * @return LuceneQueryFactory object
- */
- public LuceneQueryFactory createLuceneQueryFactory();
-
- }
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneServiceProvider.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneServiceProvider.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneServiceProvider.java
deleted file mode 100644
index f83dffa..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/LuceneServiceProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene;
-
-import com.gemstone.gemfire.annotations.Experimental;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.lucene.internal.InternalLuceneService;
-import com.gemstone.gemfire.internal.cache.InternalCache;
-
-/**
- * Class for retrieving or creating the currently running
- * instance of the LuceneService.
- *
- */
-@Experimental
-public class LuceneServiceProvider {
- /**
- * Retrieve or create the lucene service for this cache
- */
- public static LuceneService get(GemFireCache cache) {
- InternalCache internalCache = (InternalCache) cache;
- return internalCache.getService(InternalLuceneService.class);
- }
-
- private LuceneServiceProvider() {
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/PageableLuceneQueryResults.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/PageableLuceneQueryResults.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/PageableLuceneQueryResults.java
deleted file mode 100644
index c2def44..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/PageableLuceneQueryResults.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene;
-
-import java.util.Iterator;
-import java.util.List;
-
-import com.gemstone.gemfire.annotations.Experimental;
-
-/**
- * <p>
- * Defines the interface for a container of lucene query result collected from function execution.<br>
- *
- *
- * @param <K> The type of the key
- * @param <V> The type of the value
- */
-@Experimental
-public interface PageableLuceneQueryResults<K, V> extends Iterator<List<LuceneResultStruct<K,V>>> {
- /**
- * @return total number of hits for this query
- */
- public int size();
-
- /**
- * Returns the maximum score value encountered. Note that in case scores are not tracked, this returns {@link Float#NaN}.
- */
- public float getMaxScore();
-
- /**
- * Get the next page of results.
- *
- * @return a page of results, or null if there are no more pages
- */
- public List<LuceneResultStruct<K, V>> next();
-
- /**
- * True if there another page of results.
- */
- public boolean hasNext();
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/AbstractPartitionedRepositoryManager.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/AbstractPartitionedRepositoryManager.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/AbstractPartitionedRepositoryManager.java
deleted file mode 100755
index 1dc716c..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/AbstractPartitionedRepositoryManager.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-import com.gemstone.gemfire.InternalGemFireError;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
-import com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepository;
-import com.gemstone.gemfire.cache.lucene.internal.repository.RepositoryManager;
-import com.gemstone.gemfire.cache.lucene.internal.repository.serializer.LuceneSerializer;
-import com.gemstone.gemfire.internal.cache.BucketNotFoundException;
-import com.gemstone.gemfire.internal.cache.BucketRegion;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-import com.gemstone.gemfire.internal.cache.execute.InternalRegionFunctionContext;
-
-public abstract class AbstractPartitionedRepositoryManager implements RepositoryManager {
-
- /** map of the parent bucket region to the index repository
- *
- * This is based on the BucketRegion in case a bucket is rebalanced, we don't want to
- * return a stale index repository. If a bucket moves off of this node and
- * comes back, it will have a new BucketRegion object.
- *
- * It is weak so that the old BucketRegion will be garbage collected.
- */
- protected final ConcurrentHashMap<Integer, IndexRepository> indexRepositories = new ConcurrentHashMap<Integer, IndexRepository>();
-
- /** The user region for this index */
- protected final PartitionedRegion userRegion;
- protected final LuceneSerializer serializer;
- protected final LuceneIndexImpl index;
-
- public AbstractPartitionedRepositoryManager(
- LuceneIndexImpl index,
- LuceneSerializer serializer) {
- this.index = index;
- this.userRegion = (PartitionedRegion)index.getCache().getRegion(index.getRegionPath());
- this.serializer = serializer;
- }
-
- @Override
- public IndexRepository getRepository(Region region, Object key,
- Object callbackArg) throws BucketNotFoundException {
- BucketRegion userBucket = userRegion.getBucketRegion(key, callbackArg);
- if(userBucket == null) {
- throw new BucketNotFoundException("User bucket was not found for region " + region + "key " + key + " callbackarg " + callbackArg);
- }
-
- return getRepository(userBucket.getId());
- }
-
- @Override
- public Collection<IndexRepository> getRepositories(RegionFunctionContext ctx) throws BucketNotFoundException {
- Region<Object, Object> region = ctx.getDataSet();
- Set<Integer> buckets = ((InternalRegionFunctionContext) ctx).getLocalBucketSet(region);
- ArrayList<IndexRepository> repos = new ArrayList<IndexRepository>(buckets.size());
- for(Integer bucketId : buckets) {
- BucketRegion userBucket = userRegion.getDataStore().getLocalBucketById(bucketId);
- if(userBucket == null) {
- throw new BucketNotFoundException("User bucket was not found for region " + region + "bucket id " + bucketId);
- } else {
- repos.add(getRepository(userBucket.getId()));
- }
- }
-
- return repos;
- }
-
- public abstract IndexRepository createOneIndexRepository(final Integer bucketId,
- LuceneSerializer serializer,
- LuceneIndexImpl index, PartitionedRegion userRegion) throws IOException;
-
- /**
- * Return the repository for a given user bucket
- */
- protected IndexRepository getRepository(Integer bucketId) throws BucketNotFoundException {
- IndexRepository repo = indexRepositories.get(bucketId);
- if(repo != null && !repo.isClosed()) {
- return repo;
- }
-
- repo = indexRepositories.compute(bucketId, (key, oldRepository) -> {
- if(oldRepository != null && !oldRepository.isClosed()) {
- return oldRepository;
- }
- if(oldRepository != null) {
- oldRepository.cleanup();
- }
-
- try {
- return createOneIndexRepository(bucketId, serializer, index, userRegion);
- } catch(IOException e) {
- throw new InternalGemFireError("Unable to create index repository", e);
- }
-
- });
-
- if(repo == null) {
- throw new BucketNotFoundException("Colocated index buckets not found for bucket id " + bucketId);
- }
-
- return repo;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListener.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListener.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListener.java
deleted file mode 100644
index c9c03a5..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.cache.lucene.LuceneIndex;
-import org.apache.lucene.analysis.Analyzer;
-
-import java.util.Map;
-
-public interface IndexListener {
-
- public void beforeIndexCreated(final String indexName, String regionPath,
- final Analyzer analyzer, final Map<String, Analyzer> fieldAnalyzers,
- final String... fields);
-
- public void afterIndexCreated(LuceneIndex index);
-
- public void beforeIndexDestroyed(LuceneIndex index);
-
- public void afterIndexDestroyed(LuceneIndex index);
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListenerAdapter.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListenerAdapter.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListenerAdapter.java
deleted file mode 100644
index dd916ac..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexListenerAdapter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.cache.lucene.LuceneIndex;
-import org.apache.lucene.analysis.Analyzer;
-
-import java.util.Map;
-
-public class IndexListenerAdapter implements IndexListener {
- @Override
- public void beforeIndexCreated(String indexName, String regionPath, Analyzer analyzer,
- Map<String, Analyzer> fieldAnalyzers, String... fields) {
- }
-
- @Override
- public void afterIndexCreated(LuceneIndex index) {
- }
-
- @Override
- public void beforeIndexDestroyed(LuceneIndex index) {
- }
-
- @Override
- public void afterIndexDestroyed(LuceneIndex index) {
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexRepositoryFactory.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexRepositoryFactory.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexRepositoryFactory.java
deleted file mode 100644
index e6f01b0..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/IndexRepositoryFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import java.io.IOException;
-
-import com.gemstone.gemfire.cache.lucene.internal.directory.RegionDirectory;
-import com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepository;
-import com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImpl;
-import com.gemstone.gemfire.cache.lucene.internal.repository.serializer.LuceneSerializer;
-import com.gemstone.gemfire.internal.cache.BucketNotFoundException;
-import com.gemstone.gemfire.internal.cache.BucketRegion;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-
-public class IndexRepositoryFactory {
-
- public IndexRepositoryFactory() {
- }
-
- public IndexRepository createIndexRepository(final Integer bucketId,
- LuceneSerializer serializer,
- LuceneIndexImpl index, PartitionedRegion userRegion)
- throws IOException
- {
- final IndexRepository repo;
- LuceneIndexForPartitionedRegion indexForPR = (LuceneIndexForPartitionedRegion)index;
- BucketRegion fileBucket = getMatchingBucket(indexForPR.getFileRegion(), bucketId);
- BucketRegion chunkBucket = getMatchingBucket(indexForPR.getChunkRegion(), bucketId);
- BucketRegion dataBucket = getMatchingBucket(userRegion, bucketId);
- if(fileBucket == null || chunkBucket == null) {
- return null;
- }
- RegionDirectory dir = new RegionDirectory(fileBucket, chunkBucket, indexForPR.getFileSystemStats());
- IndexWriterConfig config = new IndexWriterConfig(indexForPR.getAnalyzer());
- IndexWriter writer = new IndexWriter(dir, config);
- repo = new IndexRepositoryImpl(fileBucket, writer, serializer, indexForPR.getIndexStats(), dataBucket);
- return repo;
- }
-
- /**
- * Find the bucket in region2 that matches the bucket id from region1.
- */
- protected BucketRegion getMatchingBucket(PartitionedRegion region, Integer bucketId) {
- //Force the bucket to be created if it is not already
- region.getOrCreateNodeForBucketWrite(bucketId, null);
-
- return region.getDataStore().getLocalBucketById(bucketId);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneIndex.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneIndex.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneIndex.java
deleted file mode 100644
index 27b4820..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneIndex.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.cache.lucene.LuceneIndex;
-import com.gemstone.gemfire.cache.lucene.internal.repository.RepositoryManager;
-
-public interface InternalLuceneIndex extends LuceneIndex {
-
- public RepositoryManager getRepositoryManager();
-
- /**
- * Dump the files for this index to the given directory.
- */
- public void dumpFiles(String directory);
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneService.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneService.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneService.java
deleted file mode 100644
index 403853e..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/InternalLuceneService.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.lucene.LuceneService;
-import com.gemstone.gemfire.internal.cache.CacheService;
-import com.gemstone.gemfire.internal.cache.extension.Extension;
-
-public interface InternalLuceneService extends LuceneService, Extension<Cache>, CacheService {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneEventListener.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneEventListener.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneEventListener.java
deleted file mode 100644
index 29fb159..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneEventListener.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.InternalGemFireError;
-import com.gemstone.gemfire.cache.Operation;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionDestroyedException;
-import com.gemstone.gemfire.cache.asyncqueue.AsyncEvent;
-import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;
-import com.gemstone.gemfire.cache.lucene.internal.repository.RepositoryManager;
-import com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepository;
-import com.gemstone.gemfire.cache.query.internal.DefaultQuery;
-import com.gemstone.gemfire.internal.cache.BucketNotFoundException;
-import com.gemstone.gemfire.internal.cache.CacheObserverHolder;
-import com.gemstone.gemfire.internal.cache.PrimaryBucketException;
-import com.gemstone.gemfire.internal.cache.partitioned.Bucket;
-import com.gemstone.gemfire.internal.cache.tier.sockets.CacheClientProxy.TestHook;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * An Async event queue listener that writes all of the
- * events in batches to Lucene
- */
-public class LuceneEventListener implements AsyncEventListener {
- Logger logger = LogService.getLogger();
-
- private final RepositoryManager repositoryManager;
-
- public LuceneEventListener(RepositoryManager repositoryManager) {
- this.repositoryManager = repositoryManager;
- }
-
- @Override
- public void close() {
- }
-
- @Override
- public boolean processEvents(List<AsyncEvent> events) {
- // Try to get a PDX instance if possible, rather than a deserialized object
- DefaultQuery.setPdxReadSerialized(true);
-
- Set<IndexRepository> affectedRepos = new HashSet<IndexRepository>();
-
- try {
- for (AsyncEvent event : events) {
- Region region = event.getRegion();
- Object key = event.getKey();
- Object callbackArgument = event.getCallbackArgument();
-
- IndexRepository repository = repositoryManager.getRepository(region, key, callbackArgument);
-
- Operation op = event.getOperation();
-
- if (op.isCreate()) {
- repository.update(key, event.getDeserializedValue());
- } else if (op.isUpdate()) {
- repository.update(key, event.getDeserializedValue());
- } else if (op.isDestroy()) {
- repository.delete(key);
- } else if (op.isInvalidate()) {
- repository.delete(key);
- } else {
- throw new InternalGemFireError("Unhandled operation " + op + " on " + event.getRegion());
- }
- affectedRepos.add(repository);
- }
-
- for(IndexRepository repo : affectedRepos) {
- repo.commit();
- }
- return true;
- } catch(BucketNotFoundException | RegionDestroyedException | PrimaryBucketException e) {
- logger.debug("Bucket not found while saving to lucene index: " + e.getMessage());
- return false;
- } catch(IOException e) {
- logger.error("Unable to save to lucene index", e);
- return false;
- } finally {
- DefaultQuery.setPdxReadSerialized(false);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexCreationProfile.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexCreationProfile.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexCreationProfile.java
deleted file mode 100644
index de331ea..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexCreationProfile.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.internal.Version;
-import com.gemstone.gemfire.internal.cache.CacheServiceProfile;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.*;
-
-public class LuceneIndexCreationProfile implements CacheServiceProfile, DataSerializable {
-
- private String indexName;
-
- private String[] fieldNames;
-
- private String analyzerClass;
-
- private Map<String, String> fieldAnalyzers;
-
- private String regionPath;
-
- /* Used by DataSerializer */
- public LuceneIndexCreationProfile() {}
-
- public LuceneIndexCreationProfile(String indexName, String regionPath, String[] fieldNames, Analyzer analyzer,
- Map<String, Analyzer> fieldAnalyzers) {
- this.indexName = indexName;
- this.regionPath = regionPath;
- this.fieldNames = fieldNames;
- this.analyzerClass = analyzer.getClass().getSimpleName();
- initializeFieldAnalyzers(fieldAnalyzers);
- }
-
- public String getIndexName() {
- return this.indexName;
- }
-
- public String[] getFieldNames() {
- return this.fieldNames;
- }
-
- public String getAnalyzerClass() {
- return this.analyzerClass;
- }
-
- public Map<String, String> getFieldAnalyzers() {
- return this.fieldAnalyzers;
- }
-
- protected void initializeFieldAnalyzers(Map<String, Analyzer> fieldAnalyzers) {
- this.fieldAnalyzers = new HashMap<>();
- for (String field : fieldNames) {
- if(fieldAnalyzers != null && !fieldAnalyzers.isEmpty()) {
- this.fieldAnalyzers.put(field, fieldAnalyzers.get(field) == null ? StandardAnalyzer.class.getSimpleName() : fieldAnalyzers.get(field).getClass().getSimpleName());
- } else {
- this.fieldAnalyzers.put(field, StandardAnalyzer.class.getSimpleName());
- }
- }
- }
-
- @Override
- public String getId() {
- return "lucene_"+LuceneServiceImpl.getUniqueIndexName(indexName, regionPath);
- }
-
- @Override
- public String checkCompatibility(String regionPath, CacheServiceProfile profile) {
- String result = null;
- LuceneIndexCreationProfile remoteProfile = (LuceneIndexCreationProfile) profile;
- if (remoteProfile == null) {
- // TODO This can occur if one member defines no indexes but another one does. Currently this is caught by the async event id checks.
- } else {
- // Verify fields are the same
- if (!Arrays.equals(remoteProfile.getFieldNames(), getFieldNames())) {
- return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_FIELDS_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_FIELDS_3
- .toString(getIndexName(), regionPath, Arrays.toString(getFieldNames()), Arrays.toString(remoteProfile.getFieldNames()));
- }
-
- // Verify the analyzer class is the same
- // Note: This test will currently only fail if per-field analyzers are used in one member but not another,
- // This condition will be caught in the tests below so this test is commented out. If we ever allow the user
- // to configure a single analyzer for all fields, then this test will be useful again.
- /*
- if (!remoteLuceneIndexProfile.getAnalyzerClass().isInstance(getAnalyzer())) {
- result = LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_ANALYZER_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_ANALYZER_3
- .toString(indexName, regionPath, remoteLuceneIndexProfile.getAnalyzerClass().getName(), analyzer.getClass().getName());
- }
- */
-
- // Iterate the existing analyzers and compare them to the input analyzers
- // Note: This is currently destructive to the input field analyzers map which should be ok since its a transient object.
- if (!getFieldAnalyzers().equals(remoteProfile.getFieldAnalyzers())) {
- if (getFieldAnalyzers().size() != remoteProfile.getFieldAnalyzers().size()) {
- return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_FIELDS_2_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_FIELDS_3
- .toString(getIndexName(), regionPath,
- Arrays.toString(getFieldAnalyzers().keySet().toArray()),
- Arrays.toString(remoteProfile.getFieldAnalyzers().keySet().toArray()));
- }
- // now the 2 maps should have the same size
- for (String field:getFieldAnalyzers().keySet()) {
- if (!remoteProfile.getFieldAnalyzers().get(field).equals(getFieldAnalyzers().get(field))) {
- return LocalizedStrings.LuceneService_CANNOT_CREATE_INDEX_0_ON_REGION_1_WITH_ANALYZER_2_ON_FIELD_3_BECAUSE_ANOTHER_MEMBER_DEFINES_THE_SAME_INDEX_WITH_ANALYZER_4_ON_THAT_FIELD
- .toString(getIndexName(), regionPath,
- getFieldAnalyzers().get(field), field,
- remoteProfile.getFieldAnalyzers().get(field));
- }
- }
- }
- }
- return result;
- }
-
- @Override
- public void toData(DataOutput out) throws IOException {
- DataSerializer.writeString(this.indexName, out);
- DataSerializer.writeString(this.regionPath, out);
- DataSerializer.writeStringArray(this.fieldNames, out);
- DataSerializer.writeString(this.analyzerClass, out);
- DataSerializer.writeHashMap(this.fieldAnalyzers, out);
- }
-
- @Override
- public void fromData(DataInput in) throws IOException, ClassNotFoundException {
- this.indexName = DataSerializer.readString(in);
- this.regionPath = DataSerializer.readString(in);
- this.fieldNames = DataSerializer.readStringArray(in);
- this.analyzerClass = DataSerializer.readString(in);
- this.fieldAnalyzers = DataSerializer.readHashMap(in);
- }
-
- public String toString() {
- return new StringBuilder()
- .append(getClass().getSimpleName())
- .append("[")
- .append("indexName=")
- .append(this.indexName)
- .append("; fieldNames=")
- .append(Arrays.toString(this.fieldNames))
- .append("; analyzerClass=")
- .append(this.analyzerClass)
- .append("; fieldAnalyzers=")
- .append(this.fieldAnalyzers)
- .append("]")
- .toString();
- }
-
- public String getRegionPath() {
- return this.regionPath;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexFactory.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexFactory.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexFactory.java
deleted file mode 100755
index b6ac867..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-
-public class LuceneIndexFactory {
- public LuceneIndexFactory() {
- }
-
- public LuceneIndexImpl create(String indexName, String regionPath, GemFireCacheImpl cache) {
- return new LuceneIndexForPartitionedRegion(indexName, regionPath, cache);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexForPartitionedRegion.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
deleted file mode 100644
index b64e026..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import com.gemstone.gemfire.cache.AttributesFactory;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.PartitionAttributes;
-import com.gemstone.gemfire.cache.PartitionAttributesFactory;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionAttributes;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue;
-import com.gemstone.gemfire.cache.asyncqueue.internal.AsyncEventQueueFactoryImpl;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.cache.execute.ResultCollector;
-import com.gemstone.gemfire.cache.lucene.internal.directory.DumpDirectoryFiles;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.ChunkKey;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.File;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.FileSystemStats;
-import com.gemstone.gemfire.cache.lucene.internal.repository.RepositoryManager;
-import com.gemstone.gemfire.cache.lucene.internal.repository.serializer.HeterogeneousLuceneSerializer;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-
-/* wrapper of IndexWriter */
-public class LuceneIndexForPartitionedRegion extends LuceneIndexImpl {
- protected Region<String, File> fileRegion;
- protected Region<ChunkKey, byte[]> chunkRegion;
- protected final FileSystemStats fileSystemStats;
-
- public LuceneIndexForPartitionedRegion(String indexName, String regionPath, Cache cache) {
- super(indexName, regionPath, cache);
-
- final String statsName = indexName + "-" + regionPath;
- this.fileSystemStats = new FileSystemStats(cache.getDistributedSystem(), statsName);
- }
-
- protected RepositoryManager createRepositoryManager() {
- RegionShortcut regionShortCut;
- final boolean withPersistence = withPersistence();
- RegionAttributes regionAttributes = dataRegion.getAttributes();
- final boolean withStorage = regionAttributes.getPartitionAttributes().getLocalMaxMemory()>0;
-
- // TODO: 1) dataRegion should be withStorage
- // 2) Persistence to Persistence
- // 3) Replicate to Replicate, Partition To Partition
- // 4) Offheap to Offheap
- if (!withStorage) {
- throw new IllegalStateException("The data region to create lucene index should be with storage");
- }
- if (withPersistence) {
- // TODO: add PartitionedRegionAttributes instead
- regionShortCut = RegionShortcut.PARTITION_PERSISTENT;
- } else {
- regionShortCut = RegionShortcut.PARTITION;
- }
-
- // create PR fileRegion, but not to create its buckets for now
- final String fileRegionName = createFileRegionName();
- PartitionAttributes partitionAttributes = dataRegion.getPartitionAttributes();
- if (!fileRegionExists(fileRegionName)) {
- fileRegion = createFileRegion(regionShortCut, fileRegionName, partitionAttributes, regionAttributes);
- }
-
- // create PR chunkRegion, but not to create its buckets for now
- final String chunkRegionName = createChunkRegionName();
- if (!chunkRegionExists(chunkRegionName)) {
- chunkRegion = createChunkRegion(regionShortCut, fileRegionName, partitionAttributes, chunkRegionName, regionAttributes);
- }
- fileSystemStats.setFileSupplier(() -> (int) getFileRegion().getLocalSize());
- fileSystemStats.setChunkSupplier(() -> (int) getChunkRegion().getLocalSize());
- fileSystemStats.setBytesSupplier(() -> getChunkRegion().getPrStats().getDataStoreBytesInUse());
-
- // we will create RegionDirectories on the fly when data comes in
- HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(getFieldNames());
- return new PartitionedRepositoryManager(this, mapper);
- }
-
- public PartitionedRegion getFileRegion() {
- return (PartitionedRegion) fileRegion;
- }
-
- public PartitionedRegion getChunkRegion() {
- return (PartitionedRegion) chunkRegion;
- }
-
- public FileSystemStats getFileSystemStats() {
- return fileSystemStats;
- }
-
- boolean fileRegionExists(String fileRegionName) {
- return cache.<String, File> getRegion(fileRegionName) != null;
- }
-
- Region createFileRegion(final RegionShortcut regionShortCut,
- final String fileRegionName,
- final PartitionAttributes partitionAttributes,
- final RegionAttributes regionAttributes) {
- return createRegion(fileRegionName, regionShortCut, this.regionPath, partitionAttributes, regionAttributes);
- }
-
- public String createFileRegionName() {
- return LuceneServiceImpl.getUniqueIndexName(indexName, regionPath)+".files";
- }
-
- boolean chunkRegionExists(String chunkRegionName) {
- return cache.<ChunkKey, byte[]> getRegion(chunkRegionName) != null;
- }
-
- Region<ChunkKey, byte[]> createChunkRegion(final RegionShortcut regionShortCut,
- final String fileRegionName,
- final PartitionAttributes partitionAttributes, final String chunkRegionName, final RegionAttributes regionAttributes) {
- return createRegion(chunkRegionName, regionShortCut, fileRegionName, partitionAttributes, regionAttributes);
- }
-
- public String createChunkRegionName() {
- return LuceneServiceImpl.getUniqueIndexName(indexName, regionPath) + ".chunks";
- }
-
- private PartitionAttributesFactory configureLuceneRegionAttributesFactory(PartitionAttributesFactory attributesFactory, PartitionAttributes<?,?> dataRegionAttributes) {
- attributesFactory.setTotalNumBuckets(dataRegionAttributes.getTotalNumBuckets());
- attributesFactory.setRedundantCopies(dataRegionAttributes.getRedundantCopies());
- return attributesFactory;
- }
-
- protected <K, V> Region<K, V> createRegion(final String regionName,
- final RegionShortcut regionShortCut,
- final String colocatedWithRegionName,
- final PartitionAttributes partitionAttributes,
- final RegionAttributes regionAttributes)
- {
- PartitionAttributesFactory partitionAttributesFactory = new PartitionAttributesFactory<String, File>();
- partitionAttributesFactory.setColocatedWith(colocatedWithRegionName);
- configureLuceneRegionAttributesFactory(partitionAttributesFactory, partitionAttributes);
-
- // Create AttributesFactory based on input RegionShortcut
- RegionAttributes baseAttributes = this.cache.getRegionAttributes(regionShortCut.toString());
- AttributesFactory factory = new AttributesFactory(baseAttributes);
- factory.setPartitionAttributes(partitionAttributesFactory.create());
- factory.setDiskStoreName(regionAttributes.getDiskStoreName());
- RegionAttributes<K, V> attributes = factory.create();
-
- return createRegion(regionName, attributes);
- }
-
- public void close() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void dumpFiles(final String directory) {
- ResultCollector results = FunctionService.onRegion(getDataRegion())
- .withArgs(new String[] {directory, indexName})
- .execute(DumpDirectoryFiles.ID);
- results.getResult();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/05e6d966/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexImpl.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexImpl.java b/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexImpl.java
deleted file mode 100644
index 67461a9..0000000
--- a/geode-lucene/src/main/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexImpl.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.gemstone.gemfire.cache.lucene.internal;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.logging.log4j.Logger;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-
-import com.gemstone.gemfire.InternalGemFireError;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionAttributes;
-import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue;
-import com.gemstone.gemfire.cache.asyncqueue.internal.AsyncEventQueueFactoryImpl;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.ChunkKey;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.File;
-import com.gemstone.gemfire.cache.lucene.internal.filesystem.FileSystemStats;
-import com.gemstone.gemfire.cache.lucene.internal.repository.RepositoryManager;
-import com.gemstone.gemfire.cache.lucene.internal.xml.LuceneIndexCreation;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.InternalRegionArguments;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-public abstract class LuceneIndexImpl implements InternalLuceneIndex {
- protected static final Logger logger = LogService.getLogger();
-
- protected final String indexName;
- protected final String regionPath;
- protected final Cache cache;
- protected final LuceneIndexStats indexStats;
-
- protected boolean hasInitialized = false;
- protected Map<String, Analyzer> fieldAnalyzers;
- protected String[] searchableFieldNames;
- protected RepositoryManager repositoryManager;
- protected Analyzer analyzer;
- protected LocalRegion dataRegion;
-
- protected LuceneIndexImpl(String indexName, String regionPath, Cache cache) {
- this.indexName = indexName;
- this.regionPath = regionPath;
- this.cache = cache;
-
- final String statsName = indexName + "-" + regionPath;
- this.indexStats = new LuceneIndexStats(cache.getDistributedSystem(), statsName);
- }
-
- @Override
- public String getName() {
- return this.indexName;
- }
-
- @Override
- public String getRegionPath() {
- return this.regionPath;
- }
-
- protected LocalRegion getDataRegion() {
- return (LocalRegion)cache.getRegion(regionPath);
- }
-
- protected boolean withPersistence() {
- RegionAttributes ra = dataRegion.getAttributes();
- DataPolicy dp = ra.getDataPolicy();
- final boolean withPersistence = dp.withPersistence();
- return withPersistence;
- }
-
- protected void setSearchableFields(String[] fields) {
- searchableFieldNames = fields;
- }
-
- @Override
- public boolean waitUntilFlushed(int maxWaitInMillisecond) {
- String aeqId = LuceneServiceImpl.getUniqueIndexName(indexName, regionPath);
- AsyncEventQueue queue = (AsyncEventQueue)cache.getAsyncEventQueue(aeqId);
- boolean flushed = false;
- if (queue != null) {
- long start = System.nanoTime();
- while (System.nanoTime() - start < TimeUnit.MILLISECONDS.toNanos(maxWaitInMillisecond)) {
- if (0 == queue.size()) {
- flushed = true;
- break;
- } else {
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- }
- }
- }
- } else {
- throw new IllegalArgumentException("The AEQ does not exist for the index "+indexName+" region "+regionPath);
- }
-
- return flushed;
- }
-
- @Override
- public String[] getFieldNames() {
- return searchableFieldNames;
- }
-
- @Override
- public Map<String, Analyzer> getFieldAnalyzers() {
- return this.fieldAnalyzers;
- }
-
- public RepositoryManager getRepositoryManager() {
- return this.repositoryManager;
- }
-
- public void setAnalyzer(Analyzer analyzer) {
- if (analyzer == null) {
- this.analyzer = new StandardAnalyzer();
- } else {
- this.analyzer = analyzer;
- }
- }
-
- public Analyzer getAnalyzer() {
- return this.analyzer;
- }
-
- public Cache getCache() {
- return this.cache;
- }
-
- public void setFieldAnalyzers(Map<String, Analyzer> fieldAnalyzers) {
- this.fieldAnalyzers = fieldAnalyzers == null ? null : Collections.unmodifiableMap(fieldAnalyzers);
- }
-
- public LuceneIndexStats getIndexStats() {
- return indexStats;
- }
-
- protected void initialize() {
- if (!hasInitialized) {
- /* create index region */
- dataRegion = getDataRegion();
- //assert dataRegion != null;
-
- repositoryManager = createRepositoryManager();
-
- // create AEQ, AEQ listener and specify the listener to repositoryManager
- createAEQ(dataRegion);
-
- addExtension(dataRegion);
- hasInitialized = true;
- }
- }
-
- protected abstract RepositoryManager createRepositoryManager();
-
- protected AsyncEventQueue createAEQ(Region dataRegion) {
- return createAEQ(createAEQFactory(dataRegion));
- }
-
- private AsyncEventQueueFactoryImpl createAEQFactory(final Region dataRegion) {
- AsyncEventQueueFactoryImpl factory = (AsyncEventQueueFactoryImpl) cache.createAsyncEventQueueFactory();
- if (dataRegion instanceof PartitionedRegion) {
- factory.setParallel(true); // parallel AEQ for PR
- } else {
- factory.setParallel(false); // TODO: not sure if serial AEQ working or not
- }
- factory.setMaximumQueueMemory(1000);
- factory.setDispatcherThreads(10);
- factory.setIsMetaQueue(true);
- if (dataRegion.getAttributes().getDataPolicy().withPersistence()) {
- factory.setPersistent(true);
- }
- factory.setDiskStoreName(dataRegion.getAttributes().getDiskStoreName());
- factory.setDiskSynchronous(dataRegion.getAttributes().isDiskSynchronous());
- factory.setForwardExpirationDestroy(true);
- return factory;
- }
-
- private AsyncEventQueue createAEQ(AsyncEventQueueFactoryImpl factory) {
- LuceneEventListener listener = new LuceneEventListener(repositoryManager);
- String aeqId = LuceneServiceImpl.getUniqueIndexName(getName(), regionPath);
- AsyncEventQueue indexQueue = factory.create(aeqId, listener);
- return indexQueue;
- }
-
-/**
- * Register an extension with the region
- * so that xml will be generated for this index.
- */
- protected void addExtension(LocalRegion dataRegion) {
- LuceneIndexCreation creation = new LuceneIndexCreation();
- creation.setName(this.getName());
- creation.addFieldNames(this.getFieldNames());
- creation.setRegion(dataRegion);
- creation.setFieldAnalyzers(this.getFieldAnalyzers());
- dataRegion.getExtensionPoint().addExtension(creation);
- }
-
- protected <K, V> Region<K, V> createRegion(final String regionName, final RegionAttributes<K, V> attributes) {
- // Create InternalRegionArguments to set isUsedForMetaRegion true to suppress xml generation (among other things)
- InternalRegionArguments ira = new InternalRegionArguments().setDestroyLockFlag(true).setRecreateFlag(false)
- .setSnapshotInputStream(null).setImageTarget(null).setIsUsedForMetaRegion(true);
-
- // Create the region
- try {
- return ((GemFireCacheImpl)this.cache).createVMRegion(regionName, attributes, ira);
- } catch (Exception e) {
- InternalGemFireError ige = new InternalGemFireError(LocalizedStrings.GemFireCache_UNEXPECTED_EXCEPTION.toLocalizedString());
- ige.initCause(e);
- throw ige;
- }
- }
-}