From 3c0c7faf66e4700988886f179bbbae14c155fbc5 Mon Sep 17 00:00:00 2001 From: Patrick Ziegler Date: Mon, 24 Aug 2026 20:53:58 +0200 Subject: [PATCH 1/3] Move `ScopedPreferenceStore` to `org.eclipse.jface` #4262 The `IPreferenceStore` interface has two public implementations; A JFace `PreferenceStore` based on _*.properties_ files and an Eclipse 3.x `ScopedPreferenceStore` based on _*.prefs_ files. Consumers who want to use scoped preferences therefore always carry a direct dependency to the 3.x framework, rendering this interface unusable in a pure 4.x application. Consumers currently have to fall back to the `IEclipsePreferences` interface, which is not a drop-in replacement, however, due to a different behavior when it comes to e.g. default values. Because the `ScopedPreferenceStore` doesn't depend on any 3.x-specific functionality, it can be easily moved to the JFace component. The dependency to the Eclipse Runtime bundle can be reduced to the Equinox Preferences bundle by inlining the call to `IPreferenceService.get`. Note that this change has to be split up into two commits; One where the `ScopedPreferenceStore` is moved and one where a dummy implementation is added to the Eclipse Workbench bundle. Otherwise Git is unable to detect the class as being moved to the JFace component and thus doesn't carry over the file history. Contributes to https://github.com/eclipse-platform/eclipse.platform.ui/issues/4262 --- .../org.eclipse.jface/META-INF/MANIFEST.MF | 3 +- .../src/org/eclipse/jface/messages.properties | 5 ++ .../jface/preference/IPreferenceStore.java | 4 +- .../preference}/ScopedPreferenceStore.java | 55 ++++++++++++------- .../META-INF/MANIFEST.MF | 2 +- .../text/TextEditorPreferencePage.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../GenericEditorPreferencePage.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../ide/application/IDEApplication.java | 2 +- .../org.eclipse.ui.ide/META-INF/MANIFEST.MF | 2 +- .../ui/internal/ide/ChooseWorkspaceData.java | 2 +- .../dialogs/IDEWorkspacePreferencePage.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../WorkbenchChainedTextFontFieldEditor.java | 3 +- .../META-INF/MANIFEST.MF | 2 +- .../eclipseui/org/eclipse/ui/PlatformUI.java | 2 +- .../ui/internal/WorkbenchMessages.java | 1 - .../internal/dialogs/ViewsPreferencePage.java | 2 +- .../eclipse/ui/internal/messages.properties | 1 - .../eclipse/ui/plugin/AbstractUIPlugin.java | 2 +- bundles/org.eclipse.ui/META-INF/MANIFEST.MF | 4 +- .../tests/preferences/AllPrefsTests.java | 3 +- .../ScopedPreferenceStoreTest.java} | 53 +++++++++--------- .../preferences/PreferencesTestSuite.java | 1 - 25 files changed, 89 insertions(+), 72 deletions(-) rename bundles/{org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences => org.eclipse.jface/src/org/eclipse/jface/preference}/ScopedPreferenceStore.java (92%) rename tests/{org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java => org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/ScopedPreferenceStoreTest.java} (63%) diff --git a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF index a627f5c1706..60992afa021 100644 --- a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF @@ -37,7 +37,8 @@ Export-Package: org.eclipse.jface, Require-Bundle: org.eclipse.swt;bundle-version="[3.126.0,4.0.0)";visibility:=reexport, org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)";visibility:=reexport, org.eclipse.equinox.common;bundle-version="[3.18.0,4.0.0)", - org.eclipse.equinox.bidi;bundle-version="[0.10.0,2.0.0)";resolution:=optional + org.eclipse.equinox.bidi;bundle-version="[0.10.0,2.0.0)";resolution:=optional, + org.eclipse.equinox.preferences;bundle-version="[3.12.100,4.0.0)";resolution:=optional Bundle-RequiredExecutionEnvironment: JavaSE-21 Import-Package: javax.xml.parsers, org.osgi.framework;version="[1.8.0,2.0.0)", diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties index 18ec98f0fa2..2dbb4c71ffb 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties @@ -236,3 +236,8 @@ ConfigureColumnsDialog_down = Dow&n # org.eclipse.jface.viewers.internal.ExpandableNode ExpandableNode.defaultLabel = Show next {0} items from remaining {1} ExpandableNode.showRemaining = Show remaining {0} item{1} + +############################################################# +# org.eclipse.jface.preference.ScopedPreferenceStore +############################################################# +ScopedPreferenceStore_DefaultAddedError=Do not add the default to the search contexts diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java index 81c3c357c1c..3ad237c529e 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java @@ -51,10 +51,12 @@ *

*

* Clients who need a preference store may implement this interface or - * instantiate the standard implementation PreferenceStore. + * instantiate either the standard implementation PreferenceStore + * or the ScopedPreferenceStore. *

* * @see PreferenceStore + * @see ScopedPreferenceStore */ public interface IPreferenceStore { diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScopedPreferenceStore.java similarity index 92% rename from bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java rename to bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScopedPreferenceStore.java index 65ffaf9f820..feea9c84fb9 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScopedPreferenceStore.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2018 IBM Corporation and others. + * Copyright (c) 2004, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,13 +13,14 @@ * Yves YANG - * Initial Fix for Bug 138078 [Preferences] Preferences Store for i18n support *******************************************************************************/ -package org.eclipse.ui.preferences; +package org.eclipse.jface.preference; import java.io.IOException; import java.util.Objects; + import org.eclipse.core.commands.common.EventManager; +import org.eclipse.core.internal.preferences.PreferencesService; import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.SafeRunner; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; @@ -27,13 +28,12 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent; import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; import org.eclipse.core.runtime.preferences.IScopeContext; -import org.eclipse.jface.preference.IPersistentPreferenceStore; -import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.util.SafeRunnable; -import org.eclipse.ui.internal.WorkbenchMessages; +import org.osgi.framework.FrameworkUtil; import org.osgi.service.prefs.BackingStoreException; /** @@ -49,9 +49,20 @@ *

* * @see org.eclipse.core.runtime.preferences - * @since 3.1 + * @since 3.40 */ -public class ScopedPreferenceStore extends EventManager implements IPreferenceStore, IPersistentPreferenceStore { +public class ScopedPreferenceStore extends EventManager implements IPersistentPreferenceStore { + + /** + * Creates a {@link IPreferenceStore} store for the bundle that loaded that + * class + * + * @param clazz the class to use for determining the responsible bundle + * @return the instance scoped preference store for the given class + */ + public static ScopedPreferenceStore getInstance(Class clazz) { + return new ScopedPreferenceStore(InstanceScope.INSTANCE, FrameworkUtil.getBundle(clazz).getSymbolicName()); + } /** * The storeContext is the context where values will stored with the setValue @@ -201,7 +212,6 @@ public void addPropertyChangeListener(IPropertyChangeListener listener) { * @param includeDefault true if the default context should be * included and false otherwise * @return IEclipsePreferences[] - * @since 3.4 public, was added in 3.1 as private method */ public IEclipsePreferences[] getPreferenceNodes(boolean includeDefault) { // if the user didn't specify a search order, then return the scope that @@ -255,7 +265,7 @@ public void setSearchContexts(IScopeContext[] scopes) { // the end) for (IScopeContext scope : scopes) { if (scope.equals(defaultContext)) { - Assert.isTrue(false, WorkbenchMessages.ScopedPreferenceStore_DefaultAddedError); + Assert.isTrue(false, JFaceResources.getString("ScopedPreferenceStore_DefaultAddedError")); //$NON-NLS-1$ } } } @@ -265,7 +275,7 @@ public boolean contains(String name) { if (name == null) { return false; } - return (Platform.getPreferencesService().get(name, null, getPreferenceNodes(true))) != null; + return internalGet(name, true) != null; } @Override @@ -290,7 +300,7 @@ public void run() { @Override public boolean getBoolean(String name) { - String value = internalGet(name); + String value = internalGet(name, true); return value == null ? BOOLEAN_DEFAULT_DEFAULT : Boolean.parseBoolean(value); } @@ -326,7 +336,7 @@ public String getDefaultString(String name) { @Override public double getDouble(String name) { - String value = internalGet(name); + String value = internalGet(name, true); if (value == null) { return DOUBLE_DEFAULT_DEFAULT; } @@ -342,16 +352,19 @@ public double getDouble(String name) { * specified by this object's list of search scopes. If the value does not exist * then return null. * - * @param key the key to search with + * @param key the key to search with + * @param includeDefault {@code true} if the default context should be included + * and {@code true} otherwise * @return String or null if the value does not exist. */ - private String internalGet(String key) { - return Platform.getPreferencesService().get(key, null, getPreferenceNodes(true)); + @SuppressWarnings("restriction") + private String internalGet(String key, boolean includeDefault) { + return PreferencesService.getDefault().get(key, null, getPreferenceNodes(includeDefault)); } @Override public float getFloat(String name) { - String value = internalGet(name); + String value = internalGet(name, true); if (value == null) { return FLOAT_DEFAULT_DEFAULT; } @@ -364,7 +377,7 @@ public float getFloat(String name) { @Override public int getInt(String name) { - String value = internalGet(name); + String value = internalGet(name, true); if (value == null) { return INT_DEFAULT_DEFAULT; } @@ -377,7 +390,7 @@ public int getInt(String name) { @Override public long getLong(String name) { - String value = internalGet(name); + String value = internalGet(name, true); if (value == null) { return LONG_DEFAULT_DEFAULT; } @@ -390,7 +403,7 @@ public long getLong(String name) { @Override public String getString(String name) { - String value = internalGet(name); + String value = internalGet(name, true); return value == null ? STRING_DEFAULT_DEFAULT : value; } @@ -399,7 +412,7 @@ public boolean isDefault(String name) { if (name == null) { return false; } - return (Platform.getPreferencesService().get(name, null, getPreferenceNodes(false))) == null; + return internalGet(name, false) == null; } @Override diff --git a/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF index 8cdb3e39545..40ada52f59c 100644 --- a/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.editors/META-INF/MANIFEST.MF @@ -22,7 +22,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.0,4.0.0)", org.eclipse.swt;bundle-version="[3.133.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.21.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.208.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.210.0,4.0.0)", org.eclipse.jface.text;bundle-version="[3.24.0,4.0.0)", org.eclipse.ui.workbench;bundle-version="[3.130.0,4.0.0)", org.eclipse.ui.workbench.texteditor;bundle-version="[3.19.0,4.0.0)", diff --git a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/TextEditorPreferencePage.java b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/TextEditorPreferencePage.java index e279e37989e..caf1c2e5152 100644 --- a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/TextEditorPreferencePage.java +++ b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/editors/text/TextEditorPreferencePage.java @@ -26,12 +26,12 @@ import org.eclipse.jface.preference.FontFieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.ui.texteditor.AbstractTextEditor; diff --git a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF index cf09678b4e8..00c668e18e6 100644 --- a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Require-Bundle: org.eclipse.ui.workbench.texteditor;bundle-version="3.10.0", org.eclipse.jface.text;bundle-version="3.24.0", org.eclipse.core.runtime;bundle-version="3.29.0", org.eclipse.ui.workbench;bundle-version="3.109.0", - org.eclipse.jface;bundle-version="3.39.0", + org.eclipse.jface;bundle-version="3.40.0", org.eclipse.ui.ide;bundle-version="3.12.0", org.eclipse.core.resources;bundle-version="3.11.0", org.eclipse.core.expressions;bundle-version="3.6.0", diff --git a/bundles/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/preferences/GenericEditorPreferencePage.java b/bundles/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/preferences/GenericEditorPreferencePage.java index 489e806d8a4..2ecff02872d 100644 --- a/bundles/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/preferences/GenericEditorPreferencePage.java +++ b/bundles/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/preferences/GenericEditorPreferencePage.java @@ -25,6 +25,7 @@ import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -41,7 +42,6 @@ import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.internal.genericeditor.Messages; -import org.eclipse.ui.preferences.ScopedPreferenceStore; public class GenericEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private final ArrayList leadFollowerListeners = new ArrayList<>(); diff --git a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF index 5099c924160..dcb56022173 100644 --- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF @@ -8,7 +8,7 @@ Bundle-Localization: plugin Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.21.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.19.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.209.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.210.0,4.0.0)", org.eclipse.ui.navigator.resources;bundle-version="[3.9.0,4.0.0)", org.eclipse.core.net;bundle-version="[1.5.0,2.0.0)", org.eclipse.core.filesystem;bundle-version="1.10.0", diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java index 23f25a15925..6ecf3ded110 100644 --- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java +++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java @@ -52,6 +52,7 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.MessageDialogWithToggle; import org.eclipse.jface.preference.IPersistentPreferenceStore; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.window.Window; import org.eclipse.osgi.service.datalocation.Location; import org.eclipse.osgi.util.NLS; @@ -76,7 +77,6 @@ import org.eclipse.ui.internal.ide.IDEInternalPreferences; import org.eclipse.ui.internal.ide.IDEWorkbenchMessages; import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.osgi.framework.Bundle; import org.osgi.framework.Version; diff --git a/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF index 32bc975604a..75488747162 100644 --- a/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF @@ -49,7 +49,7 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.20.0,4.0.0)";resol org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)", org.eclipse.core.filesystem;bundle-version="[1.10.0,2.0.0)", org.eclipse.help;bundle-version="[3.10.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.208.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.210.0,4.0.0)", org.eclipse.ui.views;bundle-version="[3.12.0,4.0.0)";resolution:=optional, org.eclipse.jface.text;bundle-version="[3.24.0,4.0.0)", org.eclipse.ui.forms;bundle-version="[3.13.0,4.0.0)";resolution:=optional, diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java index c94640113d9..9ba3b607739 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java @@ -23,8 +23,8 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.ui.ide.IDE; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.osgi.service.prefs.BackingStoreException; import org.osgi.service.prefs.Preferences; diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java index c3bc654590a..c37d677330d 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEWorkspacePreferencePage.java @@ -42,6 +42,7 @@ import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.jface.util.BidiUtils; import org.eclipse.osgi.util.NLS; @@ -67,7 +68,6 @@ import org.eclipse.ui.internal.ide.IIDEHelpContextIds; import org.eclipse.ui.internal.ide.LineDelimiterEditor; import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.ui.views.markers.internal.MarkerMessages; /** diff --git a/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF index 924a82d0fd8..0ffed47d471 100644 --- a/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.workbench.texteditor/META-INF/MANIFEST.MF @@ -32,7 +32,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.100,4.0.0)", org.eclipse.jface.text;bundle-version="[3.19.0,4.0.0)", org.eclipse.swt;bundle-version="[3.133.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.208.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.210.0,4.0.0)", org.eclipse.jface.notifications Bundle-RequiredExecutionEnvironment: JavaSE-21 Automatic-Module-Name: org.eclipse.ui.workbench.texteditor diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/WorkbenchChainedTextFontFieldEditor.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/WorkbenchChainedTextFontFieldEditor.java index 7d038f359ea..5ec7150beaf 100644 --- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/WorkbenchChainedTextFontFieldEditor.java +++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/WorkbenchChainedTextFontFieldEditor.java @@ -21,12 +21,11 @@ import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.text.PropagatingFontFieldEditor; -import org.eclipse.ui.preferences.ScopedPreferenceStore; - /** * This font field editor implements chaining between the workbench's preference diff --git a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF index 61a89f65f9b..f1dd03ea836 100644 --- a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF @@ -96,7 +96,7 @@ Export-Package: org.eclipse.e4.ui.workbench.addons.perspectiveswitcher;x-interna org.eclipse.ui.wizards Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.33.0,4.0.0)", org.eclipse.help;bundle-version="[3.2.0,4.0.0)", - org.eclipse.jface;bundle-version="[3.31.0,4.0.0)", + org.eclipse.jface;bundle-version="[3.40.0,4.0.0)", org.eclipse.jface.databinding;bundle-version="[1.3.0,2.0.0)", org.eclipse.core.databinding.property;bundle-version="[1.2.0,2.0.0)", org.eclipse.core.databinding.observable;bundle-version="[1.2.0,2.0.0)", diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java index b176fb9147c..c80730105d2 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java @@ -23,6 +23,7 @@ import org.eclipse.e4.ui.services.help.EHelpService; import org.eclipse.jface.dialogs.IDialogSettingsProvider; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.application.WorkbenchAdvisor; @@ -30,7 +31,6 @@ import org.eclipse.ui.internal.WorkbenchMessages; import org.eclipse.ui.internal.WorkbenchPlugin; import org.eclipse.ui.internal.util.PrefUtil; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.ui.testing.TestableObject; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/WorkbenchMessages.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/WorkbenchMessages.java index cf676246aa7..469de885aeb 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/WorkbenchMessages.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/WorkbenchMessages.java @@ -876,7 +876,6 @@ public class WorkbenchMessages extends NLS { public static String FilteredTree_FilteredDialogTitle; public static String FilteredTree_AccessibleListenerFiltered; public static String Workbench_startingPlugins; - public static String ScopedPreferenceStore_DefaultAddedError; public static String WorkbenchEncoding_invalidCharset; diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java index 92cb3e25d13..10da19bed2c 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/dialogs/ViewsPreferencePage.java @@ -62,6 +62,7 @@ import org.eclipse.jface.preference.IPersistentPreferenceStore; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.ISelection; @@ -90,7 +91,6 @@ import org.eclipse.ui.internal.WorkbenchPlugin; import org.eclipse.ui.internal.themes.IThemeDescriptor; import org.eclipse.ui.internal.util.PrefUtil; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.ui.themes.IThemeManager; import org.osgi.service.prefs.BackingStoreException; diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/messages.properties b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/messages.properties index c7153c6b09a..8920f9043be 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/messages.properties +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/messages.properties @@ -857,7 +857,6 @@ FilteredTree_FilterMessage=type filter text FilteredTree_FilteredDialogTitle={0} (Filtered) FilteredTree_AccessibleListenerFiltered={0} {1} matches. Workbench_startingPlugins = Starting plug-ins -ScopedPreferenceStore_DefaultAddedError=Do not add the default to the search contexts WorkbenchEncoding_invalidCharset = {0} is not a valid charset. diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java index fa809e76b46..d891ce9c54a 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java @@ -23,6 +23,7 @@ import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.dialogs.IDialogSettingsProvider; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.resource.ResourceLocator; @@ -34,7 +35,6 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.ui.internal.WWinPluginAction; import org.eclipse.ui.internal.util.BundleUtility; -import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleEvent; diff --git a/bundles/org.eclipse.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui/META-INF/MANIFEST.MF index 585f6c1d78c..71530afafdc 100644 --- a/bundles/org.eclipse.ui/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Plugin.name Bundle-SymbolicName: org.eclipse.ui; singleton:=true -Bundle-Version: 3.209.100.qualifier +Bundle-Version: 3.210.0.qualifier Bundle-Activator: org.eclipse.ui.internal.UIPlugin Bundle-ActivationPolicy: lazy Bundle-Vendor: %Plugin.providerName @@ -10,7 +10,7 @@ Bundle-Localization: plugin Export-Package: org.eclipse.ui.internal;x-friends:="org.eclipse.ui.workbench.texteditor,org.eclipse.search" Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)", org.eclipse.swt;bundle-version="[3.133.0,4.0.0)";visibility:=reexport, - org.eclipse.jface;bundle-version="[3.34.0,4.0.0)";visibility:=reexport, + org.eclipse.jface;bundle-version="[3.40.0,4.0.0)";visibility:=reexport, org.eclipse.ui.workbench;bundle-version="[3.138.100,4.0.0)";visibility:=reexport, org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)" Bundle-RequiredExecutionEnvironment: JavaSE-21 diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/AllPrefsTests.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/AllPrefsTests.java index 770e8dae7f8..ec92176a038 100644 --- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/AllPrefsTests.java +++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/AllPrefsTests.java @@ -21,7 +21,8 @@ BooleanFieldEditorTest.class, // StringFieldEditorTest.class, // IntegerFieldEditorTest.class, // - ScaleFieldEditorTest.class // + ScaleFieldEditorTest.class, // + ScopedPreferenceStoreTest.class // }) public class AllPrefsTests { diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/ScopedPreferenceStoreTest.java similarity index 63% rename from tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java rename to tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/ScopedPreferenceStoreTest.java index 1019f5c3afa..dbcb49a8c2d 100644 --- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java +++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/preferences/ScopedPreferenceStoreTest.java @@ -11,22 +11,22 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.ui.tests.preferences; +package org.eclipse.jface.tests.preferences; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.ui.preferences.ScopedPreferenceStore; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ScopedPreferenceStoreTestCase { +public class ScopedPreferenceStoreTest { final String DEFAULT_DEFAULT_STRING = ""; @@ -34,35 +34,34 @@ public class ScopedPreferenceStoreTestCase { public void testNeedsSaving() throws IOException { IScopeContext context = InstanceScope.INSTANCE; String qualifier = "org.eclipse.ui.tests.preferences"; - ScopedPreferenceStore store = new ScopedPreferenceStore(context, - qualifier); + ScopedPreferenceStore store = new ScopedPreferenceStore(context, qualifier); String key = "key1"; String value = "value1"; // nothing there - assertFalse("0.1", store.needsSaving()); - assertFalse("0.2", store.contains(key)); - assertEquals("0.3", DEFAULT_DEFAULT_STRING, store.getString(key)); + assertFalse(store.needsSaving(), "0.1"); + assertFalse(store.contains(key), "0.2"); + assertEquals(DEFAULT_DEFAULT_STRING, store.getString(key), "0.3"); // set the value store.setValue(key, value); - assertTrue("1.0", store.needsSaving()); - assertTrue("1.1", store.contains(key)); - assertEquals("1.2", value, store.getString(key)); + assertTrue(store.needsSaving(), "1.0"); + assertTrue(store.contains(key), "1.1"); + assertEquals(value, store.getString(key), "1.2"); // flush store.save(); // do the test - assertFalse("3.0", store.needsSaving()); + assertFalse(store.needsSaving(), "3.0"); // change the node outside of the scoped store String key2 = "key2"; String value2 = "value2"; IEclipsePreferences node = context.getNode(qualifier); node.put(key2, value2); - assertEquals("4.0", value2, node.get(key2, null)); - assertFalse("4.1", store.needsSaving()); + assertEquals(value2, node.get(key2, null), "4.0"); + assertFalse(store.needsSaving(), "4.1"); } @Test @@ -74,16 +73,16 @@ public void testRestoreDefaults() { final String value = "value"; // setup and initial assertions - assertFalse("0.1", store.contains(key)); - assertEquals("0.2", DEFAULT_DEFAULT_STRING, store.getString(key)); + assertFalse(store.contains(key), "0.1"); + assertEquals(DEFAULT_DEFAULT_STRING, store.getString(key), "0.2"); // set the value store.setValue(key, value); - assertTrue("1.0", store.contains(key)); - assertEquals("1.1", value, store.getString(key)); + assertTrue(store.contains(key), "1.0"); + assertEquals(value, store.getString(key), "1.1"); final boolean[] found = new boolean[1]; - IPropertyChangeListener listener= event -> { + IPropertyChangeListener listener = event -> { if (key.equals(event.getProperty()) && value.equals(event.getOldValue())) { found[0] = true; } @@ -92,11 +91,11 @@ public void testRestoreDefaults() { // restore the default store.setToDefault(key); - assertFalse("2.0", store.contains(key)); - assertEquals("2.1", DEFAULT_DEFAULT_STRING, store.getString(key)); + assertFalse(store.contains(key), "2.0"); + assertEquals(DEFAULT_DEFAULT_STRING, store.getString(key), "2.1"); // check it - assertTrue("3.0", found[0]); -} + assertTrue(found[0], "3.0"); + } } diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java index a6526ee5d33..0e2a768597f 100644 --- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java +++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java @@ -27,7 +27,6 @@ @SelectClasses({ FontPreferenceTestCase.class, DeprecatedFontPreferenceTestCase.class, - ScopedPreferenceStoreTestCase.class, WorkingCopyPreferencesTestCase.class, PropertyPageEnablementTest.class, ListenerRemovalTestCase.class, From 9b561bdb3f3fe535d7ac3b741ff22f4bb3a9e203 Mon Sep 17 00:00:00 2001 From: Patrick Ziegler Date: Mon, 24 Aug 2026 21:10:41 +0200 Subject: [PATCH 2/3] Restore dummy `ScopedPreferenceStore` for backwards compatibility #4262 This adds the `ScopedPreferenceStore` back to the Platform Workbench bundle to restore backwards compatibility. Note that this is done in a separate commit, to make sure that the history of this class now resides with the preference store that has been moved to the JFace component. The old implementation has been deprecated for removal, but is still being used in the `PlatformUI` and `AbstractUIPlugin` for backwards compatibility, in case of a type cast on the returned store. Closes #4262 --- .../eclipseui/org/eclipse/ui/PlatformUI.java | 3 +- .../eclipse/ui/plugin/AbstractUIPlugin.java | 7 +- .../ui/preferences/ScopedPreferenceStore.java | 67 +++++++++++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java index c80730105d2..9fa6be5dbca 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/PlatformUI.java @@ -23,7 +23,6 @@ import org.eclipse.e4.ui.services.help.EHelpService; import org.eclipse.jface.dialogs.IDialogSettingsProvider; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.application.WorkbenchAdvisor; @@ -31,6 +30,7 @@ import org.eclipse.ui.internal.WorkbenchMessages; import org.eclipse.ui.internal.WorkbenchPlugin; import org.eclipse.ui.internal.util.PrefUtil; +import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.eclipse.ui.testing.TestableObject; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; @@ -247,6 +247,7 @@ public static IDialogSettingsProvider getDialogSettingsProvider(Bundle bundle) { * @return the instance scoped preference store for the given class * @since 3.117 */ + @SuppressWarnings("removal") public static IPreferenceStore createPreferenceStore(Class clazz) { return new ScopedPreferenceStore(InstanceScope.INSTANCE, FrameworkUtil.getBundle(clazz).getSymbolicName()); } diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java index d891ce9c54a..d4a55a8fdcb 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/plugin/AbstractUIPlugin.java @@ -23,7 +23,6 @@ import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.dialogs.IDialogSettingsProvider; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.ScopedPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.resource.ResourceLocator; @@ -35,6 +34,7 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.ui.internal.WWinPluginAction; import org.eclipse.ui.internal.util.BundleUtility; +import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleEvent; @@ -115,7 +115,7 @@ public abstract class AbstractUIPlugin extends Plugin { /** * Storage for preferences. */ - private volatile ScopedPreferenceStore preferenceStore; + private volatile IPreferenceStore preferenceStore; /** * The registry for all graphic images; null if not yet @@ -243,9 +243,10 @@ public ImageRegistry getImageRegistry() { * * @return the preference store */ + @SuppressWarnings("removal") public IPreferenceStore getPreferenceStore() { // Create the preference store lazily. - ScopedPreferenceStore result = preferenceStore; + IPreferenceStore result = preferenceStore; if (result == null) { // First check (no locking) synchronized (this) { result = preferenceStore; diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java new file mode 100644 index 00000000000..c9741701b01 --- /dev/null +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/preferences/ScopedPreferenceStore.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2004, 2018 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + * Yves YANG - + * Initial Fix for Bug 138078 [Preferences] Preferences Store for i18n support + *******************************************************************************/ +package org.eclipse.ui.preferences; + +import org.eclipse.core.runtime.preferences.IScopeContext; + +/** + * The ScopedPreferenceStore is an IPreferenceStore that uses the scopes + * provided in org.eclipse.core.runtime.preferences. + *

+ * A ScopedPreferenceStore does the lookup of a preference based on it's search + * scopes and sets the value of the preference based on its store scope. + *

+ *

+ * The default scope is always included in the search scopes when searching for + * preference values. + *

+ * + * @see org.eclipse.core.runtime.preferences + * @since 3.1 + * @deprecated Replaced by + * {@link org.eclipse.jface.preference.ScopedPreferenceStore} to + * avoid the dependency to the Eclipse 3.x API. + */ +@Deprecated(since = "2026-09", forRemoval = true) +public class ScopedPreferenceStore extends org.eclipse.jface.preference.ScopedPreferenceStore { + + /** + * Create a new instance of the receiver. Store the values in context in the + * node looked up by qualifier. NOTE: Any instance of + * ScopedPreferenceStore should call + * + * @param context the scope to store to + * @param qualifier the qualifier used to look up the preference node + * @param defaultQualifierPath the qualifier used when looking up the defaults + */ + @Deprecated(since = "2026-09", forRemoval = true) + public ScopedPreferenceStore(IScopeContext context, String qualifier, String defaultQualifierPath) { + super(context, qualifier, defaultQualifierPath); + } + + /** + * Create a new instance of the receiver. Store the values in context in the + * node looked up by qualifier. + * + * @param context the scope to store to + * @param qualifier the qualifer used to look up the preference node + */ + @Deprecated(since = "2026-09", forRemoval = true) + public ScopedPreferenceStore(IScopeContext context, String qualifier) { + super(context, qualifier); + } + +} From af680a93f53383612cbfc9c73ad552e2d09c943d Mon Sep 17 00:00:00 2001 From: Eclipse Platform Bot Date: Mon, 24 Aug 2026 19:21:50 +0000 Subject: [PATCH 3/3] Version bump(s) for 4.41 stream --- bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF index 00c668e18e6..1c91dd15146 100644 --- a/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.genericeditor/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.ui.genericeditor;singleton:=true -Bundle-Version: 1.4.100.qualifier +Bundle-Version: 1.4.200.qualifier Bundle-Vendor: %Bundle-Vendor Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.ui.workbench.texteditor;bundle-version="3.10.0",