From 10f0d18a0e77d1bf86dff0a38e9fe00b3e63f38a Mon Sep 17 00:00:00 2001
From: CentOS Sources
Date: Oct 30 2014 09:45:20 +0000
Subject: import devtoolset-3-eclipse-4.4.0-7.el7
---
diff --git a/.devtoolset-3-eclipse.metadata b/.devtoolset-3-eclipse.metadata
new file mode 100644
index 0000000..2023903
--- /dev/null
+++ b/.devtoolset-3-eclipse.metadata
@@ -0,0 +1,2 @@
+16323bbbdd3ac709a9c63707f59a0db8c4760ee6 SOURCES/R4_platform-aggregator-R4_4.tar.xz
+6b3adca0e240cbee0b98e802f9a6cdc4ba3ba717 SOURCES/org.eclipse.linuxtools.eclipse-build-93cece6ca02e022b0d8d0816a9f6596b311ab774.tar.bz2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..12c6026
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+SOURCES/R4_platform-aggregator-R4_4.tar.xz
+SOURCES/org.eclipse.linuxtools.eclipse-build-93cece6ca02e022b0d8d0816a9f6596b311ab774.tar.bz2
diff --git a/README.md b/README.md
deleted file mode 100644
index 98f42b4..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-The master branch has no content
-
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/eclipse-bug-386377.patch b/SOURCES/eclipse-bug-386377.patch
new file mode 100644
index 0000000..29dfe95
--- /dev/null
+++ b/SOURCES/eclipse-bug-386377.patch
@@ -0,0 +1,565 @@
+--- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100
++++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/pom.xml 2014-04-16 15:53:08.145402094 +0100
+@@ -27,4 +27,59 @@
+ gtk
+ x86_64
+
++
++
++ build-native-launchers-gtk.linux.x86_64
++
++
++ native
++ gtk.linux.x86_64
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ 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
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ gtk
+ ppc64le
+
++
++
++
++ build-native-launchers-gtk.linux.ppc64le
++
++
++ native
++ gtk.linux.ppc64le
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100
++++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/pom.xml 2014-04-16 15:53:08.145402094 +0100
+@@ -27,4 +27,59 @@
+ gtk
+ x86
+
++
++
++ build-native-launchers-gtk.linux.x86
++
++
++ native
++ gtk.linux.x86
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ win32
+ x86
+
++
++
++
++ build-native-launchers-win32.win32.x86
++
++
++ native
++ win32.win32.x86
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ gtk
+ s390
+
++
++
++
++ build-native-launchers-gtk.linux.s390
++
++
++ native
++ gtk.linux.s390
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ gtk
+ s390x
+
++
++
++
++ build-native-launchers-gtk.linux.s390x
++
++
++ native
++ gtk.linux.s390x
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/pom.xml.orig 2014-04-15 14:32:03.000000000 +0100
++++ rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/pom.xml 2014-04-16 15:57:28.315796703 +0100
+@@ -27,4 +27,60 @@
+ gtk
+ ppc64
+
++
++
++
++ build-native-launchers-gtk.linux.ppc64
++
++
++ native
++ gtk.linux.ppc64
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
+--- 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,60 @@
+ gtk
+ ppc
+
++
++
++
++ build-native-launchers-gtk.linux.ppc
++
++
++ native
++ gtk.linux.ppc
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
diff --git a/SOURCES/eclipse-bug-444143.patch b/SOURCES/eclipse-bug-444143.patch
new file mode 100644
index 0000000..d9e7d93
--- /dev/null
+++ b/SOURCES/eclipse-bug-444143.patch
@@ -0,0 +1,96 @@
+From 716d35d30c1f639a04515188fedd89bb3aaf12bc Mon Sep 17 00:00:00 2001
+From: Sami Wagiaalla
+Date: Mon, 15 Sep 2014 11:51:44 -0400
+Subject: Bug 444143 - [GTK3] Reset selected background color in Table
+
+When setBackgroundColor is called for Table it results in
+a call to gtk_widget_override_background_color with the flag
+GTK_STATE_FLAG_NORMAL which overrides the color for selected
+items' background despite the flag. Therefore the selected item
+color must be reset to the default.
+
+Change-Id: Iab3cad4e01cf87cca04e536fdea8991c818d0336
+Signed-off-by: Sami Wagiaalla
+
+diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
+index 96493c6..2558fd1 100644
+--- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
+@@ -11,12 +11,28 @@
+ package org.eclipse.swt.widgets;
+
+
+-import org.eclipse.swt.*;
+-import org.eclipse.swt.internal.*;
+-import org.eclipse.swt.internal.cairo.*;
+-import org.eclipse.swt.internal.gtk.*;
+-import org.eclipse.swt.graphics.*;
+-import org.eclipse.swt.events.*;
++import org.eclipse.swt.SWT;
++import org.eclipse.swt.SWTException;
++import org.eclipse.swt.events.SelectionEvent;
++import org.eclipse.swt.events.SelectionListener;
++import org.eclipse.swt.graphics.Color;
++import org.eclipse.swt.graphics.Font;
++import org.eclipse.swt.graphics.GC;
++import org.eclipse.swt.graphics.Image;
++import org.eclipse.swt.graphics.Point;
++import org.eclipse.swt.graphics.Rectangle;
++import org.eclipse.swt.internal.Converter;
++import org.eclipse.swt.internal.ImageList;
++import org.eclipse.swt.internal.cairo.Cairo;
++import org.eclipse.swt.internal.gtk.GdkColor;
++import org.eclipse.swt.internal.gtk.GdkEventButton;
++import org.eclipse.swt.internal.gtk.GdkEventExpose;
++import org.eclipse.swt.internal.gtk.GdkRGBA;
++import org.eclipse.swt.internal.gtk.GdkRectangle;
++import org.eclipse.swt.internal.gtk.GtkAllocation;
++import org.eclipse.swt.internal.gtk.GtkCellRendererClass;
++import org.eclipse.swt.internal.gtk.GtkRequisition;
++import org.eclipse.swt.internal.gtk.OS;
+
+ /**
+ * Instances of this class implement a selectable user interface
+@@ -3006,6 +3022,17 @@ void setBackgroundColor (GdkColor color) {
+ super.setBackgroundColor (color);
+ if (!OS.GTK3) {
+ OS.gtk_widget_modify_base (handle, 0, color);
++ } else {
++ // Setting the background color overrides the selected background color
++ // so we have to reset it the default.
++ GdkColor defaultColor = getDisplay().COLOR_LIST_SELECTION;
++ GdkRGBA selectedBackground = new GdkRGBA ();
++ selectedBackground.alpha = 1;
++ selectedBackground.red = (defaultColor.red & 0xFFFF) / (float)0xFFFF;
++ selectedBackground.green = (defaultColor.green & 0xFFFF) / (float)0xFFFF;
++ selectedBackground.blue = (defaultColor.blue & 0xFFFF) / (float)0xFFFF;
++
++ OS.gtk_widget_override_background_color (handle, OS.GTK_STATE_FLAG_SELECTED, selectedBackground);
+ }
+ }
+
+diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
+index 2a40869..4603cff 100644
+--- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
+@@ -3038,6 +3038,17 @@ void setBackgroundColor (GdkColor color) {
+ super.setBackgroundColor (color);
+ if (!OS.GTK3) {
+ OS.gtk_widget_modify_base (handle, 0, color);
++ } else {
++ // Setting the background color overrides the selected background color
++ // so we have to reset it the default.
++ GdkColor defaultColor = getDisplay().COLOR_LIST_SELECTION;
++ GdkRGBA selectedBackground = new GdkRGBA ();
++ selectedBackground.alpha = 1;
++ selectedBackground.red = (defaultColor.red & 0xFFFF) / (float)0xFFFF;
++ selectedBackground.green = (defaultColor.green & 0xFFFF) / (float)0xFFFF;
++ selectedBackground.blue = (defaultColor.blue & 0xFFFF) / (float)0xFFFF;
++
++ OS.gtk_widget_override_background_color (handle, OS.GTK_STATE_FLAG_SELECTED, selectedBackground);
+ }
+ }
+
+--
+cgit v0.10.1-9-gd18e
+
diff --git a/SOURCES/eclipse-bug-903537.patch b/SOURCES/eclipse-bug-903537.patch
new file mode 100644
index 0000000..332d1c7
--- /dev/null
+++ b/SOURCES/eclipse-bug-903537.patch
@@ -0,0 +1,16 @@
+--- eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java.bak 2013-01-28 12:16:08.000000000 +0100
++++ eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java 2013-02-19 13:22:29.529926456 +0100
+@@ -4439,7 +4439,12 @@
+ oldDecorations.fixAccelGroup ();
+ }
+ long /*int*/ newParent = parent.parentingHandle();
+- OS.gtk_widget_reparent(topHandle, newParent);
++// OS.gtk_widget_reparent(topHandle, newParent);
++ OS.g_object_ref(topHandle);
++ OS.gtk_container_remove(OS.gtk_widget_get_parent(topHandle), topHandle);
++ OS.gtk_container_add(newParent, topHandle);
++ OS.g_object_unref(topHandle);
++
+ if (OS.GTK3) {
+ OS.swt_fixed_move (newParent, topHandle, x, y);
+ } else {
diff --git a/SOURCES/eclipse-change-build-packagings.patch b/SOURCES/eclipse-change-build-packagings.patch
new file mode 100644
index 0000000..86f3ff8
--- /dev/null
+++ b/SOURCES/eclipse-change-build-packagings.patch
@@ -0,0 +1,89 @@
+--- eclipse.platform.releng/features/org.eclipse.sdk/feature.xml.orig 2014-04-08 15:47:19.927087084 +0100
++++ eclipse.platform.releng/features/org.eclipse.sdk/feature.xml 2014-04-08 15:48:00.045367311 +0100
+@@ -19,7 +19,7 @@
+ %license
+
+
+-
++
+
+
+
+--- eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml.orig 2014-04-22 19:03:17.404382093 +0100
++++ eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml 2014-04-22 19:08:40.599989429 +0100
+@@ -4,33 +4,21 @@
+ id="org.eclipse.sdk.tests"
+ version="0.0.0" />
+
+-
+
+
+-
+
+-
+
+
+-
+
+
+
+- ${project.baseUri}/../rcp/target/repository
+- p2
+-
+-
+-
+- ${project.baseUri}/../rcp.sdk/target/repository
+- p2
+-
+-
+-
+ ${project.baseUri}/../platform/target/repository
+ p2
+
+
+-
+- ${project.baseUri}/../platform.sdk/target/repository
+- p2
+-
+-
+-
+- ${project.baseUri}/../sdk/target/repository
+- p2
+-
+-
+
+ ${project.baseUri}/../eclipse-junit-tests/target/repository
+ p2
diff --git a/SOURCES/eclipse-debug-symbols.patch b/SOURCES/eclipse-debug-symbols.patch
new file mode 100644
index 0000000..d7173a7
--- /dev/null
+++ b/SOURCES/eclipse-debug-symbols.patch
@@ -0,0 +1,35 @@
+--- "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
+ 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_PTR_CFLAGS}
+ LFLAGS = -shared -fPIC ${SWT_LFLAGS}
+
+-ifndef NO_STRIP
+- 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 @@
+ -DGTK3_LIB="\"libgtk-3.so.0\"" -DGDK3_LIB="\"libgdk-3.so.0\"" \
+ -DPIXBUF_LIB="\"libgdk_pixbuf-2.0.so.0\"" -DGOBJ_LIB="\"libgobject-2.0.so.0\"" -DX11_LIB="\"libX11.so.6\""
+ LFLAGS = ${M_ARCH} -shared -fpic -Wl,--export-dynamic
+-CFLAGS = ${M_ARCH} -g -s -Wall\
++CFLAGS = ${M_ARCH} -g -Wall\
+ -fpic \
+ -DLINUX \
+ -DMOZILLA_FIX \
diff --git a/SOURCES/eclipse-disable-jdt-annotation-java8.patch b/SOURCES/eclipse-disable-jdt-annotation-java8.patch
new file mode 100644
index 0000000..7ae2749
--- /dev/null
+++ b/SOURCES/eclipse-disable-jdt-annotation-java8.patch
@@ -0,0 +1,16 @@
+--- eclipse.jdt/org.eclipse.jdt-feature/feature.xml.old 2014-05-19 15:24:30.868884801 -0400
++++ eclipse.jdt/org.eclipse.jdt-feature/feature.xml 2014-05-19 15:24:42.186567987 -0400
+@@ -85,13 +85,6 @@
+ unpack="false"/>
+
+
+-
+-
+
+
+-
+-
+-
+-
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+
+
diff --git a/SOURCES/eclipse-fix-comaptibility-class.patch b/SOURCES/eclipse-fix-comaptibility-class.patch
new file mode 100644
index 0000000..b9687dd
--- /dev/null
+++ b/SOURCES/eclipse-fix-comaptibility-class.patch
@@ -0,0 +1,60 @@
+--- eclipse.platform.runtime/bundles/org.eclipse.core.runtime.compatibility.registry/pom.xml.orig 2013-01-28 12:14:02.000000000 +0100
++++ eclipse.platform.runtime/bundles/org.eclipse.core.runtime.compatibility.registry/pom.xml 2013-01-29 11:02:15.865494675 +0100
+@@ -28,4 +28,57 @@
+
+
+
++
++
++
++
++ classes/org/eclipse/core/runtime/IPluginDescriptor.class
++
++
++
++
++
++ maven-antrun-plugin
++ 1.7
++
++
++ natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++ bsf
++ bsf
++ 2.4.0
++
++
++ rhino
++ js
++ 1.7R2
++
++
++ org.apache.ant
++ ant-apache-bsf
++ 1.8.3
++
++
++ org.apache.ant
++ ant-nodeps
++ 1.8.1
++
++
++
++
++
++
++
+
diff --git a/SOURCES/eclipse-fix-dropins.patch b/SOURCES/eclipse-fix-dropins.patch
new file mode 100644
index 0000000..706fc23
--- /dev/null
+++ b/SOURCES/eclipse-fix-dropins.patch
@@ -0,0 +1,88 @@
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java.orig 2014-03-24 10:49:00.000000000 +0000
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java 2014-03-24 15:39:32.122246214 +0000
+@@ -39,6 +39,7 @@
+
+ public class SimpleProfileRegistry implements IProfileRegistry, IAgentService {
+
++ private static final String PROP_IGNORE_USER_CONFIGURATION = "eclipse.ignoreUserConfiguration"; //$NON-NLS-1$
+ private static final String SIMPLE_PROFILE_REGISTRY_INTERNAL = "_simpleProfileRegistry_internal_"; //$NON-NLS-1$
+ private static final String PROFILE_REGISTRY = "profile registry"; //$NON-NLS-1$
+ private static final String PROFILE_PROPERTIES_FILE = "state.properties"; //$NON-NLS-1$
+@@ -266,6 +267,14 @@
+ //fragments support - remeber the property
+ internalSetProfileStateProperty(profile, profile.getTimestamp(), SIMPLE_PROFILE_REGISTRY_INTERNAL + getExtTimeStamp(), getExtTimeStamp());
+ agent.registerService(SERVICE_SHARED_INSTALL_NEW_TIMESTAMP, Long.toString(profile.getTimestamp()));
++
++ // this looks like a hack, but:
++ // (1) SimpleConfigurationImpl keeps returning master configuration as long as the property is set
++ // (2) SimpleConfigurationImpl sets the propery after it drops user configuration
++ // therefore dropins reconciliation can't load dropins plugins installed into user configuration
++ // after the user configuration has been dropped.
++ // It is necessary to unset this property.
++ //System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ //This is the first time we create the shared profile. Tag it as such and also remember the timestamp of the base
+ internalSetProfileStateProperty(profile, profile.getTimestamp(), IProfile.STATE_PROP_SHARED_INSTALL, IProfile.STATE_SHARED_INSTALL_VALUE_INITIAL);
+@@ -299,6 +308,13 @@
+ if (agent.getService(SERVICE_SHARED_INSTALL_NEW_TIMESTAMP) != null)
+ return false;
+
++ // if the property is set by OSGI, and there is no new timestamp (because of the previous condition)
++ // ignore current profile. This will happen only once, because SERVICE_SHARED_INSTALL_NEW_TIMESTAMP
++ // is set during profile reset.
++ if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))) { //$NON-NLS-1$ //$NON-NLS-2$
++ System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
++ return true;
++ }
+ String baseTimestamp = getBaseTimestamp(profile.getProfileId());
+ String extTimestamp = getExtTimeStamp();
+ if (baseTimestamp == null) {
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
+@@ -570,6 +570,7 @@
+
+ // get all IUs from all our repos
+ IQueryResult allIUs = getAllIUsFromRepos();
++ HashSet removedFromAllIUs = new HashSet();
+ for (Iterator iter = allIUs.iterator(); iter.hasNext();) {
+ final IInstallableUnit iu = iter.next();
+ IInstallableUnit existing = profileIUs.get(iu);
+@@ -583,6 +584,7 @@
+ // (and more expensive) way to find this out is to do an IU profile property query.
+ if (two == null) {
+ // the IU is already installed so don't mark it as a dropin now - see bug 404619.
++ removedFromAllIUs.add(iu);
+ iter.remove();
+ continue;
+ }
+@@ -625,7 +627,7 @@
+ }
+ // if the IU from the profile is in the "all available" list, then it is already added
+ // otherwise if it isn't in the repo then we have to remove it from the profile.
+- if (!all.contains(iu))
++ if (!all.contains(iu) && !removedFromAllIUs.contains(iu))
+ toRemove.add(iu);
+ }
+
+@@ -799,8 +801,8 @@
+ IStatus installerPlanStatus = engine.perform(plan.getInstallerPlan(), phaseSet, monitor);
+ if (!installerPlanStatus.isOK())
+ return installerPlanStatus;
+-
+- applyConfiguration(true);
++ if (isReconciliationApplicationRunning())
++ applyConfiguration(true);
+ }
+ return engine.perform(plan, phaseSet, monitor);
+ }
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java 2013-06-10 09:33:20.000000000 +0200
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java 2013-06-11 15:44:28.654682088 +0200
+@@ -145,7 +145,7 @@
+ }
+
+ public boolean performCancel() {
+- String[] buttons = new String[] {IDialogConstants.YES_LABEL, ProvUIMessages.MigrationPage_LATER_BUTTON, IDialogConstants.NO_LABEL};
++ String[] buttons = new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL};
+ MessageDialog dialog = new MessageDialog(getShell(), ProvUIMessages.MigrationPage_CONFIRMATION_TITLE, null, ProvUIMessages.MigrationPage_CONFIRMATION_DIALOG, MessageDialog.QUESTION, buttons, 2);
+
+ return rememberCancellationDecision(dialog.open());
diff --git a/SOURCES/eclipse-fix-startup-class-refresh.patch b/SOURCES/eclipse-fix-startup-class-refresh.patch
new file mode 100644
index 0000000..36c1404
--- /dev/null
+++ b/SOURCES/eclipse-fix-startup-class-refresh.patch
@@ -0,0 +1,7 @@
+--- rt.equinox.bundles/bundles/org.eclipse.equinox.common/META-INF/MANIFEST.MF.bak 2013-03-14 11:36:30.000000000 +0100
++++ rt.equinox.bundles/bundles/org.eclipse.equinox.common/META-INF/MANIFEST.MF 2013-04-23 19:28:14.777666704 +0200
+@@ -35,3 +35,4 @@
+ Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are specified for compatibility with 3.2
+ Eclipse-LazyStart: true
+ Bundle-ActivationPolicy: lazy
++Require-Capability: osgi.identity; filter:="(osgi.identity=org.eclipse.core.runtime)"; resolution:=optional
diff --git a/SOURCES/eclipse-help-doc-adjust-dependencies.patch b/SOURCES/eclipse-help-doc-adjust-dependencies.patch
new file mode 100644
index 0000000..f5a622f
--- /dev/null
+++ b/SOURCES/eclipse-help-doc-adjust-dependencies.patch
@@ -0,0 +1,54 @@
+diff --git a/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml b/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml
+index c63d1e1..8e7cc30 100644
+--- a/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml
++++ b/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml
+@@ -42,7 +42,7 @@
+ unpack="false"/>
+
+
+
+
+Date: Tue, 26 Feb 2013 21:25:42 +0100
+Subject: [PATCH] Adopt jetty 9
+
+diff --git rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF
+index deb06c3..f993d0e 100755
+--- rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF
++++ rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/META-INF/MANIFEST.MF
+@@ -9,23 +9,20 @@
+ Import-Package: javax.servlet;version="[2.6.0,4.0.0)",
+ javax.servlet.http;version="[2.6.0,4.0.0)",
+ org.eclipse.equinox.http.servlet;version="1.0.0",
+- org.eclipse.jetty.http;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.io.bio;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.io.nio;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server.bio;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server.handler;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server.nio;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server.session;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.server.ssl;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.servlet;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.util;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.util.component;version="[8.0.0,9.0.0)",
+- org.eclipse.jetty.util.log;version="[8.0.0,9.0.0)",
++ org.eclipse.jetty.http;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.server;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.server.handler;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.server.nio;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.server.session;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.servlet;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.util;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.util.component;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.util.log;version="[9.0.0,10.0.0)",
++ org.eclipse.jetty.util.ssl;version="[9.0.0,10.0.0)",
+ org.osgi.framework;version="1.3.0",
+ org.osgi.service.cm;version="[1.4, 2.0)",
+ org.osgi.service.startlevel;version="1.0"
+-Bundle-RequiredExecutionEnvironment: J2SE-1.5
++Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+ Export-Package: org.eclipse.equinox.http.jetty;version="1.1.0"
+ Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are specified for compatibility with 3.2
+ Eclipse-LazyStart: true
+diff --git rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch
+deleted file mode 100644
+index d55a157..0000000
+--- rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/jetty6-to-jetty7.patch
++++ /dev/null
+@@ -1,204 +0,0 @@
+-Index: .project
+-===================================================================
+-RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/.project,v
+-retrieving revision 1.3
+-diff -u -r1.3 .project
+---- .project 25 Apr 2008 14:38:54 -0000 1.3
+-+++ .project 16 Apr 2010 21:35:58 -0000
+-@@ -1,6 +1,6 @@
+-
+-
+-- org.eclipse.equinox.http.jetty6
+-+ org.eclipse.equinox.http.jetty7
+-
+-
+-
+-Index: META-INF/MANIFEST.MF
+-===================================================================
+-RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/META-INF/MANIFEST.MF,v
+-retrieving revision 1.24
+-diff -u -r1.24 MANIFEST.MF
+---- META-INF/MANIFEST.MF 24 Apr 2009 20:54:41 -0000 1.24
+-+++ META-INF/MANIFEST.MF 16 Apr 2010 21:35:58 -0000
+-@@ -4,23 +4,28 @@
+- Bundle-Vendor: %providerName
+- Bundle-Localization: plugin
+- Bundle-SymbolicName: org.eclipse.equinox.http.jetty
+--Bundle-Version: 2.0.0.qualifier
+-+Bundle-Version: 3.0.0.qualifier
+- Bundle-Activator: org.eclipse.equinox.http.jetty.internal.Activator
+- Import-Package: javax.servlet;version="[2.5.0,2.6.0)",
+- javax.servlet.http;version="[2.5.0,2.6.0)",
+- org.eclipse.equinox.http.servlet;version="1.0.0",
+-- org.mortbay.component;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty.bio;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty.handler;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty.nio;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty.security;version="[6.1.0,7.0.0)",
+-- org.mortbay.jetty.servlet;version="[6.1.0,7.0.0)",
+-- org.mortbay.log;version="[6.1.0,7.0.0)",
+-+ org.eclipse.jetty.http;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.io.bio;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.io.nio;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server.bio;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server.handler;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server.nio;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server.session;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.server.ssl;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.servlet;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.util;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.util.component;version="[7.0.0,8.0.0)",
+-+ org.eclipse.jetty.util.log;version="[7.0.0,8.0.0)",
+- org.osgi.framework;version="1.3.0",
+- org.osgi.service.cm;version="1.2.0",
+- org.osgi.service.startlevel;version="1.0"
+--Bundle-RequiredExecutionEnvironment: J2SE-1.4
+-+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+- Export-Package: org.eclipse.equinox.http.jetty;version="1.1.0"
+- Comment-Header: Both Eclipse-LazyStart and Bundle-ActivationPolicy are specified for compatibility with 3.2
+- Eclipse-LazyStart: true
+-Index: src/org/eclipse/equinox/http/jetty/JettyCustomizer.java
+-===================================================================
+-RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/eclipse/equinox/http/jetty/JettyCustomizer.java,v
+-retrieving revision 1.2
+-diff -u -r1.2 JettyCustomizer.java
+---- src/org/eclipse/equinox/http/jetty/JettyCustomizer.java 17 Apr 2009 21:58:58 -0000 1.2
+-+++ src/org/eclipse/equinox/http/jetty/JettyCustomizer.java 16 Apr 2010 21:35:58 -0000
+-@@ -33,13 +33,13 @@
+- * framework. Changing those may cause breakage and thus must be avoided.
+- *
+- * @param context
+-- * the Jetty context; in case of Jetty 6 the context is of
+-- * type org.mortbay.jetty.servlet.Context
+-+ * the Jetty context; in case of Jetty 7 the context is of
+-+ * type org.eclipse.jetty.servlet.ServletContextHandler
+- * @param settings
+- * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)}
+- * @return context
+-- * the customized context; in case of Jetty 6 the context is of
+-- * type org.mortbay.jetty.servlet.Context
+-+ * the customized context; in case of Jetty 7 the context is of
+-+ * type org.eclipse.jetty.servlet.ServletContextHandler
+- */
+- public Object customizeContext(Object context, Dictionary settings) {
+- return context;
+-@@ -52,13 +52,13 @@
+- * Implementors may perform additional configuration of the Jetty Connector.
+- *
+- * @param connector
+-- * the Jetty connector; in case of Jetty 6 the context is of
+-- * type org.mortbay.jetty.Connector
+-+ * the Jetty connector; in case of Jetty 7 the context is of
+-+ * type org.eclipse.jetty.server.Connector
+- * @param settings
+- * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)}
+- * @return connector
+- * the customized connector; in case of Jetty 6 the connector is of
+-- * type org.mortbay.jetty.Connector
+-+ * type org.eclipse.jetty.server.Connector
+- */
+- public Object customizeHttpConnector(Object connector, Dictionary settings) {
+- return connector;
+-@@ -71,13 +71,13 @@
+- * Implementors may perform additional configuration of the Jetty Connector.
+- *
+- * @param connector
+-- * the Jetty connector; in case of Jetty 6 the connector is of
+-- * type org.mortbay.jetty.Connector
+-+ * the Jetty connector; in case of Jetty 7 the connector is of
+-+ * type oorg.eclipse.jetty.server.Connector
+- * @param settings
+- * the settings as passed to {@link JettyConfigurator#startServer(String, Dictionary)}
+- * @return connector
+-- * the customized connector; in case of Jetty 6 the connector is of
+-- * type org.mortbay.jetty.Connector
+-+ * the customized connector; in case of Jetty 7 the connector is of
+-+ * type org.eclipse.jetty.server.Connector
+- */
+- public Object customizeHttpsConnector(Object connector, Dictionary settings) {
+- return connector;
+-Index: src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java
+-===================================================================
+-RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java,v
+-retrieving revision 1.20
+-diff -u -r1.20 HttpServerManager.java
+---- src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 20 May 2009 21:12:37 -0000 1.20
+-+++ src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 16 Apr 2010 21:35:58 -0000
+-@@ -18,12 +18,15 @@
+- import org.eclipse.equinox.http.jetty.JettyConstants;
+- import org.eclipse.equinox.http.jetty.JettyCustomizer;
+- import org.eclipse.equinox.http.servlet.HttpServiceServlet;
+--import org.mortbay.jetty.Connector;
+--import org.mortbay.jetty.Server;
+--import org.mortbay.jetty.bio.SocketConnector;
+--import org.mortbay.jetty.nio.SelectChannelConnector;
+--import org.mortbay.jetty.security.SslSocketConnector;
+--import org.mortbay.jetty.servlet.*;
+-+import org.eclipse.jetty.server.Connector;
+-+import org.eclipse.jetty.server.Server;
+-+import org.eclipse.jetty.server.bio.SocketConnector;
+-+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+-+import org.eclipse.jetty.server.session.HashSessionManager;
+-+import org.eclipse.jetty.server.session.SessionHandler;
+-+import org.eclipse.jetty.server.ssl.SslSocketConnector;
+-+import org.eclipse.jetty.servlet.ServletContextHandler;
+-+import org.eclipse.jetty.servlet.ServletHolder;
+- import org.osgi.framework.Constants;
+- import org.osgi.service.cm.ConfigurationException;
+- import org.osgi.service.cm.ManagedServiceFactory;
+-@@ -98,12 +101,12 @@
+- if (otherInfo != null)
+- holder.setInitParameter(JettyConstants.OTHER_INFO, otherInfo);
+-
+-- Context httpContext = createHttpContext(dictionary);
+-+ ServletContextHandler httpContext = createHttpContext(dictionary);
+- if (null != customizer)
+-- httpContext = (Context) customizer.customizeContext(httpContext, dictionary);
+-+ httpContext = (ServletContextHandler) customizer.customizeContext(httpContext, dictionary);
+-
+- httpContext.addServlet(holder, "/*"); //$NON-NLS-1$
+-- server.addHandler(httpContext);
+-+ server.setHandler(httpContext);
+-
+- try {
+- server.start();
+-@@ -241,8 +244,8 @@
+- return sslConnector;
+- }
+-
+-- private Context createHttpContext(Dictionary dictionary) {
+-- Context httpContext = new Context();
+-+ private ServletContextHandler createHttpContext(Dictionary dictionary) {
+-+ ServletContextHandler httpContext = new ServletContextHandler();
+- httpContext.setAttribute(INTERNAL_CONTEXT_CLASSLOADER, Thread.currentThread().getContextClassLoader());
+- httpContext.setClassLoader(this.getClass().getClassLoader());
+-
+-Index: src/org/slf4j/Logger.java
+-===================================================================
+-RCS file: /cvsroot/rt/org.eclipse.equinox/compendium/bundles/org.eclipse.equinox.http.jetty6/src/org/slf4j/Logger.java,v
+-retrieving revision 1.2
+-diff -u -r1.2 Logger.java
+---- src/org/slf4j/Logger.java 17 Apr 2009 20:24:43 -0000 1.2
+-+++ src/org/slf4j/Logger.java 16 Apr 2010 21:35:58 -0000
+-@@ -10,8 +10,8 @@
+- *******************************************************************************/
+- package org.slf4j;
+-
+--import org.mortbay.log.Log;
+--import org.mortbay.log.StdErrLog;
+-+import org.eclipse.jetty.util.log.Log;
+-+import org.eclipse.jetty.util.log.StdErrLog;
+-
+- // NOTE: This class is not a real SLF4J implementation and MUST NOT be exported as a general implementation!
+- // It is a place-holder to allow overriding the default logging done in Jetty
+-@@ -80,7 +80,7 @@
+- setDebugEnabled(true);
+- }
+-
+-- public org.mortbay.log.Logger getLogger(String name) {
+-+ public org.eclipse.jetty.util.log.Logger getLogger(String name) {
+- if ((name == null && this.localName == null) || (name != null && name.equals(this.localName)))
+- return this;
+- return new Logger(name);
+--- rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/EquinoxStdErrLog.java.orig 2014-03-24 10:46:20.000000000 +0000
++++ rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/EquinoxStdErrLog.java 2014-03-24 14:59:31.662164402 +0000
+@@ -169,6 +169,12 @@ public class EquinoxStdErrLog implements Logger {
+ realLogger.debug(thrown);
+ }
+
++ public void debug(String msg, long value) {
++ if (threshold > DEBUG)
++ return;
++ realLogger.debug(msg, value);
++ }
++
+ public void ignore(Throwable ignored) {
+ // Just post this to debug
+ debug(ignored);
+--- rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java.orig 2014-03-24 10:46:20.000000000 +0000
++++ rt.equinox.bundles/bundles/org.eclipse.equinox.http.jetty8/src/org/eclipse/equinox/http/jetty/internal/HttpServerManager.java 2014-03-24 14:59:31.662164402 +0000
+@@ -18,21 +18,21 @@
+ import org.eclipse.equinox.http.jetty.JettyConstants;
+ import org.eclipse.equinox.http.jetty.JettyCustomizer;
+ import org.eclipse.equinox.http.servlet.HttpServiceServlet;
+-import org.eclipse.jetty.server.Connector;
+-import org.eclipse.jetty.server.Server;
+-import org.eclipse.jetty.server.bio.SocketConnector;
+-import org.eclipse.jetty.server.nio.SelectChannelConnector;
++import org.eclipse.jetty.server.*;
+ import org.eclipse.jetty.server.session.HashSessionManager;
+ import org.eclipse.jetty.server.session.SessionHandler;
+-import org.eclipse.jetty.server.ssl.SslSocketConnector;
+ import org.eclipse.jetty.servlet.ServletContextHandler;
+ import org.eclipse.jetty.servlet.ServletHolder;
++import org.eclipse.jetty.util.ssl.SslContextFactory;
+ import org.osgi.framework.Constants;
+ import org.osgi.service.cm.ConfigurationException;
+ import org.osgi.service.cm.ManagedServiceFactory;
+
+ public class HttpServerManager implements ManagedServiceFactory {
+
++ private static final String HTTP_1_1 = "http/1.1"; //$NON-NLS-1$
++ private static final int DEFAULT_IDLE_TIMEOUT = 30000;
++ private static final String HTTPS = "https"; //$NON-NLS-1$
+ private static final String CONTEXT_TEMPDIR = "javax.servlet.context.tempdir"; //$NON-NLS-1$
+ private static final String DIR_PREFIX = "pid_"; //$NON-NLS-1$
+ private static final String INTERNAL_CONTEXT_CLASSLOADER = "org.eclipse.equinox.http.jetty.internal.ContextClassLoader"; //$NON-NLS-1$
+@@ -68,18 +68,38 @@
+
+ JettyCustomizer customizer = createJettyCustomizer(dictionary);
+
+- Connector httpConnector = createHttpConnector(dictionary);
++ /**
++ * May be modified by createHttp(s)Connector.
++ */
++ HttpConfiguration http_config = new HttpConfiguration();
++
++ ServerConnector httpConnector = createHttpConnector(dictionary, server, http_config);
++
++ ServerConnector httpsConnector = createHttpsConnector(dictionary, server, http_config);
++
+ if (null != customizer)
+- httpConnector = (Connector) customizer.customizeHttpConnector(httpConnector, dictionary);
++ httpConnector = (ServerConnector) customizer.customizeHttpConnector(httpConnector, dictionary);
+
+- if (httpConnector != null)
++ if (httpConnector != null) {
++ try {
++ httpConnector.open();
++ } catch (IOException e) {
++ e.printStackTrace();
++ }
+ server.addConnector(httpConnector);
++ }
+
+- Connector httpsConnector = createHttpsConnector(dictionary);
+ if (null != customizer)
+- httpsConnector = (Connector) customizer.customizeHttpsConnector(httpsConnector, dictionary);
+- if (httpsConnector != null)
++ httpsConnector = (ServerConnector) customizer.customizeHttpsConnector(httpsConnector, dictionary);
++
++ if (httpsConnector != null) {
++ try {
++ httpsConnector.open();
++ } catch (IOException e) {
++ e.printStackTrace();
++ }
+ server.addConnector(httpsConnector);
++ }
+
+ ServletHolder holder = new ServletHolder(new InternalHttpServiceServlet());
+ holder.setInitOrder(0);
+@@ -111,11 +131,76 @@
+ try {
+ server.start();
+ } catch (Exception e) {
+- throw new ConfigurationException(pid, e.getMessage(), e);
++ //throw new ConfigurationException(pid, e.getMessage(), e);
+ }
+ servers.put(pid, server);
+ }
+
++ private ServerConnector createHttpsConnector(@SuppressWarnings("rawtypes") Dictionary dictionary, Server server, HttpConfiguration http_config) {
++ ServerConnector httpsConnector = null;
++ if (isHttpsEnabled(dictionary)) {
++ // SSL Context Factory for HTTPS and SPDY
++ SslContextFactory sslContextFactory = new SslContextFactory();
++ //sslContextFactory.setKeyStore(KeyS)
++ //Not sure if the next tree are properly migrated from jetty 8...
++ sslContextFactory.setKeyStorePath((String) dictionary.get(JettyConstants.SSL_KEYSTORE));
++ sslContextFactory.setKeyStorePassword((String) dictionary.get(JettyConstants.SSL_PASSWORD));
++ sslContextFactory.setKeyManagerPassword((String) dictionary.get(JettyConstants.SSL_KEYPASSWORD));
++
++ String keystoreType = (String) dictionary.get(JettyConstants.SSL_KEYSTORETYPE);
++ if (keystoreType != null) {
++ sslContextFactory.setKeyStoreType(keystoreType);
++ }
++
++ String protocol = (String) dictionary.get(JettyConstants.SSL_PROTOCOL);
++ if (protocol != null) {
++ sslContextFactory.setProtocol(protocol);
++ }
++
++ Object wantClientAuth = dictionary.get(JettyConstants.SSL_WANTCLIENTAUTH);
++ if (wantClientAuth != null) {
++ if (wantClientAuth instanceof String)
++ wantClientAuth = Boolean.valueOf((String) wantClientAuth);
++
++ sslContextFactory.setWantClientAuth((Boolean) wantClientAuth);
++ }
++
++ Object needClientAuth = dictionary.get(JettyConstants.SSL_NEEDCLIENTAUTH);
++ if (needClientAuth != null) {
++ if (needClientAuth instanceof String)
++ needClientAuth = Boolean.valueOf((String) needClientAuth);
++
++ sslContextFactory.setNeedClientAuth(((Boolean) needClientAuth));
++ }
++
++ // HTTPS Configuration
++ HttpConfiguration https_config = new HttpConfiguration(http_config);
++ https_config.addCustomizer(new SecureRequestCustomizer());
++
++ // HTTPS connector
++ httpsConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, HTTP_1_1), new HttpConnectionFactory(https_config));
++ httpsConnector.setPort(getIntProperty(dictionary, JettyConstants.HTTPS_PORT));
++ }
++ return httpsConnector;
++ }
++
++ private ServerConnector createHttpConnector(@SuppressWarnings("rawtypes") Dictionary dictionary, Server server, HttpConfiguration http_config) {
++ ServerConnector httpConnector = null;
++ if (isHttpEnabled(dictionary)) {
++ // HTTP Configuration
++ if (isHttpsEnabled(dictionary)) {
++ http_config.setSecureScheme(HTTPS);
++ http_config.setSecurePort(getIntProperty(dictionary, JettyConstants.HTTPS_PORT));
++ }
++ // HTTP connector
++ httpConnector = new ServerConnector(server, new HttpConnectionFactory(http_config));
++ httpConnector.setPort(getIntProperty(dictionary, JettyConstants.HTTP_PORT));
++ httpConnector.setHost((String) dictionary.get(JettyConstants.HTTP_HOST));
++ httpConnector.setIdleTimeout(DEFAULT_IDLE_TIMEOUT);
++ }
++ return httpConnector;
++ }
++
+ public synchronized void shutdown() throws Exception {
+ for (Iterator it = servers.values().iterator(); it.hasNext();) {
+ Server server = it.next();
+@@ -124,155 +209,46 @@
+ servers.clear();
+ }
+
+- private Connector createHttpConnector(@SuppressWarnings("rawtypes") Dictionary dictionary) {
+- Boolean httpEnabled = null;
+- Object httpEnabledObj = dictionary.get(JettyConstants.HTTP_ENABLED);
+- if (httpEnabledObj instanceof Boolean) {
+- httpEnabled = (Boolean) httpEnabledObj;
+- } else if (httpEnabledObj instanceof String) {
+- httpEnabled = Boolean.parseBoolean(httpEnabledObj.toString());
+- }
+- if (httpEnabled != null && !httpEnabled.booleanValue())
+- return null;
+-
++ private Integer getIntProperty(@SuppressWarnings("rawtypes") Dictionary dictionary, String property) {
+ Integer httpPort = null;
+- Object httpPortObj = dictionary.get(JettyConstants.HTTP_PORT);
++ Object httpPortObj = dictionary.get(property);
+ if (httpPortObj instanceof Integer) {
+ httpPort = (Integer) httpPortObj;
+ } else if (httpPortObj instanceof String) {
+ httpPort = Integer.valueOf(httpPortObj.toString());
+ }
+- if (httpPort == null)
+- return null;
+-
+- Boolean nioEnabled = null;
+- Object nioEnabledObj = dictionary.get(JettyConstants.HTTP_NIO);
+- if (nioEnabledObj instanceof Boolean) {
+- nioEnabled = (Boolean) nioEnabledObj;
+- } else if (nioEnabledObj instanceof String) {
+- nioEnabled = Boolean.parseBoolean(nioEnabledObj.toString());
+- }
+- if (nioEnabled == null)
+- nioEnabled = getDefaultNIOEnablement();
+-
+- Connector connector;
+- if (nioEnabled.booleanValue())
+- connector = new SelectChannelConnector();
+- else
+- connector = new SocketConnector();
+-
+- connector.setPort(httpPort.intValue());
+-
+- String httpHost = (String) dictionary.get(JettyConstants.HTTP_HOST);
+- if (httpHost != null) {
+- connector.setHost(httpHost);
+- }
+-
+- if (connector.getPort() == 0) {
+- try {
+- connector.open();
+- } catch (IOException e) {
+- // this would be unexpected since we're opening the next available port
+- e.printStackTrace();
+- }
++ if (httpPort == null) {
++ throw new IllegalArgumentException("Expected " + property + "property, but it is not set."); //$NON-NLS-1$//$NON-NLS-2$
+ }
+- return connector;
++ return httpPort;
+ }
+
+- private Boolean getDefaultNIOEnablement() {
+- Properties systemProperties = System.getProperties();
+- String javaVendor = systemProperties.getProperty("java.vendor", ""); //$NON-NLS-1$ //$NON-NLS-2$
+- if (javaVendor.equals("IBM Corporation")) { //$NON-NLS-1$
+- String javaVersion = systemProperties.getProperty("java.version", ""); //$NON-NLS-1$ //$NON-NLS-2$
+- if (javaVersion.startsWith("1.4")) //$NON-NLS-1$
+- return Boolean.FALSE;
+- // Note: no problems currently logged with 1.5
+- if (javaVersion.equals("1.6.0")) { //$NON-NLS-1$
+- String jclVersion = systemProperties.getProperty("java.jcl.version", ""); //$NON-NLS-1$ //$NON-NLS-2$
+- if (jclVersion.startsWith("2007")) //$NON-NLS-1$
+- return Boolean.FALSE;
+- if (jclVersion.startsWith("2008") && !jclVersion.startsWith("200811") && !jclVersion.startsWith("200812")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+- return Boolean.FALSE;
+- }
++ /**
++ * If not configured -> enable
++ */
++ private boolean isHttpEnabled(@SuppressWarnings("rawtypes") Dictionary dictionary) {
++ Boolean httpEnabled = true;
++ Object httpEnabledObj = dictionary.get(JettyConstants.HTTP_ENABLED);
++ if (httpEnabledObj instanceof Boolean) {
++ httpEnabled = (Boolean) httpEnabledObj;
++ } else if (httpEnabledObj instanceof String) {
++ httpEnabled = Boolean.parseBoolean(httpEnabledObj.toString());
+ }
+- return Boolean.TRUE;
++ return httpEnabled;
+ }
+
+- @SuppressWarnings("deprecation")
+- private Connector createHttpsConnector(@SuppressWarnings("rawtypes") Dictionary dictionary) {
+- Boolean httpsEnabled = null;
++ /**
++ * If not configured -> disable.
++ */
++ private boolean isHttpsEnabled(@SuppressWarnings("rawtypes") Dictionary dictionary) {
++ Boolean httpsEnabled = false;
+ Object httpsEnabledObj = dictionary.get(JettyConstants.HTTPS_ENABLED);
+ if (httpsEnabledObj instanceof Boolean) {
+ httpsEnabled = (Boolean) httpsEnabledObj;
+ } else if (httpsEnabledObj instanceof String) {
+ httpsEnabled = Boolean.parseBoolean(httpsEnabledObj.toString());
+ }
+- if (httpsEnabled == null || !httpsEnabled.booleanValue())
+- return null;
+-
+- Integer httpsPort = null;
+- Object httpsPortObj = dictionary.get(JettyConstants.HTTPS_PORT);
+- if (httpsPortObj instanceof Integer) {
+- httpsPort = (Integer) httpsPortObj;
+- } else if (httpsPortObj instanceof String) {
+- httpsPort = Integer.valueOf(httpsPortObj.toString());
+- }
+- if (httpsPort == null)
+- return null;
+-
+- SslSocketConnector sslConnector = new SslSocketConnector();
+- sslConnector.setPort(httpsPort.intValue());
+-
+- String httpsHost = (String) dictionary.get(JettyConstants.HTTPS_HOST);
+- if (httpsHost != null) {
+- sslConnector.setHost(httpsHost);
+- }
+-
+- String keyStore = (String) dictionary.get(JettyConstants.SSL_KEYSTORE);
+- if (keyStore != null)
+- sslConnector.setKeystore(keyStore);
+-
+- String password = (String) dictionary.get(JettyConstants.SSL_PASSWORD);
+- if (password != null)
+- sslConnector.setPassword(password);
+-
+- String keyPassword = (String) dictionary.get(JettyConstants.SSL_KEYPASSWORD);
+- if (keyPassword != null)
+- sslConnector.setKeyPassword(keyPassword);
+-
+- Object needClientAuth = dictionary.get(JettyConstants.SSL_NEEDCLIENTAUTH);
+- if (needClientAuth != null) {
+- if (needClientAuth instanceof String)
+- needClientAuth = Boolean.valueOf((String) needClientAuth);
+-
+- sslConnector.setNeedClientAuth(((Boolean) needClientAuth).booleanValue());
+- }
+-
+- Object wantClientAuth = dictionary.get(JettyConstants.SSL_WANTCLIENTAUTH);
+- if (wantClientAuth != null) {
+- if (wantClientAuth instanceof String)
+- wantClientAuth = Boolean.valueOf((String) wantClientAuth);
+-
+- sslConnector.setWantClientAuth(((Boolean) wantClientAuth).booleanValue());
+- }
+-
+- String protocol = (String) dictionary.get(JettyConstants.SSL_PROTOCOL);
+- if (protocol != null)
+- sslConnector.setProtocol(protocol);
+-
+- String keystoreType = (String) dictionary.get(JettyConstants.SSL_KEYSTORETYPE);
+- if (keystoreType != null)
+- sslConnector.setKeystoreType(keystoreType);
+-
+- if (sslConnector.getPort() == 0) {
+- try {
+- sslConnector.open();
+- } catch (IOException e) {
+- // this would be unexpected since we're opening the next available port
+- e.printStackTrace();
+- }
+- }
+- return sslConnector;
++ return httpsEnabled;
+ }
+
+ private ServletContextHandler createHttpContext(@SuppressWarnings("rawtypes") Dictionary dictionary) {
diff --git a/SOURCES/eclipse-lucene-4.patch b/SOURCES/eclipse-lucene-4.patch
new file mode 100644
index 0000000..e008540
--- /dev/null
+++ b/SOURCES/eclipse-lucene-4.patch
@@ -0,0 +1,448 @@
+diff --git a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
+index 4e6786c..49dc51b 100644
+--- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
++++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/Analyzer_en.java
+@@ -10,10 +10,14 @@
+ *******************************************************************************/
+ package org.eclipse.help.internal.search;
+ import java.io.*;
+-import java.util.HashSet;
+-import java.util.Set;
++import java.util.ArrayList;
++import java.util.List;
+
+ import org.apache.lucene.analysis.*;
++import org.apache.lucene.analysis.en.*;
++import org.apache.lucene.analysis.core.*;
++import org.apache.lucene.analysis.util.*;
++import org.apache.lucene.util.Version;
+ /**
+ * Lucene Analyzer for English. LowerCaseTokenizer->StopFilter->PorterStemFilter
+ */
+@@ -25,18 +29,22 @@ public final class Analyzer_en extends Analyzer {
+ super();
+ }
+ /**
+- * Creates a TokenStream which tokenizes all the text in the provided
++ * Creates a TokenStreamComponents which tokenizes all the text in the provided
+ * Reader.
+ */
+- public final TokenStream tokenStream(String fieldName, Reader reader) {
+- return new PorterStemFilter(new StopFilter(false, new LowerCaseAndDigitsTokenizer(reader), getStopWords(), false));
++ @Override
++ public final TokenStreamComponents createComponents(String fieldName, Reader reader) {
++ CharArraySet stopWordsSet = StopFilter.makeStopSet(Version.LUCENE_47, getStopWords(), true);
++ Tokenizer source = new LowerCaseAndDigitsTokenizer(reader);
++ TokenStream filter = new PorterStemFilter(new StopFilter(Version.LUCENE_47, source, stopWordsSet));
++ return new TokenStreamComponents(source, filter);
+ }
+
+- 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/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/DefaultAnalyzer.java
+index 50258d2..f72615f 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
+@@ -15,8 +15,10 @@ 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.core.LowerCaseFilter;
++import org.apache.lucene.analysis.Tokenizer;
+ import org.apache.lucene.analysis.TokenStream;
++import org.apache.lucene.util.Version;
+
+ import org.eclipse.help.internal.base.HelpBasePlugin;
+
+@@ -82,11 +84,14 @@ public final class DefaultAnalyzer extends Analyzer {
+ }
+
+ /**
+- * Creates a TokenStream which tokenizes all the text in the provided
++ * Creates a TokenStreamComponents which tokenizes all the text in the provided
+ * Reader.
+ */
+- public final TokenStream tokenStream(String fieldName, Reader reader) {
+- return new LowerCaseFilter(new WordTokenStream(fieldName, reader, locale));
++ @Override
++ public final TokenStreamComponents createComponents(String fieldName, Reader reader) {
++ Tokenizer source = new WordTokenStream(fieldName, reader, locale);
++ LowerCaseFilter filter = new LowerCaseFilter(Version.LUCENE_47, 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/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/LowerCaseAndDigitsTokenizer.java
+index 0dd3943..d101ae9 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
+@@ -12,7 +12,8 @@ package org.eclipse.help.internal.search;
+
+ import java.io.*;
+
+-import org.apache.lucene.analysis.*;
++import org.apache.lucene.analysis.util.*;
++import org.apache.lucene.util.Version;
+
+ /**
+ * Tokenizer breaking words around letters or digits.
+@@ -20,13 +21,14 @@ import org.apache.lucene.analysis.*;
+ public class LowerCaseAndDigitsTokenizer extends CharTokenizer {
+
+ public LowerCaseAndDigitsTokenizer(Reader input) {
+- super(input);
++ super(Version.LUCENE_47, input);
+ }
+ protected char normalize(char c) {
+ return Character.toLowerCase(c);
+ }
+
+- protected boolean isTokenChar(char c) {
++ @Override
++ 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/QueryBuilder.java b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
+index 00c2799..9f9962d 100644
+--- a/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
++++ b/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/QueryBuilder.java
+@@ -243,16 +243,24 @@ public class QueryBuilder {
+ private List analyzeText(Analyzer analyzer, String fieldName, String text) {
+ List words = new ArrayList(1);
+ Reader reader = new StringReader(text);
+- TokenStream tStream = analyzer.tokenStream(fieldName, reader);
+
+- CharTermAttribute termAttribute = (CharTermAttribute) tStream.getAttribute(CharTermAttribute.class);
++ TokenStream tStream = null;
+ try {
++ tStream = analyzer.tokenStream(fieldName, reader);
++ tStream.reset();
++ CharTermAttribute termAttribute = (CharTermAttribute) tStream.getAttribute(CharTermAttribute.class);
+ while (tStream.incrementToken()) {
+ String term = termAttribute.toString();
+ words.add(term);
+ }
+- reader.close();
+ } catch (IOException ioe) {
++ } finally {
++ if (tStream != null) {
++ try {
++ tStream.close();
++ } catch (IOException e) {
++ }
++ }
+ }
+
+ return words;
+diff --git 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
+index e860c8d..0d5a8b6 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
+@@ -31,13 +31,20 @@ import java.util.Set;
+ import java.util.zip.ZipEntry;
+ import java.util.zip.ZipInputStream;
+
++import org.apache.lucene.analysis.Analyzer;
++import org.apache.lucene.analysis.miscellaneous.LimitTokenCountAnalyzer;
+ import org.apache.lucene.document.Document;
+ import org.apache.lucene.document.Field;
++import org.apache.lucene.index.AtomicReader;
++import org.apache.lucene.index.DirectoryReader;
++import org.apache.lucene.index.DocsEnum;
+ import org.apache.lucene.index.IndexReader;
+ import org.apache.lucene.index.IndexWriter;
++import org.apache.lucene.index.IndexWriterConfig;
++import org.apache.lucene.index.IndexWriterConfig.OpenMode;
++import org.apache.lucene.index.LogDocMergePolicy;
++import org.apache.lucene.index.SlowCompositeReaderWrapper;
+ import org.apache.lucene.index.Term;
+-import org.apache.lucene.index.TermDocs;
+-import org.apache.lucene.index.IndexWriter.MaxFieldLength;
+ import org.apache.lucene.search.BooleanQuery;
+ import org.apache.lucene.search.IndexSearcher;
+ import org.apache.lucene.search.Query;
+@@ -265,10 +272,10 @@ public class SearchIndex implements IHelpSearchIndex {
+ if (iw != null) {
+ iw.close();
+ }
+- boolean create = false;
++ OpenMode create = OpenMode.APPEND;
+ if (!indexDir.exists() || !isLuceneCompatible() || !isAnalyzerCompatible()
+ || inconsistencyFile.exists() && firstOperation) {
+- create = true;
++ create = OpenMode.CREATE;
+ indexDir.mkdirs();
+ if (!indexDir.exists())
+ return false; // unable to setup index directory
+@@ -276,9 +283,13 @@ public class SearchIndex implements IHelpSearchIndex {
+ indexedDocs = new HelpProperties(INDEXED_DOCS_FILE, indexDir);
+ indexedDocs.restore();
+ setInconsistent(true);
+- MaxFieldLength max = new MaxFieldLength(1000000);
+- iw = new IndexWriter(luceneDirectory, analyzerDescriptor.getAnalyzer(), create, max);
+- iw.setMergeFactor(20);
++ Analyzer wrapper = new LimitTokenCountAnalyzer(analyzerDescriptor.getAnalyzer(), 1000000);
++ IndexWriterConfig iconfig = new IndexWriterConfig(org.apache.lucene.util.Version.LUCENE_47, wrapper);
++ iconfig.setOpenMode(create);
++ LogDocMergePolicy policy = new LogDocMergePolicy();
++ policy.setMergeFactor(20);
++ iconfig.setMergePolicy(policy);
++ iw = new IndexWriter(luceneDirectory, iconfig);
+ return true;
+ } catch (IOException e) {
+ HelpBasePlugin.logError("Exception occurred in search indexing at beginAddBatch.", e); //$NON-NLS-1$
+@@ -297,7 +308,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ 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$
+@@ -313,7 +324,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ 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$
+@@ -331,7 +342,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ 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,
+@@ -350,7 +361,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ if (iw == null)
+ return false;
+ if (optimize)
+- iw.optimize();
++ iw.forceMerge(1);
+ iw.close();
+ iw = null;
+ // save the update info:
+@@ -369,7 +380,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ * 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;
+@@ -401,7 +412,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ * 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;
+@@ -505,8 +516,8 @@ public class SearchIndex implements IHelpSearchIndex {
+ }
+ Directory[] luceneDirs = dirList.toArray(new Directory[dirList.size()]);
+ try {
+- iw.addIndexesNoOptimize(luceneDirs);
+- iw.optimize();
++ iw.addIndexes(luceneDirs);
++ iw.forceMerge(1);
+ } catch (IOException ioe) {
+ HelpBasePlugin.logError("Merging search indexes failed.", ioe); //$NON-NLS-1$
+ return new HashMap();
+@@ -515,18 +526,19 @@ public class SearchIndex implements IHelpSearchIndex {
+ }
+
+ public IStatus removeDuplicates(String name, String[] index_paths) {
+- TermDocs hrefDocs = null;
+- TermDocs indexDocs = null;
+- Term hrefTerm = new Term(FIELD_NAME, name);
+ try {
++ AtomicReader ar = SlowCompositeReaderWrapper.wrap(ir);
++ DocsEnum hrefDocs = null;
++ DocsEnum 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.termDocsEnum(hrefTerm);
++ indexDocs = ar.termDocsEnum(indexTerm);
+ } else {
+- hrefDocs.seek(hrefTerm);
+- indexDocs.seek(indexTerm);
++ hrefDocs = ar.termDocsEnum(hrefTerm);
++ indexDocs = ar.termDocsEnum(indexTerm);
+ }
+ removeDocuments(hrefDocs, indexDocs);
+ }
+@@ -535,19 +547,6 @@ public class SearchIndex implements IHelpSearchIndex {
+ "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;
+ }
+@@ -559,33 +558,33 @@ public class SearchIndex implements IHelpSearchIndex {
+ * @param docs2
+ * @throws IOException
+ */
+- private void removeDocuments(TermDocs doc1, TermDocs docs2) throws IOException {
+- if (!doc1.next()) {
++ private void removeDocuments(DocsEnum doc1, DocsEnum docs2) throws IOException {
++ if (doc1.nextDoc() == DocsEnum.NO_MORE_DOCS) {
+ return;
+ }
+- if (!docs2.next()) {
++ if (docs2.nextDoc() == DocsEnum.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()) == DocsEnum.NO_MORE_DOCS) {
++ if (doc1.nextDoc() == DocsEnum.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()) == DocsEnum.NO_MORE_DOCS) {
++ if (doc1.nextDoc() == DocsEnum.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() == DocsEnum.NO_MORE_DOCS) {
+ return;
+ }
+- if (!docs2.next()) {
++ if (docs2.nextDoc() == DocsEnum.NO_MORE_DOCS) {
+ return;
+ }
+ }
+@@ -792,7 +791,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ public void openSearcher() throws IOException {
+ synchronized (searcherCreateLock) {
+ if (searcher == null) {
+- searcher = new IndexSearcher(luceneDirectory, false);
++ searcher = new IndexSearcher(DirectoryReader.open(luceneDirectory));
+ }
+ }
+ }
+@@ -814,7 +813,7 @@ public class SearchIndex implements IHelpSearchIndex {
+ if (searches.isEmpty()) {
+ if (searcher != null) {
+ try {
+- searcher.close();
++ searcher.getIndexReader().close();
+ } catch (IOException ioe) {
+ }
+ }
+@@ -888,9 +887,11 @@ public class SearchIndex implements IHelpSearchIndex {
+ */
+ private void cleanOldIndex() {
+ IndexWriter cleaner = null;
+- MaxFieldLength max = new MaxFieldLength(10000);
+ try {
+- cleaner = new IndexWriter(luceneDirectory, analyzerDescriptor.getAnalyzer(), true, max);
++ Analyzer wrapper = new LimitTokenCountAnalyzer(analyzerDescriptor.getAnalyzer(), 10000);
++ IndexWriterConfig iconfig = new IndexWriterConfig(org.apache.lucene.util.Version.LUCENE_47, wrapper);
++ iconfig.setOpenMode(OpenMode.CREATE);
++ cleaner = new IndexWriter(luceneDirectory, iconfig);
+ } catch (IOException ioe) {
+ } finally {
+ try {
+diff --git 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
+index d0a7bb7..df31d89 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
+@@ -18,7 +18,7 @@ import org.apache.lucene.analysis.*;
+ * 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;
+
+@@ -31,14 +31,14 @@ public final class SmartAnalyzer extends Analyzer {
+ 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.
+ */
+- public final TokenStream tokenStream(String fieldName, Reader reader) {
++ @Override
++ 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/eclipse.platform.ua/org.eclipse.help.base/src/org/eclipse/help/internal/search/WordTokenStream.java
+index 1360599..f622417 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
+@@ -35,6 +35,7 @@ public final class WordTokenStream extends Tokenizer {
+ * Constructor
+ */
+ public WordTokenStream(String fieldName, Reader reader, Locale locale) {
++ super(reader);
+ this.reader = reader;
+ boundary = BreakIterator.getWordInstance(locale);
+
+@@ -105,6 +106,7 @@ public final class WordTokenStream extends Tokenizer {
+ }
+
+ public void close() throws IOException {
++ super.close();
+ /// Unlikely to be called as this is a reused
+ if (this.reader != null) {
+ this.reader.close();
diff --git a/SOURCES/eclipse-mockito.patch b/SOURCES/eclipse-mockito.patch
new file mode 100644
index 0000000..74e51ee
--- /dev/null
+++ b/SOURCES/eclipse-mockito.patch
@@ -0,0 +1,70 @@
+--- eclipse.platform.ui/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF.orig 2014-03-26 11:42:36.169928566 +0000
++++ eclipse.platform.ui/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF 2014-03-26 12:56:27.970146198 +0000
+@@ -43,9 +43,9 @@
+ org.eclipse.e4.ui.workbench.addons.swt;bundle-version="0.10.0",
+ org.eclipse.e4.ui.workbench.renderers.swt;bundle-version="0.10.0",
+ org.eclipse.osgi.services;bundle-version="3.3.100",
+- org.hamcrest;bundle-version="1.1.0",
+- org.objenesis;bundle-version="1.0.0",
+- org.mockito;bundle-version="1.8.4"
++ org.hamcrest.core,
++ org.objenesis,
++ org.mockito.mockito-core
+ Eclipse-AutoStart: true
+ Export-Package: org.eclipse.ui.tests.api,
+ 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,9 +31,9 @@
+ 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",
+- org.hamcrest;bundle-version="1.1.0",
+- org.objenesis;bundle-version="1.0.0",
+- org.mockito;bundle-version="1.8.4",
++ org.hamcrest.core,
++ org.objenesis,
++ org.mockito.mockito-core,
+ org.eclipse.e4.ui.css.core;bundle-version="0.10.100"
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+ Bundle-ActivationPolicy: lazy
+--- eclipse.platform.ui/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF.orig 2014-04-22 14:31:35.155774270 +0100
++++ eclipse.platform.ui/tests/org.eclipse.e4.ui.tests.css.swt/META-INF/MANIFEST.MF 2014-04-22 14:33:47.599498477 +0100
+@@ -10,9 +10,9 @@
+ org.w3c.css.sac,
+ org.eclipse.e4.ui.css.swt.theme;bundle-version="0.9.1",
+ org.eclipse.ui;bundle-version="3.106.0",
+- org.hamcrest;bundle-version="1.1.0",
+- org.objenesis;bundle-version="1.0.0",
+- org.mockito;bundle-version="1.8.4",
++ org.hamcrest.core,
++ org.objenesis,
++ org.mockito.mockito-core,
+ org.eclipse.equinox.preferences;bundle-version="3.5.200"
+ Bundle-ActivationPolicy: lazy
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+--- eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml.orig 2014-03-26 11:39:33.756282231 +0000
++++ eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml 2014-03-26 13:03:00.971974954 +0000
+@@ -469,13 +469,6 @@
+ unpack="false"/>
+
+
+-
+-
+
+
+
+
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
+--- eclipse.platform.releng/features/org.eclipse.help-feature/pom.xml.bak 2012-07-31 07:43:57.000000000 +0200
++++ eclipse.platform.releng/features/org.eclipse.help-feature/pom.xml 2012-07-31 08:05:24.279277920 +0200
+@@ -53,6 +53,17 @@
+
+ source-feature
+
++
++
++
++
++
++
++
++
++
++
++
+
+
+
+--- eclipse.pde/org.eclipse.pde-feature/pom.xml.bak 2013-01-29 11:22:47.065953870 +0100
++++ eclipse.pde/org.eclipse.pde-feature/pom.xml 2013-01-29 11:23:18.630196529 +0100
+@@ -37,6 +37,8 @@
+
+
+
++
++
+
+
+
+--- eclipse.jdt/org.eclipse.jdt-feature/pom.xml.orig 2013-02-20 16:32:38.000000000 +0100
++++ eclipse.jdt/org.eclipse.jdt-feature/pom.xml 2013-02-21 10:08:50.404275226 +0100
+@@ -57,6 +57,10 @@
+
+
+
++
++
++
++
+
+
+
+--- eclipse.platform.releng/features/org.eclipse.platform-feature/sourceTemplateFeature/build.properties.bak 2013-03-14 11:18:11.000000000 +0100
++++ eclipse.platform.releng/features/org.eclipse.platform-feature/sourceTemplateFeature/build.properties 2013-03-14 12:45:12.956174290 +0100
+@@ -15,10 +15,7 @@
+ license.html
+
+
+-generate.feature@org.eclipse.rcp.source=org.eclipse.rcp,feature@org.eclipse.e4.rcp.source,plugin@com.ibm.icu.source;version=50.1.0.qualifier;unpack="false",\
+-plugin@org.apache.felix.gogo.command.source;version=0.10.0.qualifier;unpack="false",\
+-plugin@org.apache.felix.gogo.runtime.source;version=0.10.0.qualifier;unpack="false",\
+-plugin@org.apache.felix.gogo.shell.source;version=0.10.0.qualifier;unpack="false"
++generate.feature@org.eclipse.rcp.source=org.eclipse.rcp,feature@org.eclipse.e4.rcp.source
+
+ generate.feature@org.eclipse.equinox.p2.user.ui.source=org.eclipse.equinox.p2.user.ui,\
+ feature@org.eclipse.equinox.p2.core.feature.source,\
+@@ -31,16 +28,6 @@
+ plugin@org.eclipse.ecf.provider.filetransfer.source;version=3.2.0.qualifier;unpack="false",\
+ plugin@org.eclipse.ecf.provider.filetransfer.ssl.source;version=1.0.0.qualifier;unpack="false",\
+ plugin@org.eclipse.ecf.provider.filetransfer.httpclient4.source;version=1.0.200.qualifier;unpack="false",\
+- plugin@org.eclipse.ecf.provider.filetransfer.httpclient4.ssl.source;version=1.0.0.qualifier;unpack="false",\
+- plugin@org.apache.commons.codec.source;version=1.4.0.qualifier;unpack="false,\
+- plugin@org.apache.commons.httpclient.source;version=3.1.0.qualifier;unpack="false"
++ plugin@org.eclipse.ecf.provider.filetransfer.httpclient4.ssl.source;version=1.0.0.qualifier;unpack="false"
+
+-generate.feature@org.eclipse.e4.rcp.source=org.eclipse.e4.rcp,\
+- plugin@javax.annotation.source;version=1.1.0.qualifier;unpack="false",\
+- plugin@javax.inject.source;version=1.0.0.qualifier;unpack="false",\
+- plugin@org.apache.batik.css.source;version=1.6.0.qualifier;unpack="false",\
+- plugin@org.apache.batik.util.gui.source;version=1.6.0.qualifier;unpack="false",\
+- plugin@org.apache.batik.util.source;version=1.6.0.qualifier;unpack="false",\
+- plugin@org.w3c.dom.smil.source;version=1.0.0.qualifier;unpack="false",\
+- plugin@org.w3c.dom.svg.source;version=1.1.0.qualifier;unpack="false",\
+- plugin@org.w3c.css.sac.source;version=1.3.1.qualifier;unpack="false"
++generate.feature@org.eclipse.e4.rcp.source=org.eclipse.e4.rcp
+\ No newline at end of file
+--- eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml.orig 2014-03-24 12:58:43.355826288 +0000
++++ eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml 2014-03-24 13:04:46.463916138 +0000
+@@ -75,6 +75,12 @@
+
+
+
++
++
++
++
++
++
+
+
+
+--- eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml.orig 2014-04-23 15:44:51.755422154 +0100
++++ eclipse.platform.releng/features/org.eclipse.sdk.examples-feature/pom.xml 2014-04-23 15:45:22.730893380 +0100
+@@ -39,11 +39,9 @@
+
+
+
+-
+
+
+
+--- eclipse.platform.releng/features/org.eclipse.rcp/pom.xml.orig 2014-04-28 16:08:27.781454042 +0100
++++ eclipse.platform.releng/features/org.eclipse.rcp/pom.xml 2014-04-28 16:08:55.067988282 +0100
+@@ -37,6 +37,7 @@
+
+
+
++
+
+
+
+--- eclipse.platform.releng/features/org.eclipse.sdk/build.properties.bak 2013-03-14 11:18:11.000000000 +0100
++++ eclipse.platform.releng/features/org.eclipse.sdk/build.properties 2013-03-14 13:00:08.498377327 +0100
+@@ -11,31 +11,12 @@
+ bin.includes=feature.xml,feature.properties
+
+ generate.feature@org.eclipse.platform.source=org.eclipse.platform,feature@org.eclipse.rcp.source,feature@org.eclipse.equinox.p2.user.ui.source;optional="true",plugin@org.eclipse.platform.doc.isv;unpack="false",\
+- plugin@org.apache.ant.source;version=1.8.4.qualifier;unpack="false",\
+- plugin@com.jcraft.jsch.source;version=0.1.46.qualifier;unpack="false",\
+ exclude@org.eclipse.platform.doc.user
+
+ generate.feature@org.eclipse.jdt.source=org.eclipse.jdt, plugin@org.eclipse.jdt.doc.isv;unpack="false",\
+-plugin@org.junit.source;version=4.10.0.qualifier;unpack="false",\
+-plugin@org.hamcrest.core.source;version=1.1.0.qualifier;unpack="false",\
+ exclude@org.eclipse.jdt.doc.user
+-generate.feature@org.eclipse.pde.source=org.eclipse.pde,plugin@org.objectweb.asm.source;version=3.3.1.qualifier;unpack="false",\exclude@org.eclipse.pde.doc.user
++generate.feature@org.eclipse.pde.source=org.eclipse.pde,\exclude@org.eclipse.pde.doc.user
+ generate.feature@org.eclipse.cvs.source=org.eclipse.cvs
+-generate.feature@org.eclipse.help.source=org.eclipse.help,\
+- plugin@javax.servlet.source;version=3.0.0.qualifier;unpack="false",\
+- plugin@javax.servlet.jsp.source;version=2.2.0.qualifier;unpack="false",\
+- plugin@org.apache.jasper.glassfish.source;version=2.2.2.qualifier;unpack="false",\
+- plugin@com.sun.el.source;version=2.2.0.qualifier;unpack="false",\
+- plugin@org.apache.commons.logging.source;version=1.0.4.qualifier;unpack="false",\
+- plugin@org.apache.lucene.analysis.source;version=3.5.0.qualifier;unpack="false",\
+- plugin@org.apache.lucene.core.source;version=3.5.0.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.continuation.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.http.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.io.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.security.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.server.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.servlet.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@org.eclipse.jetty.util.source;version=8.1.9.qualifier;unpack="false",\
+- plugin@javax.el.source;version=2.2.0.qualifier;unpack="false"
+-
++generate.feature@org.eclipse.help.source=org.eclipse.help
++
+ generatedVersionLength=45
+--- 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,30 @@
+
+
+
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
diff --git a/SOURCES/eclipse-no-target-platform.patch b/SOURCES/eclipse-no-target-platform.patch
new file mode 100644
index 0000000..cb8db90
--- /dev/null
+++ b/SOURCES/eclipse-no-target-platform.patch
@@ -0,0 +1,16 @@
+--- eclipse-platform-parent/pom.xml.orig 2014-03-24 15:52:04.794208197 +0000
++++ eclipse-platform-parent/pom.xml 2014-03-24 15:56:15.746202079 +0000
+@@ -170,13 +170,6 @@
+ org.eclipse.tycho
+ target-platform-configuration
+
+-
+-
+- org.eclipse
+- eclipse-sdk-prereqs
+- 4.4.0-SNAPSHOT
+-
+-
+
+
+ linux
diff --git a/SOURCES/eclipse-p2-pick-up-renamed-jars.patch b/SOURCES/eclipse-p2-pick-up-renamed-jars.patch
new file mode 100644
index 0000000..8a85fe3
--- /dev/null
+++ b/SOURCES/eclipse-p2-pick-up-renamed-jars.patch
@@ -0,0 +1,11 @@
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/p2/publisher/eclipse/BundlesAction.java.orig 2012-05-05 15:24:03.000000000 +0200
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/p2/publisher/eclipse/BundlesAction.java 2012-05-17 16:14:48.607827015 +0200
+@@ -752,7 +752,7 @@
+ //First check to see if there is already an IU around for this
+ IInstallableUnit bundleIU = queryForIU(result, bundleDescriptions[i].getSymbolicName(), PublisherHelper.fromOSGiVersion(bd.getVersion()));
+ IArtifactKey key = createBundleArtifactKey(bd.getSymbolicName(), bd.getVersion().toString());
+- if (bundleIU == null) {
++ if (bundleIU == null || !bd.getLocation().equals(bundleIU.getProperty("file.name"))) {
+ createAdviceFileAdvice(bundleDescriptions[i], info);
+ // Create the bundle IU according to any shape advice we have
+ bundleIU = doCreateBundleIU(bd, key, info);
diff --git a/SOURCES/eclipse-pdebuild-add-target.patch b/SOURCES/eclipse-pdebuild-add-target.patch
new file mode 100644
index 0000000..64d981e
--- /dev/null
+++ b/SOURCES/eclipse-pdebuild-add-target.patch
@@ -0,0 +1,300 @@
+### Eclipse Workspace Patch 1.0
+#P org.eclipse.pde.build
+--- /dev/null
++++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/prepare-build-dir.sh
+@@ -0,0 +1,105 @@
++#!/bin/sh
++
++if [ $# -lt 2 ]; then
++ echo "usage: $0 "
++ exit 1
++fi
++
++if [ ! -d $1 ]; then
++ echo "usage: $0 "
++ exit 1
++fi
++
++SOURCEDIR=$1
++BUILDDIR=$2
++TESTING=$3
++
++echo "preparing files in $1 for buildfile generation ..."
++mkdir -p $BUILDDIR
++
++# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml
++mkdir -p $BUILDDIR/tmp
++BUILDFILE=$BUILDDIR/tmp/build.xml
++
++echo "
++
++
++
++
++
++" > $BUILDFILE
++
++for type in feature plugin fragment; do
++ CURBUILDFILE=$BUILDDIR/tmp/$type-build.xml
++ cat $BUILDFILE | sed "s|@type@|$type|" > $CURBUILDFILE
++done
++
++# make the directories eclipse is expecting
++echo " making the 'features' and 'plugins' directories"
++mkdir -p $BUILDDIR/features $BUILDDIR/plugins
++
++# make symlinks for the features
++FEATURES=$(find $SOURCEDIR -name feature.xml)
++find $SOURCEDIR -name feature.xml | while read f; do
++ PROJECTDIR=$(dirname "$f")
++ inSDK=1
++ inSDK=$(echo $PROJECTDIR | grep -c $BUILDDIR)
++ if [ $inSDK = 0 ]; then
++ PROJECTNAME=$(ant -Dbasedir="$PROJECTDIR" -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++ ERROR=""
++ if [ -z "$PROJECTNAME" ]; then
++ echo "ERROR: could not determine the feature id for $PROJECTDIR"
++ if [ $TESTING != true ]; then
++ exit 1
++ else
++ ERROR="yes"
++ fi
++ fi
++
++ if [ "x$ERROR" != "xyes" ]; then
++ if [ $TESTING != true ] || `echo "$PROJECTNAME" | grep "org.eclipse"`; then
++ echo " making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR"
++ ln -sfT "$PROJECTDIR" $BUILDDIR/features/"$PROJECTNAME"
++ fi
++ fi
++ fi
++done
++
++# make symlinks for plugins and fragments
++PLUGINDIRS=$(find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq)
++find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq | while read dir; do
++ PROJECTNAME=""
++ ERROR=""
++ inSDK=1
++ inSDK=$(echo $dir | grep -c $BUILDDIR)
++ if [ $inSDK = 0 ]; then
++ if [ -e "$dir/META-INF/MANIFEST.MF" ]; then
++ PROJECTNAME=$(grep Bundle-SymbolicName $dir/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2)
++ elif [ -e "$dir/plugin.xml" ]; then
++ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/plugin-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++ elif [ -e "$dir/fragment.xml" ]; then
++ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/fragment-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++ fi
++
++ if [ -z "$PROJECTNAME" ]; then
++ echo "ERROR: could not determine the plugin or fragment id for $dir"
++ if [ $TESTING != true ]; then
++ exit 1
++ else
++ ERROR="yes"
++ fi
++ fi
++
++ if [ "x$ERROR" != "xyes" ]; then
++ if [ $TESTING != true ] || `echo "$PROJECTNAME" | grep "org.eclipse"`; then
++ echo " making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir"
++ ln -sfT "$dir" $BUILDDIR/plugins/"$PROJECTNAME"
++ fi
++ fi;
++
++ fi
++
++done
++
++rm -rf $BUILDDIR/tmp
++echo done
+--- /dev/null
++++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/customTargets-assemble-target.xml
+@@ -0,0 +1,15 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+--- /dev/null
++++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/customTargets.xml
+@@ -0,0 +1,154 @@
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+--- /dev/null
++++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/build.properties
+@@ -0,0 +1,12 @@
++buildDirectory=${sourceDirectory}/build
++buildLabel=rpmBuild
++archivePrefix=eclipse
++skipFetch=true
++javacFailOnError=true
++collectingFolder=eclipse
++archivesFormat=*,*,*-zip
++zipargs=-y
++javacDebugInfo=true
++archiveName=${id}.zip
++runPackager=false
++baseLocation=@DATADIR@/eclipse
diff --git a/SOURCES/eclipse-policy-comparators.patch b/SOURCES/eclipse-policy-comparators.patch
new file mode 100644
index 0000000..b15cd3b
--- /dev/null
+++ b/SOURCES/eclipse-policy-comparators.patch
@@ -0,0 +1,30 @@
+--- eclipse.platform.team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/DiffViewerComparator.java.orig 2014-03-27 10:48:13.547706443 +0000
++++ eclipse.platform.team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/DiffViewerComparator.java 2014-03-27 10:52:42.615751600 +0000
+@@ -49,7 +49,7 @@
+
+ return oldStart0 - oldStart1;
+ }
+- return Policy.getComparator().compare(arg0, arg1);
++ return Policy.getComparator().compare((String)arg0, (String)arg1);
+ }
+ };
+ }
+--- eclipse.platform.ui/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java.orig 2014-03-27 11:27:35.233213660 +0000
++++ eclipse.platform.ui/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java 2014-03-27 12:19:30.696748271 +0000
+@@ -13,6 +13,7 @@
+ import java.lang.reflect.InvocationTargetException;
+ import java.net.URL;
+ import java.util.ArrayList;
++import java.util.Comparator;
+ import java.util.Iterator;
+ import java.util.Map;
+ import java.util.TreeMap;
+@@ -235,7 +236,7 @@
+ // show Help button in JFace dialogs
+ TrayDialog.setDialogHelpAvailable(true);
+
+- Policy.setComparator(Collator.getInstance());
++ Policy.setComparator((Comparator)Collator.getInstance());
+ }
+
+ /*
diff --git a/SOURCES/eclipse-remove-jgit-provider.patch b/SOURCES/eclipse-remove-jgit-provider.patch
new file mode 100644
index 0000000..07bf0c2
--- /dev/null
+++ b/SOURCES/eclipse-remove-jgit-provider.patch
@@ -0,0 +1,35 @@
+--- eclipse-platform-parent/pom.xml.orig 2014-05-26 17:04:22.000000000 +0300
++++ eclipse-platform-parent/pom.xml 2014-05-26 18:57:29.044704226 +0300
+@@ -332,7 +332,7 @@
+ tycho-packaging-plugin
+ ${tycho.version}
+
+-
++
+
+
+ false
+ 'v'yyyyMMdd-HHmm
+- jgit
++
+
+ pom.xml
+
+ ${jgit.dirtyWorkingTree}
+-
++
+
+ false
+
diff --git a/SOURCES/eclipse-remove-w3c-smil-and-use-geronimo.patch b/SOURCES/eclipse-remove-w3c-smil-and-use-geronimo.patch
new file mode 100644
index 0000000..c9834ac
--- /dev/null
+++ b/SOURCES/eclipse-remove-w3c-smil-and-use-geronimo.patch
@@ -0,0 +1,52 @@
+--- eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml.orig 2014-03-26 11:00:57.935084582 +0000
++++ eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml 2014-03-26 11:02:43.076109293 +0000
+@@ -123,20 +123,6 @@
+ unpack="false"/>
+
+
+-
+-
+-
+-
+
+
+
+ eclipse-plugin
+- javax.annotation
++ org.apache.geronimo.specs.geronimo-annotation_1.1_spec
+ 0.0.0
+
+
+@@ -96,7 +96,7 @@
+
+
+ eclipse-plugin
+- org.apache.jasper.glassfish
++ org.glassfish.web.javax.servlet.jsp
+ 0.0.0
+
+
diff --git a/SOURCES/eclipse-remove-weaving.patch b/SOURCES/eclipse-remove-weaving.patch
new file mode 100644
index 0000000..d1dc14b
--- /dev/null
+++ b/SOURCES/eclipse-remove-weaving.patch
@@ -0,0 +1,50 @@
+--- eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml.orig 2014-03-26 11:39:33.756282231 +0000
++++ eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml 2014-03-26 13:19:39.009594727 +0000
+@@ -349,12 +349,6 @@
+ version="0.0.0"/>
+
+
+-
+-
+
+-
+-
+-
+-
+-
+
+-
+-
+
+ s390x
+
+
+- win32
+- win32
+- x86
+-
+-
+- win32
+- win32
+- x86_64
+-
+-
+- macosx
+- cocoa
+- x86
+-
+-
+- macosx
+- cocoa
+- x86_64
+-
+-
+- solaris
+- gtk
+- sparc
+-
+-
+- solaris
+- gtk
+- x86
+-
+-
+- hpux
++ linux
+ gtk
+- ia64
++ arm
+
+
+- aix
++ linux
+ gtk
+- ppc
++ ppc64le
+
+
+- aix
++ linux
+ gtk
+- ppc64
++ aarch64
+
+
+
+--- a/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml
++++ b/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml
+@@ -130,21 +130,6 @@
+ gtk
+ x86_64
+
+-
+- win32
+- win32
+- x86
+-
+-
+- win32
+- win32
+- x86_64
+-
+-
+- macosx
+- cocoa
+- x86_64
+-
+
+
+
+diff --git a/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/build.properties b/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/build.properties
+index 80a32e4..85de879 100644
+--- a/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/build.properties
++++ b/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/build.properties
+@@ -32,6 +32,12 @@ root.solaris.gtk.sparc.permissions.755=eclipse
+ root.solaris.gtk.x86=../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/solaris/x86
+ root.solaris.gtk.x86.permissions.755=eclipse
+
++root.linux.gtk.arm=target/resources/linux.gtk.arm,../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/arm
++root.linux.gtk.arm.permissions.755=eclipse
++root.linux.gtk.aarch64=target/resources/linux.gtk.aarch64,../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/aarch64
++root.linux.gtk.aarch64.permissions.755=eclipse
++root.linux.gtk.ppc64le=rootfiles/linux.gtk.ppc64le,../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/ppc64le
++root.linux.gtk.ppc64le.permissions.755=eclipse
+ root.linux.gtk.x86=rootfiles/linux.gtk.x86,../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/x86
+ root.linux.gtk.x86.permissions.755=libcairo-swt.so,eclipse
+ root.linux.gtk.ppc=rootfiles/linux.gtk.ppc64,../../rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/ppc
+diff --git a/eclipse.platform.swt.binaries/pom.xml b/eclipse.platform.swt.binaries/pom.xml
+index 7dd0536..66d79ee 100644
+--- a/eclipse.platform.swt.binaries/pom.xml
++++ b/eclipse.platform.swt.binaries/pom.xml
+@@ -53,6 +53,9 @@
+ bundles/org.eclipse.swt.gtk.linux.ppc64
+ bundles/org.eclipse.swt.gtk.linux.s390
+ bundles/org.eclipse.swt.gtk.linux.s390x
++ bundles/org.eclipse.swt.gtk.linux.arm
++ bundles/org.eclipse.swt.gtk.linux.aarch64
++ bundles/org.eclipse.swt.gtk.linux.ppc64le
+ bundles/org.eclipse.swt.gtk.linux.x86
+ bundles/org.eclipse.swt.gtk.linux.x86_64
+ bundles/org.eclipse.swt.gtk.solaris.sparc
+diff --git a/rt.equinox.framework/pom.xml b/rt.equinox.framework/pom.xml
+index b46cdc6..0fb36a5 100644
+--- a/rt.equinox.framework/pom.xml
++++ b/rt.equinox.framework/pom.xml
+@@ -55,6 +55,9 @@
+ bundles/org.eclipse.equinox.launcher.gtk.aix.ppc
+ bundles/org.eclipse.equinox.launcher.gtk.aix.ppc64
+ bundles/org.eclipse.equinox.launcher.gtk.hpux.ia64
++ bundles/org.eclipse.equinox.launcher.gtk.linux.arm
++ bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64
++ bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le
+ bundles/org.eclipse.equinox.launcher.gtk.linux.ppc
+ bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64
+ bundles/org.eclipse.equinox.launcher.gtk.linux.s390
+diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/buildFragment.xml b/eclipse.platform.swt/bundles/org.eclipse.swt/buildFragment.xml
+index f5fb504..1187e84 100644
+--- a/eclipse.platform.swt/bundles/org.eclipse.swt/buildFragment.xml
++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/buildFragment.xml
+@@ -425,6 +425,7 @@
+
+
+
++
+
+
+ Is64=${is64}
+diff --git a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml
+index 7e1f520..734dd10 100644
+--- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml
++++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml
+@@ -409,6 +409,36 @@
+ install-size="0"
+ version="0.0.0"
+ fragment="true"/>
++
++
++
++
++
++
+
+
++
++
++
++
++
++
+
+ "
+ ;;
+diff --git a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml
+index fac13bf..e487001 100644
+--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml
++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml
+@@ -259,6 +259,129 @@
+
+
+
++
++
++ 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
++
++
++ native
++ gtk.linux.ppc64
++
++
++
++
++
++ maven-antrun-plugin
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++
++
++
++
++ build-native-launchers-gtk.linux.arm
++
++
++ native
++ gtk.linux.arm
++
++
++
++
++
++ maven-antrun-plugin
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++
++
++
++ build-native-launchers-gtk.linux.aarch64
++
++
++ native
++ gtk.linux.aarch64
++
++
++
++
++
++ maven-antrun-plugin
++
++
++ compile-executable-natives
++ generate-resources
++
++
++
++
++
++
++ run
++
++
++
++
++
++
++
++
+
+ build-native-launchers-win32.win32.x86_64
+
+--- a/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/pom.xml 2014-05-26 19:20:28.958177815 +0300
++++ b/eclipse.platform.releng.tychoeclipsebuilder/rcp.config/pom.xml 2014-05-26 19:33:42.942025740 +0300
+@@ -30,6 +30,64 @@
+ 2.6
+
+
++ copy-resources-gtk.linux.aarch64
++ validate
++
++ copy-resources
++
++
++ ${basedir}/target/resources/linux.gtk.aarch64
++
++
++ ../../eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.aarch64
++
++ about_files/*
++ about.html
++
++
++
++
++
++
++ copy-resources-gtk.linux.arm
++ validate
++
++ copy-resources
++
++
++ ${basedir}/target/resources/linux.gtk.arm
++
++
++ ../../eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.arm
++
++ about_files/*
++ about.html
++
++
++
++
++
++
++ copy-resources-gtk.linux.ppc64le
++ validate
++
++ copy-resources
++
++
++ ${basedir}/rootfiles/linux.gtk.ppc64le
++
++
++ ../../eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.ppc64le
++
++
++ about_files/*
++ about.html
++
++
++
++
++
++
+ copy-resources-gtk.linux.x86
+ validate
+
diff --git a/SOURCES/eclipse-servlet-3.1.patch b/SOURCES/eclipse-servlet-3.1.patch
new file mode 100644
index 0000000..980f22a
--- /dev/null
+++ b/SOURCES/eclipse-servlet-3.1.patch
@@ -0,0 +1,43 @@
+--- eclipse.platform.ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ValidatorServlet.java.sav 2013-09-30 11:59:22.000000000 +0300
++++ eclipse.platform.ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/ValidatorServlet.java 2014-01-06 15:09:36.251220892 +0200
+@@ -26,6 +26,7 @@ import java.util.Locale;
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletException;
+ import javax.servlet.ServletOutputStream;
++import javax.servlet.WriteListener;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+@@ -270,5 +271,11 @@ public class ValidatorServlet extends Ht
+ public void write(int b) throws IOException {
+ out.write(b);
+ }
++
++ public boolean isReady() {
++ return true;
++ }
++ public void setWriteListener(WriteListener writeListener) {
++ }
+ }
+ }
+--- eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml.sav 2014-01-06 17:08:09.690171368 +0200
++++ eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml 2014-01-06 17:09:02.193219753 +0200
+@@ -295,18 +295,6 @@
+ version="0.0.0"/>
+
+
+-
+-
+-
+-
+
+-
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
+
+-
+-
+-
+-
+-
+-
+-
+-
++
++
+
+-
+
+
+
+@@ -320,7 +235,7 @@
+
+-
++
+
+
+
+@@ -867,6 +782,17 @@
+ arg2="" />
+
+
++
++
++
++
++
++
++ trying to find ${testPluginFolder}
++
++
++
++
+
+
+
+@@ -1411,6 +1337,15 @@
+ value="end longRunningTests" />
+
+
++
++
++
++
++
++
++
++
++
+
+
+
+
+
+