diff --git a/disable-non-linux.patch b/disable-non-linux.patch index 87331a2..9a6dc64 100644 --- a/disable-non-linux.patch +++ b/disable-non-linux.patch @@ -1,6 +1,6 @@ --- eclipse.jdt/org.eclipse.jdt-feature/feature.xml.sav 2015-06-10 10:05:23.943730974 +0300 +++ eclipse.jdt/org.eclipse.jdt-feature/feature.xml 2015-06-10 10:05:50.820612421 +0300 -@@ -161,22 +161,6 @@ +@@ -166,22 +166,6 @@ unpack="false"/> - - -- -- -- -- diff --git a/eclipse-adjust-droplets.patch b/eclipse-adjust-droplets.patch index bf88f61..f7044e5 100644 --- a/eclipse-adjust-droplets.patch +++ b/eclipse-adjust-droplets.patch @@ -2,7 +2,7 @@ diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/e index 5fc0e73..ed7e4fa 100644 --- rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java -@@ -144,7 +144,20 @@ public class EngineActivator implements BundleActivator { +@@ -147,7 +147,20 @@ public class EngineActivator implements BundleActivator { } continue; } @@ -28,7 +28,7 @@ diff --git rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/ index 12e4d89..77945ef 100644 --- rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java -@@ -156,7 +156,20 @@ public class SimpleConfiguratorUtils { +@@ -155,7 +155,20 @@ public class SimpleConfiguratorUtils { } continue; } @@ -54,16 +54,16 @@ diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/e index 3d7e313..debbfb8 100644 --- rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java -@@ -238,10 +238,11 @@ public class SurrogateProfileHandler implements ISurrogateProfileHandler { +@@ -236,10 +236,11 @@ || "feature".equals(cap.getName())) { //$NON-NLS-1$ featureOrBundle = true; } -- } else if (Boolean.TRUE.equals(unit.getProperties().get("org.eclipse.equinox.p2.type.group"))) { //$NON-NLS-1$ +- } else if (Boolean.TRUE.equals(Boolean.valueOf(unit.getProperties().get("org.eclipse.equinox.p2.type.group")))) { //$NON-NLS-1$ - featureOrBundle = true; } } -+ if (Boolean.TRUE.toString().equals(unit.getProperties().get("org.eclipse.equinox.p2.type.group"))) { //$NON-NLS-1$ -+ featureOrBundle = true; ++ if (Boolean.TRUE.equals(Boolean.valueOf(unit.getProperties().get("org.eclipse.equinox.p2.type.group")))) { //$NON-NLS-1$ ++ featureOrBundle = true; + } if (featureOrBundle && !added.contains(unit)) { added.add(unit); diff --git a/eclipse-bug-386377.patch b/eclipse-bug-386377.patch index c912db5..5200205 100644 --- a/eclipse-bug-386377.patch +++ b/eclipse-bug-386377.patch @@ -38,46 +38,6 @@ + + ---- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100 -+++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/pom.xml 2014-04-16 15:53:08.145402094 +0100 -@@ -27,4 +27,37 @@ - win32 - x86_64 - -+ -+ -+ build-native-launchers-win32.win32.x86_64 -+ -+ -+ native -+ win32.win32.x86_64 -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ 1.7 -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ -+ - --- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml.orig 2014-04-16 15:57:02.805249103 +0100 +++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le/pom.xml 2014-04-16 15:57:26.204834155 +0100 @@ -27,4 +27,37 @@ @@ -158,86 +118,6 @@ + + ---- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.win32.win32.x86/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100 -+++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.win32.win32.x86/pom.xml 2014-04-16 15:53:08.145402094 +0100 -@@ -27,4 +27,37 @@ - win32 - x86 - -+ -+ -+ build-native-launchers-win32.win32.x86 -+ -+ -+ native -+ win32.win32.x86 -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ 1.7 -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ -+ - ---- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.s390/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100 -+++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.s390/pom.xml 2014-04-16 15:53:08.145402094 +0100 -@@ -27,4 +27,37 @@ - gtk - s390 - -+ -+ -+ build-native-launchers-gtk.linux.s390 -+ -+ -+ native -+ gtk.linux.s390 -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ 1.7 -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ -+ - --- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100 +++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x/pom.xml 2014-04-16 15:53:08.146402075 +0100 @@ -27,4 +27,37 @@ @@ -318,43 +198,3 @@ + + ---- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100 -+++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/pom.xml 2014-04-16 15:53:08.146402075 +0100 -@@ -27,4 +27,37 @@ - gtk - ppc - -+ -+ -+ build-native-launchers-gtk.linux.ppc -+ -+ -+ native -+ gtk.linux.ppc -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ 1.7 -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ -+ - diff --git a/eclipse-debug-symbols.patch b/eclipse-debug-symbols.patch index 5c4a70e..df2301a 100644 --- a/eclipse-debug-symbols.patch +++ b/eclipse-debug-symbols.patch @@ -1,27 +1,30 @@ --- eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak.orig 2014-03-12 10:43:26.000000000 +0000 +++ eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak 2014-03-12 14:36:44.130938292 +0000 -@@ -115,7 +115,7 @@ - WEBKIT_OBJECTS = swt.o webkit.o webkit_structs.o webkit_stats.o +@@ -121,7 +121,7 @@ + WEBKIT_OBJECTS = swt.o webkitgtk.o webkitgtk_structs.o webkitgtk_stats.o webkitgtk_custom.o GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o -CFLAGS = -O -Wall \ +CFLAGS = -g -O -Wall \ -DSWT_VERSION=$(SWT_VERSION) \ $(NATIVE_STATS) \ - -DLINUX -DGTK \ -@@ -125,12 +125,6 @@ + $(SWT_DEBUG) \ +@@ -133,15 +133,6 @@ ${SWT_PTR_CFLAGS} LFLAGS = -shared -fPIC ${SWT_LFLAGS} -ifndef NO_STRIP +- # -s = Remove all symbol table and relocation information from the executable. +- # i.e, more efficent code, but removes debug information. Should not be used if you want to debug. +- # https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options +- # http://stackoverflow.com/questions/14175040/effects-of-removing-all-symbol-table-and-relocation-information-from-an-executab - AWT_LFLAGS := $(AWT_LFLAGS) -s - MOZILLALFLAGS := $(MOZILLALFLAGS) -s - LFLAGS := $(LFLAGS) -s -endif -- + all: make_swt make_atk make_glx make_webkit - # --- rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak.orig 2014-03-12 14:47:37.513191381 +0000 +++ rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak 2014-03-12 14:47:45.672200015 +0000 @@ -48,7 +48,7 @@ diff --git a/eclipse-feature-plugins-to-category-ius.patch b/eclipse-feature-plugins-to-category-ius.patch index 33ca499..e8bb24d 100644 --- a/eclipse-feature-plugins-to-category-ius.patch +++ b/eclipse-feature-plugins-to-category-ius.patch @@ -70,7 +70,7 @@ index 88a8daa..382c5ee 100644 - - - - +- +- +- +- -+ -+ -+ ++ ++ ++ + ++ + ++ + + ++ ++ + + + @@ -207,9 +225,7 @@ index 88a8daa..382c5ee 100644 + + + -+ -+ -+ ++ --- eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml.orig 2017-01-13 11:29:16.362473652 +0000 +++ eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml 2017-01-13 11:29:16.371473551 +0000 @@ -276,7 +292,7 @@ index 88a8daa..382c5ee 100644 id="org.eclipse.e4.core.di" download-size="0" install-size="0" -@@ -165,20 +109,6 @@ +@@ -165,13 +109,6 @@ unpack="false"/> - - + + - - + -+ + ++ + ++ ++ + -+ ++ ++ + + + -+ -+ -+ -+ ++ + --- eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml.orig 2017-01-04 10:54:36.000000000 +0000 +++ eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml 2017-01-13 11:28:25.827041896 +0000 -@@ -61,11 +61,6 @@ +@@ -61,12 +61,7 @@ eclipse-plugin @@ -383,9 +406,20 @@ index 88a8daa..382c5ee 100644 - - - eclipse-plugin - javax.el +- javax.el ++ javax.el-api + 0.0.0 + + +@@ -76,7 +71,7 @@ + + + eclipse-plugin +- javax.servlet ++ javax.servlet-api 0.0.0 + @@ -96,7 +91,7 @@ @@ -397,9 +431,9 @@ index 88a8daa..382c5ee 100644 --- eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF.orig 2017-02-15 10:01:24.202436806 +0000 +++ eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF 2017-02-15 10:01:35.454301845 +0000 -@@ -38,8 +38,7 @@ - org.eclipse.e4.core.commands;bundle-version="0.10.0", - org.eclipse.e4.ui.dialogs;bundle-version="1.0.0" +@@ -39,8 +39,7 @@ + org.eclipse.e4.ui.dialogs;bundle-version="1.0.0", + org.eclipse.e4.emf.xpath Bundle-ActivationPolicy: lazy -Import-Package: javax.annotation, - javax.inject;version="1.0.0", diff --git a/eclipse-fix-tests.patch b/eclipse-fix-tests.patch index 9061d81..82cfc90 100644 --- a/eclipse-fix-tests.patch +++ b/eclipse-fix-tests.patch @@ -246,3 +246,30 @@ index bc8963d..fbe4da3 100644 + } +} + +--- eclipse.jdt.core/org.eclipse.jdt.core.tests.builder/pom.xml.orig 2017-04-07 10:44:33.764607961 +0100 ++++ eclipse.jdt.core/org.eclipse.jdt.core.tests.builder/pom.xml 2017-04-07 11:26:44.511961798 +0100 +@@ -26,4 +26,24 @@ + org.eclipse.jdt.core.tests.builder.BuilderTests + ${project.artifactId} + ++ ++ ++ ++ ++ org.eclipse.tycho ++ target-platform-configuration ++ ++ ++ ++ ++ eclipse-plugin ++ org.eclipse.jdt.annotation ++ 0.0.0 ++ ++ ++ ++ ++ ++ ++ + diff --git a/eclipse-hide-droplets-from-install-wizard.patch b/eclipse-hide-droplets-from-install-wizard.patch index 85ef057..9de6347 100644 --- a/eclipse-hide-droplets-from-install-wizard.patch +++ b/eclipse-hide-droplets-from-install-wizard.patch @@ -24,7 +24,7 @@ index 8d08101..59567c0 100644 import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.ui.*; import org.eclipse.equinox.internal.p2.ui.query.IUViewQueryContext; -@@ -314,6 +315,19 @@ public class RepositorySelectionGroup { +@@ -325,6 +326,19 @@ public class RepositorySelectionGroup { void fillRepoCombo(final String selection) { RepositoryTracker tracker = ui.getRepositoryTracker(); URI[] sites = tracker.getKnownRepositories(ui.getSession()); @@ -48,7 +48,7 @@ diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equin index c0f2ca1..03515c7 100644 --- rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java -@@ -130,9 +130,22 @@ public class RepositoryManipulationPage extends PreferencePage implements IWorkb +@@ -132,9 +132,22 @@ public class RepositoryManipulationPage extends PreferencePage implements IWorkb if (cachedElements == null) { Object[] children = super.fetchChildren(o, monitor); cachedElements = new Hashtable(children.length); diff --git a/eclipse-jetty-9.4.patch b/eclipse-jetty-9.4.patch deleted file mode 100644 index 4754f08..0000000 --- a/eclipse-jetty-9.4.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty9/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java.old 2016-06-15 10:29:35.370386868 +0100 -+++ rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty9/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 2016-06-15 10:59:31.120348432 +0100 -@@ -26,7 +26,6 @@ - import org.eclipse.equinox.http.servlet.HttpServiceMultipartServlet; - import org.eclipse.equinox.http.servlet.HttpServiceServlet; - import org.eclipse.jetty.server.*; --import org.eclipse.jetty.server.session.HashSessionManager; - import org.eclipse.jetty.server.session.SessionHandler; - import org.eclipse.jetty.servlet.ServletContextHandler; - import org.eclipse.jetty.servlet.ServletHolder; -@@ -144,9 +143,9 @@ - // This servlet has no mapping as it's only used from named dispatcher - httpContext.getServletHandler().addServlet(multiPartHolder); - -- SessionManager sessionManager = httpContext.getSessionHandler().getSessionManager(); -+ SessionHandler sessionHandler = httpContext.getSessionHandler(); - try { -- sessionManager.addEventListener((HttpSessionIdListener) holder.getServlet()); -+ sessionHandler.addEventListener((HttpSessionIdListener) holder.getServlet()); - } catch (ServletException e) { - throw new ConfigurationException(pid, e.getMessage(), e); - } -@@ -241,10 +240,10 @@ - contextWorkDir.mkdir(); - httpContext.setAttribute(CONTEXT_TEMPDIR, contextWorkDir); - -- HashSessionManager sessionManager = new HashSessionManager(); -- sessionManager.setMaxInactiveInterval(Details.getInt(dictionary, JettyConstants.CONTEXT_SESSIONINACTIVEINTERVAL, -1)); -+ SessionHandler sessionHandler = new SessionHandler(); -+ sessionHandler.setMaxInactiveInterval(Details.getInt(dictionary, JettyConstants.CONTEXT_SESSIONINACTIVEINTERVAL, -1)); - -- httpContext.setSessionHandler(new SessionHandler(sessionManager)); -+ httpContext.setSessionHandler(sessionHandler); - - return httpContext; - } diff --git a/eclipse-lucene-5.patch b/eclipse-lucene-5.patch deleted file mode 100644 index 0d69a3e..0000000 --- a/eclipse-lucene-5.patch +++ /dev/null @@ -1,1934 +0,0 @@ -From e9b5adb1d0477a50111afe5cf7736c542b7e4998 Mon Sep 17 00:00:00 2001 -From: Sopot Cela -Date: Thu, 21 May 2015 13:48:41 +0200 -Subject: [PATCH] Bug 466829 - Upgrade platform.ua to Lucene 5.1.0 - -Change-Id: I882188205c2c1e2cc1106108680dd4e94570a975 -Signed-off-by: Sopot Cela ---- - -diff --git a/eclipse.platform.ua/org.eclipse.help.base/META-INF/MANIFEST.MF b/org.eclipse.help.base/META-INF/MANIFEST.MF -index ee34c8e..e4bd703 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/META-INF/MANIFEST.MF -+++ b/eclipse.platform.ua/org.eclipse.help.base/META-INF/MANIFEST.MF -@@ -43,9 +43,11 @@ - org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)", - org.eclipse.help;bundle-version="[3.5.0,4.0.0)";visibility:=reexport, - org.eclipse.core.expressions;bundle-version="[3.4.200,4.0.0)", -- org.apache.lucene.analysis;bundle-version="[3.5.0,4.0.0)", -- org.apache.lucene.core;bundle-version="[3.5.0,4.0.0)", -- org.eclipse.core.net;bundle-version="1.2.200" -+ org.eclipse.core.net;bundle-version="1.2.200", -+ org.apache.lucene.analyzers-common;bundle-version="5.1.0", -+ org.apache.lucene.core;bundle-version="5.1.0", -+ org.apache.lucene.queryparser;bundle-version="5.1.0", -+ org.apache.lucene.analyzers-smartcn;bundle-version="5.1.0" - Import-Package: com.ibm.icu.text, - org.eclipse.equinox.http.jetty;resolution:=optional - Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -diff --git a/eclipse.platform.ua/org.eclipse.help.base/plugin.xml b/org.eclipse.help.base/plugin.xml -index 07a5a22..4daf3f0 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/plugin.xml -+++ b/eclipse.platform.ua/org.eclipse.help.base/plugin.xml -@@ -83,7 +83,7 @@ - - -+ class="org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer"> - - StopFilter->PorterStemFilter - */ - public final class Analyzer_en extends Analyzer { -+ - /** - * Constructor for Analyzer_en. - */ -@@ -27,19 +34,25 @@ - super(); - } - /** -- * Creates a TokenStream which tokenizes all the text in the provided -+ * Creates a TokenStreamComponents which tokenizes all the text in the provided - * Reader. - */ - @Override -- public final TokenStream tokenStream(String fieldName, Reader reader) { -- return new PorterStemFilter(new StopFilter(Version.LUCENE_30, new LowerCaseAndDigitsTokenizer(reader), getStopWords(), false)); -+ public final TokenStreamComponents createComponents(String fieldName) { -+ final Tokenizer source; -+ source = new LowerCaseAndDigitsTokenizer(); -+ TokenStream result = new EnglishPossessiveFilter(source); -+ result = new StopFilter(result, new CharArraySet(getStopWords(), false)); -+ result = new KeywordRepeatFilter(result); -+ result = new PorterStemFilter(result); -+ return new TokenStreamComponents(source, result); - } - -- private Set stopWords; -+ private List stopWords; - -- private Set getStopWords() { -+ private List getStopWords() { - if ( stopWords == null ) { -- stopWords = new HashSet<>(); -+ stopWords = new ArrayList<>(); - for (int i = 0; i < STOP_WORDS.length; i++) { - stopWords.add(STOP_WORDS[i]); - } -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/DefaultAnalyzer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/DefaultAnalyzer.java -index 4109474..e3c8722 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/DefaultAnalyzer.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/DefaultAnalyzer.java -@@ -7,22 +7,20 @@ - * Contributors: - * IBM Corporation - initial API and implementation - * Alexander Kurtakov - Bug 460787 -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.help.internal.search; - --import java.io.Reader; - import java.util.Locale; - import java.util.StringTokenizer; - --import com.ibm.icu.text.BreakIterator; -- - import org.apache.lucene.analysis.Analyzer; --import org.apache.lucene.analysis.LowerCaseFilter; --import org.apache.lucene.analysis.TokenStream; --import org.apache.lucene.util.Version; -+import org.apache.lucene.analysis.Tokenizer; -+import org.apache.lucene.analysis.core.LowerCaseFilter; -+import org.eclipse.core.runtime.Platform; - import org.eclipse.help.internal.base.HelpBasePlugin; - --import org.eclipse.core.runtime.Platform; -+import com.ibm.icu.text.BreakIterator; - - - /** -@@ -84,12 +82,14 @@ - } - - /** -- * Creates a TokenStream which tokenizes all the text in the provided -+ * Creates a TokenStreamComponents which tokenizes all the text in the provided - * Reader. - */ - @Override -- public final TokenStream tokenStream(String fieldName, Reader reader) { -- return new LowerCaseFilter(Version.LUCENE_30, new WordTokenStream(fieldName, reader, locale)); -+ public final TokenStreamComponents createComponents(String fieldName) { -+ Tokenizer source = new WordTokenStream(locale); -+ LowerCaseFilter filter = new LowerCaseFilter(source); -+ return new TokenStreamComponents(source, filter); - } - - /** -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LowerCaseAndDigitsTokenizer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LowerCaseAndDigitsTokenizer.java -index a475688..cbb2472 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LowerCaseAndDigitsTokenizer.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LowerCaseAndDigitsTokenizer.java -@@ -8,29 +8,27 @@ - * Contributors: - * IBM Corporation - initial API and implementation - * Alexander Kurtakov - Bug 460787 -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.help.internal.search; - --import java.io.*; -- --import org.apache.lucene.analysis.*; --import org.apache.lucene.util.Version; -+import org.apache.lucene.analysis.util.CharTokenizer; - - /** - * Tokenizer breaking words around letters or digits. - */ - public class LowerCaseAndDigitsTokenizer extends CharTokenizer { - -- public LowerCaseAndDigitsTokenizer(Reader input) { -- super(Version.LUCENE_30, input); -+ public LowerCaseAndDigitsTokenizer() { -+ super(); - } - @Override -- protected char normalize(char c) { -+ protected int normalize(int c) { - return Character.toLowerCase(c); - } - - @Override -- protected boolean isTokenChar(char c) { -+ public boolean isTokenChar(int c) { - return Character.isLetterOrDigit(c); - } - -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LuceneSearchDocument.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/LuceneSearchDocument.java -index 60a545d..804bf5e 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LuceneSearchDocument.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LuceneSearchDocument.java -@@ -7,6 +7,7 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - - package org.eclipse.help.internal.search; -@@ -16,6 +17,8 @@ - - import org.apache.lucene.document.Document; - import org.apache.lucene.document.Field; -+import org.apache.lucene.document.StoredField; -+import org.apache.lucene.document.TextField; - import org.eclipse.help.search.ISearchDocument; - - /** -@@ -32,25 +35,25 @@ - - @Override - public void setTitle(String title) { -- doc.add(new Field("title", title, Field.Store.NO, Field.Index.ANALYZED)); //$NON-NLS-1$ -- doc.add(new Field("exact_title", title, Field.Store.NO, Field.Index.ANALYZED)); //$NON-NLS-1$ -- doc.add(new Field("raw_title", title, Field.Store.YES, Field.Index.NO)); //$NON-NLS-1$ -+ doc.add(new TextField("title", title, Field.Store.NO)); //$NON-NLS-1$ -+ doc.add(new TextField("exact_title", title, Field.Store.NO)); //$NON-NLS-1$ -+ doc.add(new StoredField("raw_title", title)); //$NON-NLS-1$ - } - - @Override - public void setSummary(String summary) { -- doc.add(new Field("summary", summary, Field.Store.YES, Field.Index.NO)); //$NON-NLS-1$ -+ doc.add(new StoredField("summary", summary)); //$NON-NLS-1$ - } - - @Override - public void addContents(String contents) { -- doc.add(new Field("contents", new StringReader(contents))); //$NON-NLS-1$ -- doc.add(new Field("exact_contents", new StringReader(contents))); //$NON-NLS-1$ -+ doc.add(new TextField("contents", new StringReader(contents))); //$NON-NLS-1$ -+ doc.add(new TextField("exact_contents", new StringReader(contents))); //$NON-NLS-1$ - } - - @Override - public void setHasFilters(boolean hasFilters) { -- doc.add(new Field("filters", Boolean.toString(hasFilters), Field.Store.YES, Field.Index.NO)); //$NON-NLS-1$ -+ doc.add(new StoredField("filters", Boolean.toString(hasFilters))); //$NON-NLS-1$ - } - - public Document getDocument() { -@@ -59,8 +62,8 @@ - - @Override - public void addContents(Reader contents, Reader exactContents) { -- doc.add(new Field("contents", contents)); //$NON-NLS-1$ -- doc.add(new Field("exact_contents", exactContents)); //$NON-NLS-1$ -+ doc.add(new TextField("contents", contents)); //$NON-NLS-1$ -+ doc.add(new TextField("exact_contents", exactContents)); //$NON-NLS-1$ - } - - } -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginIndex.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginIndex.java -index ca9cd67..7952c8d 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginIndex.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/PluginIndex.java -@@ -7,6 +7,7 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.help.internal.search; - -@@ -150,6 +151,7 @@ - .getProperty(SearchIndex.DEPENDENCIES_KEY_ANALYZER); - if (!targetIndex.isLuceneCompatible(lucene) - || !targetIndex.isAnalyzerCompatible(analyzer)) { -+ HelpBasePlugin.logError("Error trying to consume Lucene index from bundle "+bundle.toString()+". Please use an index built with Lucene 5 or higher.", null); //$NON-NLS-1$ //$NON-NLS-2$ - return false; - } - } catch (MalformedURLException mue) { -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java -deleted file mode 100644 -index 08cf58a..0000000 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java -+++ /dev/null -@@ -1,455 +0,0 @@ --/******************************************************************************* -- * Copyright (c) 2000, 2016 IBM Corporation and others. -- * All rights reserved. This program and the accompanying materials -- * are made available under the terms of the Eclipse Public License v1.0 -- * which accompanies this distribution, and is available at -- * http://www.eclipse.org/legal/epl-v10.html -- * -- * Contributors: -- * IBM Corporation - initial API and implementation -- * Chris Torrence - patch for bug Bug 107648 -- *******************************************************************************/ --package org.eclipse.help.internal.search; --import java.io.*; --import java.util.ArrayList; --import java.util.Collection; --import java.util.Iterator; --import java.util.List; --import java.util.Locale; --import java.util.StringTokenizer; -- --import org.apache.lucene.analysis.*; --import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; --import org.apache.lucene.index.*; --import org.apache.lucene.search.*; --import org.eclipse.help.internal.base.*; --/** -- * Build query acceptable by the search engine. -- */ --public class QueryBuilder { -- // Maximum allowed number of terms -- private static final int MAX_TERMS = 10; -- // Maximum allowed number of ORs -- private static final int MAX_UNIONS = 4; -- // Maximum allowed number terms with wild cards -- private static final int MAX_WILD_TERMS = 2; -- // Query from user -- private String searchWords; -- // Descriptor of Analyzer to process the query words -- private AnalyzerDescriptor analyzerDesc; -- // Analyzer to process the query words -- private Analyzer analyzer; -- // List of QueryWordsToken -- private List analyzedTokens; -- // List of words to highlight -- private List highlightWords = new ArrayList<>(); -- private Locale locale; -- /** -- * Creates a query builder for the search word. The search word is processed -- * by a lexical analyzer. -- */ -- public QueryBuilder(String searchWords, AnalyzerDescriptor analyzerDesc) { -- this.searchWords = searchWords; -- String language = analyzerDesc.getLang(); -- if (language.length() >= 5) { -- this.locale = new Locale(language.substring(0, 2), language -- .substring(3, 5)); -- } else { -- this.locale = new Locale(language.substring(0, 2), ""); //$NON-NLS-1$ -- } -- this.analyzerDesc = analyzerDesc; -- this.analyzer = analyzerDesc.getAnalyzer(); -- } -- /** -- * Splits user query into tokens and returns a list of QueryWordsToken's. -- */ -- private List tokenizeUserQuery(String searchWords) { -- List tokenList = new ArrayList<>(); -- //Divide along quotation marks -- //StringTokenizer qTokenizer = new StringTokenizer(searchWords.trim(), -- // "\"", true); //$NON-NLS-1$ -- boolean withinQuotation = false; -- String quotedString = ""; //$NON-NLS-1$ -- int termCount = 0;// keep track of number of terms to disallow too many -- -- int fromIndex = -1; -- searchWords = searchWords.trim(); -- while((fromIndex = searchWords.indexOf("\"", fromIndex+1))!= -1){ //$NON-NLS-1$ -- withinQuotation = !withinQuotation; -- } -- if( withinQuotation ) { -- searchWords = searchWords + "\""; //$NON-NLS-1$ -- withinQuotation = !withinQuotation; -- } -- -- StringTokenizer qTokenizer = new StringTokenizer(searchWords,"\"",true); //$NON-NLS-1$ -- int orCount = 0; // keep track of number of ORs to disallow too many -- while (qTokenizer.hasMoreTokens()) { -- String curToken = qTokenizer.nextToken(); -- if (curToken.equals("\"")) { //$NON-NLS-1$ -- if (withinQuotation) { -- // check for too many terms -- if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER -- && ++termCount > MAX_TERMS) { -- throw new QueryTooComplexException(); -- } -- tokenList.add(QueryWordsToken.exactPhrase(quotedString)); -- } else { -- quotedString = ""; //$NON-NLS-1$ -- } -- withinQuotation = !withinQuotation; -- continue; -- } else if (withinQuotation) { -- quotedString = curToken; -- continue; -- } else { -- //divide unquoted strings along white space -- StringTokenizer parser = new StringTokenizer(curToken.trim()); -- while (parser.hasMoreTokens()) { -- String token = parser.nextToken(); -- if (token.equalsIgnoreCase(QueryWordsToken.AND().value)) { -- tokenList.add(QueryWordsToken.AND()); -- } else if (token -- .equalsIgnoreCase(QueryWordsToken.OR().value)) { -- // Check for too many OR terms -- if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER -- && ++orCount > MAX_UNIONS) { -- throw new QueryTooComplexException(); -- } -- tokenList.add(QueryWordsToken.OR()); -- } else if (token -- .equalsIgnoreCase(QueryWordsToken.NOT().value)) { -- tokenList.add(QueryWordsToken.NOT()); -- } else { -- // check for too many terms -- if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER -- && ++termCount > MAX_TERMS) { -- throw new QueryTooComplexException(); -- } -- tokenList.add(QueryWordsToken.word(token)); -- } -- } -- } -- } -- return tokenList; -- } -- /** -- * Apply the Analyzer to the search tokens and return the list of processed -- * QueryWordsToken's. -- */ -- private List analyzeTokens(List tokens) { -- boolean isTokenAfterNot = false; -- List newTokens = new ArrayList<>(); -- int wildCardTermCount = 0; -- for (int i = 0; i < tokens.size(); i++) { -- QueryWordsToken token = tokens.get(i); -- if (token.type == QueryWordsToken.WORD) { -- int questionMIndex = token.value.indexOf('?'); -- int starIndex = token.value.indexOf('*'); -- if (starIndex >= 0 || questionMIndex >= 0) { -- if (BaseHelpSystem.getMode() == BaseHelpSystem.MODE_INFOCENTER -- && ++wildCardTermCount > MAX_WILD_TERMS) { -- throw new QueryTooComplexException(); -- } -- newTokens.add(QueryWordsToken.word(token.value -- .toLowerCase(locale))); -- // add word to the list of words to highlight -- if (!isTokenAfterNot && !highlightWords.contains(token.value)) { -- highlightWords.add(token.value); -- } -- } else { -- List wordList = analyzeText(analyzer, "contents", //$NON-NLS-1$ -- token.value); -- if (wordList.size() > 0) { -- if (!isTokenAfterNot && !highlightWords.contains(token.value)) { -- // add original word to the list of words to -- // highlight -- highlightWords.add(token.value); -- } -- if (wordList.size() == 1) { -- String word = wordList.get(0); -- newTokens.add(QueryWordsToken.word(word)); -- // add analyzed word to the list of words to -- // highlight -- // this is required to highlight stemmed words -- if (!isTokenAfterNot && !highlightWords.contains(word)) { -- highlightWords.add(word); -- } -- } else { -- QueryWordsPhrase phrase = QueryWordsToken.phrase(); -- for (Iterator it = wordList.iterator(); it -- .hasNext();) { -- String word = it.next(); -- phrase.addWord(word); -- // add each analyzed word to the list of words -- // to highlight -- // this is only required to highlight stemmed -- // words. -- // Adding words should not be done when -- // DefaultAnalyzer is used, -- // because it does not perform stemming and -- // common words removal -- // which would result in common characters -- // highlighted all over (bug 30263) -- if (!analyzerDesc.getId().startsWith( -- HelpBasePlugin.PLUGIN_ID + "#")) { //$NON-NLS-1$ -- if (!isTokenAfterNot && !highlightWords.contains(word)) { -- highlightWords.add(word); -- } -- } -- } -- newTokens.add(phrase); -- } -- } -- } -- } else if (// forget ANDs -- /* -- * token.type == SearchQueryToken.AND || -- */ -- token.type == QueryWordsToken.OR -- || token.type == QueryWordsToken.NOT) -- newTokens.add(token); -- else if (token.type == QueryWordsToken.EXACT_PHRASE) { -- List wordList = analyzeText(analyzer, "exact_contents", //$NON-NLS-1$ -- token.value); -- if (wordList.size() > 0) { -- if (!isTokenAfterNot && !highlightWords.contains(token.value)) { -- // add original word to the list of words to highlight -- highlightWords.add(token.value); -- } -- } -- QueryWordsExactPhrase phrase = QueryWordsToken.exactPhrase(); -- for (Iterator it = wordList.iterator(); it.hasNext();) { -- String word = it.next(); -- phrase.addWord(word); -- // add analyzed word to the list of words to highlight -- // if (!highlightWords.contains(word)) -- // highlightWords.add(word); -- } -- // add phrase only if not empty -- if (phrase.getWords().size() > 0) { -- newTokens.add(phrase); -- } -- } -- isTokenAfterNot = (token.type == QueryWordsToken.NOT); -- } -- return newTokens; -- } -- /** -- * Get a list of tokens corresponding to a search word or phrase -- * -- * @return List of String -- */ -- private List analyzeText(Analyzer analyzer, String fieldName, String text) { -- List words = new ArrayList<>(1); -- try (Reader reader = new StringReader(text); TokenStream tStream = analyzer.tokenStream(fieldName, reader)) { -- CharTermAttribute termAttribute = tStream.getAttribute(CharTermAttribute.class); -- while (tStream.incrementToken()) { -- String term = termAttribute.toString(); -- words.add(term); -- } -- } catch (IOException ioe) { -- } -- -- return words; -- } -- /** -- * Obtains Lucene Query from tokens -- * -- * @return Query or null if no query could be created -- */ -- private Query createLuceneQuery(List searchTokens, String[] fieldNames, -- float[] boosts) { -- // Get queries for parts separated by OR -- List requiredQueries = getRequiredQueries(searchTokens, fieldNames, -- boosts); -- if (requiredQueries.size() == 0) -- return null; -- else if (requiredQueries.size() <= 1) -- return requiredQueries.get(0); -- else -- /* if (requiredQueries.size() > 1) */ -- // OR queries -- return (orQueries(requiredQueries)); -- } -- /** -- * Obtains Lucene queries for token sequences separated at OR. -- * -- * @return List of Query (could be empty) -- */ -- private List getRequiredQueries(List tokens, String[] fieldNames, -- float[] boosts) { -- List oredQueries = new ArrayList<>(); -- ArrayList requiredQueryTokens = new ArrayList<>(); -- for (int i = 0; i < tokens.size(); i++) { -- QueryWordsToken token = tokens.get(i); -- if (token.type != QueryWordsToken.OR) { -- requiredQueryTokens.add(token); -- } else { -- Query reqQuery = getRequiredQuery(requiredQueryTokens, -- fieldNames, boosts); -- if (reqQuery != null) -- oredQueries.add(reqQuery); -- requiredQueryTokens = new ArrayList<>(); -- } -- } -- Query reqQuery = getRequiredQuery(requiredQueryTokens, fieldNames, -- boosts); -- if (reqQuery != null) -- oredQueries.add(reqQuery); -- return oredQueries; -- } -- private Query orQueries(Collection queries) { -- BooleanQuery bq = new BooleanQuery(); -- for (Iterator it = queries.iterator(); it.hasNext();) { -- Query q = it.next(); -- bq.add(q, BooleanClause.Occur.SHOULD); -- } -- return bq; -- } -- /** -- * Obtains Lucene Query for tokens containing only AND and NOT operators. -- * -- * @return BooleanQuery or null if no query could be created from the tokens -- */ -- private Query getRequiredQuery(List requiredTokens, String[] fieldNames, -- float[] boosts) { -- BooleanQuery retQuery = new BooleanQuery(); -- boolean requiredTermExist = false; -- // Parse tokens left to right -- QueryWordsToken operator = null; -- for (int i = 0; i < requiredTokens.size(); i++) { -- QueryWordsToken token = requiredTokens.get(i); -- if (token.type == QueryWordsToken.AND -- || token.type == QueryWordsToken.NOT) { -- operator = token; -- continue; -- } -- // Creates queries for all fields -- Query qs[] = new Query[fieldNames.length]; -- for (int f = 0; f < fieldNames.length; f++) { -- qs[f] = token.createLuceneQuery(fieldNames[f], boosts[f]); -- } -- // creates the boolean query of all fields -- Query q = qs[0]; -- if (fieldNames.length > 1) { -- BooleanQuery allFieldsQuery = new BooleanQuery(); -- for (int f = 0; f < fieldNames.length; f++) -- allFieldsQuery.add(qs[f], BooleanClause.Occur.SHOULD); -- q = allFieldsQuery; -- } -- if (operator != null && operator.type == QueryWordsToken.NOT) { -- retQuery.add(q, BooleanClause.Occur.MUST_NOT); // add as prohibited -- } else { -- retQuery.add(q, BooleanClause.Occur.MUST); // add as required -- requiredTermExist = true; -- } -- } -- if (!requiredTermExist) { -- return null; // cannot search for prohibited only -- } -- return retQuery; -- } -- private Query getLuceneQuery(String[] fieldNames, float[] boosts) { -- Query luceneQuery = createLuceneQuery(analyzedTokens, fieldNames, -- boosts); -- return luceneQuery; -- } -- /** -- * @param fieldNames - -- * Collection of field names of type String (e.g. "h1"); the -- * search will be performed on the given fields -- * @param fieldSearchOnly - -- * boolean indicating if field only search should be performed; -- * if set to false, default field "contents" and all other fields -- * will be searched -- */ -- public Query getLuceneQuery(Collection fieldNames, boolean fieldSearchOnly) -- throws QueryTooComplexException { -- // split search query into tokens -- List userTokens = tokenizeUserQuery(searchWords); -- analyzedTokens = analyzeTokens(userTokens); -- return buildLuceneQuery(fieldNames, fieldSearchOnly); -- } -- /** -- * @param fieldNames - -- * Collection of field names of type String (e.g. "h1"); the -- * search will be performed on the given fields -- * @param fieldSearchOnly - -- * boolean indicating if field only search should be performed; -- * if set to false, default field "contents" and all other fields -- * will be searched -- */ -- private Query buildLuceneQuery(Collection fieldNames, -- boolean fieldSearchOnly) { -- String[] fields; -- float[] boosts; -- if (fieldSearchOnly) { -- fields = new String[fieldNames.size()]; -- boosts = new float[fieldNames.size()]; -- Iterator fieldNamesIt = fieldNames.iterator(); -- for (int i = 0; i < fieldNames.size(); i++) { -- fields[i] = fieldNamesIt.next(); -- boosts[i] = 5.0f; -- } -- } else { -- fields = new String[fieldNames.size() + 2]; -- boosts = new float[fieldNames.size() + 2]; -- Iterator fieldNamesIt = fieldNames.iterator(); -- for (int i = 0; i < fieldNames.size(); i++) { -- fields[i] = fieldNamesIt.next(); -- boosts[i] = 5.0f; -- } -- fields[fieldNames.size()] = "contents"; //$NON-NLS-1$ -- boosts[fieldNames.size()] = 1.0f; -- fields[fieldNames.size()+1] = "title"; //$NON-NLS-1$ -- boosts[fieldNames.size()+1] = 1.0f; -- } -- Query query = getLuceneQuery(fields, boosts); -- query = improveRankingForUnqotedPhrase(query, fields, boosts); -- return query; -- } -- /** -- * If user query contained only words (no quotaions nor operators) extends -- * query with term phrase representing entire user query i.e for user string -- * a b, the query a AND b will be extended to "a b" OR a AND b -- */ -- private Query improveRankingForUnqotedPhrase(Query query, String[] fields, -- float[] boosts) { -- if (query == null) -- return query; -- // check if all tokens are words -- for (int i = 0; i < analyzedTokens.size(); i++) -- if (analyzedTokens.get(i).type != QueryWordsToken.WORD) -- return query; -- // Create phrase query for all tokens and OR with original query -- BooleanQuery booleanQuery = new BooleanQuery(); -- booleanQuery.add(query, BooleanClause.Occur.SHOULD); -- PhraseQuery[] phraseQueries = new PhraseQuery[fields.length]; -- for (int f = 0; f < fields.length; f++) { -- phraseQueries[f] = new PhraseQuery(); -- for (int i = 0; i < analyzedTokens.size(); i++) { -- Term t = new Term(fields[f], analyzedTokens -- .get(i).value); -- phraseQueries[f].add(t); -- } -- phraseQueries[f].setBoost(10 * boosts[f]); -- booleanQuery.add(phraseQueries[f], BooleanClause.Occur.SHOULD); -- } -- return booleanQuery; -- } -- /** -- * Obtains analyzed terms from query as one string. Words are double quoted, -- * and separated by space. The analyzed words are needed for highlighting -- * word roots. -- */ -- public String gethighlightTerms() { -- StringBuffer buf = new StringBuffer(); -- for (Iterator it = highlightWords.iterator(); it.hasNext();) { -- buf.append('"'); -- buf.append(it.next()); -- buf.append("\" "); //$NON-NLS-1$ -- } -- return buf.toString(); -- } --} -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsExactPhrase.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsExactPhrase.java -deleted file mode 100644 -index 324b8e1..0000000 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsExactPhrase.java -+++ /dev/null -@@ -1,51 +0,0 @@ --/******************************************************************************* -- * Copyright (c) 2000, 2015 IBM Corporation and others. -- * All rights reserved. This program and the accompanying materials -- * are made available under the terms of the Eclipse Public License v1.0 -- * which accompanies this distribution, and is available at -- * http://www.eclipse.org/legal/epl-v10.html -- * -- * Contributors: -- * IBM Corporation - initial API and implementation -- *******************************************************************************/ --package org.eclipse.help.internal.search; --import java.util.ArrayList; --import java.util.Iterator; --import java.util.List; -- --import org.apache.lucene.index.*; --import org.apache.lucene.search.*; --/** -- * Represents a quoted token in user search query words -- */ --public class QueryWordsExactPhrase extends QueryWordsToken { -- private List words; -- public QueryWordsExactPhrase() { -- super(QueryWordsToken.EXACT_PHRASE, ""); //$NON-NLS-1$ -- words = new ArrayList<>(); -- } -- public void addWord(String word) { -- words.add(word); -- if (words.size() <= 1) -- value = word; -- else -- value += " " + word; //$NON-NLS-1$ -- } -- public List getWords() { -- return words; -- } -- /** -- * Creates a lucene query for a field -- */ -- @Override -- public Query createLuceneQuery(String field, float boost) { -- PhraseQuery q = new PhraseQuery(); -- for (Iterator it = getWords().iterator(); it.hasNext();) { -- String word = it.next(); -- Term t = new Term("exact_" + field, word); //$NON-NLS-1$ -- q.add(t); -- q.setBoost(boost); -- } -- return q; -- } --} -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsPhrase.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsPhrase.java -deleted file mode 100644 -index 8a94e89..0000000 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsPhrase.java -+++ /dev/null -@@ -1,52 +0,0 @@ --/******************************************************************************* -- * Copyright (c) 2000, 2015 IBM Corporation and others. -- * All rights reserved. This program and the accompanying materials -- * are made available under the terms of the Eclipse Public License v1.0 -- * which accompanies this distribution, and is available at -- * http://www.eclipse.org/legal/epl-v10.html -- * -- * Contributors: -- * IBM Corporation - initial API and implementation -- *******************************************************************************/ --package org.eclipse.help.internal.search; --import java.util.ArrayList; --import java.util.Iterator; --import java.util.List; -- --import org.apache.lucene.index.*; --import org.apache.lucene.search.*; --/** -- * Represents a phrase (not quoted) token in user search query words It consists -- * of several words created by an analyzer -- */ --public class QueryWordsPhrase extends QueryWordsToken { -- private List words; -- public QueryWordsPhrase() { -- super(QueryWordsToken.PHRASE, ""); //$NON-NLS-1$ -- words = new ArrayList<>(); -- } -- public void addWord(String word) { -- words.add(word); -- if (words.size() <= 1) -- value = word; -- else -- value += " " + word; //$NON-NLS-1$ -- } -- public List getWords() { -- return words; -- } -- /** -- * Creates a lucene query for a field -- */ -- @Override -- public Query createLuceneQuery(String field, float boost) { -- PhraseQuery q = new PhraseQuery(); -- for (Iterator it = getWords().iterator(); it.hasNext();) { -- String word = it.next(); -- Term t = new Term(field, word); -- q.add(t); -- q.setBoost(boost); -- } -- return q; -- } --} -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsToken.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsToken.java -deleted file mode 100644 -index 6ba76f2..0000000 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryWordsToken.java -+++ /dev/null -@@ -1,81 +0,0 @@ --/******************************************************************************* -- * Copyright (c) 2000, 2007 IBM Corporation and others. -- * All rights reserved. This program and the accompanying materials -- * are made available under the terms of the Eclipse Public License v1.0 -- * which accompanies this distribution, and is available at -- * http://www.eclipse.org/legal/epl-v10.html -- * -- * Contributors: -- * IBM Corporation - initial API and implementation -- *******************************************************************************/ --package org.eclipse.help.internal.search; --import org.apache.lucene.index.*; --import org.apache.lucene.search.*; --/** -- * Represents a token in user search query words -- */ --public class QueryWordsToken { -- public static final int AND = 0; -- public static final int OR = 1; -- public static final int NOT = 2; -- public static final int EXACT_PHRASE = 3; -- public static final int PHRASE = 4; -- public static final int WORD = 5; -- private static final QueryWordsToken fAND = new QueryWordsToken(AND, "AND"); //$NON-NLS-1$ -- private static final QueryWordsToken fOR = new QueryWordsToken(OR, "OR"); //$NON-NLS-1$ -- private static final QueryWordsToken fNOT = new QueryWordsToken(NOT, "NOT"); //$NON-NLS-1$ -- public int type; -- public String value; -- protected QueryWordsToken(int type, String value) { -- this.type = type; -- this.value = value; -- } -- /** -- * Creates a lucene query for a field -- */ -- public Query createLuceneQuery(String field, float boost) { -- Query q; -- int questionPos = value.indexOf('?'); -- int starPos = value.indexOf('*'); -- if (questionPos >= 0 || starPos >= 0) { -- if (questionPos == -1 && starPos == value.length() - 1) { -- Term t = new Term("exact_" + field, value.substring(0, starPos)); //$NON-NLS-1$ -- q = new PrefixQuery(t); -- ((PrefixQuery) q).setBoost(boost); -- } else { -- Term t = new Term("exact_" + field, value); //$NON-NLS-1$ -- q = new WildcardQuery(t); -- ((WildcardQuery) q).setBoost(boost); -- } -- } else { -- Term t = new Term(field, value); -- q = new TermQuery(t); -- ((TermQuery) q).setBoost(boost); -- } -- // after updating Lucene, set boost on a Query class -- return q; -- } -- public static QueryWordsToken AND() { -- return fAND; -- } -- public static QueryWordsToken OR() { -- return fOR; -- } -- public static QueryWordsToken NOT() { -- return fNOT; -- } -- public static QueryWordsToken word(String word) { -- return new QueryWordsToken(QueryWordsToken.WORD, word); -- } -- public static QueryWordsPhrase phrase() { -- return new QueryWordsPhrase(); -- } -- public static QueryWordsExactPhrase exactPhrase() { -- return new QueryWordsExactPhrase(); -- } -- public static QueryWordsExactPhrase exactPhrase(String word) { -- QueryWordsExactPhrase token = new QueryWordsExactPhrase(); -- token.addWord(word); -- return token; -- } --} -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java -index 67963a5..131ac65 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchIndex.java -@@ -17,6 +16,7 @@ - import java.io.IOException; - import java.io.InputStream; - import java.io.RandomAccessFile; -+import java.io.StringReader; - import java.net.MalformedURLException; - import java.net.URL; - import java.nio.channels.FileLock; -@@ -33,19 +33,30 @@ - import java.util.zip.ZipEntry; - import java.util.zip.ZipInputStream; - --import org.apache.lucene.analysis.LimitTokenCountAnalyzer; -+import org.apache.lucene.analysis.miscellaneous.LimitTokenCountAnalyzer; - import org.apache.lucene.document.Document; - import org.apache.lucene.document.Field; -+import org.apache.lucene.document.StoredField; -+import org.apache.lucene.document.StringField; -+import org.apache.lucene.index.DirectoryReader; - import org.apache.lucene.index.IndexReader; - import org.apache.lucene.index.IndexWriter; --import org.apache.lucene.index.Term; --import org.apache.lucene.index.TermDocs; --import org.apache.lucene.index.IndexWriterConfig.OpenMode; - import org.apache.lucene.index.IndexWriterConfig; -+import org.apache.lucene.index.IndexWriterConfig.OpenMode; -+import org.apache.lucene.index.LeafReader; - import org.apache.lucene.index.LogByteSizeMergePolicy; - import org.apache.lucene.index.LogMergePolicy; -+import org.apache.lucene.index.PostingsEnum; -+import org.apache.lucene.index.SlowCompositeReaderWrapper; -+import org.apache.lucene.index.Term; -+import org.apache.lucene.queryparser.classic.FastCharStream; -+import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; -+import org.apache.lucene.queryparser.classic.QueryParserTokenManager; -+import org.apache.lucene.queryparser.classic.Token; -+import org.apache.lucene.search.BooleanClause.Occur; - import org.apache.lucene.search.BooleanQuery; - import org.apache.lucene.search.IndexSearcher; -+import org.apache.lucene.search.MultiTermQuery; - import org.apache.lucene.search.Query; - import org.apache.lucene.search.TopDocs; - import org.apache.lucene.store.Directory; -@@ -59,7 +70,6 @@ - import org.eclipse.core.runtime.OperationCanceledException; - import org.eclipse.core.runtime.Platform; - import org.eclipse.core.runtime.Status; --import org.eclipse.help.internal.HelpPlugin; - import org.eclipse.help.internal.base.BaseHelpSystem; - import org.eclipse.help.internal.base.HelpBasePlugin; - import org.eclipse.help.internal.base.util.HelpProperties; -@@ -86,7 +96,7 @@ - - private File indexDir; - -- private Directory luceneDirectory; -+ public Directory luceneDirectory; - - private String locale; - -@@ -170,7 +180,7 @@ - inconsistencyFile = new File(indexDir.getParentFile(), locale + ".inconsistent"); //$NON-NLS-1$ - htmlSearchParticipant = new HTMLSearchParticipant(indexDir.getAbsolutePath()); - try { -- luceneDirectory = new NIOFSDirectory(indexDir); -+ luceneDirectory = new NIOFSDirectory(indexDir.toPath()); - } catch (IOException e) { - } - if (!exists()) { -@@ -203,11 +213,11 @@ - public IStatus addDocument(String name, URL url) { - try { - Document doc = new Document(); -- doc.add(new Field(FIELD_NAME, name, Field.Store.YES, Field.Index.NOT_ANALYZED)); -+ doc.add(new StringField(FIELD_NAME, name, Field.Store.YES)); - addExtraFields(doc); - String pluginId = LocalSearchManager.getPluginId(name); - if (relativePath != null) { -- doc.add(new Field(FIELD_INDEX_ID, relativePath, Field.Store.YES, Field.Index.NOT_ANALYZED)); -+ doc.add(new StringField(FIELD_INDEX_ID, relativePath, Field.Store.YES)); - } - // check for the explicit search participant. - SearchParticipant participant = null; -@@ -220,20 +230,22 @@ - if (participant == null) - participant = BaseHelpSystem.getLocalSearchManager().getParticipant(pluginId, name); - if (participant != null) { -- IStatus status = participant.addDocument(this, pluginId, name, url, id, new LuceneSearchDocument(doc)); -+ IStatus status = participant.addDocument(this, pluginId, name, url, id, -+ new LuceneSearchDocument(doc)); - if (status.getSeverity() == IStatus.OK) { - String filters = doc.get("filters"); //$NON-NLS-1$ - indexedDocs.put(name, filters != null ? filters : "0"); //$NON-NLS-1$ - if (id != null) -- doc.add(new Field("id", id, Field.Store.YES, Field.Index.NO)); //$NON-NLS-1$ -+ doc.add(new StoredField("id", id)); //$NON-NLS-1$ - if (pid != null) -- doc.add(new Field("participantId", pid, Field.Store.YES, Field.Index.NO)); //$NON-NLS-1$ -+ doc.add(new StoredField("participantId", pid)); //$NON-NLS-1$ - iw.addDocument(doc); - } - return status; - } - // default to html -- IStatus status = htmlSearchParticipant.addDocument(this, pluginId, name, url, id, new LuceneSearchDocument(doc)); -+ IStatus status = htmlSearchParticipant.addDocument(this, pluginId, name, url, id, -+ new LuceneSearchDocument(doc)); - if (status.getSeverity() == IStatus.OK) { - String filters = doc.get("filters"); //$NON-NLS-1$ - indexedDocs.put(name, filters != null ? filters : "0"); //$NON-NLS-1$ -@@ -245,20 +257,21 @@ - "IO exception occurred while adding document " + name //$NON-NLS-1$ - + " to index " + indexDir.getAbsolutePath() + ".", //$NON-NLS-1$ //$NON-NLS-2$ - e); -- } -- catch (Exception e) { -+ } catch (Exception e) { - return new Status(IStatus.ERROR, HelpBasePlugin.PLUGIN_ID, IStatus.ERROR, - "An unexpected internal error occurred while adding document " //$NON-NLS-1$ - + name + " to index " + indexDir.getAbsolutePath() //$NON-NLS-1$ -- + ".", e); //$NON-NLS-1$ -+ + ".", //$NON-NLS-1$ -+ e); - } - } - - /** -- * Add any extra fields that need to be added to this document. Subclasses -- * should override to add more fields. -+ * Add any extra fields that need to be added to this document. Subclasses should override to -+ * add more fields. - * -- * @param doc the document to add fields to -+ * @param doc -+ * the document to add fields to - */ - protected void addExtraFields(Document doc) { - } -@@ -282,8 +295,9 @@ - indexedDocs = new HelpProperties(INDEXED_DOCS_FILE, indexDir); - indexedDocs.restore(); - setInconsistent(true); -- LimitTokenCountAnalyzer analyzer = new LimitTokenCountAnalyzer(analyzerDescriptor.getAnalyzer(), 1000000); -- IndexWriterConfig writerConfig = new IndexWriterConfig(org.apache.lucene.util.Version.LUCENE_31, analyzer); -+ LimitTokenCountAnalyzer analyzer = new LimitTokenCountAnalyzer(analyzerDescriptor.getAnalyzer(), -+ 1000000); -+ IndexWriterConfig writerConfig = new IndexWriterConfig(analyzer); - writerConfig.setOpenMode(create ? OpenMode.CREATE : OpenMode.APPEND); - LogMergePolicy mergePolicy = new LogByteSizeMergePolicy(); - mergePolicy.setMergeFactor(20); -@@ -307,7 +321,7 @@ - indexedDocs = new HelpProperties(INDEXED_DOCS_FILE, indexDir); - indexedDocs.restore(); - setInconsistent(true); -- ir = IndexReader.open(luceneDirectory, false); -+ ir = DirectoryReader.open(luceneDirectory); - return true; - } catch (IOException e) { - HelpBasePlugin.logError("Exception occurred in search indexing at beginDeleteBatch.", e); //$NON-NLS-1$ -@@ -323,7 +337,7 @@ - if (ir != null) { - ir.close(); - } -- ir = IndexReader.open(luceneDirectory, false); -+ ir = DirectoryReader.open(luceneDirectory); - return true; - } catch (IOException e) { - HelpBasePlugin.logError("Exception occurred in search indexing at beginDeleteBatch.", e); //$NON-NLS-1$ -@@ -334,14 +348,14 @@ - /** - * Deletes a single document from the index. - * -- * @param name - -- * document name -+ * @param name -+ * - document name - * @return IStatus - */ - public IStatus removeDocument(String name) { - Term term = new Term(FIELD_NAME, name); - try { -- ir.deleteDocuments(term); -+ iw.deleteDocuments(term); - indexedDocs.remove(name); - } catch (IOException e) { - return new Status(IStatus.ERROR, HelpBasePlugin.PLUGIN_ID, IStatus.ERROR, -@@ -375,11 +389,11 @@ - } - - /* -- * The searcher's index reader has it's stuff in memory so it won't -- * know about this change. Close it so that it gets reloaded next search. -+ * The searcher's index reader has it's stuff in memory so it won't know about this -+ * change. Close it so that it gets reloaded next search. - */ - if (searcher != null) { -- searcher.close(); -+ searcher.getIndexReader().close(); - searcher = null; - } - return true; -@@ -407,11 +421,11 @@ - saveDependencies(); - - /* -- * The searcher's index reader has it's stuff in memory so it won't -- * know about this change. Close it so that it gets reloaded next search. -+ * The searcher's index reader has it's stuff in memory so it won't know about this -+ * change. Close it so that it gets reloaded next search. - */ - if (searcher != null) { -- searcher.close(); -+ searcher.getIndexReader().close(); - searcher = null; - } - return true; -@@ -469,11 +483,11 @@ - String indexId = indexIds.get(i); - String indexPath = indexPaths.get(i); - try { -- dirList.add(new NIOFSDirectory(new File(indexPath))); -+ dirList.add(new NIOFSDirectory(new File(indexPath).toPath())); - } catch (IOException ioe) { -- HelpBasePlugin -- .logError( -- "Help search indexing directory could not be created for directory " + indexPath, ioe); //$NON-NLS-1$ -+ HelpBasePlugin.logError( -+ "Help search indexing directory could not be created for directory " + indexPath, //$NON-NLS-1$ -+ ioe); - continue; - } - -@@ -525,18 +539,19 @@ - } - - public IStatus removeDuplicates(String name, String[] index_paths) { -- TermDocs hrefDocs = null; -- TermDocs indexDocs = null; -- Term hrefTerm = new Term(FIELD_NAME, name); - try { -+ LeafReader ar = SlowCompositeReaderWrapper.wrap(ir); -+ PostingsEnum hrefDocs = null; -+ PostingsEnum indexDocs = null; -+ Term hrefTerm = new Term(FIELD_NAME, name); - for (int i = 0; i < index_paths.length; i++) { - Term indexTerm = new Term(FIELD_INDEX_ID, index_paths[i]); - if (i == 0) { -- hrefDocs = ir.termDocs(hrefTerm); -- indexDocs = ir.termDocs(indexTerm); -+ hrefDocs = ar.postings(hrefTerm); -+ indexDocs = ar.postings(indexTerm); - } else { -- hrefDocs.seek(hrefTerm); -- indexDocs.seek(indexTerm); -+ hrefDocs = ar.postings(hrefTerm); -+ indexDocs = ar.postings(indexTerm); - } - removeDocuments(hrefDocs, indexDocs); - } -@@ -545,19 +560,6 @@ - "IO exception occurred while removing duplicates of document " + name //$NON-NLS-1$ - + " from index " + indexDir.getAbsolutePath() + ".", //$NON-NLS-1$ //$NON-NLS-2$ - ioe); -- } finally { -- if (hrefDocs != null) { -- try { -- hrefDocs.close(); -- } catch (IOException e) { -- } -- } -- if (indexDocs != null) { -- try { -- indexDocs.close(); -- } catch (IOException e) { -- } -- } - } - return Status.OK_STATUS; - } -@@ -569,33 +571,33 @@ - * @param docs2 - * @throws IOException - */ -- private void removeDocuments(TermDocs doc1, TermDocs docs2) throws IOException { -- if (!doc1.next()) { -+ private void removeDocuments(PostingsEnum doc1, PostingsEnum docs2) throws IOException { -+ if (doc1.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } -- if (!docs2.next()) { -+ if (docs2.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } - while (true) { -- if (doc1.doc() < docs2.doc()) { -- if (!doc1.skipTo(docs2.doc())) { -- if (!doc1.next()) { -+ if (doc1.docID() < docs2.docID()) { -+ if (doc1.advance(docs2.docID()) == PostingsEnum.NO_MORE_DOCS) { -+ if (doc1.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } - } -- } else if (doc1.doc() > docs2.doc()) { -- if (!docs2.skipTo(doc1.doc())) { -- if (!doc1.next()) { -+ } else if (doc1.docID() > docs2.docID()) { -+ if (docs2.advance(doc1.docID()) == PostingsEnum.NO_MORE_DOCS) { -+ if (doc1.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } - } - } -- if (doc1.doc() == docs2.doc()) { -- ir.deleteDocument(doc1.doc()); -- if (!doc1.next()) { -+ if (doc1.docID() == docs2.docID()) { -+ iw.tryDeleteDocument(ir, doc1.docID()); -+ if (doc1.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } -- if (!docs2.next()) { -+ if (docs2.nextDoc() == PostingsEnum.NO_MORE_DOCS) { - return; - } - } -@@ -623,20 +625,72 @@ - registerSearch(Thread.currentThread()); - if (closed) - return; -- QueryBuilder queryBuilder = new QueryBuilder(searchQuery.getSearchWord(), analyzerDescriptor); -- Query luceneQuery = queryBuilder.getLuceneQuery(searchQuery.getFieldNames(), searchQuery -- .isFieldSearch()); -- if (HelpPlugin.DEBUG_SEARCH) { -- System.out.println("Search Query: " + luceneQuery.toString()); //$NON-NLS-1$ -+ -+ String[] fields; -+ if (searchQuery.isFieldSearch()){ -+ //sometimes you might want to search other than the default fields -+ fields = (String[]) searchQuery.getFieldNames().toArray(); -+ }else { -+ fields = new String[]{"contents","title"}; //$NON-NLS-1$ //$NON-NLS-2$ - } -- String highlightTerms = queryBuilder.gethighlightTerms(); -- if (luceneQuery != null) { -+ -+ //prepare the parser -+ -+ MultiFieldQueryParser qb = new MultiFieldQueryParser(fields,analyzerDescriptor.getAnalyzer()); -+ qb.setAllowLeadingWildcard(true); -+ qb.setAnalyzeRangeTerms(true); -+ qb.setAutoGeneratePhraseQueries(true); -+ qb.setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_BOOLEAN_REWRITE); -+ qb.setLowercaseExpandedTerms(true); -+ qb.setLocale(new Locale(analyzerDescriptor.getLang())); -+ -+ //parse the "pure" query (no boosting) -+ Query luceneQuery = qb.parse(searchQuery.getSearchWord()); -+ -+ //we'll merge the pure query with a some boosted queries -+ Query mergedQuery; -+ -+ if (!isWildcardQuery(searchQuery.getSearchWord())){ -+ mergedQuery = new BooleanQuery(); //merge for all fields before merging with luceneQuery -+ for (int i=0;i set = new HashSet(); -+ -+ if (mergedQuery != null) { - if (searcher == null) { - openSearcher(); - } -- TopDocs topDocs = searcher.search(luceneQuery, null, 1000); -- collector.addHits(LocalSearchManager.asList(topDocs, searcher), highlightTerms); -+ TopDocs topDocs = searcher.search(mergedQuery, 1000); -+ -+ String highlight=null; -+ QueryParserTokenManager manager = new QueryParserTokenManager(new FastCharStream(new StringReader(searchQuery.getSearchWord()))); -+ while (true){ -+ Token nextToken = manager.getNextToken(); -+ String toHighlight = null; -+ if (nextToken.kind==0) break; -+ String image = nextToken.image; -+ toHighlight=image; -+ if ((image.startsWith("\""))&&( image.endsWith("\""))){ //$NON-NLS-1$//$NON-NLS-2$ -+ toHighlight = image.substring(1,image.length()-1); -+ } -+ if (image.equals("AND") || image.equals("OR")) //$NON-NLS-1$ //$NON-NLS-2$ -+ continue; -+ set .add(toHighlight); -+ -+ } -+ highlight = buildHighlight(set); -+ collector.addHits(LocalSearchManager.asList(topDocs, searcher), highlight==null?"":highlight); //$NON-NLS-1$ - } -+ - } catch (BooleanQuery.TooManyClauses tmc) { - collector.addQTCException(new QueryTooComplexException()); - } catch (QueryTooComplexException qe) { -@@ -647,6 +701,18 @@ - } finally { - unregisterSearch(Thread.currentThread()); - } -+ } -+ -+ private boolean isWildcardQuery(String searchWord) { -+ return searchWord.contains("?")|| searchWord.contains("*"); //$NON-NLS-1$//$NON-NLS-2$ -+ } -+ -+ private String buildHighlight(Set set) { -+ StringBuilder sb = new StringBuilder(); -+ for (String string : set) { -+ sb.append("\""+string+"\""); //$NON-NLS-1$//$NON-NLS-2$ -+ } -+ return sb.toString(); - } - - @Override -@@ -718,25 +785,27 @@ - - /** - * Determines whether an index can be read by the Lucene bundle -- * @param indexVersionString The version of an Index directory -+ * -+ * @param indexVersionString -+ * The version of an Index directory - * @return - */ - public boolean isLuceneCompatible(String indexVersionString) { -- if (indexVersionString==null) return false; -+ if (indexVersionString == null) -+ return false; - String luceneVersionString = ""; //$NON-NLS-1$ - Bundle luceneBundle = Platform.getBundle(LUCENE_BUNDLE_ID); - if (luceneBundle != null) { -- luceneVersionString += luceneBundle.getHeaders() -- .get(Constants.BUNDLE_VERSION); -+ luceneVersionString += luceneBundle.getHeaders().get(Constants.BUNDLE_VERSION); - } - Version luceneVersion = new Version(luceneVersionString); - Version indexVersion = new Version(indexVersionString); -- Version v191 = new Version(1, 9, 1); -- if (indexVersion.compareTo(v191) < 0) { -- // index is older than Lucene 1.9.1 -+ Version v500 = new Version(5, 0, 0); -+ if (indexVersion.compareTo(v500) < 0) { -+ // index is older than Lucene 5.0.0 - return false; - } -- if ( luceneVersion.compareTo(indexVersion) >= 0 ) { -+ if (luceneVersion.compareTo(indexVersion) >= 0) { - // Lucene bundle is newer than the index - return true; - } -@@ -801,7 +870,7 @@ - public void openSearcher() throws IOException { - synchronized (searcherCreateLock) { - if (searcher == null) { -- searcher = new IndexSearcher(IndexReader.open(luceneDirectory, false)); -+ searcher = new IndexSearcher(DirectoryReader.open(luceneDirectory)); - } - } - } -@@ -819,7 +888,7 @@ - if (searches.isEmpty()) { - if (searcher != null) { - try { -- searcher.close(); -+ searcher.getIndexReader().close(); - } catch (IOException ioe) { - } - } -@@ -837,7 +906,8 @@ - * Finds and unzips prebuild index specified in preferences - */ - private void unzipProductIndex() { -- String indexPluginId = Platform.getPreferencesService().getString(HelpBasePlugin.PLUGIN_ID, "productIndex", null, null); //$NON-NLS-1$ -+ String indexPluginId = Platform.getPreferencesService().getString(HelpBasePlugin.PLUGIN_ID, -+ "productIndex", null, null); //$NON-NLS-1$ - if (indexPluginId == null || indexPluginId.length() <= 0) { - return; - } -@@ -899,7 +969,7 @@ - private void cleanOldIndex() { - try (LimitTokenCountAnalyzer analyzer = new LimitTokenCountAnalyzer(analyzerDescriptor.getAnalyzer(), 10000); - IndexWriter cleaner = new IndexWriter(luceneDirectory, -- new IndexWriterConfig(org.apache.lucene.util.Version.LUCENE_31, analyzer) -+ new IndexWriterConfig(analyzer) - .setOpenMode(OpenMode.CREATE))) { - - } catch (IOException ioe) { -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SmartAnalyzer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SmartAnalyzer.java -index d0a7bb7..444b66c 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SmartAnalyzer.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/SmartAnalyzer.java -@@ -7,10 +7,9 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.help.internal.search; -- --import java.io.*; - - import org.apache.lucene.analysis.*; - -@@ -18,7 +17,7 @@ - * Smart Analyzer. Chooses underlying implementation based on the field which - * text is analyzed. - */ --public final class SmartAnalyzer extends Analyzer { -+public final class SmartAnalyzer extends AnalyzerWrapper { - Analyzer pluggedInAnalyzer; - Analyzer exactAnalyzer; - -@@ -26,20 +25,19 @@ - * Constructor for SmartAnalyzer. - */ - public SmartAnalyzer(String locale, Analyzer pluggedInAnalyzer) { -- super(); -+ super(pluggedInAnalyzer.getReuseStrategy()); - this.pluggedInAnalyzer = pluggedInAnalyzer; - this.exactAnalyzer = new DefaultAnalyzer(locale); - } - /** -- * Creates a TokenStream which tokenizes all the text in the provided -- * Reader. Delegates to DefaultAnalyzer when field used to search for exact -+ * Delegates to DefaultAnalyzer when field used to search for exact - * match, and to plugged-in analyzer for other fields. - */ - @Override -- public final TokenStream tokenStream(String fieldName, Reader reader) { -+ public final Analyzer getWrappedAnalyzer(String fieldName) { - if (fieldName != null && fieldName.startsWith("exact_")) { //$NON-NLS-1$ -- return exactAnalyzer.tokenStream(fieldName, reader); -+ return exactAnalyzer; - } -- return pluggedInAnalyzer.tokenStream(fieldName, reader); -+ return pluggedInAnalyzer; - } - } -diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/WordTokenStream.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/WordTokenStream.java -index 0b70cf7..79d5592 100644 ---- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/WordTokenStream.java -+++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/WordTokenStream.java -@@ -7,16 +7,18 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.help.internal.search; - --import com.ibm.icu.text.BreakIterator; - import java.io.IOException; --import java.io.Reader; - import java.util.Locale; -+ - import org.apache.lucene.analysis.TokenStream; - import org.apache.lucene.analysis.Tokenizer; - import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; -+ -+import com.ibm.icu.text.BreakIterator; - - /** - * WordTokenStream obtains tokens containing words appropriate for use with -@@ -24,7 +26,6 @@ - */ - public final class WordTokenStream extends Tokenizer { - private static final int BUF_LEN = 4096; -- private final Reader reader; - private final BreakIterator boundary; - private StringBuffer strbuf; - -@@ -34,8 +35,8 @@ - /** - * Constructor - */ -- public WordTokenStream(String fieldName, Reader reader, Locale locale) { -- this.reader = reader; -+ public WordTokenStream(Locale locale) { -+ super(); - boundary = BreakIterator.getWordInstance(locale); - - } -@@ -52,9 +53,9 @@ - if(strbuf == null) { - int available; - char[] cbuf = new char[BUF_LEN]; -- while ((available = reader.read(cbuf)) <= 0) { -+ while ((available = input.read(cbuf)) <= 0) { - if (available < 0) { -- reader.close(); -+ input.close(); - return false; - } - } -@@ -62,7 +63,7 @@ - strbuf.append(cbuf, 0, available); - // read more until white space (or EOF) - int c; -- while (0 <= (c = reader.read())) { -+ while (0 <= (c = input.read())) { - strbuf.append((char) c); - if (c == ' ' || c == '\r' || c == '\n' || c == '\t') { - break; -@@ -70,7 +71,7 @@ - } - - if (c < 0) { -- reader.close(); -+ input.close(); - } - - boundary.setText(strbuf.toString()); -@@ -107,9 +108,10 @@ - - @Override - public void close() throws IOException { -+ super.close(); - /// Unlikely to be called as this is a reused -- if (this.reader != null) { -- this.reader.close(); -+ if (this.input != null) { -+ this.input.close(); - } - } - } -diff --git a/eclipse.platform.ua/org.eclipse.help.webapp/web-archive/org.eclipse.help.infocenter-feature/feature.xml b/org.eclipse.help.webapp/web-archive/org.eclipse.help.infocenter-feature/feature.xml -index 8438100..174e92a 100644 ---- a/eclipse.platform.ua/org.eclipse.help.webapp/web-archive/org.eclipse.help.infocenter-feature/feature.xml -+++ b/eclipse.platform.ua/org.eclipse.help.webapp/web-archive/org.eclipse.help.infocenter-feature/feature.xml -@@ -74,20 +74,6 @@ - unpack="false"/> - - -- -- -- -- - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF b/org.eclipse.ua.tests/META-INF/MANIFEST.MF -index 6bcf9bc..23f8910 100644 ---- a/eclipse.platform.ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF -@@ -19,14 +19,13 @@ - org.eclipse.ui.forms, - org.eclipse.ui.browser;bundle-version="3.2.300", - org.eclipse.equinox.jsp.jasper;bundle-version="1.0.200", -- org.eclipse.equinox.jsp.jasper.registry;bundle-version="1.0.100" -+ org.eclipse.equinox.jsp.jasper.registry;bundle-version="1.0.100", -+ org.apache.lucene.analyzers-common;bundle-version="5.1.0", -+ org.apache.lucene.core;bundle-version="5.1.0" - Bundle-ActivationPolicy: lazy - Bundle-Vendor: Eclipse.org - Import-Package: javax.servlet;version="3.1.0", -- javax.servlet.http;version="3.1.0", -- org.apache.lucene.index;core=split;version="[3.5.0,4.0.0)", -- org.apache.lucene.search;core=split;version="[3.5.0,4.0.0)", -- org.apache.lucene.store;core=split;version="[3.5.0,4.0.0)" -+ javax.servlet.http;version="3.1.0" - Bundle-RequiredExecutionEnvironment: JavaSE-1.8 - Export-Package: org.eclipse.ua.tests, - org.eclipse.ua.tests.browser, -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index291/write.lock b/org.eclipse.ua.tests/data/help/searchindex/index291/write.lock -new file mode 100644 -index 0000000..e69de29 ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index291/write.lock -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfe b/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfe -new file mode 100644 -index 0000000..09ec2c9 ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfe -Binary files differ -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfs b/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfs -new file mode 100644 -index 0000000..3aa288a ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.cfs -Binary files differ -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.si b/org.eclipse.ua.tests/data/help/searchindex/index510/_0.si -new file mode 100644 -index 0000000..d897bfc ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/_0.si -Binary files differ -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/segments_1 b/org.eclipse.ua.tests/data/help/searchindex/index510/segments_1 -new file mode 100644 -index 0000000..4878901 ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/segments_1 -Binary files differ -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/write.lock b/org.eclipse.ua.tests/data/help/searchindex/index510/write.lock -new file mode 100644 -index 0000000..e69de29 ---- /dev/null -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/data/help/searchindex/index510/write.lock -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java -index 1dd4876..02b2e5b 100644 ---- a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/EncodedCharacterSearch.java -@@ -7,6 +7,7 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.ua.tests.help.search; - -@@ -36,7 +37,7 @@ - @Test - public void testUtf8Hebrew() { - SearchTestUtils.searchOneLocale("\u05D0\u05B7\u05E1\u05B0\u05D8\u05B0\u05E8\u05D5\u05B9\u05E0\u05D5\u05B9\u05DE" -- + "\u05B0\u05D9\u05B8\u05D4) \u05DC\u05B4\u05E7\u05BC\u05D5\u05BC\u05D9 (\u05D9\u05E8\u05D7 \u05D0\u05D5 \u05E9\u05DE\u05E9", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en"); -+ + "\u05B0\u05D9\u05B8\u05D4\\) \u05DC\u05B4\u05E7\u05BC\u05D5\u05BC\u05D9 \\(\u05D9\u05E8\u05D7 \u05D0\u05D5 \u05E9\u05DE\u05E9", new String[] {"/org.eclipse.ua.tests/data/help/search/testnlUTF8.htm" }, "en"); - } - - -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java -index 640d4c9..33ae5ba 100644 ---- a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/PrebuiltIndexCompatibility.java -@@ -22,20 +22,21 @@ - import java.net.URL; - import java.util.ArrayList; - -+import org.apache.lucene.analysis.standard.StandardAnalyzer; - import org.apache.lucene.index.CorruptIndexException; --import org.apache.lucene.index.IndexReader; -+import org.apache.lucene.index.DirectoryReader; - import org.apache.lucene.search.IndexSearcher; - import org.apache.lucene.search.Query; - import org.apache.lucene.search.TopDocs; - import org.apache.lucene.store.Directory; - import org.apache.lucene.store.NIOFSDirectory; -+import org.apache.lucene.util.QueryBuilder; - import org.eclipse.core.runtime.FileLocator; - import org.eclipse.core.runtime.NullProgressMonitor; - import org.eclipse.core.runtime.Path; - import org.eclipse.help.internal.base.BaseHelpSystem; - import org.eclipse.help.internal.search.AnalyzerDescriptor; - import org.eclipse.help.internal.search.PluginIndex; --import org.eclipse.help.internal.search.QueryBuilder; - import org.eclipse.help.internal.search.SearchIndexWithIndexingProgress; - import org.eclipse.ua.tests.plugin.UserAssistanceTestPlugin; - import org.junit.Test; -@@ -56,28 +57,12 @@ - public class PrebuiltIndexCompatibility { - - /** -- * Test index built with Lucene 1.9.1 -- */ -- @Test -- public void test1_9_1_IndexReadable() throws Exception { -- checkReadable("data/help/searchindex/index191"); -- } -- -- /** -- * Test index built with Lucene 2.9.1 -- */ -- @Test -- public void test2_9_1_IndexReadable() throws Exception { -- checkReadable("data/help/searchindex/index291"); -- } -- -- /** - ** Test compatibility of Lucene 1.9.1 index with current Lucene - */ - @Test - public void test1_9_1Compatible() - { -- checkCompatible("data/help/searchindex/index191", true); -+ checkCompatible("data/help/searchindex/index191", false); - } - - /** -@@ -86,13 +71,13 @@ - @Test - public void test2_9_1Compatible() - { -- checkCompatible("data/help/searchindex/index291", true); -+ checkCompatible("data/help/searchindex/index291", false); - } - - @Test - public void test1_9_1LuceneCompatible() - { -- checkLuceneCompatible("1.9.1", true); -+ checkLuceneCompatible("1.9.1", false); - } - - @Test -@@ -104,7 +89,12 @@ - @Test - public void test2_9_1LuceneCompatible() - { -- checkLuceneCompatible("2.9.1", true); -+ checkLuceneCompatible("2.9.1", false); -+ } -+ -+ @Test -+ public void test5_1_0LuceneCompatible() { -+ checkLuceneCompatible("5.1.0", true); - } - - @Test -@@ -143,6 +133,11 @@ - assertFalse(index1.equals(index2)); - } - -+ @Test -+ public void test5_1_0IndexReadable() throws CorruptIndexException, IOException { -+ checkReadable("data/help/searchindex/index510"); -+ } -+ - /* - * Verifies that a prebuilt index can be searched - */ -@@ -154,10 +149,11 @@ - URL resolved = FileLocator.resolve(url); - if ("file".equals(resolved.getProtocol())) { //$NON-NLS-1$ - String filePath = resolved.getFile(); -- QueryBuilder queryBuilder = new QueryBuilder("eclipse", new AnalyzerDescriptor("en-us")); -- Query luceneQuery = queryBuilder.getLuceneQuery(new ArrayList() , false); -- try (Directory luceneDirectory = new NIOFSDirectory(new File(filePath)); -- IndexSearcher searcher = new IndexSearcher(IndexReader.open(luceneDirectory, true))) { -+ StandardAnalyzer standardAnalyzer = new StandardAnalyzer(); -+ QueryBuilder builder = new QueryBuilder(standardAnalyzer); -+ Query luceneQuery = builder.createBooleanQuery("contents", "eclipse"); -+ try (Directory luceneDirectory = new NIOFSDirectory(new File(filePath).toPath())) { -+ IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(luceneDirectory)); - TopDocs hits = searcher.search(luceneQuery, 500); - assertEquals(hits.totalHits, 1); - } -diff --git a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/SearchParticipantTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/SearchParticipantTest.java -index 223e42a..2e782c3 100644 ---- a/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/SearchParticipantTest.java -+++ b/eclipse.platform.ua/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/search/SearchParticipantTest.java -@@ -7,6 +7,7 @@ - * - * Contributors: - * IBM Corporation - initial API and implementation -+ * Sopot Cela - Bug 466829 - Migration to Lucene 5 - *******************************************************************************/ - package org.eclipse.ua.tests.help.search; - -@@ -35,7 +36,7 @@ - - @Test - public void testSearchUsingAndInSeparateDocs() { -- SearchTestUtils.searchAllLocales("jduehdye and olhoykk", new String[0]); -+ SearchTestUtils.searchAllLocales("jduehdye AND olhoykk", new String[0]); - } - - @Test ---- a/eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml -+++ b/eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml -@@ -101,7 +101,7 @@ - - - eclipse-plugin -- org.apache.lucene.analysis -+ org.apache.lucene.analyzers-common - 0.0.0 - - diff --git a/eclipse-mockito.patch b/eclipse-mockito.patch index 20ae6c7..a53f741 100644 --- a/eclipse-mockito.patch +++ b/eclipse-mockito.patch @@ -14,7 +14,7 @@ org.eclipse.ui.tests.menus --- eclipse.platform.ui/tests/org.eclipse.e4.ui.tests/META-INF/MANIFEST.MF.orig 2014-03-26 11:44:04.400306048 +0000 +++ eclipse.platform.ui/tests/org.eclipse.e4.ui.tests/META-INF/MANIFEST.MF 2014-03-26 12:58:07.608331033 +0000 -@@ -31,8 +31,8 @@ +@@ -32,8 +32,8 @@ org.eclipse.core.expressions;bundle-version="3.4.200", org.eclipse.e4.ui.workbench.addons.swt;bundle-version="0.9.0", org.eclipse.e4.ui.css.swt;bundle-version="0.11.0", @@ -38,3 +38,14 @@ org.eclipse.equinox.preferences;bundle-version="3.5.200" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +--- eclipse.platform.releng/features/org.eclipse.test-feature/feature.xml.orig 2017-04-04 17:30:21.859313175 +0100 ++++ eclipse.platform.releng/features/org.eclipse.test-feature/feature.xml 2017-04-04 17:30:47.748038958 +0100 +@@ -75,7 +75,7 @@ + unpack="false"/> + + --- eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml.orig 2014-11-28 15:27:07.874872769 +0000 +++ eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml 2014-11-28 15:31:02.592652099 +0000 -@@ -74,6 +74,13 @@ +@@ -73,6 +73,13 @@ @@ -113,15 +113,14 @@ --- eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml.orig 2014-05-26 18:37:25.406426611 +0300 +++ eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml 2014-05-26 18:37:47.327449374 +0300 -@@ -54,6 +54,21 @@ - +@@ -46,6 +46,20 @@ + + + + + -+ + + + @@ -144,12 +143,12 @@ - - - -- -- -- -- -- -- +- +- +- +- +- +- - -+ ++ ++ ++ + " - ;; --- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml 2014-11-28 15:09:42.000000000 +0000 +++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml 2014-11-28 16:52:00.315007846 +0000 -@@ -219,6 +219,128 @@ +@@ -349,6 +349,68 @@ + + -+ build-native-launchers-gtk.linux.ppc -+ -+ -+ native -+ gtk.linux.ppc -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ -+ + build-native-launchers-gtk.linux.ppc64 + + @@ -176,57 +136,37 @@ index 29d3871..45526c8 100644 + + + -+ -+ build-native-launchers-gtk.linux.s390 -+ -+ -+ native -+ gtk.linux.s390 -+ -+ -+ -+ -+ -+ maven-antrun-plugin -+ -+ -+ compile-executable-natives -+ generate-resources -+ -+ -+ -+ -+ -+ -+ run -+ -+ -+ -+ -+ -+ -+ + build-native-launchers-win32.win32.x86_64 -@@ -347,8 +530,6 @@ - - - -- -- - - - --- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties 2015-01-30 14:44:03.436891441 +0000 +++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties 2015-01-30 14:45:25.232480509 +0000 -@@ -59,4 +59,8 @@ - root.linux.gtk.s390=bin/gtk/linux/s390,gtk_root - root.linux.gtk.s390.permissions.755=launcher +@@ -40,3 +40,12 @@ + root.linux.gtk.x86_64=bin/gtk/linux/x86_64,gtk_root + root.linux.gtk.x86_64.permissions.755=libcairo-swt.so ++ +root.linux.gtk.aarch64=bin/gtk/linux/aarch64,gtk_root +root.linux.gtk.aarch64.permissions.755=launcher ++ +root.linux.gtk.arm=bin/gtk/linux/arm,gtk_root +root.linux.gtk.arm.permissions.755=launcher ++ ++root.linux.gtk.s390x=bin/gtk/linux/s390x,gtk_root ++root.linux.gtk.s390x.permissions.755=launcher +--- a/eclipse.platform.swt.binaries/pom.xml 2017-04-05 01:57:59.142576722 +0100 ++++ b/eclipse.platform.swt.binaries/pom.xml 2017-04-05 02:00:00.153247342 +0100 +@@ -55,9 +55,12 @@ + + bundles/org.eclipse.swt.cocoa.macosx.x86_64 ++ bundles/org.eclipse.swt.gtk.linux.arm ++ bundles/org.eclipse.swt.gtk.linux.aarch64 + bundles/org.eclipse.swt.gtk.linux.ppc + bundles/org.eclipse.swt.gtk.linux.ppc64 + bundles/org.eclipse.swt.gtk.linux.ppc64le ++ bundles/org.eclipse.swt.gtk.linux.s390x + bundles/org.eclipse.swt.gtk.linux.x86 + bundles/org.eclipse.swt.gtk.linux.x86_64 + bundles/org.eclipse.swt.win32.win32.x86 diff --git a/eclipse-support-symlink-bundles.patch b/eclipse-support-symlink-bundles.patch index dee043b..443092e 100644 --- a/eclipse-support-symlink-bundles.patch +++ b/eclipse-support-symlink-bundles.patch @@ -29,11 +29,9 @@ diff --git rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/ index ab69b88..d6bf121 100644 --- rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java -@@ -13,9 +13,14 @@ package org.eclipse.equinox.internal.simpleconfigurator.utils; - - import java.io.*; +@@ -15,8 +15,12 @@ package org.eclipse.equinox.internal.simpleconfigurator.utils; import java.net.*; -+import java.nio.file.*; + import java.nio.file.Files; import java.util.*; +import java.util.jar.JarFile; +import java.util.zip.ZipEntry; @@ -51,7 +49,7 @@ index ab69b88..d6bf121 100644 URI location = parseLocation(tok.nextToken().trim()); + if (base != null) { + URI absLoc = URIUtil.append(base, location.toString()); -+ Path absPath = Paths.get(absLoc); ++ java.nio.file.Path absPath = java.nio.file.Paths.get(absLoc); + // Symbolic links may change outside Eclipse so regenerate proper bundle version. + if (Files.isSymbolicLink(absPath) && absPath.toFile().isFile()) { + // We can't depend on org.eclipse.equinox.internal.frameworkadmin.utils.Utils diff --git a/eclipse-swt-disable-gtk2.patch b/eclipse-swt-disable-gtk2.patch new file mode 100644 index 0000000..5517871 --- /dev/null +++ b/eclipse-swt-disable-gtk2.patch @@ -0,0 +1,25 @@ +--- eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml.orig ++++ eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml +@@ -898,15 +898,19 @@ + + + ++ ++ ++ ++ ++ ++ ++ + + + + + + +- +- +- + + + diff --git a/eclipse-test-support.patch b/eclipse-test-support.patch index 8fa87f3..26976ad 100644 --- a/eclipse-test-support.patch +++ b/eclipse-test-support.patch @@ -201,7 +201,7 @@ echo "command line as passed into $(basename ${0}): ${*}" echo "command line (quoted) as passed into $(basename ${0}): ${@}" -@@ -159,6 +198,8 @@ +@@ -166,6 +205,8 @@ if [[ "true" == "${START_WINDOW_MGT}" ]] then ./startWindowManager.sh @@ -210,7 +210,7 @@ fi # During production tests, we define 'testedPlatform' as a combination of -@@ -192,6 +233,7 @@ +@@ -199,6 +240,7 @@ echo "platformString: ${platformString}" echo "testedPlatform: ${testedPlatform}" @@ -218,7 +218,7 @@ # -Dtimeout=300000 "${ANT_OPTS}" if [[ -n "${extdirproperty}" ]] then -@@ -202,4 +244,4 @@ +@@ -209,4 +251,4 @@ $jvm ${ANT_OPTS} ${platformArgString} -jar $launcher -data workspace -application org.eclipse.ant.core.antRunner -file ${PWD}/test.xml ${ANT_OPTS} ${platformParmString} -D$installmode=true $properties -logger org.apache.tools.ant.DefaultLogger $tests 2>&1 | tee $consolelogs fi diff --git a/eclipse.spec b/eclipse.spec index 17770a1..f82fbdf 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -5,22 +5,11 @@ Epoch: 1 -%global eb_commit a8c4189f4b7af192e2295b27aef74300ac3bfce9 -%global eclipse_tag S4_6_3_RC4 +%global eb_commit 4bb6dae1336990aa3fe29be55f99869f091f6e44 +%global eclipse_tag I20170404-0245 -%if 0%{?fedora} >= 26 -%global _jetty_version 9.4.2 -%global _lucene_version 5.5.0 -%else -%if 0%{?fedora} >= 25 -%global _jetty_version 9.4.0 -%global _lucene_version 5.5.0 -%else -# Used on RHEL -%global _jetty_version 9.0.3 -%global _lucene_version 5.4.1 -%endif -%endif +%global _jetty_version 9.4.3 +%global _lucene_version 6.1.0 %ifarch %{ix86} %global eclipse_arch x86 @@ -31,7 +20,7 @@ Epoch: 1 %ifarch ppc64 ppc64p7 %global eclipse_arch ppc64 %endif -%ifarch s390 s390x ppc x86_64 aarch64 ppc64le +%ifarch s390 s390x x86_64 aarch64 ppc64le %global eclipse_arch %{_arch} %endif @@ -40,14 +29,16 @@ Epoch: 1 %global app_exec %{?app_exec_prefix} eclipse # See fedora-devel-java-list discussion in September 2008. -# # Prevent brp-java-repack-jars from being run. %global __jar_repack %{nil} +# Eclipse is arch-specific, but multilib agnostic +%global _eclipsedir %{_prefix}/lib/eclipse + Summary: An open, extensible IDE Name: eclipse -Version: 4.6.3 -Release: 3%{?dist} +Version: 4.7.0 +Release: 0.1%{?dist} License: EPL URL: http://www.eclipse.org/ @@ -75,9 +66,9 @@ Patch4: eclipse-ignore-version-when-calculating-home.patch # just source, and we don't want additional dependencies. Patch5: eclipse-remove-jgit-provider.patch -Patch8: eclipse-test-support.patch +Patch6: eclipse-test-support.patch -Patch9: eclipse-secondary-arches.patch +Patch7: eclipse-secondary-arches.patch Patch10: eclipse-debug-symbols.patch @@ -98,20 +89,17 @@ Patch15: eclipse-support-symlink-bundles.patch # If plugin is external, updating it breaks the feature. (version changes) # Workaround : Change definition to a 'requirement' # Also makes the following BSN changes at the same time: -# -com.sun.el -# +javax.el -# -org.apache.jasper.glassfish -# +org.glassfish.web.javax.servlet.jsp -# -javax.annotation -# -org.w3c.dom.smil +# com.sun.el -> com.sun.el.javax.el +# javax.el -> javax.el-api +# javax.servlet -> javax.servlet-api +# org.apache.jasper.glassfish -> org.glassfish.web.javax.servlet.jsp +# javax.annotation -> removed +# org.w3c.dom.smil -> removed Patch16: eclipse-feature-plugins-to-category-ius.patch # Disable non-linux specific bundles to save build time Patch17: disable-non-linux.patch -# Port to Lucene 5 -Patch18: eclipse-lucene-5.patch - # Fix various JDT and PDE tests Patch20: eclipse-fix-tests.patch @@ -122,8 +110,8 @@ Patch22: eclipse-pde-tp-support-droplets.patch # Use webkit2 by default and prevent usage of xulrunner Patch23: eclipse-webkit2-by-default.patch -# Port to jetty 9.4 -Patch24: eclipse-jetty-9.4.patch +# Only build gtk3 backend for SWT +Patch24: eclipse-swt-disable-gtk2.patch # Droplet fixes Patch26: eclipse-make-droplets-runnable.patch @@ -161,22 +149,24 @@ BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(webkitgtk-3.0) -%if ! 0%{?rhel} +%if 0%{?rhel} # RHEL does not have webkit2 +BuildRequires: pkgconfig(webkitgtk-3.0) +%else BuildRequires: pkgconfig(webkit2gtk-4.0) %endif BuildRequires: icu4j >= 1:54.1.1-2 -BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf ant-commons-net -BuildRequires: ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf +BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf +BuildRequires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf BuildRequires: jsch >= 0:0.1.46-2 BuildRequires: apache-commons-el >= 1.0-22 BuildRequires: apache-commons-logging BuildRequires: apache-commons-codec BuildRequires: apache-commons-jxpath BuildRequires: apache-commons-fileupload -BuildRequires: felix-gogo-command -BuildRequires: felix-gogo-shell +BuildRequires: osgi(org.apache.felix.gogo.shell) +BuildRequires: osgi(org.apache.felix.gogo.command) +BuildRequires: osgi(org.apache.felix.scr) >= 2.0.8 BuildRequires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} BuildRequires: osgi(org.eclipse.jetty.server) >= %{_jetty_version} BuildRequires: osgi(org.eclipse.jetty.http) >= %{_jetty_version} @@ -185,6 +175,7 @@ BuildRequires: osgi(org.eclipse.jetty.io) >= %{_jetty_version} BuildRequires: osgi(org.eclipse.jetty.security) >= %{_jetty_version} BuildRequires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version} BuildRequires: lucene-core >= %{_lucene_version} +BuildRequires: lucene-misc >= %{_lucene_version} BuildRequires: lucene-analysis >= %{_lucene_version} BuildRequires: lucene-queryparser >= %{_lucene_version} BuildRequires: lucene-analyzers-smartcn >= %{_lucene_version} @@ -256,14 +247,16 @@ Summary: Eclipse platform common files Recommends: eclipse-abrt Recommends: eclipse-usage -Requires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf ant-commons-net -Requires: ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf +Requires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf +Requires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf +Requires: jsch >= 0.1.46-2 Requires: apache-commons-el >= 1.0-23 Requires: apache-commons-logging Requires: apache-commons-codec Requires: apache-commons-jxpath -Requires: felix-gogo-command -Requires: felix-gogo-shell +Requires: osgi(org.apache.felix.gogo.shell) +Requires: osgi(org.apache.felix.gogo.command) +Requires: osgi(org.apache.felix.scr) >= 2.0.8 Requires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.server) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.http) >= %{_jetty_version} @@ -271,8 +264,8 @@ Requires: osgi(org.eclipse.jetty.continuation) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.io) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.security) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version} -Requires: jsch >= 0.1.46-2 Requires: lucene-core >= %{_lucene_version} +Requires: lucene-misc >= %{_lucene_version} Requires: lucene-analysis >= %{_lucene_version} Requires: lucene-queryparser >= %{_lucene_version} Requires: lucene-analyzers-smartcn >= %{_lucene_version} @@ -325,9 +318,6 @@ Requires: %{name}-platform = %{epoch}:%{version}-%{release} Requires: %{name}-jdt = %{epoch}:%{version}-%{release} Requires: objectweb-asm >= 5.0.3-1 Recommends: eclipse-e4-importer -# For PDE Build wrapper script + creating jars -Requires: zip -Requires: bash %description pde Eclipse Plugin Development Environment. This package is required for @@ -375,8 +365,8 @@ tar --strip-components=1 -xf %{SOURCE1} %patch3 %patch4 %patch5 -%patch8 -%patch9 -p1 +%patch6 +%patch7 -p1 %patch10 %patch11 %patch12 @@ -385,7 +375,6 @@ tar --strip-components=1 -xf %{SOURCE1} %patch15 %patch16 %patch17 -%patch18 -p1 %patch20 %patch21 %patch22 @@ -393,9 +382,7 @@ tar --strip-components=1 -xf %{SOURCE1} # RHEL does not have webkit2 %patch23 %endif -%if 0%{?fedora} >= 25 %patch24 -%endif %patch26 %patch27 %patch28 @@ -410,9 +397,6 @@ sed -i -e 's/groupId>org.eclipse.jdtorg.eclipse.tychoorg.eclipse.jdtorg.eclipse.tycho" eclipse.platform.ui/features/org.eclipse.e4.rcp - %pom_xpath_remove -f "plugin[@id='$b']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml + %pom_xpath_remove "plugin[@id='$b']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml fi done for b in `ls rt.equinox.framework/bundles | grep -P -e 'org.eclipse.equinox.launcher\.(?!gtk\.linux.%{eclipse_arch}$)'` ; do @@ -511,14 +495,16 @@ done %pom_disable_module bundles/org.eclipse.equinox.security.win32.x86 rt.equinox.bundles %pom_disable_module bundles/org.eclipse.equinox.security.win32.x86_64 rt.equinox.bundles %pom_disable_module bundles/org.eclipse.compare.win32 eclipse.platform.team -%pom_disable_module bundles/org.eclipse.e4.ui.workbench.renderers.swt.cocoa eclipse.platform.ui -%pom_disable_module bundles/org.eclipse.ui.cocoa eclipse.platform.ui -%pom_disable_module bundles/org.eclipse.ui.win32 eclipse.platform.ui -%pom_disable_module bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc eclipse.platform.resources -%pom_disable_module bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc64 eclipse.platform.resources +%pom_disable_module org.eclipse.e4.ui.workbench.renderers.swt.cocoa eclipse.platform.ui/bundles +%pom_disable_module org.eclipse.ui.cocoa eclipse.platform.ui/bundles +%pom_disable_module org.eclipse.ui.win32 eclipse.platform.ui/bundles %pom_disable_module bundles/org.eclipse.core.resources.win32.x86 eclipse.platform.resources %pom_disable_module bundles/org.eclipse.core.resources.win32.x86_64 eclipse.platform.resources +# We don't need SWT fragments since we only care for current arch +%pom_disable_module tests/org.eclipse.swt.tests.fragments.feature eclipse.platform.swt +%pom_xpath_remove "pom:dependency-resolution" eclipse.platform.swt/tests/org.eclipse.swt.tests + # Disable contributor tools that have external dependencies during bootstrap %if %{bootstrap} %pom_disable_module eclipse.platform.ui.tools @@ -596,19 +582,12 @@ popd # Allow usage of javax.servlet.jsp 2.3. sed -i '/javax\.servlet\.jsp/ s/2\.3/2\.4/' rt.equinox.bundles/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF -# Use com.sun.el.java.el (Glassfish) instead of javax.el (Tomcat) -sed -i 's/javax\.el/javax\.el-api/' \ - eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml \ - eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml -sed -i '/javax\.el-api/a' \ - eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml - # Use javax.servlet-api (Glassfish) instead of javax.servlet (Tomcat) find -name feature.xml | xargs sed -i -e 's|"javax.servlet"|"javax.servlet-api"|' -sed -i -e "s|javax.servlet|javax.servlet-api|g" eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml sed -i -e "2iRequire-Bundle: javax.servlet-api" rt.equinox.bundles/bundles/org.eclipse.equinox.http.{jetty9,servlet}/META-INF/MANIFEST.MF -%pom_remove_plugin org.mortbay.jetty:jetty-jspc-maven-plugin eclipse.platform.ua/org.eclipse.help.webapp +# Pre-compiling JSPs does not currently work +%pom_remove_plugin org.eclipse.jetty:jetty-jspc-maven-plugin eclipse.platform.ua/org.eclipse.help.webapp # Remove generated files not present during bootstrap build # org.eclipse.platform.doc.isv, org.eclipse.jdt.doc.isv, org.eclipse.pde.doc.user @@ -616,12 +595,10 @@ sed -i -e "2iRequire-Bundle: javax.servlet-api" rt.equinox.bundles/bundles/org.e sed -i '18,47d' eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/src/main/assembly/assembly.xml %endif -# Remove some problem comments that cause a failure -sed -i -e '/
/,/
/d' eclipse.jdt.core/org.eclipse.jdt.annotation/src/org/eclipse/jdt/annotation/Checks.java - # Use system osgi.annotation lib ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.framework/bundles/org.eclipse.osgi/osgi/ ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.framework/bundles/org.eclipse.osgi.services/lib/ +ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.framework/bundles/org.eclipse.osgi.util/lib/ ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/osgi/ ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles/org.eclipse.equinox.coordinator/lib/ @@ -654,8 +631,8 @@ ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles %build #This is the lowest value where the build succeeds. 512m is not enough. -export MAVEN_OPTS="-Xmx1000m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}" -export JAVA_HOME=%{java_home} +export MAVEN_OPTS="-Xmx1024m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}" +export JAVA_HOME=%{_jvmdir}/java # Qualifier generated from last modification time of source tarball QUALIFIER=$(date -u -d"$(stat --format=%y %{SOURCE0})" +v%Y%m%d-%H%M) @@ -675,7 +652,7 @@ product="eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/or dependencies/fake_ant_dependency.sh $product/eclipse/plugins/org.apache.ant_* # Symlink necessary plugins that are provided by other packages -dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir} +dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir} %{_jnidir} pushd $product/eclipse @@ -704,9 +681,8 @@ sed -i "s|-Xmx512m|-Xmx1024m|g" eclipse.ini sed -i '1i-protect\nmaster' eclipse.ini # Temporary fix until https://bugs.eclipse.org/294877 is resolved -cat >> eclipse.ini <> eclipse.ini < -XX:CompileCommand=exclude,org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates,instantiateTemplate @@ -714,10 +690,10 @@ cat >> eclipse.ini < %{buildroot}%{_libdir}/eclipse/.pkgs/Distro%{?dist} +install -d -m 755 %{buildroot}%{_eclipsedir}/.pkgs +echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} %post platform touch --no-create /usr/share/icons/hicolor @@ -892,197 +840,189 @@ if [ -x /usr/bin/gtk-update-icon-cache ]; then fi %files swt -f .mfiles-swt -%{_libdir}/eclipse/plugins/org.eclipse.swt_* -%{_libdir}/eclipse/plugins/org.eclipse.swt.gtk.linux.* -%{_libdir}/eclipse/swt.jar +%{_eclipsedir}/plugins/org.eclipse.swt_* +%{_eclipsedir}/plugins/org.eclipse.swt.gtk.linux.* +%{_eclipsedir}/swt.jar %{_jnidir}/swt.jar %files platform -f .mfiles-platform %{_bindir}/eclipse -%{_libdir}/eclipse/.eclipseproduct -%{_libdir}/eclipse/.pkgs -%config %{_libdir}/%{name}/eclipse.ini +%{_eclipsedir}/eclipse +%{_eclipsedir}/.eclipseproduct +%{_eclipsedir}/.pkgs +%config %{_eclipsedir}/eclipse.ini %config %{_sysconfdir}/eclipse.ini /usr/share/applications/* /usr/share/pixmaps/* /usr/share/icons/*/*/apps/* %{_datadir}/appdata/eclipse.appdata.xml -%{_libdir}/%{name}/eclipse -%dir %{_libdir}/%{name}/configuration/ -%dir %{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/ -%{_libdir}/%{name}/configuration/config.ini -%{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info -%{_libdir}/%{name}/features/org.eclipse.core.runtime.feature_* -%{_libdir}/%{name}/features/org.eclipse.e4.rcp_* -%{_libdir}/%{name}/features/org.eclipse.equinox.core.feature_* -%{_libdir}/%{name}/features/org.eclipse.help_* -%{_libdir}/%{name}/features/org.eclipse.platform_* -%{_libdir}/%{name}/features/org.eclipse.rcp_* -%{_libdir}/%{name}/plugins/com.ibm.icu_* -%if 0%{?fedora} >= 24 -%{_libdir}/%{name}/plugins/com.spatial4j_* -%endif -%{_libdir}/%{name}/plugins/com.jcraft.jsch_* -%{_libdir}/%{name}/plugins/javax.servlet-api_* -%{_libdir}/%{name}/plugins/javax.servlet.jsp_* -%{_libdir}/%{name}/plugins/javax.xml_* -%{_libdir}/%{name}/plugins/javax.el-api_* -%{_libdir}/%{name}/plugins/com.sun.el.javax.el_* -%{_libdir}/%{name}/plugins/javax.inject_*.jar -%{_libdir}/%{name}/plugins/org.apache.* -%{_libdir}/%{name}/plugins/org.glassfish.web.javax.servlet.jsp_* -%{_libdir}/%{name}/plugins/org.eclipse.ant.core_* -%{_libdir}/%{name}/plugins/org.eclipse.compare_* -%{_libdir}/%{name}/plugins/org.eclipse.compare.core_* -%{_libdir}/%{name}/plugins/org.eclipse.core.commands_* -%{_libdir}/%{name}/plugins/org.eclipse.core.contenttype_* -%{_libdir}/%{name}/plugins/org.eclipse.core.databinding.beans_* -%{_libdir}/%{name}/plugins/org.eclipse.core.databinding.observable_* -%{_libdir}/%{name}/plugins/org.eclipse.core.databinding.property_* -%{_libdir}/%{name}/plugins/org.eclipse.core.databinding_* -%{_libdir}/%{name}/plugins/org.eclipse.core.expressions_* -%{_libdir}/%{name}/plugins/org.eclipse.core.externaltools_* -%{_libdir}/%{name}/plugins/org.eclipse.core.filebuffers_* -%{_libdir}/%{name}/plugins/org.eclipse.core.filesystem* -%{_libdir}/%{name}/plugins/org.eclipse.core.jobs_* -%{_libdir}/%{name}/plugins/org.eclipse.core.net* -%{_libdir}/%{name}/plugins/org.eclipse.core.resources_* -%{_libdir}/%{name}/plugins/org.eclipse.core.runtime_* -%{_libdir}/%{name}/plugins/org.eclipse.core.variables_* -%{_libdir}/%{name}/plugins/org.eclipse.debug.core_* -%{_libdir}/%{name}/plugins/org.eclipse.debug.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.ds_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.event_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.http.jetty_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.http.registry_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.http.servlet_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.jsp.jasper_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.jsp.jasper.registry_* -%{_libdir}/%{name}/plugins/org.eclipse.help_* -%{_libdir}/%{name}/plugins/org.eclipse.help.base_* -%{_libdir}/%{name}/plugins/org.eclipse.help.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.help.webapp_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.core.compiler.batch_* -%{_libdir}/%{name}/plugins/org.eclipse.jface_* -%{_libdir}/%{name}/plugins/org.eclipse.jface.databinding_* -%{_libdir}/%{name}/plugins/org.eclipse.jface.text_* -%{_libdir}/%{name}/plugins/org.eclipse.jsch.core_* -%{_libdir}/%{name}/plugins/org.eclipse.jsch.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.ltk.core.refactoring_* -%{_libdir}/%{name}/plugins/org.eclipse.ltk.ui.refactoring_* -%{_libdir}/%{name}/plugins/org.eclipse.platform_* -%{_libdir}/%{name}/plugins/org.eclipse.platform.doc.user_* -%{_libdir}/%{name}/plugins/org.eclipse.search_* -%{_libdir}/%{name}/plugins/org.eclipse.team.core_* -%{_libdir}/%{name}/plugins/org.eclipse.team.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.text_* -%{_libdir}/%{name}/plugins/org.eclipse.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.browser_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.cheatsheets_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.console_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.editors_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.externaltools_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.forms_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.ide_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.ide.application_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.intro_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.intro.quicklinks_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.intro.universal_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.monitoring_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.navigator_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.navigator.resources_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.net_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.themes_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.views_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.views.properties.tabbed_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench.texteditor_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.commands_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.contexts_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.di.annotations_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.di.extensions_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.di_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.core.services_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.emf.xpath_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.bindings_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.css.core_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.css.swt.theme_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.css.swt_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.di_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.dialogs_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.model.workbench_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.services_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.swt.gtk_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.widgets_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.workbench.addons.swt_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.workbench.renderers.swt_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.workbench.swt_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.workbench3_* -%{_libdir}/%{name}/plugins/org.eclipse.e4.ui.workbench_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.util_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.server_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.http_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.continuation_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.io_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.security_* -%{_libdir}/%{name}/plugins/org.eclipse.jetty.servlet_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.frameworkadmin_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.frameworkadmin.equinox_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_* -%{_libdir}/%{name}/features/org.eclipse.equinox.p2.core.feature_* -%{_libdir}/%{name}/features/org.eclipse.equinox.p2.extras.feature_* -%{_libdir}/%{name}/features/org.eclipse.equinox.p2.rcp.feature_* -%{_libdir}/%{name}/features/org.eclipse.equinox.p2.user.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.director_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.core_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.engine_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.jarprocessor_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.metadata_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.metadata.repository_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.artifact.repository_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.touchpoint.natives_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.console_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.operations_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.transport.ecf_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.ui.importexport_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.ui.sdk_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.updatechecker_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.garbagecollector_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.directorywatcher_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.publisher_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.publisher.eclipse_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.repository_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.repository.tools_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.reconciler.dropins_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.updatesite_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.security_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.security.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.extensionlocation_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.p2.director.app_* -%{_libdir}/%{name}/plugins/org.sat4j.core_* -%{_libdir}/%{name}/plugins/org.sat4j.pb_* -%{_libdir}/%{name}/plugins/org.tukaani.xz_* -%{_libdir}/%{name}/plugins/org.w3c.css.sac_* -%{_libdir}/%{name}/plugins/org.w3c.dom.svg_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.app_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.bidi_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.common_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.concurrent_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.console_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux.*_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.preferences_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.registry_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.simpleconfigurator_* -%{_libdir}/%{name}/plugins/org.eclipse.equinox.util_* -%{_libdir}/%{name}/plugins/org.eclipse.rcp_* -%{_libdir}/%{name}/plugins/org.eclipse.update.configurator_* -%{_libdir}/%{name}/readme -%{_libdir}/%{name}/artifacts.xml -%{_libdir}/%{name}/p2 +%dir %{_eclipsedir}/configuration/ +%dir %{_eclipsedir}/configuration/org.eclipse.equinox.simpleconfigurator/ +%{_eclipsedir}/configuration/config.ini +%{_eclipsedir}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info +%{_eclipsedir}/features/org.eclipse.core.runtime.feature_* +%{_eclipsedir}/features/org.eclipse.e4.rcp_* +%{_eclipsedir}/features/org.eclipse.equinox.core.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.core.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.extras.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.rcp.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.user.ui_* +%{_eclipsedir}/features/org.eclipse.help_* +%{_eclipsedir}/features/org.eclipse.platform_* +%{_eclipsedir}/features/org.eclipse.rcp_* +%{_eclipsedir}/plugins/com.ibm.icu_* +%{_eclipsedir}/plugins/com.jcraft.jsch_* +%{_eclipsedir}/plugins/com.sun.el.javax.el_* +%{_eclipsedir}/plugins/javax.* +%{_eclipsedir}/plugins/org.apache.* +%{_eclipsedir}/plugins/org.eclipse.ant.core_* +%{_eclipsedir}/plugins/org.eclipse.compare_* +%{_eclipsedir}/plugins/org.eclipse.compare.core_* +%{_eclipsedir}/plugins/org.eclipse.core.commands_* +%{_eclipsedir}/plugins/org.eclipse.core.contenttype_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.beans_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.observable_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.property_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding_* +%{_eclipsedir}/plugins/org.eclipse.core.expressions_* +%{_eclipsedir}/plugins/org.eclipse.core.externaltools_* +%{_eclipsedir}/plugins/org.eclipse.core.filebuffers_* +%{_eclipsedir}/plugins/org.eclipse.core.filesystem* +%{_eclipsedir}/plugins/org.eclipse.core.jobs_* +%{_eclipsedir}/plugins/org.eclipse.core.net* +%{_eclipsedir}/plugins/org.eclipse.core.resources_* +%{_eclipsedir}/plugins/org.eclipse.core.runtime_* +%{_eclipsedir}/plugins/org.eclipse.core.variables_* +%{_eclipsedir}/plugins/org.eclipse.debug.core_* +%{_eclipsedir}/plugins/org.eclipse.debug.ui_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.commands_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.contexts_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.annotations_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.extensions_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.extensions.supplier_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.services_* +%{_eclipsedir}/plugins/org.eclipse.e4.emf.xpath_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.bindings_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.core_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.swt.theme_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.di_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.dialogs_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.model.workbench_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.services_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.swt.gtk_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.widgets_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench3_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.addons.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.renderers.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.swt_* +%{_eclipsedir}/plugins/org.eclipse.equinox.app_* +%{_eclipsedir}/plugins/org.eclipse.equinox.bidi_* +%{_eclipsedir}/plugins/org.eclipse.equinox.common_* +%{_eclipsedir}/plugins/org.eclipse.equinox.concurrent_* +%{_eclipsedir}/plugins/org.eclipse.equinox.console_* +%{_eclipsedir}/plugins/org.eclipse.equinox.ds_* +%{_eclipsedir}/plugins/org.eclipse.equinox.event_* +%{_eclipsedir}/plugins/org.eclipse.equinox.frameworkadmin_* +%{_eclipsedir}/plugins/org.eclipse.equinox.frameworkadmin.equinox_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.jetty_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.servlet_* +%{_eclipsedir}/plugins/org.eclipse.equinox.jsp.jasper_* +%{_eclipsedir}/plugins/org.eclipse.equinox.jsp.jasper.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.launcher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.launcher.gtk.linux.*_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.artifact.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.console_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.core_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.director_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.director.app_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.directorywatcher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.engine_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.extensionlocation_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.garbagecollector_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.jarprocessor_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.metadata_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.metadata.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.operations_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.publisher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.publisher.eclipse_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.reconciler.dropins_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.repository.tools_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.touchpoint.natives_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.transport.ecf_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.importexport_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.sdk_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.updatechecker_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.updatesite_* +%{_eclipsedir}/plugins/org.eclipse.equinox.preferences_* +%{_eclipsedir}/plugins/org.eclipse.equinox.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.security_* +%{_eclipsedir}/plugins/org.eclipse.equinox.security.ui_* +%{_eclipsedir}/plugins/org.eclipse.equinox.simpleconfigurator_* +%{_eclipsedir}/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_* +%{_eclipsedir}/plugins/org.eclipse.equinox.util_* +%{_eclipsedir}/plugins/org.eclipse.help_* +%{_eclipsedir}/plugins/org.eclipse.help.base_* +%{_eclipsedir}/plugins/org.eclipse.help.ui_* +%{_eclipsedir}/plugins/org.eclipse.help.webapp_* +%{_eclipsedir}/plugins/org.eclipse.jdt.core.compiler.batch_* +%{_eclipsedir}/plugins/org.eclipse.jetty.* +%{_eclipsedir}/plugins/org.eclipse.jface_* +%{_eclipsedir}/plugins/org.eclipse.jface.databinding_* +%{_eclipsedir}/plugins/org.eclipse.jface.text_* +%{_eclipsedir}/plugins/org.eclipse.jsch.core_* +%{_eclipsedir}/plugins/org.eclipse.jsch.ui_* +%{_eclipsedir}/plugins/org.eclipse.ltk.core.refactoring_* +%{_eclipsedir}/plugins/org.eclipse.ltk.ui.refactoring_* +%{_eclipsedir}/plugins/org.eclipse.platform_* +%{_eclipsedir}/plugins/org.eclipse.platform.doc.user_* +%{_eclipsedir}/plugins/org.eclipse.rcp_* +%{_eclipsedir}/plugins/org.eclipse.search_* +%{_eclipsedir}/plugins/org.eclipse.team.core_* +%{_eclipsedir}/plugins/org.eclipse.team.genericeditor.diff.extension_* +%{_eclipsedir}/plugins/org.eclipse.team.ui_* +%{_eclipsedir}/plugins/org.eclipse.text_* +%{_eclipsedir}/plugins/org.eclipse.ui_* +%{_eclipsedir}/plugins/org.eclipse.ui.browser_* +%{_eclipsedir}/plugins/org.eclipse.ui.cheatsheets_* +%{_eclipsedir}/plugins/org.eclipse.ui.console_* +%{_eclipsedir}/plugins/org.eclipse.ui.editors_* +%{_eclipsedir}/plugins/org.eclipse.ui.externaltools_* +%{_eclipsedir}/plugins/org.eclipse.ui.forms_* +%{_eclipsedir}/plugins/org.eclipse.ui.genericeditor_* +%{_eclipsedir}/plugins/org.eclipse.ui.ide_* +%{_eclipsedir}/plugins/org.eclipse.ui.ide.application_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro.quicklinks_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro.universal_* +%{_eclipsedir}/plugins/org.eclipse.ui.monitoring_* +%{_eclipsedir}/plugins/org.eclipse.ui.navigator_* +%{_eclipsedir}/plugins/org.eclipse.ui.navigator.resources_* +%{_eclipsedir}/plugins/org.eclipse.ui.net_* +%{_eclipsedir}/plugins/org.eclipse.ui.themes_* +%{_eclipsedir}/plugins/org.eclipse.ui.views_* +%{_eclipsedir}/plugins/org.eclipse.ui.views.properties.tabbed_* +%{_eclipsedir}/plugins/org.eclipse.ui.workbench_* +%{_eclipsedir}/plugins/org.eclipse.ui.workbench.texteditor_* +%{_eclipsedir}/plugins/org.eclipse.update.configurator_* +%{_eclipsedir}/plugins/org.glassfish.web.javax.servlet.jsp_* +%{_eclipsedir}/plugins/org.kxml2_* +%{_eclipsedir}/plugins/org.sat4j.core_* +%{_eclipsedir}/plugins/org.sat4j.pb_* +%{_eclipsedir}/plugins/org.tukaani.xz_* +%{_eclipsedir}/plugins/org.w3c.css.sac_* +%{_eclipsedir}/plugins/org.w3c.dom.svg_* +%{_eclipsedir}/plugins/org.xmlpull_* +%doc %{_eclipsedir}/readme +%{_eclipsedir}/artifacts.xml +%{_eclipsedir}/p2 %{_javadir}/%{name}/core* %{_javadir}/%{name}/equinox* @@ -1101,12 +1041,17 @@ fi %{_datadir}/java/eclipse-testing %files equinox-osgi -f .mfiles-equinox-osgi -%{_libdir}/eclipse/plugins/org.eclipse.osgi_* -%{_libdir}/eclipse/plugins/org.eclipse.osgi.services_* -%{_libdir}/eclipse/plugins/org.eclipse.osgi.util_* -%{_libdir}/eclipse/plugins/org.eclipse.osgi.compatibility.state_* +%{_eclipsedir}/plugins/org.eclipse.osgi_* +%{_eclipsedir}/plugins/org.eclipse.osgi.compatibility.state_* +%{_eclipsedir}/plugins/org.eclipse.osgi.services_* +%{_eclipsedir}/plugins/org.eclipse.osgi.util_* %changelog +* Tue Apr 04 2017 Mat Booth - 1:4.7.0-0.1 +- Update to Oxygen I-build +- Don't build unsupported GTK2 backend for SWT +- Move installation to a multilib agnostic location /usr/lib + * Mon Apr 03 2017 Mat Booth - 1:4.6.3-3 - Build missing remote ant support jar diff --git a/get-eclipse.sh b/get-eclipse.sh index 04888d8..b89e69d 100755 --- a/get-eclipse.sh +++ b/get-eclipse.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e AGGREGATOR_PATH=git://git.eclipse.org/gitroot/platform/eclipse.platform.releng.aggregator.git -TAG=S4_6_3_RC4 +TAG=I20170404-0245 rm -rf R4_platform-aggregator-$TAG rm -rf R4_platform-aggregator-$TAG.tar.xz