Sophie

Sophie

distrib > Mageia > 6 > x86_64 > by-pkgid > 1beb376da36f2f8edabe69027ce6a718 > files > 1

eclipse-mylyn-3.21.0-1.mga6.src.rpm

From 23466c86ec128a29f0226236219c429e26690b43 Mon Sep 17 00:00:00 2001
From: Alexander Kurtakov <akurtako@redhat.com>
Date: Wed, 24 Jun 2015 09:02:55 +0300
Subject: [PATCH] Compile with Lucene 5.

Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
---
 .../META-INF/MANIFEST.MF                           |   4 +-
 .../internal/tasks/index/core/TaskAnalyzer.java    |  20 +--
 .../internal/tasks/index/core/TaskListIndex.java   | 146 +++++++++++----------
 3 files changed, 90 insertions(+), 80 deletions(-)

diff --git a/org.eclipse.mylyn.tasks.index.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.index.core/META-INF/MANIFEST.MF
index 2a3b1f8..78c5cfa 100644
--- a/org.eclipse.mylyn.tasks.index.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.tasks.index.core/META-INF/MANIFEST.MF
@@ -7,7 +7,9 @@ Bundle-Vendor: %Bundle-Vendor
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.mylyn.tasks.core;bundle-version="3.8.0",
  org.eclipse.mylyn.commons.core;bundle-version="3.8.0",
- org.apache.lucene.core;bundle-version="[2.9.1,3.7.0)"
+ org.apache.lucene.core;bundle-version="[5.0.0,7.0.0)",
+ org.apache.lucene.queryparser;bundle-version="[5.0.0,7.0.0)",
+ org.apache.lucene.analyzers-common;bundle-version="[5.0.0,7.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.mylyn.internal.tasks.index.core;x-internal:=true
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
index b1b88c1..581d390 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskAnalyzer.java
@@ -11,23 +11,27 @@
  *******************************************************************************/
 package org.eclipse.mylyn.internal.tasks.index.core;
 
-import org.apache.lucene.analysis.KeywordAnalyzer;
-import org.apache.lucene.analysis.PerFieldAnalyzerWrapper;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.util.Version;
 
 /**
  * An analyzer that is aware of task fields
- * 
+ *
  * @author David Green
  */
 class TaskAnalyzer {
 
 	public static PerFieldAnalyzerWrapper instance() {
-		PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(Version.LUCENE_CURRENT));
-		wrapper.addAnalyzer(TaskListIndex.FIELD_IDENTIFIER.getIndexKey(), new KeywordAnalyzer());
-		wrapper.addAnalyzer(TaskListIndex.FIELD_TASK_KEY.getIndexKey(), new KeywordAnalyzer());
-		wrapper.addAnalyzer(TaskListIndex.FIELD_REPOSITORY_URL.getIndexKey(), new KeywordAnalyzer());
+		Map<String, Analyzer> analyzerPerField = new HashMap<String, Analyzer>();
+		analyzerPerField.put(TaskListIndex.FIELD_IDENTIFIER.getIndexKey(), new KeywordAnalyzer());
+		analyzerPerField.put(TaskListIndex.FIELD_TASK_KEY.getIndexKey(), new KeywordAnalyzer());
+		analyzerPerField.put(TaskListIndex.FIELD_REPOSITORY_URL.getIndexKey(), new KeywordAnalyzer());
+		PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(), analyzerPerField);
 		return wrapper;
 	}
 }
diff --git a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
index 90acbd2..78d8c0c 100644
--- a/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
+++ b/org.eclipse.mylyn.tasks.index.core/src/org/eclipse/mylyn/internal/tasks/index/core/TaskListIndex.java
@@ -17,6 +17,12 @@
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -36,14 +42,18 @@
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.DateTools.Resolution;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.queryParser.ParseException;
-import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.queryparser.classic.ParseException;
+import org.apache.lucene.queryparser.classic.QueryParser;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
@@ -57,7 +67,7 @@
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.store.NIOFSDirectory;
-import org.apache.lucene.util.Version;
+import org.apache.lucene.util.InfoStream;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -440,7 +450,7 @@
 						}
 					}
 					try {
-						directory = new NIOFSDirectory(indexLocation);
+						directory = new NIOFSDirectory(Paths.get(indexLocation.toURI()));
 					} catch (IOException e) {
 						StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.ID_PLUGIN,
 								"Cannot create task list index", e)); //$NON-NLS-1$
@@ -594,12 +604,6 @@
 					} catch (IOException e) {
 						StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.ID_PLUGIN,
 								"Unexpected failure within task list index", e)); //$NON-NLS-1$
-					} finally {
-						try {
-							indexSearcher.close();
-						} catch (IOException e) {
-							// ignore
-						}
 					}
 
 				} else {
@@ -677,12 +681,6 @@
 				} catch (IOException e) {
 					StatusHandler.log(new Status(IStatus.ERROR, TasksIndexCore.ID_PLUGIN,
 							"Unexpected failure within task list index", e)); //$NON-NLS-1$
-				} finally {
-					try {
-						indexSearcher.close();
-					} catch (IOException e) {
-						// ignore
-					}
 				}
 			}
 		} finally {
@@ -699,7 +697,7 @@
 		if (!hasBooleanSpecifiers && defaultField.equals(FIELD_SUMMARY) && !containsSpecialCharacters(patternString)) {
 			return new PrefixQuery(new Term(defaultField.getIndexKey(), patternString));
 		}
-		QueryParser qp = new QueryParser(Version.LUCENE_CURRENT, defaultField.getIndexKey(), TaskAnalyzer.instance());
+		QueryParser qp = new QueryParser(defaultField.getIndexKey(), TaskAnalyzer.instance());
 		Query q;
 		try {
 			q = qp.parse(patternString);
@@ -711,16 +709,20 @@
 		// to what we're expecting
 		// from previous task list search
 		if (q instanceof BooleanQuery) {
+			BooleanQuery.Builder qb = new BooleanQuery.Builder();
 			BooleanQuery query = (BooleanQuery) q;
-			for (BooleanClause clause : query.getClauses()) {
+			for (BooleanClause clause : query.clauses()) {
 				if (clause.getQuery() instanceof TermQuery) {
 					TermQuery termQuery = (TermQuery) clause.getQuery();
-					clause.setQuery(new PrefixQuery(termQuery.getTerm()));
+					clause = new BooleanClause(new PrefixQuery(termQuery.getTerm()), clause.getOccur());
+					qb.add(clause);
 				}
 				if (!hasBooleanSpecifiers) {
-					clause.setOccur(Occur.MUST);
+					clause = new BooleanClause(clause.getQuery(), Occur.MUST);
+					qb.add(clause);
 				}
 			}
+			q = qb.build();
 		} else if (q instanceof TermQuery) {
 			return new PrefixQuery(((TermQuery) q).getTerm());
 		}
@@ -774,7 +776,7 @@
 		try {
 			synchronized (this) {
 				if (indexReader == null) {
-					indexReader = IndexReader.open(directory, true);
+					indexReader = DirectoryReader.open(directory);
 					lastResults = null;
 				}
 				return indexReader;
@@ -988,15 +990,14 @@
 		if (value == null) {
 			return;
 		}
-		Field field = document.getField(indexField.getIndexKey());
+		IndexableField field = document.getField(indexField.getIndexKey());
 		if (field == null) {
-			field = new Field(indexField.getIndexKey(), value, Store.YES,
-					org.apache.lucene.document.Field.Index.ANALYZED);
+			field = new TextField(indexField.getIndexKey(), value, Store.YES);
 			document.add(field);
 		} else {
 			String existingValue = field.stringValue();
 			if (!indexField.equals(FIELD_PERSON) || !existingValue.contains(value)) {
-				field.setValue(existingValue + " " + value); //$NON-NLS-1$
+				document.add(new StringField(field.name(), existingValue + " " + value, Store.YES)); //$NON-NLS-1$
 			}
 		}
 	}
@@ -1009,13 +1010,12 @@
 		// move the date by the GMT offset if there is any
 
 		String value = DateTools.dateToString(date, Resolution.HOUR);
-		Field field = document.getField(indexField.getIndexKey());
+		IndexableField field = document.getField(indexField.getIndexKey());
 		if (field == null) {
-			field = new Field(indexField.getIndexKey(), value, Store.YES,
-					org.apache.lucene.document.Field.Index.ANALYZED);
+			field = new TextField(indexField.getIndexKey(), value, Store.YES);
 			document.add(field);
 		} else {
-			field.setValue(value);
+			document.add(new StringField(field.name(), value, Store.YES));
 		}
 	}
 
@@ -1074,7 +1074,7 @@
 			try {
 				if (!rebuildIndex) {
 					try {
-						IndexReader reader = IndexReader.open(directory, false);
+						IndexReader reader = DirectoryReader.open(directory);
 						reader.close();
 					} catch (CorruptIndexException e) {
 						rebuildIndex = true;
@@ -1221,7 +1221,7 @@
 				writer = createIndexWriter(true);
 			} catch (CorruptIndexException e) {
 				if (directory instanceof FSDirectory) {
-					cleanDirectory(((FSDirectory) directory).getFile());
+					cleanDirectory(((FSDirectory) directory).getDirectory());
 					writer = createIndexWriter(true);
 				} else {
 					throw e;
@@ -1253,23 +1253,29 @@
 		return multiStatus;
 	}
 
-	private void cleanDirectory(File file) throws IOException {
-		if (file.exists()) {
-			File[] children = file.listFiles();
-			if (children != null) {
-				for (File child : children) {
-					if (child.isDirectory()) {
-						cleanDirectory(child);
-					}
-					child.delete();
+	private void cleanDirectory(Path file) throws IOException {
+		if (Files.exists(file)) {
+			Files.walkFileTree(file, new SimpleFileVisitor<Path>() {
+				@Override
+				public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+					Files.delete(file);
+					return FileVisitResult.CONTINUE;
 				}
-			}
+
+				@Override
+				public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
+					Files.delete(dir);
+					return FileVisitResult.CONTINUE;
+				}
+			});
 		}
 	}
 
 	protected IndexWriter createIndexWriter(boolean create)
 			throws CorruptIndexException, LockObtainFailedException, IOException {
-		return new IndexWriter(directory, TaskAnalyzer.instance(), create, IndexWriter.MaxFieldLength.UNLIMITED);
+		IndexWriterConfig writerConfig = new IndexWriterConfig(TaskAnalyzer.instance());
+		writerConfig.setInfoStream(InfoStream.NO_OUTPUT);
+		return new IndexWriter(directory, writerConfig);
 	}
 
 	/**
@@ -1288,8 +1294,7 @@
 
 		Document document = new Document();
 
-		document.add(new Field(FIELD_IDENTIFIER.getIndexKey(), task.getHandleIdentifier(), Store.YES,
-				org.apache.lucene.document.Field.Index.ANALYZED));
+		document.add(new TextField(FIELD_IDENTIFIER.getIndexKey(), task.getHandleIdentifier(), Store.YES));
 		if (taskData == null) {
 			if ("local".equals(((AbstractTask) task).getConnectorKind())) { //$NON-NLS-1$
 				addIndexedAttributes(document, task);
-- 
2.4.3