diff --git a/bundles/org.eclipse.e4.ui.css.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.css.core/META-INF/MANIFEST.MF index e5550accd41..8a1d3cad0d7 100644 --- a/bundles/org.eclipse.e4.ui.css.core/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.css.core/META-INF/MANIFEST.MF @@ -41,6 +41,6 @@ Export-Package: org.eclipse.e4.ui.css.core;x-internal:=true, Require-Bundle: org.w3c.css.sac;bundle-version="1.3.0", org.apache.batik.css;bundle-version="[1.9.1,2.0.0)", org.eclipse.equinox.common;bundle-version="[3.5.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)" + org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)" Bundle-RequiredExecutionEnvironment: JavaSE-17 Automatic-Module-Name: org.eclipse.e4.ui.css.core diff --git a/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java b/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java index 31424580c91..691235e33af 100644 --- a/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java +++ b/bundles/org.eclipse.e4.ui.css.core/src/org/eclipse/e4/ui/css/core/impl/engine/AbstractCSSEngine.java @@ -38,7 +38,6 @@ import java.util.function.BiConsumer; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.e4.ui.css.core.dom.CSSStylableElement; import org.eclipse.e4.ui.css.core.dom.ChildVisibilityAwareElement; import org.eclipse.e4.ui.css.core.dom.ExtendedCSSRule; @@ -206,7 +205,7 @@ public StyleSheet parseStyleSheet(InputSource source) throws IOException { if (importRule.getHref().startsWith("platform")) { url = FileLocator.resolve(new URL(importRule.getHref())); } else { - Path p = new Path(source.getURI()); + IPath p = IPath.fromOSString(source.getURI()); IPath trim = p.removeLastSegments(1); boolean isArchive = source.getURI().contains(ARCHIVE_IDENTIFIER); url = FileLocator diff --git a/bundles/org.eclipse.e4.ui.css.swt.theme/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.css.swt.theme/META-INF/MANIFEST.MF index 55b8d60d2f9..ad190bb02b2 100644 --- a/bundles/org.eclipse.e4.ui.css.swt.theme/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.css.swt.theme/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Require-Bundle: org.eclipse.swt;bundle-version="[3.6.0,4.0.0)", org.eclipse.e4.ui.css.swt;bundle-version="0.13.100", org.eclipse.e4.ui.css.core;bundle-version="0.12.200", org.w3c.css.sac;bundle-version="1.3.0", - org.eclipse.core.runtime;bundle-version="3.8.0" + org.eclipse.core.runtime;bundle-version="3.27.0" Service-Component: OSGI-INF/org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager.xml Bundle-ActivationPolicy: lazy Export-Package: org.eclipse.e4.ui.css.swt.internal.theme;x-internal:=true, diff --git a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java index 9bceeaf0a29..fa48a363bd4 100644 --- a/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java +++ b/bundles/org.eclipse.e4.ui.css.swt.theme/src/org/eclipse/e4/ui/css/swt/internal/theme/ThemeEngine.java @@ -38,7 +38,6 @@ import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.RegistryFactory; import org.eclipse.core.runtime.preferences.IEclipsePreferences; @@ -105,7 +104,7 @@ public ThemeEngine(Display display) { } catch (IOException e1) { } - IPath path = new Path(e4CSSPath + File.separator); + IPath path = IPath.fromOSString(e4CSSPath + File.separator); File modDir= new File(path.toFile().toURI()); if (!modDir.exists()) { modDir.mkdirs(); diff --git a/bundles/org.eclipse.e4.ui.dialogs/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.dialogs/META-INF/MANIFEST.MF index f5fdfbbb7e9..cb7695126fd 100644 --- a/bundles/org.eclipse.e4.ui.dialogs/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.dialogs/META-INF/MANIFEST.MF @@ -10,5 +10,5 @@ Export-Package: org.eclipse.e4.ui.dialogs.filteredtree, org.eclipse.e4.ui.dialogs.textbundles;x-internal:=true, org.eclipse.e4.ui.internal.dialogs.about;x-internal:=true Require-Bundle: org.eclipse.jface;bundle-version="3.11.0", - org.eclipse.core.runtime;bundle-version="3.18.0" + org.eclipse.core.runtime;bundle-version="3.27.0" Automatic-Module-Name: org.eclipse.e4.ui.dialogs diff --git a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/BrandingProperties.java b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/BrandingProperties.java index 9628611ac5c..fe2be51cb6e 100644 --- a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/BrandingProperties.java +++ b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/BrandingProperties.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; import org.osgi.framework.Bundle; @@ -48,7 +48,7 @@ public static Optional getUrl(String value, Bundle definingBundle) { } } catch (MalformedURLException e) { if (definingBundle != null) { - URL bundlePath = FileLocator.find(definingBundle, new Path(value)); + URL bundlePath = FileLocator.find(definingBundle, IPath.fromOSString(value)); return Optional.of(bundlePath); } } diff --git a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/ProductProperties.java b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/ProductProperties.java index 0edb6d4a6c8..dd48fe83f84 100644 --- a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/ProductProperties.java +++ b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/internal/dialogs/about/ProductProperties.java @@ -24,8 +24,8 @@ import java.util.PropertyResourceBundle; import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProduct; -import org.eclipse.core.runtime.Path; import org.eclipse.jface.resource.ImageDescriptor; import org.osgi.framework.Bundle; @@ -62,7 +62,7 @@ public class ProductProperties extends BrandingProperties implements IProductCon private static Map mappingsMap = new HashMap<>(4); private static String[] loadMappings(Bundle definingBundle) { - URL location = FileLocator.find(definingBundle, new Path(ABOUT_MAPPINGS)); + URL location = FileLocator.find(definingBundle, IPath.fromOSString(ABOUT_MAPPINGS)); PropertyResourceBundle bundle = null; if (location != null) { try (InputStream is = location.openStream()) { diff --git a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF index a88d292c002..da9d9fa53fc 100644 --- a/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.progress/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Require-Bundle: org.eclipse.e4.core.di;bundle-version="1.3.0", org.eclipse.e4.core.contexts, org.eclipse.e4.ui.model.workbench, org.eclipse.e4.ui.workbench.swt, - org.eclipse.core.runtime;bundle-version="3.10.0", + org.eclipse.core.runtime;bundle-version="3.27.0", org.eclipse.e4.ui.services Import-Package: javax.annotation;version="[1.3.0,2.0.0)", javax.inject;version="[1.0.0,2.0.0)" diff --git a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ImageTools.java b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ImageTools.java index f5ed9376e99..68f0379af44 100644 --- a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ImageTools.java +++ b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ImageTools.java @@ -17,7 +17,7 @@ import java.net.URL; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Platform; import org.eclipse.e4.ui.progress.IProgressConstants; import org.eclipse.jface.resource.ImageDescriptor; @@ -45,7 +45,7 @@ public ImageDescriptor getImageDescriptor( String relativePath) { //TODO E4 - the only place that requires org.eclipse.core.runtime URL url = FileLocator.find(Platform - .getBundle(IProgressConstants.PLUGIN_ID), new Path( + .getBundle(IProgressConstants.PLUGIN_ID), IPath.fromOSString( ICONS_LOCATION + relativePath), null); return ImageDescriptor.createFromURL(url); } diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF index 1b19d186324..861cec1b167 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.e4.ui.workbench.swt/META-INF/MANIFEST.MF @@ -21,7 +21,7 @@ Require-Bundle: org.eclipse.e4.ui.workbench;bundle-version="0.10.0", org.eclipse.e4.core.di;bundle-version="1.1.0", org.eclipse.e4.ui.css.swt.theme;bundle-version="0.12.0", org.eclipse.core.expressions;bundle-version="[3.4.200,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)", org.eclipse.e4.core.commands;bundle-version="0.9.0", org.eclipse.e4.ui.widgets;bundle-version="0.11.0", org.eclipse.e4.ui.di;bundle-version="0.9.0", diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/CSSRenderingUtils.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/CSSRenderingUtils.java index 9fd3fe1fb4f..3195ebd0978 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/CSSRenderingUtils.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/CSSRenderingUtils.java @@ -19,7 +19,6 @@ import java.util.Map; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.e4.ui.css.core.engine.CSSEngine; import org.eclipse.e4.ui.css.swt.dom.ControlElement; import org.eclipse.e4.ui.css.swt.dom.WidgetElement; @@ -130,12 +129,12 @@ public Control frameMeIfPossible(Control toFrame, String classId, private void initDragHandleResource() { Bundle bundle = FrameworkUtil.getBundle(getClass()); - IPath path = new Path("$ws$/images/dragHandle.png"); + IPath path = IPath.fromOSString("$ws$/images/dragHandle.png"); URL url = FileLocator.find(bundle, path, null); ImageDescriptor desc = ImageDescriptor.createFromURL(url); if (desc != null) JFaceResources.getImageRegistry().put(DRAG_HANDLE, desc); - path = new Path("$ws$/images/dragHandle-rotated.png"); + path = IPath.fromOSString("$ws$/images/dragHandle-rotated.png"); url = FileLocator.find(bundle, path, null); ImageDescriptor desc_rotated = ImageDescriptor.createFromURL(url); if (desc_rotated != null) diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/DialogSettingsProvider.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/DialogSettingsProvider.java index 8d8065ad0f0..6f87eef7e28 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/DialogSettingsProvider.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/DialogSettingsProvider.java @@ -27,7 +27,6 @@ import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.preferences.IPreferencesService; @@ -187,7 +186,7 @@ private static Optional loadDialogSettingsFromWorkspace(Bundle } private static Optional loadDefaultDialogSettingsFromBundle(Bundle bundle) { - URL dsURL = FileLocator.find(bundle, new Path(FN_DIALOG_SETTINGS)); + URL dsURL = FileLocator.find(bundle, IPath.fromOSString(FN_DIALOG_SETTINGS)); IDialogSettings dialogSettings = null; if (dsURL == null) { // no bundle defaults diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/WorkbenchSWTActivator.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/WorkbenchSWTActivator.java index f66d3057637..645e39ec38b 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/WorkbenchSWTActivator.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/WorkbenchSWTActivator.java @@ -41,7 +41,6 @@ import org.eclipse.core.internal.runtime.InternalPlatform; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.DialogSettings; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.osgi.service.datalocation.Location; @@ -214,7 +213,7 @@ protected void loadDialogSettings() { // otherwise look for bundle specific dialog settings Bundle bundle = context.getBundle(); - URL dsURL = FileLocator.find(bundle, new Path(FN_DIALOG_SETTINGS), null); + URL dsURL = FileLocator.find(bundle, IPath.fromOSString(FN_DIALOG_SETTINGS), null); if (dsURL == null) { return; } diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/copy/ViewLabelProvider.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/copy/ViewLabelProvider.java index 6cb1e1efb7f..bc050b65c51 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/copy/ViewLabelProvider.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/copy/ViewLabelProvider.java @@ -19,7 +19,6 @@ import java.util.Map; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.ui.model.application.descriptor.basic.MPartDescriptor; import org.eclipse.e4.ui.workbench.IResourceUtilities; @@ -48,7 +47,7 @@ public class ViewLabelProvider extends ColumnLabelProvider { static { Bundle bundle = org.eclipse.e4.ui.internal.workbench.swt.WorkbenchSWTActivator .getDefault().getBundle(); - IPath path = new Path("$nl$/icons/full/obj16/fldr_obj.png"); + IPath path = IPath.fromOSString("$nl$/icons/full/obj16/fldr_obj.png"); URL url = FileLocator.find(bundle, path, null); ImageDescriptor enabledDesc = ImageDescriptor.createFromURL(url); if (enabledDesc != null) diff --git a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF index 89e46d962a9..e6ced45679e 100644 --- a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF @@ -36,7 +36,7 @@ Export-Package: org.eclipse.jface, org.eclipse.jface.wizard.images Require-Bundle: org.eclipse.swt;bundle-version="[3.111.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.3.0,4.0.0)", + 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 Bundle-RequiredExecutionEnvironment: JavaSE-17 Import-Package: javax.xml.parsers, diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java index 3644d63e54a..f1e858a04b5 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java @@ -28,8 +28,8 @@ import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; import org.eclipse.jface.internal.InternalPolicy; import org.eclipse.jface.util.Policy; @@ -287,7 +287,7 @@ private Image createDefaultImage(boolean returnMissingImageOnError, */ String getFilePath(String name, boolean logIOException) { if (location == null) - return new Path(name).toOSString(); + return IPath.fromOSString(name).toOSString(); URL resource = location.getResource(name); @@ -295,9 +295,9 @@ String getFilePath(String name, boolean logIOException) { return null; try { if (!InternalPolicy.OSGI_AVAILABLE) {// Stand-alone case - return new Path(resource.getFile()).toOSString(); + return IPath.fromOSString(resource.getFile()).toOSString(); } - return new Path(FileLocator.toFileURL(resource).getPath()).toOSString(); + return IPath.fromOSString(FileLocator.toFileURL(resource).getPath()).toOSString(); } catch (IOException e) { if (logIOException) { Policy.logException(e); diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java index afd0ab11dc3..3bac94e1ef5 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java @@ -24,7 +24,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.PopupDialog; import org.eclipse.jface.dialogs.TitleAreaDialog; @@ -481,7 +481,7 @@ private static final void declareImage(Object bundle, String key, String path, C imageRegistry.put(key, ImageDescriptor.createFromURLSupplier(false, () -> { if (bundle != null) { - URL url = FileLocator.find((Bundle) bundle, new Path(path), null); + URL url = FileLocator.find((Bundle) bundle, IPath.fromOSString(path), null); if (url != null) { return url; } diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceLocator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceLocator.java index 30f78a6ee84..91f222c3d84 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceLocator.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceLocator.java @@ -21,7 +21,6 @@ import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.osgi.framework.Bundle; import org.osgi.framework.FrameworkUtil; @@ -55,7 +54,7 @@ public static Optional locate(String bundleSymbolicName, String filePath) { // Caveat: The resulting URL may contain $nl$ etc., which is not // directly supported by PlatformURLConnection and needs to go through // FileLocator#find(URL), see bug 250432. - IPath uriPath = new Path("/plugin").append(bundleSymbolicName).append(filePath); //$NON-NLS-1$ + IPath uriPath = IPath.fromOSString("/plugin").append(bundleSymbolicName).append(filePath); //$NON-NLS-1$ URL url; try { URI uri = new URI("platform", null, uriPath.toString(), null); //$NON-NLS-1$ @@ -93,7 +92,7 @@ public static Optional locate(String bundleSymbolicName, String filePath) { * {@link Optional#empty()}. */ public static Optional locate(Class classFromBundle, String filePath) { - return Optional.ofNullable(FileLocator.find(FrameworkUtil.getBundle(classFromBundle), new Path(filePath))); + return Optional.ofNullable(FileLocator.find(FrameworkUtil.getBundle(classFromBundle), IPath.fromOSString(filePath))); } /** diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java index a9c16a0b334..24ff2ab58ae 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java @@ -25,8 +25,8 @@ import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; import org.eclipse.jface.internal.InternalPolicy; import org.eclipse.jface.util.Policy; @@ -258,7 +258,7 @@ private static String getFilePath(URL url, boolean logIOException) { try { if (!InternalPolicy.OSGI_AVAILABLE) { if (FILE_PROTOCOL.equalsIgnoreCase(url.getProtocol())) - return new Path(url.getFile()).toOSString(); + return IPath.fromOSString(url.getFile()).toOSString(); return null; } @@ -268,7 +268,7 @@ private static String getFilePath(URL url, boolean logIOException) { } URL locatedURL = FileLocator.toFileURL(url); if (FILE_PROTOCOL.equalsIgnoreCase(locatedURL.getProtocol())) - return new Path(locatedURL.getPath()).toOSString(); + return IPath.fromOSString(locatedURL.getPath()).toOSString(); return null; } catch (IOException e) { if (logIOException) { diff --git a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF index 98d14a4a06c..ad0d5eaa528 100644 --- a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF @@ -10,7 +10,7 @@ Export-Package: org.eclipse.ui.browser, org.eclipse.ui.internal.browser;x-friends:="org.eclipse.ua.tests,org.eclipse.ui.tests.browser", org.eclipse.ui.internal.browser.browsers;x-internal:=true, org.eclipse.ui.internal.browser.macosx;x-internal:=true -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)", +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)", org.eclipse.ui;bundle-version="[3.6.0,4.0.0)", org.eclipse.urischeme;bundle-version="1.1.0" Bundle-RequiredExecutionEnvironment: JavaSE-17 diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResourceManager.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResourceManager.java index 097f06a5403..133e66073ca 100644 --- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResourceManager.java +++ b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResourceManager.java @@ -13,7 +13,7 @@ import java.net.URL; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.resource.LocalResourceManager; @@ -43,7 +43,7 @@ class ImageResourceManager { * @return image descriptor */ static ImageDescriptor getImageDescriptor(String path) { - URL url = FileLocator.find(FrameworkUtil.getBundle(ImageResourceManager.class), new Path(path), null); + URL url = FileLocator.find(FrameworkUtil.getBundle(ImageResourceManager.class), IPath.fromOSString(path), null); return ImageDescriptor.createFromURL(url); } diff --git a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF index 0ae30e3a30c..706dd169dfb 100644 --- a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF @@ -13,7 +13,7 @@ Export-Package: org.eclipse.ui.forms, org.eclipse.ui.internal.forms.css.dom;x-internal:=true, org.eclipse.ui.internal.forms.css.properties.css2;x-internal:=true, org.eclipse.ui.internal.forms.widgets;x-friends:="org.eclipse.ui.tests.forms" -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)", +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)", org.eclipse.jface;bundle-version="[3.18.0,4.0.0)", org.eclipse.ui;bundle-version="[3.105.0,4.0.0)";resolution:=optional, org.eclipse.e4.ui.css.core;bundle-version="0.10.100", diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java index 85060b84d8c..4975a64b884 100644 --- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java +++ b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java @@ -18,7 +18,7 @@ import java.net.URL; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; @@ -164,7 +164,7 @@ public void setImage(Image image) { private ImageDescriptor createImageDescriptor(String relativePath) { Bundle bundle = FrameworkUtil.getBundle(this.getClass()); - URL url = FileLocator.find(bundle, new Path(relativePath),null); + URL url = FileLocator.find(bundle, IPath.fromOSString(relativePath),null); if (url == null) return null; try { url = FileLocator.resolve(url); 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 5814b451bd1..9c1d88eefcc 100644 --- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Vendor: %Plugin.providerName Bundle-Localization: plugin Bundle-ClassPath: . Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.16.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.15.0,4.0.0)", org.eclipse.ui;bundle-version="[3.114.0,4.0.0)", org.eclipse.ui.navigator.resources;bundle-version="[3.4.0,4.0.0)", diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/FileLocationDetails.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/FileLocationDetails.java index e356504342f..1e6485c5cc4 100644 --- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/FileLocationDetails.java +++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/FileLocationDetails.java @@ -20,7 +20,7 @@ import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileInfo; import org.eclipse.core.filesystem.IFileStore; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Platform; /** @@ -57,7 +57,7 @@ private static int getValue(String name, Matcher m) { } // vars are package protected for access from DelayedEventsProcessor - Path path; + IPath path; IFileStore fileStore; IFileInfo fileInfo; @@ -124,7 +124,7 @@ private static boolean isValidPath(String path) { /** Return details if {@code path} exists */ private static FileLocationDetails checkLocation(String path, int line, int column) { FileLocationDetails spec = new FileLocationDetails(); - spec.path = new Path(path); + spec.path = IPath.fromOSString(path); spec.fileStore = EFS.getLocalFileSystem().getStore(spec.path); spec.fileInfo = spec.fileStore.fetchInfo(); spec.line = line; diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java index 56805c3fe35..8615361a11a 100644 --- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java +++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java @@ -41,7 +41,6 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.ProgressMonitorWrapper; import org.eclipse.core.runtime.Status; @@ -911,7 +910,7 @@ protected void declareWorkbenchImages() { */ protected void declareWorkbenchImage(Bundle ideBundle, String symbolicName, String path, boolean shared) { - URL url = FileLocator.find(ideBundle, new Path(path), null); + URL url = FileLocator.find(ideBundle, IPath.fromOSString(path), null); ImageDescriptor desc = ImageDescriptor.createFromURL(url); getWorkbenchConfigurer().declareImage(symbolicName, desc, shared); } diff --git a/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF index faec3b639ea..28b3e6dccc2 100644 --- a/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.ui.ide/META-INF/MANIFEST.MF @@ -47,7 +47,7 @@ Export-Package: org.eclipse.ui, org.eclipse.ui.wizards.datatransfer, org.eclipse.ui.wizards.newresource Require-Bundle: org.eclipse.core.resources;bundle-version="[3.17.0,4.0.0)";resolution:=optional, - org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)", org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)", org.eclipse.help;bundle-version="[3.2.0,4.0.0)", org.eclipse.ui;bundle-version="[3.202.0,4.0.0)", diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java index 00826af7c1a..e6064ea83b2 100644 --- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java +++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyFilesAndFoldersOperation.java @@ -48,7 +48,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.jface.dialogs.ErrorDialog; @@ -1485,7 +1484,7 @@ public String validateDestination(IContainer destination, sourceResource.getName()); } // is the source a parent of the destination? - if (new Path(sourceLocation.toString()).isPrefixOf(new Path( + if (IPath.fromOSString(sourceLocation.toString()).isPrefixOf(IPath.fromOSString( destinationLocation.toString()))) { return IDEWorkbenchMessages.CopyFilesAndFoldersOperation_destinationDescendentError; } diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java index 2cbdf3d2b03..fe8f11cb10c 100644 --- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java +++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java @@ -22,9 +22,9 @@ import org.eclipse.core.resources.mapping.IResourceChangeDescriptionFactory; import org.eclipse.core.resources.mapping.ResourceChangeValidator; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.operation.IRunnableWithProgress; @@ -84,7 +84,7 @@ protected static boolean validateCopy(Shell shell, IProject project, String newName, String[] modelProviderIds) { IResourceChangeDescriptionFactory factory = ResourceChangeValidator .getValidator().createDeltaFactory(); - factory.copy(project, new Path(newName)); + factory.copy(project, IPath.fromOSString(newName)); return IDE.promptToConfirm(shell, IDEWorkbenchMessages.CopyProjectAction_confirm, NLS.bind( IDEWorkbenchMessages.CopyProjectAction_warning, project diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java index d7b3877cdbc..99c92610392 100644 --- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java +++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ContainerGenerator.java @@ -23,7 +23,6 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.osgi.util.NLS; @@ -41,7 +40,7 @@ *

* *
- * ContainerGenerator gen = new ContainerGenerator(new Path("/A/B"));
+ * ContainerGenerator gen = new ContainerGenerator(IPath.fromOSString("/A/B"));
  * IContainer res = null;
  * try {
  * 	res = gen.getContainer(monitor); // creates project A and folder B if required
@@ -99,7 +98,7 @@ private IFolder createFolder(IFolder folderHandle, IProgressMonitor monitor) thr
 	 * @return the new folder resource handle
 	 */
 	private IFolder createFolderHandle(IContainer container, String folderName) {
-		return container.getFolder(new Path(folderName));
+		return container.getFolder(IPath.fromOSString(folderName));
 	}
 
 	/**
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
index fbb9199e7ae..1727506284e 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
@@ -31,7 +31,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
@@ -416,7 +415,7 @@ private boolean validateFolderName() {
 			updateStatus(nameStatus);
 			return false;
 		}
-		IPath path = new Path(name);
+		IPath path = IPath.fromOSString(name);
 		if (container.getFolder(path).exists() || container.getFile(path).exists()) {
 			updateStatus(IStatus.ERROR, NLS.bind(IDEWorkbenchMessages.NewFolderDialog_alreadyExists, name));
 			return false;
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
index edafe1a4aef..74a6c54e917 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
@@ -19,7 +19,6 @@
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.JFaceResources;
@@ -201,10 +200,10 @@ protected IPath getPathFromText(Text textField) {
 		String text = textField.getText();
 		// Do not make an empty path absolute so as not to confuse with the root
 		if (text.isEmpty()) {
-			return new Path(text);
+			return IPath.fromOSString(text);
 		}
 
-		return (new Path(text)).makeAbsolute();
+		return IPath.fromOSString(text).makeAbsolute();
 	}
 
 	/**
@@ -250,7 +249,7 @@ protected IPath queryForContainer(IContainer initialSelection, String msg, Strin
 	@Override
 	public String queryOverwrite(String pathString) {
 
-		Path path = new Path(pathString);
+		IPath path = IPath.fromOSString(pathString);
 
 		String messageString;
 		// Break the message up if there is a file name and a directory
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
index 95934b2328b..fe2a12ade4d 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFileCreationPage.java
@@ -42,7 +42,6 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
@@ -210,7 +209,7 @@ public IResource getResource() {
 					String resourceName = resourceGroup.getResource();
 					if (resourceName.length() > 0) {
 						try {
-							return ((IContainer) resource).getFile(Path.fromOSString(resourceName));
+							return ((IContainer) resource).getFile(IPath.fromOSString(resourceName));
 						} catch (IllegalArgumentException e) {
 							// continue below.
 						}
@@ -756,7 +755,7 @@ protected boolean validatePage() {
 		IWorkspace workspace = ResourcesPlugin.getWorkspace();
 
 		IStatus result = null;
-		if (resourceName.isEmpty() || Path.ROOT.isValidSegment(resourceName)) { // just a file (no subfolder(s))
+		if (resourceName.isEmpty() || IPath.ROOT.isValidSegment(resourceName)) { // just a file (no subfolder(s))
 			result = workspace.validateName(resourceName, IResource.FILE);
 		} else {
 			IPath containerPath = resourceGroup.getContainerFullPath();
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
index 5499808b73b..bed9bd61d27 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewFolderMainPage.java
@@ -40,7 +40,6 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.jface.dialogs.ErrorDialog;
@@ -201,7 +200,7 @@ public IResource getResource() {
 						String resourceName = resourceGroup.getResource();
 						if (resourceName.length() > 0) {
 							try {
-								return ((IContainer) resource).getFolder(Path.fromOSString(resourceName));
+								return ((IContainer) resource).getFolder(IPath.fromOSString(resourceName));
 							} catch (IllegalArgumentException e) {
 								// continue below.
 							}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
index 3999b306e8e..68a8da850d1 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewLinkPage.java
@@ -24,7 +24,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
@@ -319,7 +318,7 @@ private boolean validateLinkTargetName(String linkTargetName) {
 			setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetEmpty);
 			valid = false;
 		} else {
-			IPath path = new Path("");//$NON-NLS-1$
+			IPath path = IPath.fromOSString("");//$NON-NLS-1$
 			if (path.isValidPath(linkTargetName) == false) {
 				setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetInvalid);
 				valid = false;
@@ -348,7 +347,7 @@ private boolean validatePage() {
 					setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetNonExistent);
 					valid = false;
 				} else {
-					IStatus locationStatus = workspace.validateLinkLocation(container, new Path(linkTargetName));
+					IStatus locationStatus = workspace.validateLinkLocation(container, IPath.fromOSString(linkTargetName));
 
 					if (locationStatus.isOK() == false) {
 						setErrorMessage(IDEWorkbenchMessages.WizardNewLinkPage_linkTargetLocationInvalid);
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java
index 411bd759de3..b543e4f1dbf 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardNewProjectCreationPage.java
@@ -25,7 +25,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.util.BidiUtils;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -224,7 +223,7 @@ private final void createProjectNameGroup(Composite parent) {
 	 * @return the project location path or its anticipated initial value.
 	 */
 	public IPath getLocationPath() {
-		return new Path(locationArea.getProjectLocation());
+		return IPath.fromOSString(locationArea.getProjectLocation());
 	}
 
 	/**
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
index 712b01842fe..69d8d3cc48e 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardResourceImportPage.java
@@ -29,7 +29,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.util.BidiUtils;
 import org.eclipse.jface.viewers.ICheckStateListener;
@@ -301,10 +300,10 @@ protected IPath getResourcePath() {
 		}
 
 		if (this.initialContainerFieldValue != null && this.initialContainerFieldValue.length() > 0) {
-			return new Path(this.initialContainerFieldValue).makeAbsolute();
+			return IPath.fromOSString(this.initialContainerFieldValue).makeAbsolute();
 		}
 
-		return Path.EMPTY;
+		return IPath.EMPTY;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
index 2d42775d14a..53c1ea57ea1 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInput.java
@@ -22,7 +22,6 @@
 import org.eclipse.core.resources.IStorage;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.PlatformObject;
 import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -191,7 +190,7 @@ public IPath getPath() {
 				localFile = store.toLocalFile(EFS.CACHE, null);
 			if (localFile == null)
 				throw new IllegalArgumentException();
-			return Path.fromOSString(localFile.getAbsolutePath());
+			return IPath.fromOSString(localFile.getAbsolutePath());
 		} catch (CoreException e) {
 			//this can only happen if the file system is not available for this scheme
 			IDEWorkbenchPlugin.log(
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
index 5cf9bd0d85e..ea6d145ebc1 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/FileEditorInputFactory.java
@@ -13,12 +13,10 @@
  *******************************************************************************/
 package org.eclipse.ui.part;
 
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
-
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.ResourcesPlugin;
-
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.ui.IElementFactory;
 import org.eclipse.ui.IMemento;
 
@@ -61,8 +59,7 @@ public IAdaptable createElement(IMemento memento) {
 
 		// Get a handle to the IFile...which can be a handle
 		// to a resource that does not exist in workspace
-		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(
-				new Path(fileName));
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(IPath.fromOSString(fileName));
 		if (file != null) {
 			return new FileEditorInput(file);
 		}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
index ec8677b8e1f..05c63b2d966 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/MarkerTransfer.java
@@ -24,7 +24,6 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
@@ -79,7 +78,7 @@ private MarkerTransfer() {
 	 * @return the specified marker
 	 */
 	private IMarker findMarker(String pathString, long id) {
-		IPath path = new Path(pathString);
+		IPath path = IPath.fromOSString(pathString);
 		IResource resource = workspace.getRoot().findMember(path);
 		if (resource != null) {
 			return resource.getMarker(id);
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
index 83796ae78f8..aef0e755cef 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/part/ResourceTransfer.java
@@ -23,7 +23,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.util.Util;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
@@ -202,9 +202,9 @@ private IResource readResource(DataInputStream dataIn) throws IOException {
 		String path = dataIn.readUTF();
 		switch (type) {
 		case IResource.FOLDER:
-			return workspace.getRoot().getFolder(new Path(path));
+			return workspace.getRoot().getFolder(IPath.fromOSString(path));
 		case IResource.FILE:
-			return workspace.getRoot().getFile(new Path(path));
+			return workspace.getRoot().getFile(IPath.fromOSString(path));
 		case IResource.PROJECT:
 			return workspace.getRoot().getProject(path);
 		}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
index b1e8f3627c8..0382ae529ca 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/PathVariableSelectionDialog.java
@@ -21,7 +21,6 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.window.Window;
@@ -181,12 +180,12 @@ protected void okPressed() {
 	 */
 	private void setExtensionResult(
 			PathVariablesGroup.PathVariableElement variable, IFileStore extensionFile) {
-		IPath extensionPath = new Path(extensionFile.toString());
+		IPath extensionPath = IPath.fromOSString(extensionFile.toString());
 		IPath selectionPath = variable.path;
 		if (currentResource != null)
 			selectionPath = URIUtil.toPath(currentResource.getPathVariableManager().resolveURI(URIUtil.toURI(selectionPath)));
 		int matchCount = extensionPath.matchingFirstSegments(selectionPath);
-		IPath resultPath = new Path(variable.name);
+		IPath resultPath = IPath.fromOSString(variable.name);
 
 		extensionPath = extensionPath.removeFirstSegments(matchCount);
 		resultPath = resultPath.append(extensionPath);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceTreeAndListGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceTreeAndListGroup.java
index fbad641c47f..849d430325a 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceTreeAndListGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/dialogs/ResourceTreeAndListGroup.java
@@ -29,7 +29,6 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.jface.util.SafeRunnable;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
@@ -659,7 +658,7 @@ private String getFullLabel(Object treeElement, String parentLabel) {
 		if (parentLabel == null){
 			label = ""; //$NON-NLS-1$
 		}
-		IPath parentName = new Path(label);
+		IPath parentName = IPath.fromOSString(label);
 
 		String elementText = treeLabelProvider.getText(treeElement);
 		if(elementText == null) {
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
index e272648fb4f..059c928101b 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/undo/CopyProjectOperation.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
@@ -71,7 +70,7 @@ public class CopyProjectOperation extends AbstractCopyOrMoveResourcesOperation {
 	 */
 	public CopyProjectOperation(IProject project, String name, URI location,
 			String label) {
-		super(new IResource[] { project }, new Path(name), label);
+		super(new IResource[] { project }, IPath.fromOSString(name), label);
 		Assert.isLegal(project != null);
 		originalProject = project;
 		if (location != null
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
index c179a6f8d66..5f7b343bc23 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/AboutInfo.java
@@ -23,8 +23,8 @@
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IBundleGroup;
 import org.eclipse.core.runtime.IBundleGroupProvider;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.internal.BundleGroupProperties;
@@ -141,7 +141,7 @@ public String getFeatureImageName() {
 		}
 
 		URL url = bundleGroupProperties.getFeatureImageUrl();
-		return url == null ? null : new Path(url.getPath()).lastSegment();
+		return url == null ? null : IPath.fromOSString(url.getPath()).lastSegment();
 	}
 
 	/**
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 727c419ee99..38fdf2f753f 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,7 +23,7 @@
 import java.net.URL;
 import java.util.StringTokenizer;
 
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.jface.preference.IPreferenceStore;
@@ -153,7 +153,7 @@ private void setInitialDefault(String dir) {
 			return;
 		}
 
-		dir = new Path(dir).toOSString();
+		dir = IPath.fromOSString(dir).toOSString();
 		while (dir.charAt(dir.length() - 1) == File.separatorChar) {
 			dir = dir.substring(0, dir.length() - 1);
 		}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceWithSettingsDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceWithSettingsDialog.java
index 6fa0cec3c7f..29194850e48 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceWithSettingsDialog.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceWithSettingsDialog.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.runtime.ISafeRunnable;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.ErrorDialog;
@@ -264,7 +263,7 @@ protected void okPressed() {
 				IDEWorkbenchMessages.ChooseWorkspaceWithSettingsDialog_ProblemsTransferTitle,
 				null);
 
-		IPath path = new Path(getWorkspaceLocation());
+		IPath path = IPath.fromOSString(getWorkspaceLocation());
 		String[] selectionIDs = new String[selectedSettings.size()];
 		int index = 0;
 
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
index 52b9fcb79ad..70f46940d7d 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/EditorAreaDropAdapter.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DropTargetAdapter;
 import org.eclipse.swt.dnd.DropTargetEvent;
@@ -129,7 +129,7 @@ else if (FileTransfer.getInstance().isSupportedType(
 				event.currentDataType)) {
 			Assert.isTrue(event.data instanceof String[]);
 			for (String path : (String[]) event.data) {
-				IFileStore fileStore = EFS.getLocalFileSystem().getStore(new Path(path));
+				IFileStore fileStore = EFS.getLocalFileSystem().getStore(IPath.fromOSString(path));
 				try {
 					IDE.openEditorOnFileStore(page, fileStore);
 				} catch (PartInitException e) {
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenLocalFileAction.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenLocalFileAction.java
index e4388dc843e..87a839c0969 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenLocalFileAction.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/actions/OpenLocalFileAction.java
@@ -13,22 +13,17 @@
  *******************************************************************************/
 package org.eclipse.ui.internal.ide.actions;
 
-import org.eclipse.osgi.util.NLS;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.FileDialog;
-
 import org.eclipse.core.filesystem.EFS;
 import org.eclipse.core.filesystem.IFileInfo;
 import org.eclipse.core.filesystem.IFileStore;
-
-import org.eclipse.core.runtime.Path;
-
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
-
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
@@ -91,7 +86,7 @@ public void run() {
 			int numberOfFilesNotFound =  0;
 			StringBuilder notFound =  new StringBuilder();
 			for (String name : names) {
-				IFileStore fileStore =  EFS.getLocalFileSystem().getStore(new Path(filterPath));
+				IFileStore fileStore =  EFS.getLocalFileSystem().getStore(IPath.fromOSString(filterPath));
 				fileStore =  fileStore.getChild(name);
 				IFileInfo fetchInfo = fileStore.fetchInfo();
 				if (!fetchInfo.isDirectory() && fetchInfo.exists()) {
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
index 945553216f7..6650598eb72 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/commands/ResourcePathConverter.java
@@ -19,7 +19,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 
 /**
  * A command parameter value converter to convert between IResources and strings
@@ -33,7 +33,7 @@ public final class ResourcePathConverter extends
 	@Override
 	public final Object convertToObject(final String parameterValue)
 			throws ParameterValueConversionException {
-		final Path path = new Path(parameterValue);
+		final IPath path = IPath.fromOSString(parameterValue);
 		final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace()
 				.getRoot();
 		final IResource resource = workspaceRoot.findMember(path);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
index 9e949d8b9b4..9a6b63e1861 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
@@ -29,7 +29,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.dialogs.Dialog;
@@ -287,7 +286,7 @@ private void createLinkLocationGroup(Composite locationGroup,
 				String value = updatableResourceName.getValue();
 				if (value == null
 						|| value.isEmpty() || value.equals(lastUpdatedValue)) {
-					IPath linkTargetPath = new Path(linkTarget);
+					IPath linkTargetPath = IPath.fromOSString(linkTarget);
 					String lastSegment = linkTargetPath.lastSegment();
 					if (lastSegment != null) {
 						lastUpdatedValue = lastSegment;
@@ -432,7 +431,7 @@ public URI getLinkTargetURI() {
 		//  3) A path variable relative path, ex:		VAR\foo\bar\file.txt
 		URI uri;
 		try {
-			IPath path = Path.fromOSString(linkTarget);
+			IPath path = IPath.fromOSString(linkTarget);
 			if (path != null && path.toFile().exists())
 				return URIUtil.toURI(path);
 
@@ -705,7 +704,7 @@ public IStatus validateLinkLocation(IResource linkHandle) {
 		if (configuration == null
 				|| EFS.SCHEME_FILE.equals(configuration.getScheme())) {
 			// Special handling for UNC paths. See bug 90825
-			IPath location = new Path(linkTarget);
+			IPath location = IPath.fromOSString(linkTarget);
 			if (location.isUNC()) {
 				return createStatus(
 						IStatus.WARNING,
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
index 2f2afc508ba..373d7911fe4 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/IDEResourceInfoUtils.java
@@ -33,7 +33,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.osgi.util.NLS;
@@ -201,7 +200,7 @@ public static IFileInfo getFileInfo(URI location) {
 	 *         {@link CoreException}.
 	 */
 	public static IFileStore getFileStore(String string) {
-		Path location = new Path(string);
+		IPath location = IPath.fromOSString(string);
 		//see if there is an existing resource at that location that might have a different file store
 		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(location);
 		if (file != null) {
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourceEditor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourceEditor.java
index fc7218a8c71..a44b098bfb7 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourceEditor.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/LinkedResourceEditor.java
@@ -35,7 +35,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.jface.dialogs.Dialog;
@@ -665,9 +664,9 @@ protected Control createCustomArea(Composite comp) {
 	}
 
 	private IPath convertToProperCase(IPath path) {
-		if (Platform.getOS().equals(Platform.OS_WIN32))
-			return Path.fromPortableString(path.toPortableString()
-					.toLowerCase());
+		if (Platform.getOS().equals(Platform.OS_WIN32)) {
+			return IPath.fromPortableString(path.toPortableString().toLowerCase());
+		}
 		return path;
 	}
 
@@ -715,7 +714,7 @@ private void convertToRelative(ArrayList resources,
 			int variable = -1;
 			for (int i = 0; i < variables.length; i++) {
 				IPath resolvePath = URIUtil.toPath(res.getPathVariableManager().resolveURI(
-						URIUtil.toURI(Path.fromOSString(variables[i]))));
+						URIUtil.toURI(IPath.fromOSString(variables[i]))));
 				if (resolvePath
 						.isPrefixOf(convertToProperCase(location))) {
 					int count = location
@@ -727,7 +726,7 @@ private void convertToRelative(ArrayList resources,
 				}
 			}
 			if (variable != -1) {
-				IPath newLocation = Path.fromOSString(variables[variable])
+				IPath newLocation = IPath.fromOSString(variables[variable])
 						.append(location.removeFirstSegments(maxCount));
 				try {
 					setLinkLocation(res, newLocation);
@@ -793,8 +792,8 @@ private void convertToRelative(ArrayList resources,
 					IPath location = res.getLocation();
 					int commonCount = location
 							.matchingFirstSegments(commonPath);
-					IPath newLocation = Path.fromOSString(variableName).append(
-							location.removeFirstSegments(commonCount));
+					IPath newLocation = IPath.fromOSString(variableName)
+							.append(location.removeFirstSegments(commonCount));
 					try {
 						setLinkLocation(res, newLocation);
 						report
@@ -845,8 +844,7 @@ private void convertToRelative(ArrayList resources,
 			}
 			IPath location = res.getLocation();
 			int commonCount = location.matchingFirstSegments(commonPath);
-			IPath newLocation = Path.fromOSString(variableName).append(
-					location.removeFirstSegments(commonCount));
+			IPath newLocation = IPath.fromOSString(variableName).append(location.removeFirstSegments(commonCount));
 			try {
 				setLinkLocation(res, newLocation);
 				report
@@ -914,7 +912,7 @@ void editLocation() {
 		if (dialog.open() == Window.CANCEL) {
 			return;
 		}
-		location = Path.fromOSString(dialog.getVariableValue());
+		location = IPath.fromOSString(dialog.getVariableValue());
 		try {
 			setLinkLocation(resource, location);
 		} catch (Exception e) {
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
index f76b2d510d2..5e8d196e5c9 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariableDialog.java
@@ -28,7 +28,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.IMessageProvider;
@@ -407,7 +406,7 @@ private String getVariableResolvedValue() {
 			IPathVariableManager pathVariableManager2 = currentResource.getPathVariableManager();
 			String[] variables = pathVariableManager2.getPathVariableNames();
 			String internalFormat = pathVariableManager2.convertFromUserEditableFormat(variableValue, operationMode == EDIT_LINK_LOCATION);
-			URI uri = URIUtil.toURI(Path.fromOSString(internalFormat));
+			URI uri = URIUtil.toURI(IPath.fromOSString(internalFormat));
 			URI resolvedURI = pathVariableManager2.resolveURI(uri);
 			String resolveValue = URIUtil.toPath(resolvedURI).toOSString();
 			// Delete intermediate variables that might have been created as
@@ -470,7 +469,7 @@ private void selectFolder() {
 		dialog.setFilterPath(filterPath);
 		String res = dialog.open();
 		if (res != null) {
-			variableValue = new Path(res).makeAbsolute().toOSString();
+			variableValue = IPath.fromOSString(res).makeAbsolute().toOSString();
 			variableValueField.setText(variableValue);
 		}
 	}
@@ -485,7 +484,7 @@ private void selectFile() {
 		dialog.setFilterPath(filterPath);
 		String res = dialog.open();
 		if (res != null) {
-			variableValue = new Path(res).makeAbsolute().toOSString();
+			variableValue = IPath.fromOSString(res).makeAbsolute().toOSString();
 			variableValueField.setText(variableValue);
 		}
 	}
@@ -498,7 +497,7 @@ private void selectVariable() {
 			String[] variableNames = (String[]) dialog.getResult();
 			if (variableNames != null && variableNames.length == 1) {
 				String newValue = variableNames[0];
-				IPath path = Path.fromOSString(newValue);
+				IPath path = IPath.fromOSString(newValue);
 				if (operationMode != EDIT_LINK_LOCATION && currentResource != null && !path.isAbsolute() && path.segmentCount() > 0) {
 					path = buildVariableMacro(path);
 					newValue = path.toOSString();
@@ -512,7 +511,7 @@ private void selectVariable() {
 	private IPath buildVariableMacro(IPath relativeSrcValue) {
 		String variable = relativeSrcValue.segment(0);
 		variable = "${" + variable + "}";  //$NON-NLS-1$//$NON-NLS-2$
-		return Path.fromOSString(variable).append(relativeSrcValue.removeFirstSegments(1));
+		return IPath.fromOSString(variable).append(relativeSrcValue.removeFirstSegments(1));
 	}
 
 	/**
@@ -618,7 +617,7 @@ private boolean validateVariableValue() {
 			// contain macros such as "${foo}\etc"
 			allowFinish = true;
 			String resolvedValue = getVariableResolvedValue();
-			IPath resolvedPath = Path.fromOSString(resolvedValue);
+			IPath resolvedPath = IPath.fromOSString(resolvedValue);
 			if (!IDEResourceInfoUtils.exists(resolvedPath.toOSString())) {
 				// the path does not exist (warning)
 				message = IDEWorkbenchMessages.PathVariableDialog_pathDoesNotExistMessage;
@@ -636,11 +635,11 @@ private boolean validateVariableValue() {
 						message = IDEWorkbenchMessages.PathVariableDialog_variableValueIsWrongTypeFile;
 				}
 			}
-		} else if (!Path.EMPTY.isValidPath(variableValue)) {
+		} else if (!IPath.EMPTY.isValidPath(variableValue)) {
 			// the variable value is an invalid path
 			message = IDEWorkbenchMessages.PathVariableDialog_variableValueInvalidMessage;
 			newValidationStatus = IMessageProvider.ERROR;
-		} else if (!new Path(variableValue).isAbsolute()) {
+		} else if (!IPath.fromOSString(variableValue).isAbsolute()) {
 			// the variable value is a relative path
 			message = IDEWorkbenchMessages.PathVariableDialog_pathIsRelativeMessage;
 			newValidationStatus = IMessageProvider.ERROR;
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java
index 7ce89df02f6..7fdf5e9a1fa 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/PathVariablesGroup.java
@@ -33,7 +33,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
@@ -211,7 +210,7 @@ private void addNewVariable() {
 		// otherwise, adds the new variable (or updates an existing one) in the
 		// temporary collection of currently defined variables
 		String newVariableName = dialog.getVariableName();
-		IPath newVariableValue = new Path(dialog.getVariableValue());
+		IPath newVariableValue = IPath.fromOSString(dialog.getVariableValue());
 		tempPathVariables.put(newVariableName, newVariableValue);
 
 		// the UI must be updated
@@ -451,7 +450,7 @@ private void editSelectedVariable() {
 		tempPathVariables.remove(variableName);
 
 		String newVariableName = dialog.getVariableName();
-		IPath newVariableValue = new Path(dialog.getVariableValue());
+		IPath newVariableValue = IPath.fromOSString(dialog.getVariableValue());
 
 		// and add it again (maybe with a different name)
 		tempPathVariables.put(newVariableName, newVariableValue);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/RelativePathVariableGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/RelativePathVariableGroup.java
index 314d6880c00..1cb22220d75 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/RelativePathVariableGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/RelativePathVariableGroup.java
@@ -23,7 +23,6 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
@@ -345,7 +344,7 @@ public static String getPreferredVariable(String[] names,
 			IContainer target) {
 		IPath[] paths = new IPath[names.length];
 		for (int i = 0; i < names.length; i++) {
-			paths[i] = Path.fromOSString(names[i]);
+			paths[i] = IPath.fromOSString(names[i]);
 		}
 		return getPreferredVariable(paths, target);
 	}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
index 500e24b08cb..d8471f42293 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceInfoPage.java
@@ -44,7 +44,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.content.IContentDescription;
@@ -329,7 +328,7 @@ public void widgetSelected(SelectionEvent e) {
 			ResourceManager resourceManager = new LocalResourceManager(JFaceResources.getResources(),
 					goToLocationButton);
 			Bundle bundle = FrameworkUtil.getBundle(getClass());
-			URL goToFolderUrl = FileLocator.find(bundle, new Path("icons/full/obj16/goto_input.png"), //$NON-NLS-1$
+			URL goToFolderUrl = FileLocator.find(bundle, IPath.fromOSString("icons/full/obj16/goto_input.png"), //$NON-NLS-1$
 					null);
 			goToLocationButton.setImage(resourceManager.createImage(ImageDescriptor.createFromURL(goToFolderUrl)));
 			goToLocationButton.setToolTipText(LOCATION_BUTTON_TOOLTIP);
@@ -389,7 +388,7 @@ public void widgetSelected(SelectionEvent e) {
 	protected void editLinkLocation() {
 		IResource resource = Adapters.adapt(getElement(), IResource.class);
 		String locationFormat = resource.getPathVariableManager().convertFromUserEditableFormat(locationValue.getText(), true);
-		IPath location = Path.fromOSString(locationFormat);
+		IPath location = IPath.fromOSString(locationFormat);
 
 		PathVariableDialog dialog = new PathVariableDialog(getShell(),
 				PathVariableDialog.EDIT_LINK_LOCATION, resource.getType(),
@@ -400,7 +399,7 @@ protected void editLinkLocation() {
 		if (dialog.open() == Window.CANCEL) {
 			return;
 		}
-		location = Path.fromOSString(dialog.getVariableValue());
+		location = IPath.fromOSString(dialog.getVariableValue());
 		newResourceLocation = location;
 		refreshLinkLocation();
 	}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowInSystemExplorerHandler.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowInSystemExplorerHandler.java
index f86e3322825..87b7b1c5ff7 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowInSystemExplorerHandler.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/handlers/ShowInSystemExplorerHandler.java
@@ -15,6 +15,7 @@
  ******************************************************************************/
 
 package org.eclipse.ui.internal.ide.handlers;
+
 import java.io.File;
 import java.io.IOException;
 
@@ -26,7 +27,6 @@
 import org.eclipse.core.runtime.Adapters;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.services.statusreporter.StatusReporter;
@@ -132,7 +132,7 @@ private IResource getResourceByParameter(ExecutionEvent event) {
 		if (parameter == null) {
 			return null;
 		}
-		IPath path = new Path(parameter);
+		IPath path = IPath.fromOSString(parameter);
 		return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
 	}
 
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
index 870f3388591..85f9c73ecbc 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ContainerSelectionGroup.java
@@ -21,7 +21,6 @@
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.util.BidiUtils;
@@ -307,7 +306,7 @@ public IPath getContainerFullPath() {
 				return null;
 			}
 			// The user may not have made this absolute so do it for them
-			return (new Path(TextProcessor.deprocess(pathName))).makeAbsolute();
+			return (IPath.fromOSString(TextProcessor.deprocess(pathName))).makeAbsolute();
 
 		}
 		if (selectedContainer == null)
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
index 76e1cdc32be..085c100e790 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/ResourceAndContainerGroup.java
@@ -22,7 +22,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.util.BidiUtils;
 import org.eclipse.osgi.util.NLS;
@@ -556,7 +555,7 @@ protected boolean validateResourceName() {
 			return false;
 		}
 
-		if (!Path.ROOT.isValidPath(resourceName)) {
+		if (!IPath.ROOT.isValidPath(resourceName)) {
 			problemType = PROBLEM_NAME_INVALID;
 			problemMessage = NLS.bind(
 					IDEWorkbenchMessages.ResourceGroup_invalidFilename,
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java
index 6017925dbf0..77252a564a1 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/model/ResourceFactory.java
@@ -17,7 +17,7 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.ui.IElementFactory;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IPersistableElement;
@@ -77,7 +77,7 @@ public IAdaptable createElement(IMemento memento) {
 		if (type == null) {
 			// Old format memento. Create an IResource using findMember.
 			// Will return null for resources in closed projects.
-			res = root.findMember(new Path(fileName));
+			res = root.findMember(IPath.fromOSString(fileName));
 		} else {
 			int resourceType = Integer.parseInt(type);
 
@@ -86,9 +86,9 @@ public IAdaptable createElement(IMemento memento) {
 			} else if (resourceType == IResource.PROJECT) {
 				res = root.getProject(fileName);
 			} else if (resourceType == IResource.FOLDER) {
-				res = root.getFolder(new Path(fileName));
+				res = root.getFolder(IPath.fromOSString(fileName));
 			} else if (resourceType == IResource.FILE) {
-				res = root.getFile(new Path(fileName));
+				res = root.getFile(IPath.fromOSString(fileName));
 			}
 		}
 		return res;
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java
index 5fadbef92b4..3bf9e0043f0 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/registry/MarkerImageProviderRegistry.java
@@ -20,7 +20,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
@@ -164,7 +164,7 @@ public ImageDescriptor getImageDescriptor(IMarker marker) {
 	 * Returns the image descriptor with the given relative path.
 	 */
 	ImageDescriptor getImageDescriptor(Descriptor desc) {
-		URL url = FileLocator.find(desc.pluginBundle, new Path(desc.imagePath));
+		URL url = FileLocator.find(desc.pluginBundle, IPath.fromOSString(desc.imagePath));
 		return ImageDescriptor.createFromURL(url);
 	}
 }
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
index 5cc6e16dca9..7db77570eeb 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/undo/ContainerDescription.java
@@ -26,7 +26,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.ui.ide.dialogs.UIResourceFilterDescription;
 import org.eclipse.ui.ide.undo.ResourceDescription;
@@ -113,8 +112,7 @@ protected static ContainerDescription fromContainer(IContainer container, boolea
 						.getProject(currentSegment));
 				currentContainerDescription = firstCreatedParent;
 			} else {
-				IFolder folderHandle = currentContainer.getFolder(new Path(
-						currentSegment));
+				IFolder folderHandle = currentContainer.getFolder(IPath.fromOSString(currentSegment));
 				ContainerDescription currentFolder;
 				currentFolder = new FolderDescription(folderHandle, usingVirtualFolder);
 				currentContainer = folderHandle;
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseProjectConfigurator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseProjectConfigurator.java
index aadc813c325..0b86015540c 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseProjectConfigurator.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseProjectConfigurator.java
@@ -28,7 +28,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
 import org.eclipse.ui.wizards.datatransfer.ProjectConfigurator;
 
@@ -56,7 +55,7 @@ public Set findConfigurableLocations(File root, IProgressMonitor monitor)
 
 	@Override
 	public boolean shouldBeAnEclipseProject(IContainer container, IProgressMonitor monitor) {
-		return container.getFile(new Path(IProjectDescription.DESCRIPTION_FILE_NAME)).exists();
+		return container.getFile(IPath.fromOSString(IProjectDescription.DESCRIPTION_FILE_NAME)).exists();
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseWorkspaceConfigurator.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseWorkspaceConfigurator.java
index 8e5554d635d..60f10201f7f 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseWorkspaceConfigurator.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/EclipseWorkspaceConfigurator.java
@@ -23,7 +23,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.wizards.datatransfer.ProjectConfigurator;
 
 /**
@@ -38,13 +37,13 @@ public Set findConfigurableLocations(File root, IProgressMonitor monitor)
 
 	@Override
 	public boolean shouldBeAnEclipseProject(IContainer container, IProgressMonitor monitor) {
-		return container.getFolder(new Path(".metadata")).exists(); //$NON-NLS-1$
+		return container.getFolder(IPath.fromOSString(".metadata")).exists(); //$NON-NLS-1$
 	}
 
 	@Override
 	public Set getFoldersToIgnore(IProject project, IProgressMonitor monitor) {
 		Set res = new HashSet<>();
-		res.add(project.getFolder(new Path(".metadata"))); //$NON-NLS-1$
+		res.add(project.getFolder(IPath.fromOSString(".metadata"))); //$NON-NLS-1$
 		return res;
 	}
 
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java
index 315f87ca52f..2d65a6da354 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/FileSystemExportOperation.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.operation.ModalContext;
@@ -77,7 +76,7 @@ public FileSystemExportOperation(IResource res, String destinationPath,
 			IOverwriteQuery overwriteImplementor) {
 		super();
 		resource = res;
-		path = new Path(destinationPath);
+		path = IPath.fromOSString(destinationPath);
 		overwriteCallback = overwriteImplementor;
 	}
 
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/SmartImportJob.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/SmartImportJob.java
index 1b8874192a1..97c15620d50 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/SmartImportJob.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/SmartImportJob.java
@@ -41,7 +41,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
@@ -210,7 +209,7 @@ public IStatus run(IProgressMonitor monitor) {
 						leafToRootProjects.put(directoryToImport, newProject);
 						loopMonitor.worked(1);
 					} catch (CouldNotImportProjectException ex) {
-						Path path = new Path(directoryToImport.getAbsolutePath());
+						IPath path = IPath.fromOSString(directoryToImport.getAbsolutePath());
 						if (listener != null) {
 							listener.errorHappened(path, ex);
 						}
@@ -410,7 +409,7 @@ private Set importProjectAndChildrenRecursively(final IContainer conta
 		Set excludedPaths = new HashSet<>();
 		if (this.excludedDirectories != null) {
 			for (File excludedDirectory : this.excludedDirectories) {
-				excludedPaths.add(new Path(excludedDirectory.getAbsolutePath()));
+				excludedPaths.add(IPath.fromOSString(excludedDirectory.getAbsolutePath()));
 			}
 		}
 		container.refreshLocal(IResource.DEPTH_INFINITE, progressMonitor);
@@ -584,7 +583,7 @@ private IProject createOrImportProject(File directory, IProgressMonitor progress
 		IProjectDescription desc = null;
 		File expectedProjectDescriptionFile = new File(directory, IProjectDescription.DESCRIPTION_FILE_NAME);
 		if (expectedProjectDescriptionFile.exists()) {
-			desc = ResourcesPlugin.getWorkspace().loadProjectDescription(new Path(expectedProjectDescriptionFile.getAbsolutePath()));
+			desc = ResourcesPlugin.getWorkspace().loadProjectDescription(IPath.fromOSString(expectedProjectDescriptionFile.getAbsolutePath()));
 			String expectedName = desc.getName();
 			IProject projectWithSameName = this.workspaceRoot.getProject(expectedName);
 			if (projectWithSameName.exists()) {
@@ -599,7 +598,7 @@ private IProject createOrImportProject(File directory, IProgressMonitor progress
 			String projectName = generateNewProjectName(directory, this.workspaceRoot);
 			desc = ResourcesPlugin.getWorkspace().newProjectDescription(projectName);
 		}
-		desc.setLocation(new Path(directory.getAbsolutePath()));
+		desc.setLocation(IPath.fromOSString(directory.getAbsolutePath()));
 		IProject res = this.workspaceRoot.getProject(desc.getName());
 		res.create(desc, progressMonitor);
 		PlatformUI.getWorkbench().getWorkingSetManager().addToWorkingSets(res, this.workingSets);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
index f6d61ac3025..9860860f664 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/TarLeveledStructureProvider.java
@@ -26,7 +26,6 @@
 
 import org.eclipse.core.resources.ResourceAttributes;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
 
 /**
@@ -94,7 +93,7 @@ protected TarEntry createContainer(IPath pathname) {
 	 * Creates a new tar file entry with the specified name.
 	 */
 	protected void createFile(TarEntry entry) {
-		IPath pathname = new Path(entry.getName());
+		IPath pathname = IPath.fromOSString(entry.getName());
 		TarEntry parent;
 		if (pathname.segmentCount() == 1) {
 			parent = root;
@@ -151,7 +150,7 @@ public String getLabel(Object element) {
 			return ((TarEntry) element).getName();
 		}
 
-		return stripPath(new Path(((TarEntry) element).getName()).lastSegment());
+		return stripPath(IPath.fromOSString(((TarEntry) element).getName()).lastSegment());
 	}
 
 	/**
@@ -201,7 +200,7 @@ protected void initialize() {
 		Enumeration entries = tarFile.entries();
 		while (entries.hasMoreElements()) {
 			TarEntry entry = (TarEntry) entries.nextElement();
-			IPath path = new Path(entry.getName()).addTrailingSeparator();
+			IPath path = IPath.fromOSString(entry.getName()).addTrailingSeparator();
 
 			if (entry.getFileType() == TarEntry.DIRECTORY) {
 				createContainer(path);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
index e825246a65b..e41eb515be4 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceExportPage1.java
@@ -23,7 +23,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
@@ -526,7 +525,7 @@ protected String destinationEmptyMessage() {
 	protected String getConflictingContainerNameFor(String targetDirectory) {
 
 		IPath rootPath = ResourcesPlugin.getWorkspace().getRoot().getLocation();
-		IPath testPath = new Path(targetDirectory);
+		IPath testPath = IPath.fromOSString(targetDirectory);
 		// cannot export into workspace root
 		if(testPath.equals(rootPath))
 			return rootPath.lastSegment();
@@ -552,7 +551,7 @@ protected String getConflictingContainerNameFor(String targetDirectory) {
 	 */
 	private String getOverlappingProjectName(String targetDirectory){
 		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IPath testPath = new Path(targetDirectory);
+		IPath testPath = IPath.fromOSString(targetDirectory);
 		IContainer[] containers = root.findContainersForLocation(testPath);
 		if(containers.length > 0){
 			return containers[0].getProject().getName();
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
index 9af63d59cf2..9c19fe3538d 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardFileSystemResourceImportPage1.java
@@ -31,7 +31,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.equinox.bidi.StructuredTextTypeHandlerFactory;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
@@ -778,7 +777,7 @@ private String getSourceDirectoryName() {
 	 *	removed so that java treats it as a proper directory
 	 */
 	private String getSourceDirectoryName(String sourceName) {
-		IPath result = new Path(sourceName.trim());
+		IPath result = IPath.fromOSString(sourceName.trim());
 
 		if (result.getDevice() != null && result.segmentCount() == 0) {
 			result = result.addTrailingSeparator();
@@ -885,7 +884,8 @@ protected void handleContainerBrowseButtonPressed() {
 			File file = getSourceDirectory();
 			if (file != null && target != null) {
 				relativePathVariableGroup.setupVariableContent();
-				String preferedVariable = RelativePathVariableGroup.getPreferredVariable(new IPath[] {Path.fromOSString(file.getAbsolutePath())}, (IContainer) target);
+				String preferedVariable = RelativePathVariableGroup.getPreferredVariable(
+						new IPath[] { IPath.fromOSString(file.getAbsolutePath()) }, (IContainer) target);
 				if (preferedVariable != null)
 					relativePathVariableGroup.selectVariable(preferedVariable);
 			}
@@ -946,7 +946,8 @@ protected void resetSelection() {
 			if (path != null && relativePathVariableGroup != null) {
 				IResource target = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
 				if (target != null) {
-					String variable = RelativePathVariableGroup.getPreferredVariable(new IPath[] {Path.fromOSString(sourceDirectory.getAbsolutePath())}, (IContainer) target);
+					String variable = RelativePathVariableGroup.getPreferredVariable(
+							new IPath[] { IPath.fromOSString(sourceDirectory.getAbsolutePath()) }, (IContainer) target);
 					if (variable != null)
 						relativePathVariableGroup.selectVariable(variable);
 				}
@@ -1241,7 +1242,7 @@ protected boolean validateSourceGroup() {
 			return false;
 		}
 
-		if (sourceConflictsWithDestination(new Path(sourceDirectory.getPath()))) {
+		if (sourceConflictsWithDestination(IPath.fromOSString(sourceDirectory.getPath()))) {
 			setMessage(null);
 			setErrorMessage(getSourceConflictMessage());
 			enableButtonGroup(false);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
index ec6b39911a5..56faff0c2db 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/WizardProjectsImportPage.java
@@ -54,7 +54,6 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
@@ -205,11 +204,11 @@ private void setProjectName() {
 					// If we can get a description pull the name from there
 					if (stream == null) {
 						if (projectArchiveFile instanceof ZipEntry) {
-							IPath path = new Path(
+							IPath path = IPath.fromOSString(
 									((ZipEntry) projectArchiveFile).getName());
 							projectName = path.segment(path.segmentCount() - 2);
 						} else if (projectArchiveFile instanceof TarEntry) {
-							IPath path = new Path(
+							IPath path = IPath.fromOSString(
 									((TarEntry) projectArchiveFile).getName());
 							projectName = path.segment(path.segmentCount() - 2);
 						}
@@ -224,7 +223,7 @@ private void setProjectName() {
 
 				// If we don't have the project name try again
 				if (projectName == null) {
-					IPath path = new Path(projectSystemFile.getPath());
+					IPath path = IPath.fromOSString(projectSystemFile.getPath());
 					// if the file is in the default location, use the directory
 					// name as the project name
 					if (isDefaultLocation(path)) {
@@ -1212,7 +1211,7 @@ protected void handleLocationDirectoryButtonPressed() {
 		} else {
 			File path = new File(dirName);
 			if (path.exists()) {
-				dialog.setFilterPath(new Path(dirName).toOSString());
+				dialog.setFilterPath(IPath.fromOSString(dirName).toOSString());
 			}
 		}
 
@@ -1356,7 +1355,7 @@ private IStatus createExistingProject(final ProjectRecord record, IProgressMonit
 		if (record.description == null) {
 			// error case
 			record.description = workspace.newProjectDescription(projectName);
-			IPath locationPath = new Path(record.projectSystemFile
+			IPath locationPath = IPath.fromOSString(record.projectSystemFile
 					.getAbsolutePath());
 
 			// If it is under the root use the default location
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
index 55d98d3e264..cde8d71362a 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/ZipLeveledStructureProvider.java
@@ -30,7 +30,6 @@
 import java.util.zip.ZipFile;
 
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
 
 /**
@@ -102,7 +101,7 @@ protected ZipEntry createContainer(IPath pathname) {
 	 * Creates a new file zip entry with the specified name.
 	 */
 	protected void createFile(ZipEntry entry) {
-		IPath pathname = new Path(entry.getName());
+		IPath pathname = IPath.fromOSString(entry.getName());
 		ZipEntry parent;
 		if (pathname.segmentCount() == 1) {
 			parent = root;
@@ -172,7 +171,7 @@ public String getLabel(Object element) {
 			return ((ZipEntry) element).getName();
 		}
 
-		return stripPath(new Path(((ZipEntry) element).getName()).lastSegment());
+		return stripPath(IPath.fromOSString(((ZipEntry) element).getName()).lastSegment());
 	}
 
 	/**
@@ -219,7 +218,7 @@ public void close() throws Exception {
 	protected void initialize() {
 		children = new HashMap<>(1000);
 
-		IPath zipFileDirPath = (new Path(zipFile.getName())).removeLastSegments(1);
+		IPath zipFileDirPath = IPath.fromOSString(zipFile.getName()).removeLastSegments(1);
 		String canonicalDestinationDirPath = zipFileDirPath.toString();
 		File zipDestinationDir = new File(zipFileDirPath.toString());
 
@@ -244,7 +243,7 @@ protected void initialize() {
 					invalidEntries.add(entry.getName());
 					throw new IOException("Entry is outside of the target dir: " + entry.getName()); //$NON-NLS-1$
 				}
-				IPath path = new Path(entry.getName()).addTrailingSeparator();
+				IPath path = IPath.fromOSString(entry.getName()).addTrailingSeparator();
 
 				if (entry.isDirectory()) {
 					createContainer(path);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFileExpression.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFileExpression.java
index f6da39ff934..5358ae29ed6 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFileExpression.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFileExpression.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 
 /**
  * Expression to check whether a given container (IContainer or folder typed as
@@ -64,10 +64,10 @@ public EvaluationResult evaluate(IEvaluationContext context) {
 		if (root instanceof File) {
 			return EvaluationResult.valueOf( new File((File)root, this.path).exists() );
 		} else if (root instanceof IContainer) {
-			return EvaluationResult.valueOf( ((IContainer)root).getFile(new Path(this.path)).exists() );
+			return EvaluationResult.valueOf( ((IContainer)root).getFile(IPath.fromOSString(this.path)).exists() );
 		} else if (root instanceof IAdaptable) {
 			IContainer container = ((IAdaptable)root).getAdapter(IContainer.class);
-			return EvaluationResult.valueOf( container.getFile(new Path(this.path)).exists() );
+			return EvaluationResult.valueOf( container.getFile(IPath.fromOSString(this.path)).exists() );
 		}
 		return EvaluationResult.FALSE;
 	}
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFolderExpression.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFolderExpression.java
index 82015d204e7..1ad6f066be3 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFolderExpression.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/wizards/datatransfer/expressions/HasFolderExpression.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.runtime.Adapters;
 import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 
 /**
  * Expression to check whether a given container contains a folder under the
@@ -65,7 +65,7 @@ public EvaluationResult evaluate(IEvaluationContext context) {
 			return EvaluationResult.valueOf( new File((File)root, this.path).isDirectory() );
 		}
 		IContainer container = Adapters.adapt(root, IContainer.class);
-		return EvaluationResult.valueOf(container.getFolder(new Path(this.path)).exists());
+		return EvaluationResult.valueOf(container.getFolder(IPath.fromOSString(this.path)).exists());
 	}
 
 }
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
index f10690a84be..44b43b7357e 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ImportOperation.java
@@ -41,7 +41,6 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
 import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.osgi.util.NLS;
@@ -241,11 +240,11 @@ void collectExistingReadonlyFiles(IPath sourceStart, List sources, ArrayList noO
 		IPath sourceRootPath = null;
 
 		if (this.source != null) {
-			sourceRootPath = new Path(provider.getFullPath(this.source));
+			sourceRootPath = IPath.fromOSString(provider.getFullPath(this.source));
 		}
 		while (sourceIter.hasNext()) {
 			Object nextSource = sourceIter.next();
-			IPath sourcePath = new Path(provider.getFullPath(nextSource));
+			IPath sourcePath = IPath.fromOSString(provider.getFullPath(nextSource));
 			IPath newDestinationPath;
 			IResource newDestination;
 
@@ -317,7 +316,7 @@ IContainer createContainersFor(IPath path) throws CoreException {
 		}
 
 		for (int i = 0; i < segmentCount; i++) {
-			currentFolder = currentFolder.getFolder(new Path(path.segment(i)));
+			currentFolder = currentFolder.getFolder(IPath.fromOSString(path.segment(i)));
 			if (!currentFolder.exists()) {
 				if (createVirtualFolder)
 					((IFolder) currentFolder).create(IResource.VIRTUAL, true,
@@ -350,7 +349,7 @@ private IContainer createFromRoot(IPath path) throws CoreException {
 				.getProject(path.segment(0));
 
 		for (int i = 1; i < segmentCount; i++) {
-			currentFolder = currentFolder.getFolder(new Path(path.segment(i)));
+			currentFolder = currentFolder.getFolder(IPath.fromOSString(path.segment(i)));
 			if (!currentFolder.exists()) {
 				((IFolder) currentFolder).create(false, true, null);
 			}
@@ -407,7 +406,7 @@ protected void execute(IProgressMonitor progressMonitor) {
 	 */
 	IContainer getDestinationContainerFor(Object fileSystemObject)
 			throws CoreException {
-		IPath pathname = new Path(provider.getFullPath(fileSystemObject));
+		IPath pathname = IPath.fromOSString(provider.getFullPath(fileSystemObject));
 
 		if (createContainerStructure) {
 			return createContainersFor(pathname.removeLastSegments(1));
@@ -415,7 +414,7 @@ IContainer getDestinationContainerFor(Object fileSystemObject)
 		if (source == fileSystemObject) {
 			return null;
 		}
-		IPath sourcePath = new Path(provider.getFullPath(source));
+		IPath sourcePath = IPath.fromOSString(provider.getFullPath(source));
 		IPath destContainerPath = pathname.removeLastSegments(1);
 		IPath relativePath = destContainerPath.removeFirstSegments(
 				sourcePath.segmentCount()).setDevice(null);
@@ -511,8 +510,7 @@ void importFile(Object fileObject, int policy, IProgressMonitor mon) {
 
 		String fileObjectPath = provider.getFullPath(fileObject);
 		subMonitor.subTask(fileObjectPath);
-		IFile targetResource = containerResource.getFile(new Path(provider
-				.getLabel(fileObject)));
+		IFile targetResource = containerResource.getFile(IPath.fromOSString(provider.getLabel(fileObject)));
 
 		if (rejectedFiles.contains(targetResource.getFullPath())) {
 			return;
@@ -545,7 +543,7 @@ void importFile(Object fileObject, int policy, IProgressMonitor mon) {
 				if (targetResource.exists())
 					targetResource.delete(true, subMonitor.split(50));
 				targetResource.createLink(
-						createRelativePath(new Path(provider.getFullPath(fileObject)), targetResource), 0,
+						createRelativePath(IPath.fromOSString(provider.getFullPath(fileObject)), targetResource), 0,
 						subMonitor.split(50));
 			} else if (targetResource.exists()) {
 				if (targetResource.isLinked()) {
@@ -654,8 +652,7 @@ void importFileSystemObjects(List filesToImport, IProgressMonitor monitor) throw
 			Object fileSystemObject = filesEnum.next();
 			if (source == null) {
 				// We just import what we are given into the destination
-				IPath sourcePath = new Path(provider
-						.getFullPath(fileSystemObject)).removeLastSegments(1);
+				IPath sourcePath = IPath.fromOSString(provider.getFullPath(fileSystemObject)).removeLastSegments(1);
 				if (provider.isFolder(fileSystemObject) && sourcePath.isEmpty()) {
 					// If we don't have a parent then we have selected the
 					// file systems root. Roots can't copied (at least not
@@ -725,7 +722,7 @@ int importFolder(Object folderObject, int policy, IProgressMonitor monitor) thro
 			else if (createLinks) {
 				IFolder newFolder = workspace.getRoot().getFolder(resourcePath);
 				newFolder.createLink(
-						createRelativePath(new Path(provider.getFullPath(folderObject)), newFolder),
+						createRelativePath(IPath.fromOSString(provider.getFullPath(folderObject)), newFolder),
 						0, null);
 				policy = POLICY_SKIP_CHILDREN;
 			} else
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
index e5e57c10f40..cc8132628e2 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/WizardExternalProjectImportPage.java
@@ -26,7 +26,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.jface.dialogs.ErrorDialog;
@@ -218,7 +217,7 @@ public void widgetSelected(SelectionEvent event) {
 	 */
 	public IPath getLocationPath() {
 
-		return new Path(getProjectLocationFieldValue());
+		return IPath.fromOSString(getProjectLocationFieldValue());
 	}
 
 	/**
@@ -286,7 +285,7 @@ private void handleLocationBrowseButtonPressed() {
 		} else {
 			File path = new File(dirName);
 			if (path.exists()) {
-				dialog.setFilterPath(new Path(dirName).toOSString());
+				dialog.setFilterPath(IPath.fromOSString(dirName).toOSString());
 			}
 		}
 
@@ -314,7 +313,7 @@ private boolean validatePage() {
 			return false;
 		}
 
-		IPath path = new Path(""); //$NON-NLS-1$
+		IPath path = IPath.fromOSString(""); //$NON-NLS-1$
 		if (!path.isValidPath(locationFieldContents)) {
 			setErrorMessage(DataTransferMessages.WizardExternalProjectImportPage_locationError);
 			return false;
@@ -360,7 +359,7 @@ private void setProjectName(File projectFile) {
 			return;
 		}
 
-		IPath path = new Path(projectFile.getPath());
+		IPath path = IPath.fromOSString(projectFile.getPath());
 
 		IProjectDescription newDescription = null;
 
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java
index 3fa67877b6b..f9244de8d05 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/wizards/datatransfer/ZipFileStructureProvider.java
@@ -27,7 +27,6 @@
 import java.util.zip.ZipFile;
 
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
 
 /**
@@ -95,7 +94,7 @@ protected void createContainer(IPath pathname) {
 	 * Creates a new file zip entry with the specified name.
 	 */
 	protected void createFile(ZipEntry entry) {
-		IPath pathname = new Path(entry.getName());
+		IPath pathname = IPath.fromOSString(entry.getName());
 		ZipEntry parent;
 		if (pathname.segmentCount() == 1) {
 			parent = root;
@@ -141,7 +140,7 @@ public String getLabel(Object element) {
 			return ((ZipEntry) element).getName();
 		}
 
-		return new Path(((ZipEntry) element).getName()).lastSegment();
+		return IPath.fromOSString(((ZipEntry) element).getName()).lastSegment();
 	}
 
 	/**
@@ -169,7 +168,7 @@ public ZipFile getZipFile() {
 	protected void initialize() {
 		children = new HashMap<>(1000);
 
-		IPath zipFileDirPath = (new Path(zipFile.getName())).removeLastSegments(1);
+		IPath zipFileDirPath = IPath.fromOSString(zipFile.getName()).removeLastSegments(1);
 		String canonicalDestinationDirPath = zipFileDirPath.toString();
 		File zipDestinationDir = new File(zipFileDirPath.toString());
 
@@ -189,7 +188,7 @@ protected void initialize() {
 					invalidEntries.add(entry.getName());
 					throw new IOException("Entry is outside of the target dir: " + entry.getName()); //$NON-NLS-1$
 				} else if (!entry.isDirectory()) {
-					IPath path = new Path(entry.getName()).addTrailingSeparator();
+					IPath path = IPath.fromOSString(entry.getName()).addTrailingSeparator();
 					int pathSegmentCount = path.segmentCount();
 
 					for (int i = 1; i < pathSegmentCount; i++) {
diff --git a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
index cd3c31beb19..a571a8c795f 100644
--- a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
@@ -18,7 +18,7 @@ Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.15.0,4.0.0)",
  org.eclipse.jface;bundle-version="[3.18.0,4.0.0)",
  org.eclipse.ui;bundle-version="[3.6.0,4.0.0)",
  org.eclipse.ui.navigator;bundle-version="[3.9.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)",
  org.eclipse.ui.views.properties.tabbed;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.ui.workbench.texteditor;bundle-version="[3.6.0,4.0.0)",
  org.eclipse.ltk.core.refactoring;bundle-version="[3.5.0,4.0.0)",
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
index 7ef86ec2b0c..6430e0dd4b2 100644
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
+++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
@@ -20,7 +20,7 @@
 
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
@@ -131,7 +131,7 @@ public void fillContextMenu(IMenuManager aMenu) {
 	 */
 	protected ImageDescriptor getImageDescriptor(String relativePath) {
 		String iconPath = "icons/full/"; //$NON-NLS-1$
-		URL url = FileLocator.find(WorkbenchNavigatorPlugin.getDefault().getBundle(), new Path(iconPath + relativePath),
+		URL url = FileLocator.find(WorkbenchNavigatorPlugin.getDefault().getBundle(), IPath.fromOSString(iconPath + relativePath),
 				Collections. emptyMap());
 		if (url == null) {
 			return ImageDescriptor.getMissingImageDescriptor();
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
index f6f1d6c49ff..d50a024a3e3 100644
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
+++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
@@ -18,7 +18,7 @@
 import java.util.Collections;
 
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.resource.ImageRegistry;
@@ -47,7 +47,7 @@ public class NavigatorUIPluginImages {
 	// Create the icon location
 	static {
 		String pathSuffix = "icons/full/"; //$NON-NLS-1$
-		fgIconLocation = FileLocator.find(NavigatorPlugin.getDefault().getBundle(), new Path(pathSuffix),
+		fgIconLocation = FileLocator.find(NavigatorPlugin.getDefault().getBundle(), IPath.fromOSString(pathSuffix),
 				Collections. emptyMap());
 	}
 
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
index b6ae6078ca8..5a200c3bab6 100644
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
+++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
@@ -18,7 +18,7 @@
 import java.util.Collections;
 
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.ILabelProviderListener;
@@ -50,7 +50,7 @@ public Image getImage(Object element) {
 	private Image getWorkingSetImage() {
 		if (workingSetImage == null) {
 			URL iconUrl = FileLocator.find(WorkbenchNavigatorPlugin.getDefault().getBundle(),
-					Path.fromPortableString("icons/full/obj16/otherprojects_workingsets.png"), //$NON-NLS-1$
+					IPath.fromPortableString("icons/full/obj16/otherprojects_workingsets.png"), //$NON-NLS-1$
 					Collections.emptyMap());
 			workingSetImage = ImageDescriptor.createFromURL(iconUrl).createImage();
 		}
diff --git a/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
index ba59a4a7c6c..7d3e3b5839e 100644
--- a/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.views.log/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-SymbolicName: org.eclipse.ui.views.log;singleton:=true
 Bundle-Version: 1.4.100.qualifier
 Bundle-Activator: org.eclipse.ui.internal.views.log.Activator
 Bundle-Vendor: %provider-name
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)",
  org.eclipse.core.filesystem;bundle-version="[1.1.0,2.0.0)";resolution:=optional,
  org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
  org.eclipse.ui.ide;bundle-version="[3.3.0,4.0.0)";resolution:=optional,
diff --git a/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/LogView.java b/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/LogView.java
index f0e9ef1d19e..c2b2d4ad67f 100644
--- a/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/LogView.java
+++ b/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/LogView.java
@@ -33,7 +33,6 @@
 import java.util.Map.Entry;
 import java.util.concurrent.*;
 import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.preferences.DefaultScope;
 import org.eclipse.core.runtime.preferences.InstanceScope;
@@ -708,7 +707,7 @@ void handleImport() {
 			return;
 		}
 
-		File file = new Path(path).toFile();
+		File file = IPath.fromOSString(path).toFile();
 		if (file.exists()) {
 			handleImportPath(path);
 		} else {
@@ -760,7 +759,7 @@ private void handleExport(boolean exportWholeLog) {
 		if (path != null) {
 			if (path.indexOf('.') == -1 && !path.endsWith(".log")) //$NON-NLS-1$
 				path += ".log"; //$NON-NLS-1$
-			File outputFile = new Path(path).toFile();
+			File outputFile = IPath.fromOSString(path).toFile();
 			fDirectory = outputFile.getParent();
 			if (outputFile.exists()) {
 				String message = NLS.bind(Messages.LogView_confirmOverwrite_message, outputFile.toString());
diff --git a/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/OpenIDELogFileAction.java b/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/OpenIDELogFileAction.java
index 814569a00c0..64286ffdb88 100644
--- a/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/OpenIDELogFileAction.java
+++ b/bundles/org.eclipse.ui.views.log/src/org/eclipse/ui/internal/views/log/OpenIDELogFileAction.java
@@ -16,7 +16,6 @@
 import org.eclipse.core.filesystem.EFS;
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.action.Action;
 import org.eclipse.ui.*;
 import org.eclipse.ui.ide.IDE;
@@ -37,7 +36,7 @@ public OpenIDELogFileAction(LogView logView) {
 
 	@Override
 	public void run() {
-		IPath logPath = new Path(fView.getLogFile().getAbsolutePath());
+		IPath logPath = IPath.fromOSString(fView.getLogFile().getAbsolutePath());
 		IFileStore fileStore = EFS.getLocalFileSystem().getStore(logPath);
 		if (!fileStore.fetchInfo().isDirectory() && fileStore.fetchInfo().exists()) {
 			IWorkbenchWindow ww = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/BrandingProperties.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/BrandingProperties.java
index ac009a6cc54..56ea51cf34d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/BrandingProperties.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/BrandingProperties.java	
@@ -18,7 +18,7 @@
 import java.util.ArrayList;
 import java.util.StringTokenizer;
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.osgi.framework.Bundle;
 
@@ -45,7 +45,7 @@ public static URL getUrl(String value, Bundle definingBundle) {
 			}
 		} catch (MalformedURLException e) {
 			if (definingBundle != null) {
-				return FileLocator.find(definingBundle, new Path(value));
+				return FileLocator.find(definingBundle, IPath.fromOSString(value));
 			}
 		}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ProductProperties.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ProductProperties.java
index 8fd247dbdf4..5cbe575cfda 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ProductProperties.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ProductProperties.java	
@@ -22,8 +22,8 @@
 import java.util.MissingResourceException;
 import java.util.PropertyResourceBundle;
 import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.branding.IProductConstants;
 import org.osgi.framework.Bundle;
@@ -61,7 +61,7 @@ public class ProductProperties extends BrandingProperties implements IProductCon
 	private static HashMap mappingsMap = new HashMap(4);
 
 	private static String[] loadMappings(Bundle definingBundle) {
-		URL location = FileLocator.find(definingBundle, new Path(ABOUT_MAPPINGS));
+		URL location = FileLocator.find(definingBundle, IPath.fromOSString(ABOUT_MAPPINGS));
 		PropertyResourceBundle bundle = null;
 		InputStream is;
 		if (location != null) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
index 879f3bfd685..dc665ce5e2d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java	
@@ -17,7 +17,6 @@
 
 import java.util.Arrays;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.jface.action.ContributionItem;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -109,7 +108,7 @@ public static String calcText(int index, String name, String toolTip, boolean rt
 			// sometimes it's the same as name, so it shouldn't be treated as a path then
 			pathName = ""; //$NON-NLS-1$
 		}
-		IPath path = new Path(pathName);
+		IPath path = IPath.fromOSString(pathName);
 		// if last segment in path is the fileName, remove it
 		if (path.segmentCount() > 1 && path.segment(path.segmentCount() - 1).equals(fileName)) {
 			path = path.removeLastSegments(1);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java
index 1be51bbb4b8..6ce83e3e04b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java	
@@ -20,7 +20,6 @@
 import java.io.IOException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.ui.internal.preferences.WorkbenchSettingsTransfer;
@@ -119,7 +118,7 @@ public String getName() {
 	 */
 	@Override
 	protected IPath getNewWorkbenchStateLocation(IPath newWorkspaceRoot) {
-		return newWorkspaceRoot.append(new Path(".metadata/.plugins/org.eclipse.e4.workbench")); //$NON-NLS-1$
+		return newWorkspaceRoot.append(IPath.fromOSString(".metadata/.plugins/org.eclipse.e4.workbench")); //$NON-NLS-1$
 	}
 
 }
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/about/AboutPluginsPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/about/AboutPluginsPage.java
index 4f64e1ef83e..c29036c2819 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/about/AboutPluginsPage.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/about/AboutPluginsPage.java	
@@ -33,7 +33,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubMonitor;
@@ -226,7 +225,7 @@ public String getColumnText(Object element, int columnIndex) {
 	private static final int SIGNING_ID = MORE_ID + 1;
 	private static final int COLUMNS_ID = MORE_ID + 2;
 
-	private static final IPath baseNLPath = new Path("$nl$"); //$NON-NLS-1$
+	private static final IPath baseNLPath = IPath.fromOSString("$nl$"); //$NON-NLS-1$
 
 	private static final String PLUGININFO = "about.html"; //$NON-NLS-1$
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ExportWizard.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ExportWizard.java
index f5aa988fe38..90cb87aebe1 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ExportWizard.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ExportWizard.java	
@@ -15,7 +15,7 @@
 package org.eclipse.ui.internal.dialogs;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.IWizardNode;
 import org.eclipse.jface.wizard.Wizard;
@@ -83,7 +83,7 @@ protected AdaptableList getAvailableExportWizards() {
 		// wizards will be in the "other" category.
 		IWizardCategory root = WorkbenchPlugin.getDefault().getExportWizardRegistry().getRootCategory();
 		WizardCollectionElement otherCategory = (WizardCollectionElement) root
-				.findCategory(new Path(WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
+				.findCategory(IPath.fromOSString(WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory == null) {
 			return new AdaptableList();
 		}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportExportPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportExportPage.java
index 6a0db356e84..6dfa87f1647 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportExportPage.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportExportPage.java	
@@ -17,7 +17,7 @@
 import java.util.Arrays;
 import java.util.List;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.ISelection;
@@ -328,7 +328,7 @@ protected void expandPreviouslyExpandedCategories(String setting, IWizardCategor
 
 		if (wizardCategories != null) {
 			for (String expandedCategoryPath : expandedCategoryPaths) {
-				IWizardCategory category = wizardCategories.findCategory(new Path(expandedCategoryPath));
+				IWizardCategory category = wizardCategories.findCategory(IPath.fromOSString(expandedCategoryPath));
 				if (category != null) {
 					categoriesToExpand.add(category);
 				}
@@ -356,7 +356,7 @@ protected void selectPreviouslySelected(String setting, IWizardCategory wizardCa
 			return;
 		}
 
-		Object selected = wizardCategories.findCategory(new Path(selectedId));
+		Object selected = wizardCategories.findCategory(IPath.fromOSString(selectedId));
 
 		if (selected == null) {
 			selected = wizardCategories.findWizard(selectedId);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportWizard.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportWizard.java
index 12fe05d9a71..920790bf257 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportWizard.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/ImportWizard.java	
@@ -15,7 +15,7 @@
 package org.eclipse.ui.internal.dialogs;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.IWizardNode;
 import org.eclipse.jface.wizard.Wizard;
@@ -85,7 +85,7 @@ protected AdaptableList getAvailableImportWizards() {
 		// wizards will be in the "other" category.
 		IWizardCategory root = WorkbenchPlugin.getDefault().getImportWizardRegistry().getRootCategory();
 		WizardCollectionElement otherCategory = (WizardCollectionElement) root
-				.findCategory(new Path(WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
+				.findCategory(IPath.fromOSString(WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory == null) {
 			return new AdaptableList();
 		}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/NewWizardNewPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/NewWizardNewPage.java
index 7ef15c7abb7..4b919af1270 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/NewWizardNewPage.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/NewWizardNewPage.java	
@@ -20,7 +20,7 @@
 import java.util.List;
 import java.util.Map;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -468,7 +468,7 @@ protected void expandPreviouslyExpandedCategories() {
 
 		if (wizardCategories != null) {
 			for (String expandedCategoryPath : expandedCategoryPaths) {
-				IWizardCategory category = wizardCategories.findCategory(new Path(expandedCategoryPath));
+				IWizardCategory category = wizardCategories.findCategory(IPath.fromOSString(expandedCategoryPath));
 				if (category != null) {
 					categoriesToExpand.add(category);
 				}
@@ -551,7 +551,7 @@ protected void selectPreviouslySelected() {
 			return;
 		}
 
-		Object selected = wizardCategories.findCategory(new Path(selectedId));
+		Object selected = wizardCategories.findCategory(IPath.fromOSString(selectedId));
 
 		if (selected == null) {
 			selected = wizardCategories.findWizard(selectedId);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/WizardCollectionElement.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/WizardCollectionElement.java
index 7d146e956cf..3235114b495 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/WizardCollectionElement.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/WizardCollectionElement.java	
@@ -22,7 +22,6 @@
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.Viewer;
@@ -230,7 +229,7 @@ public Object getParent(Object o) {
 	@Override
 	public IPath getPath() {
 		if (parent == null) {
-			return new Path(""); //$NON-NLS-1$
+			return IPath.fromOSString(""); //$NON-NLS-1$
 		}
 
 		return parent.getPath().append(getId());
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java
index 1f437b4d1ca..6ca1ddb77fb 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java	
@@ -19,7 +19,6 @@
 import java.io.IOException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.ui.PlatformUI;
@@ -80,10 +79,10 @@ public String getName() {
 	}
 
 	private IPath getNewPath(IPath newWorkspaceRoot) {
-		return newWorkspaceRoot.append(new Path(".metadata/.plugins/org.eclipse.core.runtime/.settings")); //$NON-NLS-1$
+		return newWorkspaceRoot.append(IPath.fromOSString(".metadata/.plugins/org.eclipse.core.runtime/.settings")); //$NON-NLS-1$
 	}
 
 	private IPath getOldPath() {
-		return Platform.getLocation().append(new Path(".metadata/.plugins/org.eclipse.core.runtime/.settings")); //$NON-NLS-1$
+		return Platform.getLocation().append(IPath.fromOSString(".metadata/.plugins/org.eclipse.core.runtime/.settings")); //$NON-NLS-1$
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/ViewCategory.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/ViewCategory.java
index adfa5868a42..aaeed2d4749 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/ViewCategory.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/ViewCategory.java	
@@ -19,7 +19,6 @@
 import java.util.Collection;
 import java.util.List;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.activities.WorkbenchActivityHelper;
 import org.eclipse.ui.views.IViewCategory;
 import org.eclipse.ui.views.IViewDescriptor;
@@ -34,7 +33,7 @@ public class ViewCategory implements IViewCategory {
 	public ViewCategory(String id, String label) {
 		this.id = id;
 		this.label = label;
-		this.path = new Path(id);
+		this.path = IPath.fromOSString(id);
 	}
 
 	void addDescriptor(IViewDescriptor descriptor) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/util/BundleUtility.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/util/BundleUtility.java
index 735018309e2..1b9f9d7ad5c 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/util/BundleUtility.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/util/BundleUtility.java	
@@ -16,8 +16,8 @@
 
 import java.net.URL;
 import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.ui.internal.WorkbenchPlugin;
@@ -65,7 +65,7 @@ public static URL find(Bundle bundle, String path) {
 		if (bundle == null) {
 			return null;
 		}
-		return FileLocator.find(bundle, new Path(path));
+		return FileLocator.find(bundle, IPath.fromOSString(path));
 	}
 
 	public static URL find(String bundleId, String path) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/wizards/preferences/WizardPreferencesPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/wizards/preferences/WizardPreferencesPage.java
index 0d15886dac4..6b879b9cd10 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/wizards/preferences/WizardPreferencesPage.java	
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/wizards/preferences/WizardPreferencesPage.java	
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Map;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.core.runtime.preferences.IPreferenceFilter;
 import org.eclipse.core.runtime.preferences.InstanceScope;
@@ -903,7 +903,7 @@ protected boolean allowNewContainerName() {
 	@Override
 	public String queryOverwrite(String pathString) {
 
-		Path path = new Path(pathString);
+		IPath path = IPath.fromOSString(pathString);
 
 		String messageString;
 		// Break the message up if there is a file name and a directory
diff --git a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
index ce747ef3731..91489a78ef3 100644
--- a/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.workbench/META-INF/MANIFEST.MF
@@ -94,7 +94,7 @@ Export-Package: org.eclipse.e4.ui.workbench.addons.perspectiveswitcher;x-interna
  org.eclipse.ui.themes,
  org.eclipse.ui.views,
  org.eclipse.ui.wizards
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.26.0,4.0.0)",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.27.0,4.0.0)",
  org.eclipse.help;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jface;bundle-version="[3.18.0,4.0.0)",
  org.eclipse.jface.databinding;bundle-version="[1.3.0,2.0.0)",
diff --git a/examples/org.eclipse.e4.ui.examples.job/src/org/eclipse/e4/ui/examples/jobs/TestJob.java b/examples/org.eclipse.e4.ui.examples.job/src/org/eclipse/e4/ui/examples/jobs/TestJob.java
index 84aa87a0585..e8e62e178db 100644
--- a/examples/org.eclipse.e4.ui.examples.job/src/org/eclipse/e4/ui/examples/jobs/TestJob.java
+++ b/examples/org.eclipse.e4.ui.examples.job/src/org/eclipse/e4/ui/examples/jobs/TestJob.java
@@ -17,10 +17,10 @@
 
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
@@ -134,11 +134,9 @@ public IStatus run(IProgressMonitor monitor) {
 		return Status.OK_STATUS;
 	}
 
-	private static ImageDescriptor getImageDescriptor(
-			String relativePath) {
-		URL url = FileLocator.find(Platform
-				.getBundle("org.eclipse.e4.ui.examples.job"), new Path(
-				relativePath), null);
+	private static ImageDescriptor getImageDescriptor(String relativePath) {
+		URL url = FileLocator.find(Platform.getBundle("org.eclipse.e4.ui.examples.job"),
+				IPath.fromOSString(relativePath), null);
 		return ImageDescriptor.createFromURL(url);
 	}
 }
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
index 308e4315806..abf8b0aa044 100644
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
+++ b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
@@ -20,7 +20,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.resource.ImageRegistry;
 import org.eclipse.swt.graphics.Image;
@@ -88,7 +87,7 @@ protected void initializeImageRegistry(ImageRegistry registry) {
 	private void registerImage(ImageRegistry registry, String key,
 			String fileName) {
 		try {
-			IPath path = new Path("icons/" + fileName);
+			IPath path = IPath.fromOSString("icons/" + fileName);
 			URL url = FileLocator.find(getBundle(), path, null);
 			if (url!=null) {
 				ImageDescriptor desc = ImageDescriptor.createFromURL(url);
diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/FileImageDescriptorTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
index 769c7cd6fe8..bf63f290fd9 100644
--- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
+++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
@@ -28,7 +28,7 @@
 
 import org.eclipse.core.runtime.Adapters;
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
@@ -71,7 +71,7 @@ public void testFileImageDescriptorWorkbench() {
 		while (bundleEntries.hasMoreElements()) {
 			ImageDescriptor descriptor;
 			String localImagePath = bundleEntries.nextElement();
-			URL[] files = FileLocator.findEntries(bundle, new Path(localImagePath));
+			URL[] files = FileLocator.findEntries(bundle, IPath.fromOSString(localImagePath));
 
 			for (URL file : files) {
 
@@ -204,13 +204,13 @@ public void testImageFileNameProviderGetxPath() {
 				fileNameProvider2nd);
 		String imagePath100 = fileNameProvider.getImagePath(100);
 		assertNotNull("FileImageDescriptor's ImageFileNameProvider does not return the 100% path", imagePath100);
-		assertEquals(Path.fromOSString(imagePath100).lastSegment(), "rectangular-57x16.png");
+		assertEquals(IPath.fromOSString(imagePath100).lastSegment(), "rectangular-57x16.png");
 		String imagePath200 = fileNameProvider.getImagePath(200);
 		assertNotNull("FileImageDescriptor's ImageFileNameProvider does not return the 200% path", imagePath200);
-		assertEquals(Path.fromOSString(imagePath200).lastSegment(), "rectangular-114x32.png");
+		assertEquals(IPath.fromOSString(imagePath200).lastSegment(), "rectangular-114x32.png");
 		String imagePath150 = fileNameProvider.getImagePath(150);
 		assertNotNull("FileImageDescriptor's ImageFileNameProvider does not return the 150% path", imagePath150);
-		assertEquals(Path.fromOSString(imagePath150).lastSegment(), "rectangular-86x24.png");
+		assertEquals(IPath.fromOSString(imagePath150).lastSegment(), "rectangular-86x24.png");
 		String imagePath250 = fileNameProvider.getImagePath(250);
 		assertNull("FileImageDescriptor's ImageFileNameProvider does return a 250% path", imagePath250);
 	}
@@ -222,10 +222,10 @@ public void testImageFileNameProviderGetxName() {
 		assertNotNull("FileImageDescriptor does not adapt to ImageFileNameProvider", fileNameProvider);
 		String imagePath100 = fileNameProvider.getImagePath(100);
 		assertNotNull("FileImageDescriptor's ImageFileNameProvider does not return the 100% path", imagePath100);
-		assertEquals(Path.fromOSString(imagePath100).lastSegment(), "zoomIn.png");
+		assertEquals(IPath.fromOSString(imagePath100).lastSegment(), "zoomIn.png");
 		String imagePath200 = fileNameProvider.getImagePath(200);
 		assertNotNull("FileImageDescriptor's ImageFileNameProvider does not return the @2x path", imagePath200);
-		assertEquals(Path.fromOSString(imagePath200).lastSegment(), "zoomIn@2x.png");
+		assertEquals(IPath.fromOSString(imagePath200).lastSegment(), "zoomIn@2x.png");
 		String imagePath150 = fileNameProvider.getImagePath(150);
 		assertNull("FileImageDescriptor's ImageFileNameProvider does return a @1.5x path", imagePath150);
 	}
diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/UrlImageDescriptorTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/UrlImageDescriptorTest.java
index 73fee0c1012..114c3d05461 100644
--- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/UrlImageDescriptorTest.java
+++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/images/UrlImageDescriptorTest.java
@@ -20,7 +20,7 @@
 import java.net.URL;
 
 import org.eclipse.core.runtime.Adapters;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
@@ -79,13 +79,13 @@ public void testImageFileNameProviderGetxPath() {
 				fileNameProvider2nd);
 		String imagePath100 = fileNameProvider.getImagePath(100);
 		assertNotNull("URLImageDescriptor ImageFileNameProvider does not return the 100% path", imagePath100);
-		assertEquals(Path.fromOSString(imagePath100).lastSegment(), "rectangular-57x16.png");
+		assertEquals(IPath.fromOSString(imagePath100).lastSegment(), "rectangular-57x16.png");
 		String imagePath200 = fileNameProvider.getImagePath(200);
 		assertNotNull("URLImageDescriptor ImageFileNameProvider does not return the 200% path", imagePath200);
-		assertEquals(Path.fromOSString(imagePath200).lastSegment(), "rectangular-114x32.png");
+		assertEquals(IPath.fromOSString(imagePath200).lastSegment(), "rectangular-114x32.png");
 		String imagePath150 = fileNameProvider.getImagePath(150);
 		assertNotNull("URLImageDescriptor ImageFileNameProvider does not return the 150% path", imagePath150);
-		assertEquals(Path.fromOSString(imagePath150).lastSegment(), "rectangular-86x24.png");
+		assertEquals(IPath.fromOSString(imagePath150).lastSegment(), "rectangular-86x24.png");
 		String imagePath250 = fileNameProvider.getImagePath(250);
 		assertNull("URLImageDescriptor's ImageFileNameProvider does return a 250% path", imagePath250);
 	}
@@ -98,10 +98,10 @@ public void testImageFileNameProviderGetxName() {
 		assertNotNull("URLImageDescriptor does not adapt to ImageFileNameProvider", fileNameProvider);
 		String imagePath100 = fileNameProvider.getImagePath(100);
 		assertNotNull("URLImageDescriptor ImageFileNameProvider does not return the 100% path", imagePath100);
-		assertEquals(Path.fromOSString(imagePath100).lastSegment(), "zoomIn.png");
+		assertEquals(IPath.fromOSString(imagePath100).lastSegment(), "zoomIn.png");
 		String imagePath200 = fileNameProvider.getImagePath(200);
 		assertNotNull("URLImageDescriptor ImageFileNameProvider does not return the @2x path", imagePath200);
-		assertEquals(Path.fromOSString(imagePath200).lastSegment(), "zoomIn@2x.png");
+		assertEquals(IPath.fromOSString(imagePath200).lastSegment(), "zoomIn@2x.png");
 		String imagePath150 = fileNameProvider.getImagePath(150);
 		assertNull("URLImageDescriptor's ImageFileNameProvider does return a @1.5x path", imagePath150);
 	}
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
index beb9d576a5e..ae21bd76a88 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/PipelineTest.java
@@ -24,7 +24,7 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.tests.navigator.extension.TestContentProviderNoChildren;
@@ -76,7 +76,7 @@ public void testNavigatorResourceJava() throws Exception {
 				.getData()).getAdapter(IProject.class);
 		assertEquals(_project, adaptedProject);
 
-		IFolder sourceFolder = _project.getFolder(new Path("src"));
+		IFolder sourceFolder = _project.getFolder(IPath.fromOSString("src"));
 		_viewer.add(_project, sourceFolder);
 
 		TreeItem[] projectChildren = rootItems[_projectInd].getItems();
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/cdt/CdtTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/cdt/CdtTest.java
index 466c6499dbd..565e72d5e46 100755
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/cdt/CdtTest.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/cdt/CdtTest.java
@@ -19,7 +19,7 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.navigator.resources.ProjectExplorer;
 import org.eclipse.ui.tests.harness.util.DisplayHelper;
@@ -51,8 +51,8 @@ public void testCdt1() throws Exception {
 		_contentService.getActivationService().activateExtensions(
 				new String[] { TEST_C_CONTENT }, false);
 
-		TestWorkspace.initProject(new ProjectUnzipUtil(new Path(
-				"testdata/cproject.zip"), new String[] { CPROJECT_NAME }),
+		TestWorkspace.initProject(
+				new ProjectUnzipUtil(IPath.fromOSString("testdata/cproject.zip"), new String[] { CPROJECT_NAME }),
 				CPROJECT_NAME);
 
 		refreshViewer();
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
index 786dfe60ad2..e58c7fee505 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/extension/TestContentProvider.java
@@ -31,7 +31,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.StructuredViewer;
@@ -45,7 +44,7 @@ public class TestContentProvider implements ITreeContentProvider,
 
 	private static final Object[] NO_CHILDREN = new Object[0];
 
-	public static final IPath MODEL_FILE_PATH = new Path("model.properties");
+	public static final IPath MODEL_FILE_PATH = IPath.fromOSString("model.properties");
 
 	private final Map rootElements = new HashMap();
 
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/jst/JstPipelineTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/jst/JstPipelineTest.java
index 999008d442e..041bcb276fd 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/jst/JstPipelineTest.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/jst/JstPipelineTest.java
@@ -25,7 +25,7 @@
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.tests.harness.util.DisplayHelper;
@@ -85,7 +85,7 @@ public void testJstPipeline() throws Exception {
 		IProject adaptedProject = ((IAdaptable) rootItems[_projectInd].getData()).getAdapter(IProject.class);
 		assertEquals(_project, adaptedProject);
 
-		IFolder sourceFolder = _project.getFolder(new Path("src"));
+		IFolder sourceFolder = _project.getFolder(IPath.fromOSString("src"));
 		_viewer.add(_project, sourceFolder);
 
 		TreeItem[] projectChildren = rootItems[_projectInd].getItems();
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/resources/PathComparatorTest.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/resources/PathComparatorTest.java
index 6ad2071b534..c927e97fcaa 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/resources/PathComparatorTest.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/resources/PathComparatorTest.java
@@ -19,7 +19,6 @@
 import java.util.Comparator;
 
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.navigator.resources.nested.PathComparator;
 import org.junit.Test;
 
@@ -46,10 +45,10 @@ private static void assertLessThan(IPath p1, IPath p2) {
 
 	@Test
 	public void checkInvariant() {
-		Path ab = new Path("a/b");
-		Path abc = new Path("a/b/c");
-		Path ac = new Path("a/c");
-		Path acb = new Path("a/c/b");
+		IPath ab = IPath.fromOSString("a/b");
+		IPath abc = IPath.fromOSString("a/b/c");
+		IPath ac = IPath.fromOSString("a/c");
+		IPath acb = IPath.fromOSString("a/c/b");
 		assertTrue(COMPARATOR.compare(ab, abc) < 0);
 		assertTrue(COMPARATOR.compare(abc, ac) < 0);
 		assertTrue(COMPARATOR.compare(ac, acb) < 0);
@@ -57,82 +56,82 @@ public void checkInvariant() {
 
 	@Test
 	public void consistentWithEqualsDistLength() {
-		assertConsistentWithEquals(Path.forWindows("a:/f1/f2"), Path.forWindows("a:/f1/f2/f3"));
+		assertConsistentWithEquals(IPath.forWindows("a:/f1/f2"), IPath.forWindows("a:/f1/f2/f3"));
 	}
 
 	@Test
 	public void consistentWithEqualsDist() {
-		assertConsistentWithEquals(Path.forWindows("a:/f1/f2"), Path.forWindows("a:/f1/f3"));
+		assertConsistentWithEquals(IPath.forWindows("a:/f1/f2"), IPath.forWindows("a:/f1/f3"));
 	}
 
 	@Test
 	public void consistentWithEqualsDistDevice() {
-		assertConsistentWithEquals(Path.forWindows("a:/f1/f2"), Path.forWindows("b:/f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("a:/f1/f2"), IPath.forWindows("b:/f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsDistLeadingSlash() {
-		assertConsistentWithEquals(Path.forWindows("/f1/f2"), Path.forWindows("f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("/f1/f2"), IPath.forWindows("f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsDistTrailingSlash() {
-		assertConsistentWithEquals(Path.forWindows("f1/f2/"), Path.forWindows("f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("f1/f2/"), IPath.forWindows("f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsSame() {
-		assertConsistentWithEquals(Path.forWindows("a:/f1/f2"), Path.forWindows("a:/f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("a:/f1/f2"), IPath.forWindows("a:/f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsUncAbsolute() {
-		assertConsistentWithEquals(Path.forWindows("//f1/f2"), Path.forWindows("/f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("//f1/f2"), IPath.forWindows("/f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsUncRelative() {
-		assertConsistentWithEquals(Path.forWindows("//f1/f2"), Path.forWindows("f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("//f1/f2"), IPath.forWindows("f1/f2"));
 	}
 
 	@Test
 	public void consistentWithEqualsWinPosix() {
-		assertConsistentWithEquals(Path.forWindows("f1/f2"), Path.forPosix("f1/f2"));
+		assertConsistentWithEquals(IPath.forWindows("f1/f2"), IPath.forPosix("f1/f2"));
 	}
 
 	@Test
 	public void lessThanRelativeDashSlash() {
-		assertLessThan(Path.forWindows("f1/f1"), Path.forWindows("f1-f2"));
+		assertLessThan(IPath.forWindows("f1/f1"), IPath.forWindows("f1-f2"));
 	}
 
 	@Test
 	public void lessThanRelativeDepth1() {
-		assertLessThan(Path.forWindows("f1"), Path.forWindows("f2"));
+		assertLessThan(IPath.forWindows("f1"), IPath.forWindows("f2"));
 	}
 
 	@Test
 	public void lessThanRelativeDepth2() {
-		assertLessThan(Path.forWindows("f1/f1"), Path.forWindows("f1/f2"));
+		assertLessThan(IPath.forWindows("f1/f1"), IPath.forWindows("f1/f2"));
 	}
 
 	@Test
 	public void deviceALessThanDeviceB() {
-		assertLessThan(Path.forWindows("a:/f1/f2"), Path.forWindows("b:/f1/f2"));
+		assertLessThan(IPath.forWindows("a:/f1/f2"), IPath.forWindows("b:/f1/f2"));
 	}
 
 	@Test
 	public void relativeLessThanAbsolute() {
-		assertLessThan(Path.forWindows("f1/f2"), Path.forWindows("/f1/f2"));
+		assertLessThan(IPath.forWindows("f1/f2"), IPath.forWindows("/f1/f2"));
 	}
 
 	@Test
 	public void absoluteLessThanUnc() {
-		assertLessThan(Path.forWindows("/f1/f2"), Path.forWindows("//f1/f2"));
+		assertLessThan(IPath.forWindows("/f1/f2"), IPath.forWindows("//f1/f2"));
 	}
 
 	@Test
 	public void uncLessThanDevice() {
-		assertLessThan(Path.forWindows("//f1/f2"), Path.forWindows("a:/f1/f2"));
+		assertLessThan(IPath.forWindows("//f1/f2"), IPath.forWindows("a:/f1/f2"));
 	}
 
 }
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
index ecc516123f6..2bf39b53acc 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/ProjectUnzipUtil.java
@@ -33,7 +33,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.FrameworkUtil;
 
@@ -58,7 +57,7 @@ public IPath getLocalPath(IPath zipFilePath) {
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
-		return new Path(url.getPath());
+		return IPath.fromOSString(url.getPath());
 	}
 
 	public boolean createProjects() {
@@ -145,7 +144,7 @@ public void setRootLocation(IPath rootLocation) {
 	private void buildProjects() throws IOException, CoreException {
 		for (String projectName : projectNames) {
 			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IPath projectPath = new Path("/" + projectName + "/" + META_PROJECT_NAME); //$NON-NLS-1$//$NON-NLS-2$
+			IPath projectPath = IPath.fromOSString("/" + projectName + "/" + META_PROJECT_NAME); //$NON-NLS-1$//$NON-NLS-2$
 			IPath path = rootLocation.append(projectPath);
 			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
 			IProjectDescription description = workspace.loadProjectDescription(path);
diff --git a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
index b0190c944da..55f99de98bd 100644
--- a/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
+++ b/tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/util/TestWorkspace.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 
 public class TestWorkspace {
 	public static final String TEST_PROJECT_NAME= "Test"; //$NON-NLS-1$
@@ -27,9 +27,12 @@ public class TestWorkspace {
 
 
 	public static void init() {
-		initProject(new ProjectUnzipUtil(new Path(TEST_TESTDATA), new String[]{TEST_PROJECT_NAME}), TEST_PROJECT_NAME);
-		initProject(new ProjectUnzipUtil(new Path(TEST_P1), new String[]{P1_PROJECT_NAME}), P1_PROJECT_NAME);
-		initProject(new ProjectUnzipUtil(new Path(TEST_P2), new String[]{P2_PROJECT_NAME}), P2_PROJECT_NAME);
+		initProject(new ProjectUnzipUtil(IPath.fromOSString(TEST_TESTDATA), new String[] { TEST_PROJECT_NAME }),
+				TEST_PROJECT_NAME);
+		initProject(new ProjectUnzipUtil(IPath.fromOSString(TEST_P1), new String[] { P1_PROJECT_NAME }),
+				P1_PROJECT_NAME);
+		initProject(new ProjectUnzipUtil(IPath.fromOSString(TEST_P2), new String[] { P2_PROJECT_NAME }),
+				P2_PROJECT_NAME);
 	}
 
 	public static void initProject(ProjectUnzipUtil util, String projectName) {
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
index 98d8bdb41c6..a975c123f69 100644
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
+++ b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
@@ -21,7 +21,7 @@
 import java.util.Iterator;
 
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.tests.performance.BasicPerformanceTest;
@@ -68,7 +68,7 @@ public void testRefresh() throws Throwable {
 				if (localImagePath.indexOf('.') < 0)
 					continue;
 
-				URL[] files = FileLocator.findEntries(bundle, new Path(localImagePath));
+				URL[] files = FileLocator.findEntries(bundle, IPath.fromOSString(localImagePath));
 
 				for (URL file : files) {
 					startMeasuring();
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
index d883870a8f4..c58e0435c15 100644
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
+++ b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
@@ -28,7 +28,7 @@
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.ui.tests.harness.util.FileTool;
 
 public class ResourceTestHelper {
@@ -39,16 +39,16 @@ public static void replicate(String src, String destPrefix, String destSuffix, i
 	}
 
 	public static void copy(String src, String dest) throws CoreException {
-		IFile file= getRoot().getFile(new Path(src));
-		file.copy(new Path(dest), true, null);
+		IFile file = getRoot().getFile(IPath.fromOSString(src));
+		file.copy(IPath.fromOSString(dest), true, null);
 	}
 
 	public static void delete(String file) throws CoreException {
-		getRoot().getFile(new Path(file)).delete(true, null);
+		getRoot().getFile(IPath.fromOSString(file)).delete(true, null);
 	}
 
 	public static IFile findFile(String path) {
-		return getRoot().getFile(new Path(path));
+		return getRoot().getFile(IPath.fromOSString(path));
 	}
 
 	public static IFile[] findFiles(String prefix, String suffix, int i, int n) {
@@ -62,7 +62,7 @@ public static IFile[] findFiles(String prefix, String suffix, int i, int n) {
 	}
 
 	public static StringBuilder read(String src) throws IOException, CoreException {
-		return FileTool.readToBuilder(new InputStreamReader(getRoot().getFile(new Path(src)).getContents()));
+		return FileTool.readToBuilder(new InputStreamReader(getRoot().getFile(IPath.fromOSString(src)).getContents()));
 	}
 
 	public static void write(String dest, final String content) throws CoreException {
@@ -73,7 +73,7 @@ public int read() throws IOException {
 				return fReader.read();
 			}
 		};
-		getRoot().getFile(new Path(dest)).create(stream, true, null);
+		getRoot().getFile(IPath.fromOSString(dest)).create(stream, true, null);
 	}
 
 
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java
index dd4f5d0d5a3..0c451c4182a 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java	
@@ -31,7 +31,6 @@
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.dialogs.IOverwriteQuery;
 import org.eclipse.ui.internal.wizards.datatransfer.TarFile;
 import org.eclipse.ui.internal.wizards.datatransfer.TarLeveledStructureProvider;
@@ -107,9 +106,9 @@ private void setup(String propertyName) throws Exception{
 		localDirectory = zipFileName;
 
 		zipFileURL = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX).append(zipFileName + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX).append(zipFileName + ".zip"), null));
 		tarFileURL = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX).append(zipFileName + ".tar"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX).append(zipFileName + ".tar"), null));
 	}
 
 	@Test
@@ -126,7 +125,7 @@ public void testZipGetStatus() throws Exception {
 			entries.add(zipEntries.nextElement());
 		}
 		ImportOperation operation = new ImportOperation(
-				new Path(zipFileURL.getPath()), structureProvider.getRoot(),
+				IPath.fromOSString(zipFileURL.getPath()), structureProvider.getRoot(),
 				structureProvider, this, entries);
 
 		closeZipFile(zipFile);
@@ -145,8 +144,8 @@ public void testTarGetStatus() throws Exception {
 			while (tarEntries.hasMoreElements()) {
 				entries.add(tarEntries.nextElement());
 			}
-			ImportOperation operation = new ImportOperation(new Path(tarFileURL.getPath()), structureProvider.getRoot(),
-					structureProvider, this, entries);
+			ImportOperation operation = new ImportOperation(IPath.fromOSString(tarFileURL.getPath()),
+					structureProvider.getRoot(), structureProvider, this, entries);
 
 			assertTrue(operation.getStatus().getCode() == IStatus.OK);
 		}
@@ -168,7 +167,7 @@ public void testZipImport() throws Exception {
 			}
 		}
 		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
+				IPath.fromOSString(project.getName()), structureProvider.getRoot(),
 				structureProvider, this, entries);
 
 		openTestWindow().run(true, true, operation);
@@ -190,8 +189,8 @@ public void testTarImport() throws Exception {
 			while (tarEntries.hasMoreElements()) {
 				entries.add(tarEntries.nextElement());
 			}
-			ImportOperation operation = new ImportOperation(new Path(project.getName()), structureProvider.getRoot(),
-					structureProvider, this, entries);
+			ImportOperation operation = new ImportOperation(IPath.fromOSString(project.getName()),
+					structureProvider.getRoot(), structureProvider, this, entries);
 
 			openTestWindow().run(true, true, operation);
 		}
@@ -211,8 +210,8 @@ public void testTarSetOverwriteResources() throws Exception {
 			while (tarEntries.hasMoreElements()) {
 				entries.add(tarEntries.nextElement());
 			}
-			ImportOperation operation = new ImportOperation(new Path(project.getName()), structureProvider.getRoot(),
-					structureProvider, this, entries);
+			ImportOperation operation = new ImportOperation(IPath.fromOSString(project.getName()),
+					structureProvider.getRoot(), structureProvider, this, entries);
 
 			openTestWindow().run(true, true, operation);
 			operation.setOverwriteResources(true);
@@ -237,7 +236,7 @@ public void testZipSetOverwriteResources() throws Exception {
 			}
 		}
 		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
+				IPath.fromOSString(project.getName()), structureProvider.getRoot(),
 				structureProvider, this, entries);
 
 		openTestWindow().run(true, true, operation);
@@ -263,7 +262,7 @@ public void testZipWithFileAtRoot() throws Exception {
 			}
 		}
 		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
+				IPath.fromOSString(project.getName()), structureProvider.getRoot(),
 				structureProvider, this, entries);
 
 		openTestWindow().run(true, true, operation);
@@ -285,8 +284,8 @@ public void testTarWithFileAtRoot() throws Exception {
 			while (tarEntries.hasMoreElements()) {
 				entries.add(tarEntries.nextElement());
 			}
-			ImportOperation operation = new ImportOperation(new Path(project.getName()), structureProvider.getRoot(),
-					structureProvider, this, entries);
+			ImportOperation operation = new ImportOperation(IPath.fromOSString(project.getName()),
+					structureProvider.getRoot(), structureProvider, this, entries);
 
 			openTestWindow().run(true, true, operation);
 		}
@@ -302,7 +301,7 @@ public void testTarWithFileAtRoot() throws Exception {
 	 */
 	private void verifyFiles(int folderCount, boolean hasRootMembers) {
 		try {
-			IPath path = new Path(localDirectory);
+			IPath path = IPath.fromOSString(localDirectory);
 			IResource targetFolder = project.findMember(path.makeRelative());
 
 			assertTrue("Import failed", targetFolder instanceof IContainer);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
index 2121c42d19d..bb56e1de16b 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java	
@@ -37,7 +37,6 @@
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.tests.harness.FileSystemHelper;
 import org.eclipse.jface.dialogs.IDialogSettings;
@@ -156,7 +155,7 @@ private void waitForRefresh() {
 	@Test
 	public void test01FindSingleZip() throws IOException {
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -181,7 +180,7 @@ public void test01FindSingleZip() throws IOException {
 	@Test
 	public void test02FindSingleTar() throws IOException {
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".tar"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".tar"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -206,7 +205,7 @@ public void test02FindSingleTar() throws IOException {
 	@Test
 	public void test03FindSingleDirectory() throws IOException {
 		dataLocation = ImportTestUtils.copyDataLocation(WS_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation).append("HelloWorld");
+		IPath wsPath = IPath.fromOSString(dataLocation).append("HelloWorld");
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 		// We're importing a directory
@@ -226,7 +225,7 @@ public void test03FindSingleDirectory() throws IOException {
 	@Test
 	public void test04DoNotShowProjectWithSameName() throws IOException, CoreException {
 		dataLocation = ImportTestUtils.copyDataLocation(WS_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation);
+		IPath wsPath = IPath.fromOSString(dataLocation);
 
 		FileUtil.createProject("HelloWorld");
 
@@ -252,7 +251,7 @@ public void test05ImportSingleZip() throws CoreException, IOException {
 			FileUtil.deleteProject(workspaceProject);
 		}
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -301,7 +300,7 @@ public void test06ImportZipWithEmptyFolder() throws CoreException, IOException {
 			FileUtil.deleteProject(workspaceProject);
 		}
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".zip"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("A");
 
@@ -349,7 +348,7 @@ public void test07ImportSingleTar() throws CoreException, IOException {
 			FileUtil.deleteProject(workspaceProject);
 		}
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".tar"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".tar"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -396,7 +395,7 @@ public void test08ImportTarWithEmptyFolder() throws CoreException, IOException {
 			FileUtil.deleteProject(workspaceProject);
 		}
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".tar"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".tar"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("A");
 
@@ -444,7 +443,7 @@ public void test09ImportSingleDirectory() throws CoreException, IOException {
 		}
 
 		dataLocation = ImportTestUtils.copyDataLocation(WS_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation).append("HelloWorld");
+		IPath wsPath = IPath.fromOSString(dataLocation).append("HelloWorld");
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -487,7 +486,7 @@ public void test10ImportSingleDirectoryWithCopy() throws CoreException, IOExcept
 		}
 
 		dataLocation = ImportTestUtils.copyDataLocation(WS_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation).append("HelloWorld");
+		IPath wsPath = IPath.fromOSString(dataLocation).append("HelloWorld");
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -533,7 +532,7 @@ public void test11ImportSingleDirectoryWithCopyDeleteProjectKeepContents() throw
 		}
 
 		dataLocation = ImportTestUtils.copyDataLocation(WS_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation).append("HelloWorld");
+		IPath wsPath = IPath.fromOSString(dataLocation).append("HelloWorld");
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -621,7 +620,7 @@ public void test12ImportZipDeleteContentsImportAgain() throws CoreException, IOE
 			FileUtil.deleteProject(workspaceProject);
 		}
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("HelloWorld");
 
@@ -670,7 +669,7 @@ public void test12ImportZipDeleteContentsImportAgain() throws CoreException, IOE
 			FileUtil.deleteProject(element);
 		}
 		URL archiveFile2 = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
 		WizardProjectsImportPage wpip2 = getNewWizard();
 		Set projects2 = Set.of("HelloWorld");
 
@@ -718,7 +717,7 @@ public void test13ImportDirectoryNested() throws IOException, CoreException {
 		}
 
 		dataLocation = ImportTestUtils.copyDataLocation(WS_NESTED_DATA_LOCATION);
-		IPath wsPath = new Path(dataLocation).append("A");
+		IPath wsPath = IPath.fromOSString(dataLocation).append("A");
 		WizardProjectsImportPage wpip = getNewWizard();
 		Set projects = Set.of("A", "B", "C");
 
@@ -938,7 +937,7 @@ public void test16GetProjectRecords() throws Exception {
 		Set expectedNames = Set.of("Project1", "Project2", "Project3", "Project4", "Project5");
 
 		URL projectsArchive = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + PROJECTS_ARCHIVE + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + PROJECTS_ARCHIVE + ".zip"), null));
 
 		List projectNames = getNonConflictingProjectsFromArchive(projectsArchive);
 
@@ -971,7 +970,7 @@ private List getNonConflictingProjectsFromArchive(URL projectsArchive) {
 	public void test17GetProjectRecordsShouldHandleCorruptProjects() throws Exception {
 
 		URL projectsArchive = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + CORRUPT_PROJECTS_ARCHIVE + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + CORRUPT_PROJECTS_ARCHIVE + ".zip"), null));
 
 		WizardProjectsImportPage newWizard = spy(getNewWizard());
 		ProjectRecord[] projectRecords = getProjectsFromArchive(newWizard, projectsArchive);
@@ -994,7 +993,7 @@ public void test17GetProjectRecordsShouldHandleCorruptProjects() throws Exceptio
 	public void test18GetProjectRecordsShouldHandleCorruptAndConflictingProjects() throws Exception {
 
 		URL projectsArchive = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + CORRUPT_PROJECTS_ARCHIVE + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + CORRUPT_PROJECTS_ARCHIVE + ".zip"), null));
 
 		WizardProjectsImportPage newWizard = spy(getNewWizard());
 		FileUtil.createProject("Project1");
@@ -1198,7 +1197,7 @@ public void test23DoNotShowProjectwithSameNameForZipImport() throws CoreExceptio
 		FileUtil.createProject("HelloWorld");
 
 		URL archiveFile = FileLocator.toFileURL(FileLocator.find(TestPlugin.getDefault().getBundle(),
-				new Path(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
+				IPath.fromOSString(DATA_PATH_PREFIX + ARCHIVE_HELLOWORLD + ".zip"), null));
 		WizardProjectsImportPage wpip = getNewWizard();
 		// We want the other one selected as we are importing an archive file
 		wpip.getProjectFromDirectoryRadio().setSelection((false));
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java
index 13cd0171933..3e982ae2123 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java	
@@ -13,7 +13,7 @@
  *******************************************************************************/
 package org.eclipse.ui.tests.datatransfer;
 
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.ui.internal.WorkbenchPlugin;
 import org.eclipse.ui.internal.registry.WizardsRegistryReader;
 import org.eclipse.ui.tests.harness.util.UITestCase;
@@ -58,7 +58,7 @@ public ImportExportWizardsCategoryTests() {
 	/* Import */
 	@Test
 	public void testImportNoCategoryProvided(){
-		IWizardCategory otherCategory = importRoot.findCategory(new Path(
+		IWizardCategory otherCategory = importRoot.findCategory(IPath.fromOSString(
 				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory != null){
 			IWizardDescriptor wizardDesc =
@@ -73,7 +73,7 @@ public void testImportNoCategoryProvided(){
 
 	@Test
 	public void testImportCategoryDoesNotExist(){
-		IWizardCategory otherCategory = importRoot.findCategory(new Path(
+		IWizardCategory otherCategory = importRoot.findCategory(IPath.fromOSString(
 				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory != null){
 			IWizardDescriptor wizardDesc =
@@ -89,7 +89,7 @@ public void testImportCategoryDoesNotExist(){
 	@Test
 	public void testImportAddToNewCategory(){
 		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_CATEGORY));
+				IPath.fromOSString(WIZARD_IMPORT_NEW_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_IMPORT_NEW_CATEGORY);
@@ -104,7 +104,7 @@ public void testImportAddToNewCategory(){
 	@Test
 	public void testImportAddToParentedCategory(){
 		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_PARENTED_CATEGORY));
+				IPath.fromOSString(WIZARD_IMPORT_NEW_PARENTED_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_IMPORT_PARENTED_CATEGORY);
@@ -119,7 +119,7 @@ public void testImportAddToParentedCategory(){
 	@Test
 	public void testImportDuplicateCategory(){
 		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_DUPLICATE_CATEGORY));
+				IPath.fromOSString(WIZARD_IMPORT_DUPLICATE_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_IMPORT_DUPLICATE_CATEGORY);
@@ -134,7 +134,7 @@ public void testImportDuplicateCategory(){
 	@Test
 	public void testImportUsingExportCategory(){
 		IWizardCategory category = importRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_CATEGORY));
+				IPath.fromOSString(WIZARD_EXPORT_NEW_CATEGORY));
 		assertTrue(
 				"Import wizards should not have category named " + WIZARD_EXPORT_NEW_CATEGORY,
 				category == null);
@@ -143,7 +143,7 @@ public void testImportUsingExportCategory(){
 	/* Export */
 	@Test
 	public void testExportNoCategoryProvided(){
-		IWizardCategory otherCategory = exportRoot.findCategory(new Path(
+		IWizardCategory otherCategory = exportRoot.findCategory(IPath.fromOSString(
 				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory != null){
 			IWizardDescriptor wizardDesc =
@@ -158,7 +158,7 @@ public void testExportNoCategoryProvided(){
 
 	@Test
 	public void testExportCategoryDoesNotExist(){
-		IWizardCategory otherCategory = exportRoot.findCategory(new Path(
+		IWizardCategory otherCategory = exportRoot.findCategory(IPath.fromOSString(
 				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
 		if (otherCategory != null){
 			IWizardDescriptor wizardDesc =
@@ -174,7 +174,7 @@ public void testExportCategoryDoesNotExist(){
 	@Test
 	public void testExportAddToNewCategory(){
 		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_CATEGORY));
+				IPath.fromOSString(WIZARD_EXPORT_NEW_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_EXPORT_NEW_CATEGORY);
@@ -189,7 +189,7 @@ public void testExportAddToNewCategory(){
 	@Test
 	public void testExportAddToParentedCategory(){
 		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_PARENTED_CATEGORY));
+				IPath.fromOSString(WIZARD_EXPORT_NEW_PARENTED_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_EXPORT_PARENTED_CATEGORY);
@@ -204,7 +204,7 @@ public void testExportAddToParentedCategory(){
 	@Test
 	public void testExportDuplicateCategory(){
 		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_DUPLICATE_CATEGORY));
+				IPath.fromOSString(WIZARD_EXPORT_DUPLICATE_CATEGORY));
 		if (newCategory != null){
 			IWizardDescriptor wizardDesc =
 				newCategory.findWizard(WIZARD_ID_EXPORT_DUPLICATE_CATEGORY);
@@ -219,7 +219,7 @@ public void testExportDuplicateCategory(){
 	@Test
 	public void testExportUsingImportCategory(){
 		IWizardCategory category = exportRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_CATEGORY));
+				IPath.fromOSString(WIZARD_IMPORT_NEW_CATEGORY));
 		assertTrue(
 				"Export wizards should not have category named " + WIZARD_IMPORT_NEW_CATEGORY,
 				category == null);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java
index 9ad436fb2fe..3ac0365d368 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java	
@@ -26,7 +26,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.tests.harness.FileSystemHelper;
 import org.eclipse.ui.dialogs.IOverwriteQuery;
 import org.eclipse.ui.tests.harness.util.FileUtil;
@@ -196,7 +195,7 @@ public void testSetCreateContainerStructure() throws Exception {
 		openTestWindow().run(true, true, operation);
 
 		try {
-			IPath path = new Path(localDirectory);
+			IPath path = IPath.fromOSString(localDirectory);
 			IResource targetFolder = project.findMember(path.lastSegment());
 
 			assertTrue("Import failed", targetFolder instanceof IContainer);
@@ -249,7 +248,7 @@ public void testSetOverwriteResources() throws Exception {
 	 */
 	private void verifyFiles(int folderCount) {
 		try {
-			IPath path = new Path(localDirectory);
+			IPath path = IPath.fromOSString(localDirectory);
 			IResource targetFolder = project.findMember(path.makeRelative());
 
 			assertTrue("Import failed", targetFolder instanceof IContainer);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportTestUtils.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportTestUtils.java
index dcb3321b087..673e974efa6 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportTestUtils.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportTestUtils.java	
@@ -35,8 +35,8 @@
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.tests.harness.FileSystemHelper;
 import org.eclipse.ui.tests.TestPlugin;
@@ -115,7 +115,8 @@ static void assertNoBuildWasDone() {
 	 */
 	static String copyDataLocation(String dataLocation) throws IOException {
 		TestPlugin plugin = TestPlugin.getDefault();
-		File origin = FileTool.getFileInPlugin(plugin, new Path("/" + WS_DATA_PREFIX + "/" + dataLocation + ".zip"));
+		File origin = FileTool.getFileInPlugin(plugin,
+				IPath.fromOSString("/" + WS_DATA_PREFIX + "/" + dataLocation + ".zip"));
 		ZipFile zFile = new ZipFile(origin);
 		File destination = new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir()).toOSString());
 		FileTool.unzip(zFile, destination);
@@ -124,7 +125,8 @@ static String copyDataLocation(String dataLocation) throws IOException {
 
 	static String copyZipLocation(String sourceZipLocation, String targetZipName) throws IOException {
 		TestPlugin plugin = TestPlugin.getDefault();
-		File origin = FileTool.getFileInPlugin(plugin, new Path(WS_DATA_PREFIX + "/" + sourceZipLocation + ".zip"));
+		File origin = FileTool.getFileInPlugin(plugin,
+				IPath.fromOSString(WS_DATA_PREFIX + "/" + sourceZipLocation + ".zip"));
 		File destination = new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir()).toOSString()
 				+ File.separator + targetZipName + ".zip");
 		FileTool.copy(origin, destination);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ZipSlipTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ZipSlipTests.java
index 447f75511dd..497f2f9ae67 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ZipSlipTests.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ZipSlipTests.java	
@@ -24,7 +24,6 @@
 
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.ui.internal.wizards.datatransfer.ZipLeveledStructureProvider;
 import org.eclipse.ui.tests.harness.util.UITestCase;
 import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider;
@@ -46,7 +45,7 @@ public ZipSlipTests() {
 
 	@Test
 	public void testZipFileStructureProvider() throws ZipException, IOException {
-		IPath path = getLocalPath(new Path(ZIPSLIP_FILE));
+		IPath path = getLocalPath(IPath.fromOSString(ZIPSLIP_FILE));
 		try (ZipFile zipFile = new ZipFile(path.toFile())) {
 			ZipFileStructureProvider zipfileStructureProvider = new ZipFileStructureProvider(zipFile);
 			List children = zipfileStructureProvider.getChildren(zipfileStructureProvider.getRoot());
@@ -67,7 +66,7 @@ public void testZipFileStructureProvider() throws ZipException, IOException {
 
 	@Test
 	public void testZipLeveledStructureProvider() throws Exception {
-		IPath path = getLocalPath(new Path(ZIPSLIP_FILE));
+		IPath path = getLocalPath(IPath.fromOSString(ZIPSLIP_FILE));
 		try (ZipFile zipFile = new ZipFile(path.toFile());
 				ZipLeveledStructureProvider zipLeveledStructureProvider = new ZipLeveledStructureProvider(zipFile)) {
 			List children = zipLeveledStructureProvider.getChildren(zipLeveledStructureProvider.getRoot());
@@ -94,6 +93,6 @@ private IPath getLocalPath(IPath zipFilePath) {
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
-		return new Path(url.getPath());
+		return IPath.fromOSString(url.getPath());
 	}
 }
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/contributions/ImportMeProjectConfigurator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/contributions/ImportMeProjectConfigurator.java
index 1f4d1983f77..cde1e7c9124 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/contributions/ImportMeProjectConfigurator.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/contributions/ImportMeProjectConfigurator.java	
@@ -28,7 +28,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 
 public class ImportMeProjectConfigurator implements org.eclipse.ui.wizards.datatransfer.ProjectConfigurator {
 
@@ -57,7 +56,7 @@ public Set findConfigurableLocations(File root, IProgressMonitor monitor)
 
 	@Override
 	public boolean shouldBeAnEclipseProject(IContainer container, IProgressMonitor monitor) {
-		return container.getFile(new Path(IMPORTME_FILENAME)).exists();
+		return container.getFile(IPath.fromOSString(IMPORTME_FILENAME)).exists();
 	}
 
 	@Override
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
index 3c9ea811dc4..a7db3f5dd26 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java	
@@ -13,7 +13,7 @@
  *******************************************************************************/
 package org.eclipse.ui.tests.dnd;
 
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
@@ -58,7 +58,7 @@ public static Test suite() {
 	}
 
 	public DragTestSuite() {
-		super(Platform.find(TestPlugin.getDefault().getBundle(), new Path("data/dragtests.xml")));
+		super(Platform.find(TestPlugin.getDefault().getBundle(), IPath.fromOSString("data/dragtests.xml")));
 
 		String resNav = IPageLayout.ID_PROJECT_EXPLORER;
 		String probView = IPageLayout.ID_PROBLEM_VIEW;
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java
index 457f45dbf7c..8dac687204b 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java	
@@ -20,7 +20,6 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IFileEditorInput;
 import org.eclipse.ui.IPersistableElement;
@@ -49,7 +48,7 @@ public FileEditorInputTest() {
 	@SuppressWarnings("unlikely-arg-type")
 	public void testBug72337() {
 		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IPath path = new Path("/foo/bar.txt");
+		IPath path = IPath.fromOSString("/foo/bar.txt");
 		IFile fileA = workspace.getRoot().getFile(path);
 		FileEditorInput inputA1 = new FileEditorInput(fileA);
 		OtherFileEditorInput inputA2 = new OtherFileEditorInput(fileA);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileStore.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileStore.java
index 83782d9f8bf..e27d9c59a8e 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileStore.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileStore.java	
@@ -19,7 +19,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 
 /**
@@ -39,7 +38,7 @@ public String[] childNames(int options, IProgressMonitor monitor) {
 		List children = new ArrayList<>();
 		IPath me = getPath();
 		for (URI id : uris) {
-			Path path = new Path(id.getPath());
+			IPath path = IPath.fromOSString(id.getPath());
 			if (path.segmentCount() > 0) {
 				if (path.removeLastSegments(1).equals(me)) {
 					children.add(path.lastSegment());
@@ -90,7 +89,7 @@ public String getName() {
 
 	private IPath getPath() {
 		URI me = toURI();
-		IPath path = new Path(me.getPath());
+		IPath path = IPath.fromOSString(me.getPath());
 		return path;
 	}
 
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileSystem.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileSystem.java
index 19abbfc1229..faf70a44161 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileSystem.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/VirtualTestFileSystem.java	
@@ -7,7 +7,7 @@
 
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.core.filesystem.provider.FileSystem;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 
 /**
  * Based on org.eclipse.debug.tests.launching.DebugFileSystem
@@ -32,7 +32,7 @@ public VirtualTestFileSystem() {
 		system = this;
 		// create root of the file system
 		try {
-			setContents(new URI(SCHEME, Path.ROOT.toString(), null), DIRECTORY_BYTES); // $NON-NLS-1$
+			setContents(new URI(SCHEME, IPath.ROOT.toString(), null), DIRECTORY_BYTES); // $NON-NLS-1$
 		} catch (URISyntaxException e) {
 		}
 	}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java
index 07ecdfb85db..4bd3eaea289 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java	
@@ -26,7 +26,7 @@
 import java.util.Properties;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.PluginVersionIdentifier;
 import org.eclipse.core.runtime.Preferences;
@@ -91,7 +91,7 @@ public void testImportKeyPreferences() throws CoreException,
 		}
 
 		// Attempt to import the key binding.
-		Preferences.importPreferences(new Path(file.getAbsolutePath()));
+		Preferences.importPreferences(IPath.fromOSString(file.getAbsolutePath()));
 		/*
 		 * END SECTION
 		 */
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java
index 13a31d3c0f1..b9302173eb1 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java	
@@ -22,7 +22,7 @@
 import java.util.Properties;
 
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.PluginVersionIdentifier;
 import org.eclipse.core.runtime.Preferences;
@@ -79,7 +79,7 @@ static final void setKeyBinding(String commandId, String keySequenceText)
 		}
 
 		// Attempt to import the key binding.
-		Preferences.importPreferences(new Path(file.getAbsolutePath()));
+		Preferences.importPreferences(IPath.fromOSString(file.getAbsolutePath()));
 	}
 
 }
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/largefile/LargeFileLimitsPreferenceHandlerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/largefile/LargeFileLimitsPreferenceHandlerTest.java
index fa617eeaba3..8b76635abee 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/largefile/LargeFileLimitsPreferenceHandlerTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/largefile/LargeFileLimitsPreferenceHandlerTest.java	
@@ -34,7 +34,6 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.preference.PreferenceDialog;
 import org.eclipse.jface.preference.PreferencePage;
@@ -104,7 +103,7 @@ private void createTestFile() throws CoreException {
 		testProject = workspaceRoot.getProject("SomeProject");
 		testProject.create(monitor);
 		testProject.open(monitor);
-		IPath path = new Path("/" + testProject.getName() + "/test_file" + "." + TXT_EXTENSION);
+		IPath path = IPath.fromOSString("/" + testProject.getName() + "/test_file" + "." + TXT_EXTENSION);
 		temporaryFile = workspaceRoot.getFile(path);
 		String content = String.join(System.lineSeparator(), "some line 1", "some line 2");
 		boolean force = true;
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java
index 5fe9f4483a6..424a1a870fe 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java	
@@ -18,7 +18,7 @@
 
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.ui.part.MultiEditorInput;
@@ -40,9 +40,9 @@ public void testEqualsAndHash() {
 		String eb = "dummy.editor.id.B";
 		String ec = "dummy.editor.id.C";
 		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IEditorInput ia = new FileEditorInput(root.getFile(new Path("/DummyProject/FileA")));
-		IEditorInput ib = new FileEditorInput(root.getFile(new Path("/DummyProject/FileB")));
-		IEditorInput ic = new FileEditorInput(root.getFile(new Path("/DummyProject/FileC")));
+		IEditorInput ia = new FileEditorInput(root.getFile(IPath.fromOSString("/DummyProject/FileA")));
+		IEditorInput ib = new FileEditorInput(root.getFile(IPath.fromOSString("/DummyProject/FileB")));
+		IEditorInput ic = new FileEditorInput(root.getFile(IPath.fromOSString("/DummyProject/FileC")));
 		MultiEditorInput a = new MultiEditorInput(new String[] { ea }, new IEditorInput[] { ia });
 		MultiEditorInput a2 = new MultiEditorInput(new String[] { ea }, new IEditorInput[] { ia });
 		MultiEditorInput b = new MultiEditorInput(new String[] { eb }, new IEditorInput[] { ib });
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java
index a2ab23b065c..179c9c2a0ce 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java	
@@ -49,7 +49,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.tests.harness.FileSystemHelper;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.ide.undo.AbstractWorkspaceOperation;
@@ -1072,7 +1071,7 @@ public void testProjectCopyAndChangeToInvalidLocationUndoRedo()
 	public void testProjectRenameUndoRedo() throws ExecutionException,
 			CoreException {
 		MoveResourcesOperation op = new MoveResourcesOperation(testProject,
-				new Path(TEST_NEWPROJECT_NAME), "testProjectRename");
+				IPath.fromOSString(TEST_NEWPROJECT_NAME), "testProjectRename");
 		ProjectSnapshot snap = new ProjectSnapshot(testProject);
 		execute(op);
 		IProject renamedProject = getWorkspaceRoot().getProject(
@@ -1202,7 +1201,7 @@ public void testFolderCreateNestedInProjectUndoRedo()
 		undo();
 		assertFalse("Folder deletion failed", folder.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFOLDER_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testProject.getFullPath().append(path));
@@ -1229,7 +1228,7 @@ public void testFolderCreateNestedInFolderUndoRedo()
 		undo();
 		assertFalse("Folder deletion failed", folder.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFOLDER_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testFolder.getFullPath().append(path));
@@ -1303,7 +1302,7 @@ public void testFolderCreateLinkedNestedUndoRedo()
 		undo();
 		assertFalse("Folder deletion failed", folder.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFOLDER_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testProject.getFullPath().append(path));
@@ -1596,7 +1595,7 @@ public void testFileCreateNestedInProjectUndoRedo()
 		undo();
 		assertFalse("File deletion failed", file.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFILE_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testProject.getFullPath().append(path));
@@ -1626,7 +1625,7 @@ public void testFileCreateNestedInFolderUndoRedo()
 		undo();
 		assertFalse("File deletion failed", file.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFILE_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testSubFolder.getFullPath().append(path));
@@ -1682,7 +1681,7 @@ public void testFileCreateLinkedNestedUndoRedo() throws ExecutionException,
 		undo();
 		assertFalse("File deletion failed", file.exists());
 		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
+		IPath path = IPath.fromOSString(TEST_NEWNESTEDFILE_NAME);
 		path.removeLastSegments(path.segmentCount() - 1);
 		IFolder parent = getWorkspaceRoot().getFolder(
 				testProject.getFullPath().append(path));
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java
index b6bb2859e57..f834d2f3db2 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java	
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java	
@@ -21,7 +21,6 @@
 import java.util.zip.ZipFile;
 
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.tests.harness.FileSystemHelper;
 import org.eclipse.core.tests.session.SessionTestSuite;
 import org.eclipse.core.tests.session.Setup;
@@ -142,7 +141,7 @@ private String copyDataLocation() throws IOException {
 			throw new IllegalArgumentException();
 		}
 
-		IPath path = new Path(fullPathString.getPath());
+		IPath path = IPath.fromOSString(fullPathString.getPath());
 
 		File origin = path.toFile();
 		if (!origin.exists()) {
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF b/tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF
index 72f45924807..cb1b9f5f805 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-17
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.9.0",
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.27.0",
  org.eclipse.core.databinding.property;bundle-version="1.2.100",
  org.eclipse.e4.ui.model.workbench;bundle-version="0.9.1",
  org.eclipse.jface.databinding;bundle-version="1.4.0",
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ContributionDataFile.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ContributionDataFile.java
index 22732c4dba1..da926284890 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ContributionDataFile.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ContributionDataFile.java
@@ -41,7 +41,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.QualifiedName;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.content.IContentDescription;
@@ -63,7 +62,7 @@ public class ContributionDataFile implements IFile {
 	public ContributionDataFile(ContributionData data) {
 		this.data = data;
 		if (data.iconPath != null) {
-			path = Path.fromOSString(data.iconPath);
+			path = IPath.fromOSString(data.iconPath);
 		}
 	}
 
@@ -78,9 +77,9 @@ public ContributionData getContributionData() {
 	@Override
 	public IPath getProjectRelativePath() {
 		if (getContributionData().installLocation != null) {
-			return new Path(data.resourceRelativePath);
+			return IPath.fromOSString(data.resourceRelativePath);
 		}
-		return new Path(data.iconPath);
+		return IPath.fromOSString(data.iconPath);
 	}
 
 	@Override
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/BundleConverter.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/BundleConverter.java
index d78e89d9033..61ed33986d2 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/BundleConverter.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/BundleConverter.java
@@ -16,10 +16,10 @@
 
 import java.io.FileOutputStream;
 import java.util.jar.Manifest;
+
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 
 /**
  * Converts the given install location into a bundle.
@@ -36,7 +36,7 @@ public class BundleConverter {
 	 * @throws Exception
 	 */
 	public static String convertProjectToBundle(String installLocation, IWorkspace workspace) throws Exception {
-		IPath project = Path.fromOSString(installLocation);
+		IPath project = IPath.fromOSString(installLocation);
 		if (project.toFile().isDirectory() == false) {
 			throw new Exception(Messages.BundleConverter_installLocationNotADirectory);
 		}
@@ -52,7 +52,7 @@ public static String convertProjectToBundle(String installLocation, IWorkspace w
 		}
 		Manifest manifest = new Manifest();
 		// TODO prompt for names
-		IPath path = Path.fromOSString(installLocation);
+		IPath path = IPath.fromOSString(installLocation);
 		String bundleId = path.lastSegment();
 		String bundleName = path.lastSegment();
 		manifest.getMainAttributes().putValue("Manifest-Version", "1.0"); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/TargetPlatformContributionCollector.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/TargetPlatformContributionCollector.java
index f6018703466..7fc73baa9c3 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/TargetPlatformContributionCollector.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/TargetPlatformContributionCollector.java
@@ -46,7 +46,6 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.tools.emf.ui.common.IClassContributionProvider;
@@ -238,7 +237,7 @@ protected ContributionData makeData(Entry e) {
 		// If class is in a java project, strip the source directory
 		// String path = e.path;// .replace("/", ".") + e.name;
 		// path = stripSourceDirectory(path, e.installLocation);
-		IPath ip = Path.fromOSString(e.path);
+		IPath ip = IPath.fromOSString(e.path);
 		ip = ip.addTrailingSeparator().makeRelative();
 		ip = ip.append(e.name);
 		final String className = ip.toOSString().replace(File.separatorChar, '.');
@@ -544,7 +543,7 @@ protected void visit(IProgressMonitor monitor, String bundleName, String install
 					if (e.path == null) {
 						e.path = ""; //$NON-NLS-1$
 					}
-					e.relativePath = Path
+					e.relativePath = IPath
 							.fromOSString(file.getAbsolutePath().replace(e.installLocation, "")).makeRelative().toOSString(); //$NON-NLS-1$
 
 					e.bundleSymName = bundleName;
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedActionPage.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedActionPage.java
index 42da490469a..c296a3c4f38 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedActionPage.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedActionPage.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.tools.emf.ui.common.IClassContributionProvider.ContributionData;
 import org.eclipse.e4.tools.emf.ui.common.Plugin;
@@ -310,7 +309,7 @@ public void widgetSelected(SelectionEvent e) {
 												contributionData.className, contributionData.sourceType,
 												contributionData.iconPath);
 										cdConverted.installLocation = installLocation;
-										cdConverted.resourceRelativePath = Path.fromOSString(contributionData.iconPath)
+										cdConverted.resourceRelativePath = IPath.fromOSString(contributionData.iconPath)
 												.removeFirstSegments(1).toOSString();
 										doRequireBundle(bundleId, installLocation);
 										context.set("resolvedFile", new ContributionDataFile(cdConverted)); //$NON-NLS-1$
@@ -386,7 +385,7 @@ public void copyResourceToProject() {
 		try {
 			// String filename = ((ContributionDataFile)
 			// file).getContributionData().className + ".class";
-			IPath newPath = Path.fromOSString(path);
+			IPath newPath = IPath.fromOSString(path);
 			if (newPath.isEmpty() == false) {
 				CoreUtility.createFolder(project.getFolder(newPath));
 			}
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedResourceDialog.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedResourceDialog.java
index 3a3c00a3d5c..e57f9c2a885 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedResourceDialog.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/NonReferencedResourceDialog.java
@@ -27,7 +27,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.tools.emf.ui.common.IClassContributionProvider.ContributionData;
 import org.eclipse.e4.tools.emf.ui.common.Plugin;
@@ -304,7 +303,7 @@ public void widgetSelected(SelectionEvent e) {
 												contributionData.className, contributionData.sourceType,
 												contributionData.iconPath);
 										cdConverted.installLocation = installLocation;
-										cdConverted.resourceRelativePath = Path.fromOSString(contributionData.iconPath)
+										cdConverted.resourceRelativePath = IPath.fromOSString(contributionData.iconPath)
 												.removeFirstSegments(1).toOSString();
 										doRequireBundle(bundleId, installLocation);
 										result = new ContributionDataFile(cdConverted);
@@ -422,7 +421,7 @@ protected Control createContents(Composite parent) {
 			if (dlg.open() == IDialogConstants.OK_ID) {
 				// String filename = ((ContributionDataFile)
 				// file).getContributionData().className + ".class";
-				IPath newPath = Path.fromOSString(dlg.getValue());
+				IPath newPath = IPath.fromOSString(dlg.getValue());
 				if (newPath.isEmpty() == false) {
 					CoreUtility.createFolder(project.getFolder(newPath));
 				}
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/PickProjectFolderPage.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/PickProjectFolderPage.java
index fa5624d32b3..75e01f0057a 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/PickProjectFolderPage.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/PickProjectFolderPage.java
@@ -17,7 +17,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.BundleImageCache;
 import org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages;
@@ -120,7 +119,7 @@ public void setVisible(boolean visible) {
 			}
 			setPageComplete(viewer.getSelection().isEmpty() == false);
 
-			path = new Path((String) context.get("srcPath")); //$NON-NLS-1$
+			path = IPath.fromOSString((String) context.get("srcPath")); //$NON-NLS-1$
 			label2.setText(path.lastSegment());
 			label3.setText(Messages.ProjectFolderPickerDialog_sourceResourceDirectory);
 			lblResourcePath.setText(path.removeLastSegments(1).toOSString());
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/ProjectFolderPickerDialog.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/ProjectFolderPickerDialog.java
index 85408bbbc1b..1b82f723eec 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/ProjectFolderPickerDialog.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/resourcelocator/dialogs/ProjectFolderPickerDialog.java
@@ -22,7 +22,6 @@
 import org.eclipse.core.resources.IResourceProxyVisitor;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
@@ -172,7 +171,7 @@ protected void createButtonsForButtonBar(Composite parent) {
 		button.addSelectionListener(new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
-				value = Path.fromOSString(srcPath).removeLastSegments(1).toOSString();
+				value = IPath.fromOSString(srcPath).removeLastSegments(1).toOSString();
 				ProjectFolderPickerDialog.super.okPressed();
 			}
 		});
@@ -210,7 +209,7 @@ protected Control createDialogArea(Composite parent) {
 
 		if (srcPath != null) {
 
-			IPath path = Path.fromOSString(srcPath);
+			IPath path = IPath.fromOSString(srcPath);
 
 			Composite compPath = new Composite(ret, SWT.NONE);
 			compPath.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
diff --git a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
index fd966dfa2c5..96cf24d11d2 100644
--- a/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
+++ b/tools/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
@@ -25,9 +25,9 @@
 import org.eclipse.core.resources.IResourceChangeEvent;
 import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
@@ -108,7 +108,8 @@ public void resourceChanged(IResourceChangeEvent event) {
 				return;
 			}
 
-			IResourceDelta delta = event.getDelta().findMember(new Path(resource.getURI().toPlatformString(false)));
+			IResourceDelta delta = event.getDelta()
+					.findMember(IPath.fromOSString(resource.getURI().toPlatformString(false)));
 			if (delta == null) {
 				return;
 			}
diff --git a/tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF b/tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF
index 5fe81ed2d4d..b3b3fbb4a5e 100644
--- a/tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF
+++ b/tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@ Export-Package: org.eclipse.e4.tools.services;version="0.12.0.qualifier";x-frien
  org.eclipse.e4.tools.services.impl;version="0.12.0.qualifier";x-friends:="org.eclipse.e4.tools.emf.ui"
 Bundle-Vendor: %Bundle-Vendor
 Require-Bundle: org.eclipse.swt;bundle-version="3.7.0",
- org.eclipse.equinox.common;bundle-version="3.6.0",
+ org.eclipse.equinox.common;bundle-version="3.18.0",
  org.eclipse.e4.core.contexts;bundle-version="0.9.0",
  org.eclipse.e4.core.di;bundle-version="0.9.0"
 Service-Component: OSGI-INF/resourcepoolfunction.xml, OSGI-INF/resourceservice.xml
diff --git a/tools/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/BasicResourceProvider.java b/tools/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/BasicResourceProvider.java
index c7e23f29bc1..8e4935249df 100644
--- a/tools/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/BasicResourceProvider.java
+++ b/tools/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/BasicResourceProvider.java
@@ -5,7 +5,7 @@
 import java.util.Map;
 
 import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Image;
@@ -24,7 +24,7 @@ public void activate(BundleContext context, Map properties) {
 
 	@Override
 	public Image getImage(Display display, String key) {
-		final URL url = FileLocator.find(context.getBundle(), new Path(properties.get(key)), null);
+		final URL url = FileLocator.find(context.getBundle(), IPath.fromOSString(properties.get(key)), null);
 
 		if (url != null) {
 			try (InputStream stream = url.openStream()) {
diff --git a/tools/bundles/org.eclipse.e4.tools/META-INF/MANIFEST.MF b/tools/bundles/org.eclipse.e4.tools/META-INF/MANIFEST.MF
index dd0396267d4..ea355402217 100644
--- a/tools/bundles/org.eclipse.e4.tools/META-INF/MANIFEST.MF
+++ b/tools/bundles/org.eclipse.e4.tools/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-SymbolicName: org.eclipse.e4.tools;singleton:=true
 Bundle-Version: 4.10.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-17
 Require-Bundle: org.eclipse.ui;bundle-version="3.6.0",
- org.eclipse.core.runtime;bundle-version="3.6.0",
+ org.eclipse.core.runtime;bundle-version="3.27.0",
  org.eclipse.e4.ui.model.workbench;bundle-version="0.9.1",
  org.eclipse.core.resources;bundle-version="3.6.0",
  org.eclipse.jdt.core;bundle-version="3.6.0",
diff --git a/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java b/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java
index 6b967762145..919227713e5 100644
--- a/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java
+++ b/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/BaseApplicationModelWizard.java
@@ -26,9 +26,9 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.internal.tools.Messages;
 import org.eclipse.emf.common.util.URI;
@@ -214,13 +214,13 @@ protected IFile getModelFile() throws CoreException {
 		final String containerName = page.getContainerName();
 		final String fileName = page.getFileName();
 		final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		final IResource resource = root.findMember(new Path(containerName));
+		final IResource resource = root.findMember(IPath.fromOSString(containerName));
 		if (!resource.exists() || !(resource instanceof IContainer)) {
 			throwCoreException("Container \"" + containerName //$NON-NLS-1$
 					+ "\" does not exist."); //$NON-NLS-1$
 		}
 		final IContainer container = (IContainer) resource;
-		return container.getFile(new Path(fileName));
+		return container.getFile(IPath.fromOSString(fileName));
 	}
 
 	private void throwCoreException(String message) throws CoreException {
diff --git a/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java b/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java
index 82551965193..6bc481435a6 100644
--- a/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java
+++ b/tools/bundles/org.eclipse.e4.tools/src/org/eclipse/e4/internal/tools/wizards/model/NewModelFilePage.java
@@ -16,7 +16,7 @@
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.e4.internal.tools.Messages;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaModelException;
@@ -156,7 +156,7 @@ private void handleBrowse() {
 		if (dialog.open() == Window.OK) {
 			final Object[] result = dialog.getResult();
 			if (result.length == 1) {
-				containerText.setText(((Path) result[0]).toString());
+				containerText.setText(((IPath) result[0]).toString());
 			}
 		}
 	}
@@ -167,7 +167,7 @@ private void handleBrowse() {
 
 	private void dialogChanged() {
 		final IResource container = ResourcesPlugin.getWorkspace().getRoot()
-				.findMember(new Path(getContainerName()));
+				.findMember(IPath.fromOSString(getContainerName()));
 		final String fileName = getFileName();
 
 		if (getContainerName().length() == 0) {