You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/05/26 10:22:46 UTC
svn commit: r778613 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene:
ConsistencyCheck.java MultiIndex.java SearchIndex.java
Author: jukka
Date: Tue May 26 08:22:46 2009
New Revision: 778613
URL: http://svn.apache.org/viewvc?rev=778613&view=rev
Log:
JCR-2087: Upgrade to Java 5 as the base platform
More query code generification as I get myself familiar with the latest status of the code.
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.java?rev=778613&r1=778612&r2=778613&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/ConsistencyCheck.java Tue May 26 08:22:46 2009
@@ -28,7 +28,6 @@
import javax.jcr.RepositoryException;
import java.io.IOException;
-import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
@@ -66,12 +65,13 @@
/**
* All the document UUIDs within the index.
*/
- private Set documentUUIDs;
+ private Set<UUID> documentUUIDs;
/**
* List of all errors.
*/
- private final List errors = new ArrayList();
+ private final List<ConsistencyCheckError> errors =
+ new ArrayList<ConsistencyCheckError>();
/**
* Private constructor.
@@ -109,8 +109,7 @@
return;
}
int notRepairable = 0;
- for (Iterator it = errors.iterator(); it.hasNext();) {
- ConsistencyCheckError error = (ConsistencyCheckError) it.next();
+ for (ConsistencyCheckError error : errors) {
try {
if (error.repairable()) {
error.repair();
@@ -139,8 +138,8 @@
* Returns the errors detected by the consistency check.
* @return the errors detected by the consistency check.
*/
- List getErrors() {
- return new ArrayList(errors);
+ List<ConsistencyCheckError> getErrors() {
+ return new ArrayList<ConsistencyCheckError>(errors);
}
/**
@@ -149,9 +148,9 @@
*/
private void run() throws IOException {
// UUIDs of multiple nodes in the index
- Set multipleEntries = new HashSet();
+ Set<UUID> multipleEntries = new HashSet<UUID>();
// collect all documents UUIDs
- documentUUIDs = new HashSet();
+ documentUUIDs = new HashSet<UUID>();
CachingMultiIndexReader reader = index.getIndexReader();
try {
for (int i = 0; i < reader.maxDoc(); i++) {
@@ -177,8 +176,8 @@
}
// create multiple entries errors
- for (Iterator it = multipleEntries.iterator(); it.hasNext();) {
- errors.add(new MultipleEntries((UUID) it.next()));
+ for (UUID uuid : multipleEntries) {
+ errors.add(new MultipleEntries(uuid));
}
reader = index.getIndexReader();
@@ -226,7 +225,7 @@
// remember as fallback
String uuid = node.getNodeId().toString();
StringBuffer path = new StringBuffer();
- List elements = new ArrayList();
+ List<ChildNodeEntry> elements = new ArrayList<ChildNodeEntry>();
try {
while (node.getParentId() != null) {
NodeId parentId = node.getParentId();
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java?rev=778613&r1=778612&r2=778613&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java Tue May 26 08:22:46 2009
@@ -97,7 +97,7 @@
/**
* Names of index directories that can be deleted.
*/
- private final Set deletable = new HashSet();
+ private final Set<String> deletable = new HashSet<String>();
/**
* List of open persistent indexes. This list may also contain an open
@@ -105,7 +105,8 @@
* registered with indexNames and <b>must not</b> be used in regular index
* operations (delete node, etc.)!
*/
- private final List indexes = new ArrayList();
+ private final List<PersistentIndex> indexes =
+ new ArrayList<PersistentIndex>();
/**
* The internal namespace mappings of the query manager.
@@ -191,9 +192,9 @@
private IndexingQueue indexingQueue;
/**
- * Set<NodeId> of uuids that should not be indexed.
+ * Identifiers of nodes that should not be indexed.
*/
- private final Set excludedIDs;
+ private final Set<NodeId> excludedIDs;
/**
* The next transaction id.
@@ -219,18 +220,17 @@
* Creates a new MultiIndex.
*
* @param handler the search handler
- * @param excludedIDs Set<NodeId> that contains uuids that should not
- * be indexed nor further traversed.
+ * @param excludedIDs identifiers of nodes that should
+ * neither be indexed nor further traversed
* @throws IOException if an error occurs
*/
- MultiIndex(SearchIndex handler,
- Set excludedIDs) throws IOException {
+ MultiIndex(SearchIndex handler, Set<NodeId> excludedIDs) throws IOException {
this.directoryManager = handler.getDirectoryManager();
this.indexDir = directoryManager.getDirectory(".");
this.handler = handler;
this.cache = new DocNumberCache(handler.getCacheSize());
this.redoLog = new RedoLog(indexDir);
- this.excludedIDs = new HashSet(excludedIDs);
+ this.excludedIDs = new HashSet<NodeId>(excludedIDs);
this.nsMappings = handler.getNamespaceMappings();
if (indexNames.exists(indexDir)) {
@@ -522,34 +522,33 @@
* @return the <code>IndexReaders</code>.
* @throws IOException if an error occurs acquiring the index readers.
*/
- synchronized IndexReader[] getIndexReaders(String[] indexNames, IndexListener listener)
- throws IOException {
- Set names = new HashSet(Arrays.asList(indexNames));
- Map indexReaders = new HashMap();
+ synchronized IndexReader[] getIndexReaders(
+ String[] indexNames, IndexListener listener) throws IOException {
+ Set<String> names = new HashSet<String>(Arrays.asList(indexNames));
+ Map<ReadOnlyIndexReader, PersistentIndex> indexReaders =
+ new HashMap<ReadOnlyIndexReader, PersistentIndex>();
try {
- for (Iterator it = indexes.iterator(); it.hasNext();) {
- PersistentIndex index = (PersistentIndex) it.next();
+ for (PersistentIndex index : indexes) {
if (names.contains(index.getName())) {
indexReaders.put(index.getReadOnlyIndexReader(listener), index);
}
}
} catch (IOException e) {
// release readers obtained so far
- for (Iterator it = indexReaders.entrySet().iterator(); it.hasNext();) {
- Map.Entry entry = (Map.Entry) it.next();
- ReadOnlyIndexReader reader = (ReadOnlyIndexReader) entry.getKey();
+ for (Map.Entry<ReadOnlyIndexReader, PersistentIndex> entry
+ : indexReaders.entrySet()) {
try {
- reader.release();
+ entry.getKey().release();
} catch (IOException ex) {
log.warn("Exception releasing index reader: " + ex);
}
- ((PersistentIndex) entry.getValue()).resetListener();
+ entry.getValue().resetListener();
}
throw e;
}
- return (IndexReader[]) indexReaders.keySet().toArray(new IndexReader[indexReaders.size()]);
+ return indexReaders.keySet().toArray(new IndexReader[indexReaders.size()]);
}
/**
@@ -564,8 +563,7 @@
synchronized PersistentIndex getOrCreateIndex(String indexName)
throws IOException {
// check existing
- for (Iterator it = indexes.iterator(); it.hasNext();) {
- PersistentIndex idx = (PersistentIndex) it.next();
+ for (PersistentIndex idx : indexes) {
if (idx.getName().equals(indexName)) {
return idx;
}
@@ -601,8 +599,7 @@
*/
synchronized boolean hasIndex(String indexName) throws IOException {
// check existing
- for (Iterator it = indexes.iterator(); it.hasNext();) {
- PersistentIndex idx = (PersistentIndex) it.next();
+ for (PersistentIndex idx : indexes) {
if (idx.getName().equals(indexName)) {
return true;
}
@@ -625,7 +622,7 @@
*/
void replaceIndexes(String[] obsoleteIndexes,
PersistentIndex index,
- Collection deleted)
+ Collection<Term> deleted)
throws IOException {
if (handler.isInitializeHierarchyCache()) {
@@ -646,10 +643,9 @@
executeAndLog(new Start(Action.INTERNAL_TRANS_REPL_INDEXES));
}
// delete obsolete indexes
- Set names = new HashSet(Arrays.asList(obsoleteIndexes));
- for (Iterator it = names.iterator(); it.hasNext();) {
+ Set<String> names = new HashSet<String>(Arrays.asList(obsoleteIndexes));
+ for (String indexName : names) {
// do not try to delete indexes that are already gone
- String indexName = (String) it.next();
if (indexNames.contains(indexName)) {
executeAndLog(new DeleteIndex(getTransactionId(), indexName));
}
@@ -662,8 +658,7 @@
executeAndLog(new AddIndex(getTransactionId(), index.getName()));
// delete documents in index
- for (Iterator it = deleted.iterator(); it.hasNext();) {
- Term id = (Term) it.next();
+ for (Term id : deleted) {
index.removeDocument(id);
}
index.commit();
@@ -725,7 +720,8 @@
// some other read thread might have created the reader in the
// meantime -> check again
if (multiReader == null) {
- List readerList = new ArrayList();
+ List<ReadOnlyIndexReader> readerList =
+ new ArrayList<ReadOnlyIndexReader>();
for (int i = 0; i < indexes.size(); i++) {
PersistentIndex pIdx = (PersistentIndex) indexes.get(i);
if (indexNames.contains(pIdx.getName())) {
@@ -734,7 +730,7 @@
}
readerList.add(volatileIndex.getReadOnlyIndexReader());
ReadOnlyIndexReader[] readers =
- (ReadOnlyIndexReader[]) readerList.toArray(new ReadOnlyIndexReader[readerList.size()]);
+ readerList.toArray(new ReadOnlyIndexReader[readerList.size()]);
multiReader = new CachingMultiIndexReader(readers, cache);
}
multiReader.acquire();
@@ -1082,9 +1078,7 @@
checkIndexingQueue(true);
}
checkVolatileCommit();
- List children = node.getChildNodeEntries();
- for (Iterator it = children.iterator(); it.hasNext();) {
- ChildNodeEntry child = (ChildNodeEntry) it.next();
+ for (ChildNodeEntry child : node.getChildNodeEntries()) {
Path childPath = PATH_FACTORY.create(path, child.getName(),
child.getIndex(), false);
NodeState childState = null;
@@ -1106,8 +1100,8 @@
*/
private void attemptDelete() {
synchronized (deletable) {
- for (Iterator it = deletable.iterator(); it.hasNext(); ) {
- String indexName = (String) it.next();
+ for (Iterator<String> it = deletable.iterator(); it.hasNext(); ) {
+ String indexName = it.next();
if (directoryManager.delete(indexName)) {
it.remove();
} else {
@@ -1770,8 +1764,7 @@
*/
public void execute(MultiIndex index) throws IOException {
// get index if it exists
- for (Iterator it = index.indexes.iterator(); it.hasNext();) {
- PersistentIndex idx = (PersistentIndex) it.next();
+ for (PersistentIndex idx : index.indexes) {
if (idx.getName().equals(indexName)) {
idx.close();
index.deleteIndex(idx);
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java?rev=778613&r1=778612&r2=778613&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java Tue May 26 08:22:46 2009
@@ -73,7 +73,6 @@
import java.io.IOException;
import java.io.File;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import java.util.HashSet;
@@ -344,7 +343,7 @@
/**
* The excerpt provider class. Implements {@link ExcerptProvider}.
*/
- private Class excerptProviderClass = DefaultHTMLExcerpt.class;
+ private Class<?> excerptProviderClass = DefaultHTMLExcerpt.class;
/**
* The path to the indexing configuration file.
@@ -366,12 +365,12 @@
* The indexing configuration class.
* Implements {@link IndexingConfiguration}.
*/
- private Class indexingConfigurationClass = IndexingConfigurationImpl.class;
+ private Class<?> indexingConfigurationClass = IndexingConfigurationImpl.class;
/**
* The class that implements {@link SynonymProvider}.
*/
- private Class synonymProviderClass;
+ private Class<?> synonymProviderClass;
/**
* The currently set synonym provider.
@@ -402,7 +401,7 @@
/**
* The class that implements {@link SpellChecker}.
*/
- private Class spellCheckerClass;
+ private Class<?> spellCheckerClass;
/**
* The spell checker for this query handler or <code>null</code> if none is
@@ -467,7 +466,7 @@
throw new IOException("SearchIndex requires 'path' parameter in configuration!");
}
- Set excludedIDs = new HashSet();
+ Set<NodeId> excludedIDs = new HashSet<NodeId>();
if (context.getExcludedNodeId() != null) {
excludedIDs.add(context.getExcludedNodeId());
}
@@ -522,12 +521,11 @@
if (autoRepair) {
check.repair(true);
} else {
- List errors = check.getErrors();
+ List<ConsistencyCheckError> errors = check.getErrors();
if (errors.size() == 0) {
log.info("No errors detected.");
}
- for (Iterator it = errors.iterator(); it.hasNext();) {
- ConsistencyCheckError err = (ConsistencyCheckError) it.next();
+ for (ConsistencyCheckError err : errors) {
log.info(err.toString());
}
}
@@ -976,7 +974,7 @@
*/
protected SortField[] createSortFields(Path[] orderProps,
boolean[] orderSpecs) {
- List sortFields = new ArrayList();
+ List<SortField> sortFields = new ArrayList<SortField>();
for (int i = 0; i < orderProps.length; i++) {
if (orderProps[i].getLength() == 1
&& NameConstants.JCR_SCORE.equals(orderProps[i].getNameElement().getName())) {
@@ -989,7 +987,7 @@
sortFields.add(new SortField(orderProps[i].getString(), scs, !orderSpecs[i]));
}
}
- return (SortField[]) sortFields.toArray(new SortField[sortFields.size()]);
+ return sortFields.toArray(new SortField[sortFields.size()]);
}
/**
@@ -1100,7 +1098,7 @@
protected DirectoryManager createDirectoryManager()
throws IOException {
try {
- Class clazz = Class.forName(directoryManagerClass);
+ Class<?> clazz = Class.forName(directoryManagerClass);
if (!DirectoryManager.class.isAssignableFrom(clazz)) {
throw new IOException(directoryManagerClass +
" is not a DirectoryManager implementation");
@@ -1582,7 +1580,7 @@
*/
public void setAnalyzer(String analyzerClassName) {
try {
- Class analyzerClass = Class.forName(analyzerClassName);
+ Class<?> analyzerClass = Class.forName(analyzerClassName);
analyzer.setDefaultAnalyzer((Analyzer) analyzerClass.newInstance());
} catch (Exception e) {
log.warn("Invalid Analyzer class: " + analyzerClassName, e);
@@ -1877,7 +1875,7 @@
*/
public void setExcerptProviderClass(String className) {
try {
- Class clazz = Class.forName(className);
+ Class<?> clazz = Class.forName(className);
if (ExcerptProvider.class.isAssignableFrom(clazz)) {
excerptProviderClass = clazz;
} else {
@@ -1922,7 +1920,7 @@
*/
public void setIndexingConfigurationClass(String className) {
try {
- Class clazz = Class.forName(className);
+ Class<?> clazz = Class.forName(className);
if (IndexingConfiguration.class.isAssignableFrom(clazz)) {
indexingConfigurationClass = clazz;
} else {
@@ -1952,7 +1950,7 @@
*/
public void setSynonymProviderClass(String className) {
try {
- Class clazz = Class.forName(className);
+ Class<?> clazz = Class.forName(className);
if (SynonymProvider.class.isAssignableFrom(clazz)) {
synonymProviderClass = clazz;
} else {
@@ -1986,7 +1984,7 @@
*/
public void setSpellCheckerClass(String className) {
try {
- Class clazz = Class.forName(className);
+ Class<?> clazz = Class.forName(className);
if (SpellChecker.class.isAssignableFrom(clazz)) {
spellCheckerClass = clazz;
} else {
@@ -2055,7 +2053,7 @@
*/
public void setSimilarityClass(String className) {
try {
- Class similarityClass = Class.forName(className);
+ Class<?> similarityClass = Class.forName(className);
similarity = (Similarity) similarityClass.newInstance();
} catch (Exception e) {
log.warn("Invalid Similarity class: " + className, e);