### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.core Index: src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java,v retrieving revision 1.5 diff -u -r1.5 URLUtil.java --- src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java 15 Apr 2008 00:32:56 -0000 1.5 +++ src/org/eclipse/equinox/internal/p2/core/helpers/URLUtil.java 23 May 2008 21:11:17 -0000 @@ -46,23 +46,47 @@ if (!"file".equalsIgnoreCase(url.getProtocol())) //$NON-NLS-1$ return null; //assume all illegal characters have been properly encoded, so use URI class to unencode - return new File(new URI(url.toExternalForm())); + return new File(new URI(toUNCExternalForm(url))); } catch (Exception e) { //URL contains unencoded characters return new File(url.getFile()); } } + private static String toUNCExternalForm(URL url) { + if (!"file".equalsIgnoreCase(url.getProtocol())) //$NON-NLS-1$ + return url.toExternalForm(); + String spec = url.toExternalForm(); + // check that UNC paths have 4 '/' chars + // file://xxPath + // 012345678 + // ^^ + // if chars 5 and 6 == '/' and 7 != '/' then insert "//" at char 5 + if (spec.length() > 8 && spec.charAt(5) == '/' && spec.charAt(6) == '/' && spec.charAt(7) != '/') + spec = spec.substring(0, 5) + "//" + spec.substring(5); //$NON-NLS-1$ + return spec; + } + /** * Returns the URL as a URI. This method will handle broken URLs that are * not properly encoded (for example they contain unencoded space characters). */ public static URI toURI(URL url) throws URISyntaxException { try { - return new URI(url.toExternalForm()); + return new URI(toUNCExternalForm(url)); } catch (URISyntaxException e) { //try multi-argument URI constructor to perform encoding return new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef()); } } + + public static URL buildURL(String spec) throws MalformedURLException { + if (spec == null) + throw new NullPointerException("URL spec is null."); //$NON-NLS-1$ + // Construct the URL carefully so as to preserve UNC paths etc. + if (spec.startsWith("file:")) //$NON-NLS-1$ + // need to do this for UNC paths + return new File(spec.substring(5)).toURL(); + return new URL(spec); + } } Index: src/org/eclipse/equinox/internal/p2/core/Activator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/Activator.java,v retrieving revision 1.7 diff -u -r1.7 Activator.java --- src/org/eclipse/equinox/internal/p2/core/Activator.java 23 Feb 2008 21:26:14 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/core/Activator.java 23 May 2008 21:11:17 -0000 @@ -16,6 +16,7 @@ import java.util.Dictionary; import java.util.Hashtable; import org.eclipse.core.runtime.Path; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.core.location.AgentLocation; import org.eclipse.osgi.framework.log.FrameworkLog; import org.eclipse.osgi.service.datalocation.Location; @@ -77,7 +78,7 @@ try { if (isFile) return adjustTrailingSlash(new File(spec.substring(5)).toURL(), trailingSlash); - return new URL(spec); + return URLUtil.buildURL(spec); } catch (MalformedURLException e) { // if we failed and it is a file spec, there is nothing more we can do // otherwise, try to make the spec into a file URL. @@ -158,7 +159,7 @@ public void start(BundleContext aContext) throws Exception { instance = this; Activator.context = aContext; - URL defaultLocation = new URL(aContext.getProperty(PROP_CONFIG_DIR) + DEFAULT_AGENT_LOCATION + '/'); + URL defaultLocation = URLUtil.buildURL(aContext.getProperty(PROP_CONFIG_DIR) + DEFAULT_AGENT_LOCATION + '/'); agentDataLocation = buildLocation(PROP_AGENT_DATA_AREA, defaultLocation, false, true); Dictionary locationProperties = new Hashtable(); if (defaultLocation != null) { Index: src/org/eclipse/equinox/internal/p2/core/BasicLocation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/BasicLocation.java,v retrieving revision 1.7 diff -u -r1.7 BasicLocation.java --- src/org/eclipse/equinox/internal/p2/core/BasicLocation.java 20 Feb 2008 22:30:26 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/core/BasicLocation.java 23 May 2008 21:11:17 -0000 @@ -119,7 +119,7 @@ //// if (value.getProtocol().equalsIgnoreCase("file")) { //$NON-NLS-1$ //// try { //// String basePath = new File(value.getFile()).getCanonicalPath(); - //// value = new URL("file:" + basePath); //$NON-NLS-1$ + //// value = URLUtil.buildURL("file:" + basePath); //$NON-NLS-1$ //// } catch (IOException e) { //// // do nothing just use the original value //// } #P org.eclipse.equinox.p2.engine Index: src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java,v retrieving revision 1.5 diff -u -r1.5 SurrogateProfileHandler.java --- src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java 13 May 2008 22:02:24 -0000 1.5 +++ src/org/eclipse/equinox/internal/p2/engine/SurrogateProfileHandler.java 23 May 2008 21:11:18 -0000 @@ -14,6 +14,7 @@ import java.util.Iterator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; import org.eclipse.equinox.internal.provisional.p2.engine.ISurrogateProfileHandler; import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; @@ -128,7 +129,7 @@ if (profileRegistry == null) { String installArea = EngineActivator.getContext().getProperty(OSGI_INSTALL_AREA); try { - URL registryURL = new URL(installArea + P2_ENGINE_DIR + SimpleProfileRegistry.DEFAULT_STORAGE_DIR); + URL registryURL = URLUtil.buildURL(installArea + P2_ENGINE_DIR + SimpleProfileRegistry.DEFAULT_STORAGE_DIR); File sharedRegistryDirectory = new File(registryURL.getPath()); profileRegistry = new SimpleProfileRegistry(sharedRegistryDirectory, null, false); } catch (MalformedURLException e) { #P org.eclipse.equinox.p2.metadata.generator Index: src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java,v retrieving revision 1.10 diff -u -r1.10 SiteModel.java --- src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java 24 Apr 2008 20:13:03 -0000 1.10 +++ src/org/eclipse/equinox/internal/p2/metadata/generator/features/SiteModel.java 23 May 2008 21:11:18 -0000 @@ -13,6 +13,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.*; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.metadata.generator.URLEntry; /** @@ -174,7 +175,7 @@ public URL getLocationURL() { if (locationURL == null && locationURLString != null) { try { - locationURL = new URL(locationURLString); + locationURL = URLUtil.buildURL(locationURLString); } catch (MalformedURLException e) { //ignore and return null } Index: src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java,v retrieving revision 1.42 diff -u -r1.42 EclipseGeneratorApplication.java --- src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java 23 May 2008 03:20:46 -0000 1.42 +++ src/org/eclipse/equinox/internal/p2/metadata/generator/EclipseGeneratorApplication.java 23 May 2008 21:11:18 -0000 @@ -21,6 +21,7 @@ import org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager; import org.eclipse.equinox.internal.p2.core.ProvisioningEventBus; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager; @@ -107,7 +108,7 @@ IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.context, IArtifactRepositoryManager.class.getName()); URL location; try { - location = new URL(artifactLocation); + location = URLUtil.buildURL(artifactLocation); } catch (MalformedURLException e) { throw new IllegalArgumentException(NLS.bind(Messages.exception_artifactRepoLocationURL, artifactLocation)); } @@ -161,7 +162,7 @@ return; URL location; try { - location = new URL(metadataLocation); + location = URLUtil.buildURL(metadataLocation); } catch (MalformedURLException e) { throw new IllegalArgumentException(NLS.bind(Messages.exception_metadataRepoLocationURL, metadataLocation)); } @@ -300,7 +301,7 @@ provider.setOS(arg); if (args[i - 1].equalsIgnoreCase("-site")) //$NON-NLS-1$ - provider.setSiteLocation(new URL(arg)); + provider.setSiteLocation(URLUtil.buildURL(arg)); } } Index: src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.generator/src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java,v retrieving revision 1.53 diff -u -r1.53 Generator.java --- src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java 23 May 2008 01:56:06 -0000 1.53 +++ src/org/eclipse/equinox/internal/provisional/p2/metadata/generator/Generator.java 23 May 2008 21:11:18 -0000 @@ -1015,7 +1015,7 @@ private void generateSiteReference(String location, boolean isEnabled) { IMetadataRepository metadataRepo = info.getMetadataRepository(); try { - URL associateLocation = new URL(location); + URL associateLocation = URLUtil.buildURL(location); int flags = isEnabled ? IRepository.ENABLED : IRepository.NONE; metadataRepo.addReference(associateLocation, IRepository.TYPE_METADATA, flags); metadataRepo.addReference(associateLocation, IRepository.TYPE_ARTIFACT, flags); #P org.eclipse.equinox.p2.installer Index: src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java,v retrieving revision 1.12 diff -u -r1.12 InstallDescriptionParser.java --- src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java 13 May 2008 01:15:13 -0000 1.12 +++ src/org/eclipse/equinox/internal/p2/installer/InstallDescriptionParser.java 23 May 2008 21:11:19 -0000 @@ -17,6 +17,7 @@ import java.util.*; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.installer.InstallDescription; /** @@ -48,7 +49,7 @@ if (file.exists()) in = new FileInputStream(file); } else - in = new URL(site).openStream(); + in = URLUtil.buildURL(site).openStream(); Properties properties = new Properties(); try { @@ -147,7 +148,7 @@ ArrayList result = new ArrayList(urlSpecs.length); for (int i = 0; i < urlSpecs.length; i++) { try { - result.add(new URL(urlSpecs[i])); + result.add(URLUtil.buildURL(urlSpecs[i])); } catch (MalformedURLException e) { LogHelper.log(new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, "Invalid URL in install description: " + urlSpecs[i], e)); //$NON-NLS-1$ } #P org.eclipse.equinox.p2.metadata Index: src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java,v retrieving revision 1.2 diff -u -r1.2 License.java --- src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java 13 Feb 2008 21:47:29 -0000 1.2 +++ src/org/eclipse/equinox/internal/provisional/p2/metadata/License.java 23 May 2008 21:11:20 -0000 @@ -16,6 +16,7 @@ import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; /** * The License class represents a software license. A license has required body text @@ -52,7 +53,7 @@ throw new IllegalArgumentException("body cannot be null"); //$NON-NLS-1$ if (urlString != null) try { - url = new URL(urlString); + url = URLUtil.buildURL(urlString); } catch (MalformedURLException e) { url = null; } Index: src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java,v retrieving revision 1.1 diff -u -r1.1 Copyright.java --- src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java 12 Feb 2008 19:21:34 -0000 1.1 +++ src/org/eclipse/equinox/internal/provisional/p2/metadata/Copyright.java 23 May 2008 21:11:20 -0000 @@ -12,6 +12,7 @@ import java.net.MalformedURLException; import java.net.URL; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; /** * The Copyright class represents a software copyright. A copyright has @@ -42,7 +43,7 @@ throw new IllegalArgumentException("body cannot be null"); //$NON-NLS-1$ if (urlString != null) try { - url = new URL(urlString); + url = URLUtil.buildURL(urlString); } catch (MalformedURLException e) { url = null; } #P org.eclipse.equinox.p2.tools Index: src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java,v retrieving revision 1.2 diff -u -r1.2 MetadataCompareApplication.java --- src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java 11 Feb 2008 05:46:56 -0000 1.2 +++ src/org/eclipse/equinox/internal/p2/tools/MetadataCompareApplication.java 23 May 2008 21:11:20 -0000 @@ -28,7 +28,7 @@ // initializeFromArguments((String[]) context.getArguments().get("application.args")); // // if (compare) - // compareMetadataRepositories(new URL(source), new URL(target)); + // compareMetadataRepositories(URLUtil.buildURL(source), URLUtil.buildURL(target)); // if (list) { // list(source); // list(target); @@ -43,7 +43,7 @@ // if (type.equals("meta")) { // URL location; // try { - // location = new URL(sourceLocation); + // location = URLUtil.buildURL(sourceLocation); // } catch (MalformedURLException e) { // return; // } Index: src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tools/src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java,v retrieving revision 1.2 diff -u -r1.2 FileServerApplication.java --- src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java 28 Apr 2008 04:19:42 -0000 1.2 +++ src/org/eclipse/equinox/internal/p2/tools/FileServerApplication.java 23 May 2008 21:11:20 -0000 @@ -17,6 +17,7 @@ import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.osgi.service.http.*; public class FileServerApplication implements IApplication { @@ -35,7 +36,7 @@ public URL getResource(String name) { try { - return new URL(base + name); + return URLUtil.buildURL(base + name); } catch (MalformedURLException e) { return null; } #P org.eclipse.equinox.p2.touchpoint.eclipse Index: src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java,v retrieving revision 1.7 diff -u -r1.7 ConfigurationParser.java --- src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java 22 Apr 2008 23:38:13 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/update/ConfigurationParser.java 23 May 2008 21:11:21 -0000 @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.StringTokenizer; import javax.xml.parsers.*; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.osgi.util.NLS; import org.w3c.dom.*; @@ -82,7 +83,7 @@ ArrayList rootList = new ArrayList(); while (tokenizer.hasMoreTokens()) { try { - URL rootEntry = new URL(tokenizer.nextToken().trim()); + URL rootEntry = URLUtil.buildURL(tokenizer.nextToken().trim()); rootList.add(rootEntry); } catch (MalformedURLException e) { // skip bad entries ... Index: src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java,v retrieving revision 1.8 diff -u -r1.8 ConfigurationWriter.java --- src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java 13 May 2008 17:18:33 -0000 1.8 +++ src/org/eclipse/equinox/internal/p2/update/ConfigurationWriter.java 23 May 2008 21:11:21 -0000 @@ -112,7 +112,7 @@ try { // if our site represents the osgi install area, then write out platform:/base/ File installArea = URLUtil.toFile(osgiInstallArea); - File path = URLUtil.toFile(new URL(value)); + File path = URLUtil.toFile(URLUtil.buildURL(value)); if (installArea.getAbsoluteFile().equals(path.getAbsoluteFile())) return ConfigurationParser.PLATFORM_BASE; } catch (MalformedURLException e) { Index: src/org/eclipse/equinox/internal/p2/update/Utils.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Utils.java,v retrieving revision 1.4 diff -u -r1.4 Utils.java --- src/org/eclipse/equinox/internal/p2/update/Utils.java 8 Apr 2008 14:31:20 -0000 1.4 +++ src/org/eclipse/equinox/internal/p2/update/Utils.java 23 May 2008 21:11:21 -0000 @@ -15,6 +15,7 @@ import java.net.*; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; /** * @@ -49,7 +50,7 @@ if (!(isWindows && url.startsWith("file:"))) //$NON-NLS-1$ return url; try { - String path = new URL(url).getPath(); + String path = URLUtil.buildURL(url).getPath(); // normalize to not have leading / so we can check the form File file = new File(path); path = file.toString().replace('\\', '/'); @@ -112,7 +113,7 @@ String file = urlString; while (!done) { try { - url = new URL(file); + url = URLUtil.buildURL(file); file = url.getFile(); } catch (java.net.MalformedURLException e) { done = true; @@ -185,7 +186,7 @@ String file = urlString; while (!done) { try { - url = new URL(file); + url = URLUtil.buildURL(file); file = url.getFile(); } catch (java.net.MalformedURLException e) { done = true; Index: src/org/eclipse/equinox/internal/p2/update/Configuration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/update/Configuration.java,v retrieving revision 1.6 diff -u -r1.6 Configuration.java --- src/org/eclipse/equinox/internal/p2/update/Configuration.java 15 May 2008 03:27:04 -0000 1.6 +++ src/org/eclipse/equinox/internal/p2/update/Configuration.java 23 May 2008 21:11:21 -0000 @@ -66,7 +66,7 @@ return sites; List result = new ArrayList(sites); try { - URL url = new URL(shared); + URL url = URLUtil.buildURL(shared); File location = URLUtil.toFile(url); if (location == null) return result; Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java,v retrieving revision 1.45 diff -u -r1.45 Util.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java 13 May 2008 17:18:33 -0000 1.45 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java 23 May 2008 21:11:21 -0000 @@ -124,7 +124,7 @@ for (Iterator iterator = repos.iterator(); iterator.hasNext();) { try { String repo = (String) iterator.next(); - URL repoURL = new URL(repo); + URL repoURL = URLUtil.buildURL(repo); IArtifactRepository repository = manager.loadRepository(repoURL, null); if (repository != null && repository instanceof IFileArtifactRepository) bundleRepositories.add(repository); #P org.eclipse.equinox.p2.reconciler.dropins Index: src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java,v retrieving revision 1.23 diff -u -r1.23 ProfileSynchronizer.java --- src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java 9 May 2008 19:03:55 -0000 1.23 +++ src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java 23 May 2008 21:11:22 -0000 @@ -15,8 +15,7 @@ import java.util.*; import java.util.Map.Entry; import org.eclipse.core.runtime.*; -import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.provisional.configurator.Configurator; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository; @@ -204,7 +203,7 @@ ArrayList repoURLs = new ArrayList(); for (Iterator iterator = repositoryMap.keySet().iterator(); iterator.hasNext();) { try { - repoURLs.add(new URL((String) iterator.next())); + repoURLs.add(URLUtil.buildURL((String) iterator.next())); } catch (MalformedURLException e) { //ignore } @@ -220,7 +219,7 @@ for (Iterator it = repositoryMap.keySet().iterator(); it.hasNext();) { String repositoryId = (String) it.next(); try { - IArtifactRepository repository = Activator.loadArtifactRepository(new URL(repositoryId), null); + IArtifactRepository repository = Activator.loadArtifactRepository(URLUtil.buildURL(repositoryId), null); if (repository instanceof IFileArtifactRepository) { currentExtensions.add(repositoryId); Index: src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java,v retrieving revision 1.14 diff -u -r1.14 DropinsRepositoryListener.java --- src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java 23 May 2008 03:49:51 -0000 1.14 +++ src/org/eclipse/equinox/internal/p2/reconciler/dropins/DropinsRepositoryListener.java 23 May 2008 21:11:22 -0000 @@ -17,6 +17,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepository; import org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationMetadataRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; @@ -225,7 +226,7 @@ throw new IllegalStateException(Messages.metadata_repo_manager_not_registered); try { - manager.removeRepository(new URL(urlString)); + manager.removeRepository(URLUtil.buildURL(urlString)); } catch (MalformedURLException e) { LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error occurred while creating URL from: " + urlString, e)); //$NON-NLS-1$ } finally { @@ -258,7 +259,7 @@ throw new IllegalStateException(Messages.artifact_repo_manager_not_registered); try { - manager.removeRepository(new URL(urlString)); + manager.removeRepository(URLUtil.buildURL(urlString)); } catch (MalformedURLException e) { LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Error occurred while creating URL from: " + urlString, e)); //$NON-NLS-1$ } finally { Index: src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java,v retrieving revision 1.20 diff -u -r1.20 PlatformXmlListener.java --- src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java 22 May 2008 16:51:12 -0000 1.20 +++ src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java 23 May 2008 21:11:22 -0000 @@ -149,7 +149,7 @@ if (repo instanceof ExtensionLocationMetadataRepository) { try { File one = ExtensionLocationMetadataRepository.getBaseDirectory(repo.getLocation()); - File two = ExtensionLocationMetadataRepository.getBaseDirectory(new URL(urlString)); + File two = ExtensionLocationMetadataRepository.getBaseDirectory(URLUtil.buildURL(urlString)); if (one.equals(two)) return repo; } catch (ProvisionException e) { @@ -176,7 +176,7 @@ if (match == null) { try { String eclipseExtensionURL = siteURL + Constants.EXTENSION_LOCATION; - URL location = new URL(eclipseExtensionURL); + URL location = URLUtil.buildURL(eclipseExtensionURL); Map properties = new HashMap(); properties.put(SiteListener.SITE_POLICY, site.getPolicy()); properties.put(SiteListener.SITE_LIST, toString(site.getList())); @@ -192,7 +192,7 @@ } catch (ProvisionException inner) { // handle the case where someone has removed the extension location from // disk. Note: we use the siteURL not the eclipseextensionURL - URL fileURL = new URL(siteURL); + URL fileURL = URLUtil.buildURL(siteURL); File file = URLUtil.toFile(fileURL); if (file != null && !file.exists()) { toBeRemoved.add(site); #P org.eclipse.equinox.p2.artifact.repository Index: src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java,v retrieving revision 1.7 diff -u -r1.7 MirrorSelector.java --- src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java 21 May 2008 21:00:57 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/artifact/repository/MirrorSelector.java 23 May 2008 21:11:23 -0000 @@ -181,7 +181,7 @@ if (Tracing.DEBUG_MIRRORS) Tracing.debug("Selected mirror for artifact " + inputLocation + ": " + selectedMirror); //$NON-NLS-1$ //$NON-NLS-2$ try { - return new URL(selectedMirror.locationString + relativeLocation.getPath()).toExternalForm(); + return URLUtil.buildURL(selectedMirror.locationString + relativeLocation.getPath()).toExternalForm(); } catch (MalformedURLException e) { log("Unable to make location " + inputLocation + " relative to mirror " + selectedMirror.locationString, e); //$NON-NLS-1$ //$NON-NLS-2$ } Index: src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java,v retrieving revision 1.44 diff -u -r1.44 ArtifactRepositoryManager.java --- src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java 21 May 2008 23:09:26 -0000 1.44 +++ src/org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.java 23 May 2008 21:11:23 -0000 @@ -628,7 +628,7 @@ continue; try { RepositoryInfo info = new RepositoryInfo(); - info.location = new URL(locationString); + info.location = URLUtil.buildURL(locationString); info.name = child.get(KEY_NAME, null); info.description = child.get(KEY_DESCRIPTION, null); info.isSystem = child.getBoolean(KEY_SYSTEM, false); @@ -649,7 +649,7 @@ StringTokenizer tokenizer = new StringTokenizer(locationString, ","); //$NON-NLS-1$ while (tokenizer.hasMoreTokens()) { try { - addRepository(new URL(tokenizer.nextToken())); + addRepository(URLUtil.buildURL(tokenizer.nextToken())); } catch (MalformedURLException e) { log("Error while restoring repository " + locationString, e); //$NON-NLS-1$ } Index: src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java,v retrieving revision 1.2 diff -u -r1.2 BlobStore.java --- src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java 4 Jan 2008 19:57:35 -0000 1.2 +++ src/org/eclipse/equinox/internal/p2/artifact/repository/simple/BlobStore.java 23 May 2008 21:11:23 -0000 @@ -15,6 +15,7 @@ import java.util.Iterator; import java.util.Set; import org.eclipse.core.runtime.Assert; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; /** * Blob store which maps UUIDs to blobs on disk. The UUID is mapped @@ -111,7 +112,7 @@ } public InputStream getBlob(byte[] uuid) throws IOException { - return new URL(fileFor(uuid)).openStream(); + return URLUtil.buildURL(fileFor(uuid)).openStream(); } /** Index: src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java,v retrieving revision 1.55 diff -u -r1.55 SimpleArtifactRepository.java --- src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java 18 Apr 2008 21:35:31 -0000 1.55 +++ src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java 23 May 2008 21:11:23 -0000 @@ -18,8 +18,8 @@ import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.equinox.internal.p2.artifact.repository.*; -import org.eclipse.equinox.internal.p2.core.helpers.FileUtils; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.artifact.repository.Messages; +import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler; @@ -219,7 +219,7 @@ else spec += "/" + name; //$NON-NLS-1$ try { - return new URL(spec); + return URLUtil.buildURL(spec); } catch (MalformedURLException e) { return null; } @@ -232,7 +232,7 @@ else spec += "/" + BLOBSTORE; //$NON-NLS-1$ try { - return new URL(spec); + return URLUtil.buildURL(spec); } catch (MalformedURLException e) { return null; } @@ -622,7 +622,7 @@ String newLocation = createLocation(newDescriptor); String file = null; try { - file = new URL(newLocation).getFile(); + file = URLUtil.buildURL(newLocation).getFile(); } catch (MalformedURLException e1) { // This should not happen Assert.isTrue(false, "Unexpected failure: " + e1); //$NON-NLS-1$ Index: src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java,v retrieving revision 1.9 diff -u -r1.9 MirrorApplication.java --- src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java 2 May 2008 20:10:59 -0000 1.9 +++ src/org/eclipse/equinox/internal/p2/artifact/mirror/MirrorApplication.java 23 May 2008 21:11:23 -0000 @@ -16,6 +16,7 @@ import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.artifact.repository.Activator; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; @@ -90,9 +91,9 @@ String arg = args[++i]; if (args[i - 1].equalsIgnoreCase("-source")) - sourceLocation = new URL(arg); + sourceLocation = URLUtil.buildURL(arg); if (args[i - 1].equalsIgnoreCase("-destination")) - destinationLocation = new URL(arg); + destinationLocation = URLUtil.buildURL(arg); } } } #P org.eclipse.equinox.p2.ui Index: src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/IUGeneralInfoPropertyPage.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/IUGeneralInfoPropertyPage.java,v retrieving revision 1.7 diff -u -r1.7 IUGeneralInfoPropertyPage.java --- src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/IUGeneralInfoPropertyPage.java 13 May 2008 23:25:17 -0000 1.7 +++ src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/IUGeneralInfoPropertyPage.java 23 May 2008 21:11:24 -0000 @@ -12,6 +12,7 @@ import java.net.MalformedURLException; import java.net.URL; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.internal.p2.ui.dialogs.IUPropertyPage; import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; @@ -87,7 +88,7 @@ if (docURL != null && docURL.length() > 0) { final URL url; try { - url = new URL(docURL); + url = URLUtil.buildURL(docURL); } catch (MalformedURLException e) { return; } Index: src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java,v retrieving revision 1.6 diff -u -r1.6 RepositoryManipulatorDropTarget.java --- src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java 13 May 2008 15:01:48 -0000 1.6 +++ src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/RepositoryManipulatorDropTarget.java 23 May 2008 21:11:24 -0000 @@ -4,6 +4,7 @@ import java.net.URL; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.internal.provisional.p2.ui.*; @@ -39,7 +40,7 @@ event.detail = DND.DROP_NONE; final URL[] url = new URL[1]; try { - url[0] = new URL(urlText); + url[0] = URLUtil.buildURL(urlText); } catch (MalformedURLException e) { ProvUI.reportStatus(URLValidator.getInvalidURLStatus(urlText), StatusManager.SHOW | StatusManager.LOG); return; Index: src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java,v retrieving revision 1.16 diff -u -r1.16 AddRepositoryDialog.java --- src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java 16 Apr 2008 18:56:47 -0000 1.16 +++ src/org/eclipse/equinox/internal/provisional/p2/ui/dialogs/AddRepositoryDialog.java 23 May 2008 21:11:24 -0000 @@ -14,6 +14,7 @@ import java.net.URL; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner; @@ -159,7 +160,7 @@ protected URL getUserURL() { URL userURL; try { - userURL = new URL(url.getText().trim()); + userURL = URLUtil.buildURL(url.getText().trim()); } catch (MalformedURLException e) { return null; } Index: src/org/eclipse/equinox/internal/provisional/p2/ui/UpdateManagerCompatibility.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/provisional/p2/ui/UpdateManagerCompatibility.java,v retrieving revision 1.2 diff -u -r1.2 UpdateManagerCompatibility.java --- src/org/eclipse/equinox/internal/provisional/p2/ui/UpdateManagerCompatibility.java 23 Apr 2008 00:16:46 -0000 1.2 +++ src/org/eclipse/equinox/internal/provisional/p2/ui/UpdateManagerCompatibility.java 23 May 2008 21:11:24 -0000 @@ -20,6 +20,7 @@ import org.eclipse.core.commands.common.NotDefinedException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.ui.ProvUIActivator; import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan; @@ -106,7 +107,7 @@ private static void createSite(Node child, Vector bookmarks) { URL url = null; try { - url = new URL(getAttribute(child, "url")); //$NON-NLS-1$ + url = URLUtil.buildURL(getAttribute(child, "url")); //$NON-NLS-1$ } catch (MalformedURLException e) { logFail(e); return; #P org.eclipse.equinox.p2.extensionlocation Index: src/org/eclipse/equinox/internal/p2/extensionlocation/SiteListener.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/SiteListener.java,v retrieving revision 1.7 diff -u -r1.7 SiteListener.java --- src/org/eclipse/equinox/internal/p2/extensionlocation/SiteListener.java 23 May 2008 00:44:44 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/extensionlocation/SiteListener.java 23 May 2008 21:11:25 -0000 @@ -12,7 +12,6 @@ import java.io.*; import java.net.MalformedURLException; -import java.net.URL; import java.util.*; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -198,7 +197,7 @@ List result = new ArrayList(); File siteLocation; try { - siteLocation = URLUtil.toFile(new URL(url)); + siteLocation = URLUtil.toFile(URLUtil.buildURL(url)); } catch (MalformedURLException e) { LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Unable to create a URL from site location: " + url, e)); //$NON-NLS-1$ return new String[0]; #P org.eclipse.equinox.p2.tests Index: src/org/eclipse/equinox/p2/tests/core/URLUtilTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/URLUtilTest.java,v retrieving revision 1.4 diff -u -r1.4 URLUtilTest.java --- src/org/eclipse/equinox/p2/tests/core/URLUtilTest.java 15 Apr 2008 00:33:03 -0000 1.4 +++ src/org/eclipse/equinox/p2/tests/core/URLUtilTest.java 23 May 2008 21:11:25 -0000 @@ -65,7 +65,7 @@ public void testToFileFromLocalURL() throws Exception { File original = new File(System.getProperty("java.io.tmpdir"), "repo"); //this URL is technically not correct because it is not hierarchical, but ensure URLUtil is lenient. - URL url = new URL("file:" + original.toString()); + URL url = URLUtil.buildURL("file:" + original.toString()); File result = URLUtil.toFile(url); assertEquals("1.0", original, result); } #P org.eclipse.equinox.p2.directorywatcher Index: src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java,v retrieving revision 1.25 diff -u -r1.25 RepositoryListener.java --- src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java 2 May 2008 20:10:56 -0000 1.25 +++ src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.java 23 May 2008 21:11:26 -0000 @@ -15,8 +15,7 @@ import java.util.*; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.p2.metadata.generator.features.FeatureParser; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; @@ -102,7 +101,7 @@ */ private void publishSite(Feature feature, IProvisioningEventBus bus, String locationString, boolean isEnabled) { try { - URL location = new URL(locationString); + URL location = URLUtil.buildURL(locationString); bus.publishEvent(new RepositoryEvent(location, IRepository.TYPE_METADATA, RepositoryEvent.DISCOVERED, isEnabled)); bus.publishEvent(new RepositoryEvent(location, IRepository.TYPE_ARTIFACT, RepositoryEvent.DISCOVERED, isEnabled)); } catch (MalformedURLException e) { #P org.eclipse.equinox.p2.director.app Index: src/org/eclipse/equinox/internal/p2/director/app/Application.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/Application.java,v retrieving revision 1.33 diff -u -r1.33 Application.java --- src/org/eclipse/equinox/internal/p2/director/app/Application.java 21 May 2008 02:19:57 -0000 1.33 +++ src/org/eclipse/equinox/internal/p2/director/app/Application.java 23 May 2008 21:11:27 -0000 @@ -19,8 +19,7 @@ import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.console.ProvisioningHelper; -import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.provisional.p2.director.*; import org.eclipse.equinox.internal.provisional.p2.engine.*; import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit; @@ -459,7 +458,7 @@ ArrayList result = new ArrayList(urlSpecs.length); for (int i = 0; i < urlSpecs.length; i++) { try { - result.add(new URL(urlSpecs[i])); + result.add(URLUtil.buildURL(urlSpecs[i])); } catch (MalformedURLException e) { NLS.bind(Messages.Ignored_repo, urlSpecs[i]); } Index: src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director.app/src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java,v retrieving revision 1.2 diff -u -r1.2 DirectorTask.java --- src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java 24 Apr 2008 15:09:20 -0000 1.2 +++ src_ant/org/eclipse/equinox/p2/director/app/ant/DirectorTask.java 23 May 2008 21:11:27 -0000 @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.List; import org.apache.tools.ant.*; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.director.app.Application; import org.osgi.framework.Version; @@ -114,7 +115,7 @@ public void setArtifactRepository(String value) { try { - artifactRepository = new URL(value); + artifactRepository = URLUtil.buildURL(value); } catch (MalformedURLException e) { log("Error setting the artifact repository.", e, Project.MSG_ERR); } @@ -142,7 +143,7 @@ public void setMetadataRepository(String value) { try { - metadataRepository = new URL(value); + metadataRepository = URLUtil.buildURL(value); } catch (MalformedURLException e) { log("Error setting the metadata repository.", e, Project.MSG_ERR); } #P org.eclipse.equinox.p2.updatesite Index: src/org/eclipse/equinox/internal/p2/updatesite/UpdateSite.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/UpdateSite.java,v retrieving revision 1.20 diff -u -r1.20 UpdateSite.java --- src/org/eclipse/equinox/internal/p2/updatesite/UpdateSite.java 12 May 2008 22:43:45 -0000 1.20 +++ src/org/eclipse/equinox/internal/p2/updatesite/UpdateSite.java 23 May 2008 21:11:28 -0000 @@ -65,8 +65,8 @@ return new URL(root, fileName); if (path.endsWith(DIR_SEPARATOR)) - return new URL(root.toExternalForm() + fileName); - return new URL(root.toExternalForm() + DIR_SEPARATOR + fileName); + return URLUtil.buildURL(root.toExternalForm() + fileName); + return URLUtil.buildURL(root.toExternalForm() + DIR_SEPARATOR + fileName); } /* @@ -78,8 +78,8 @@ return url; if (path.endsWith(DIR_SEPARATOR)) - return new URL(url.toExternalForm() + SITE_FILE); - return new URL(url.toExternalForm() + DIR_SEPARATOR + SITE_FILE); + return URLUtil.buildURL(url.toExternalForm() + SITE_FILE); + return URLUtil.buildURL(url.toExternalForm() + DIR_SEPARATOR + SITE_FILE); } private static boolean constainsUpdateSiteFileName(String path) { @@ -349,7 +349,7 @@ if (trailing == null) return null; try { - return new URL(trailing); + return URLUtil.buildURL(trailing); } catch (MalformedURLException e) { try { return new URL(base, trailing); Index: src/org/eclipse/equinox/internal/p2/updatesite/metadata/UpdateSiteMetadataRepository.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/metadata/UpdateSiteMetadataRepository.java,v retrieving revision 1.36 diff -u -r1.36 UpdateSiteMetadataRepository.java --- src/org/eclipse/equinox/internal/p2/updatesite/metadata/UpdateSiteMetadataRepository.java 20 May 2008 22:06:47 -0000 1.36 +++ src/org/eclipse/equinox/internal/p2/updatesite/metadata/UpdateSiteMetadataRepository.java 23 May 2008 21:11:28 -0000 @@ -16,8 +16,7 @@ import java.net.URL; import java.util.*; import org.eclipse.core.runtime.*; -import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; -import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.p2.metadata.generator.features.*; import org.eclipse.equinox.internal.p2.updatesite.*; import org.eclipse.equinox.internal.p2.updatesite.Messages; @@ -90,7 +89,7 @@ return; for (int i = 0; i < sites.length; i++) { try { - URL siteLocation = new URL(sites[i].getURL()); + URL siteLocation = URLUtil.buildURL(sites[i].getURL()); bus.publishEvent(new RepositoryEvent(siteLocation, IRepository.TYPE_METADATA, RepositoryEvent.DISCOVERED, true)); bus.publishEvent(new RepositoryEvent(siteLocation, IRepository.TYPE_ARTIFACT, RepositoryEvent.DISCOVERED, true)); } catch (MalformedURLException e) { @@ -263,7 +262,7 @@ */ private void publishSite(Feature feature, IProvisioningEventBus bus, String locationString, boolean isEnabled) { try { - URL siteLocation = new URL(locationString); + URL siteLocation = URLUtil.buildURL(locationString); bus.publishEvent(new RepositoryEvent(siteLocation, IRepository.TYPE_METADATA, RepositoryEvent.DISCOVERED, isEnabled)); bus.publishEvent(new RepositoryEvent(siteLocation, IRepository.TYPE_ARTIFACT, RepositoryEvent.DISCOVERED, isEnabled)); } catch (MalformedURLException e) { #P org.eclipse.equinox.p2.console Index: src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.console/src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java,v retrieving revision 1.13 diff -u -r1.13 ProvCommandProvider.java --- src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java 6 May 2008 17:20:37 -0000 1.13 +++ src/org/eclipse/equinox/internal/p2/console/ProvCommandProvider.java 23 May 2008 21:11:28 -0000 @@ -16,6 +16,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.*; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; import org.eclipse.equinox.internal.provisional.p2.engine.IProfile; @@ -296,7 +297,7 @@ */ private URL toURL(CommandInterpreter interpreter, String urlString) { try { - return new URL(urlString); + return URLUtil.buildURL(urlString); } catch (MalformedURLException e) { interpreter.print(e.getMessage()); interpreter.println(); #P org.eclipse.equinox.p2.metadata.repository Index: src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java,v retrieving revision 1.46 diff -u -r1.46 MetadataRepositoryManager.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java 21 May 2008 23:09:25 -0000 1.46 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryManager.java 23 May 2008 21:11:29 -0000 @@ -673,7 +673,7 @@ continue; try { RepositoryInfo info = new RepositoryInfo(); - info.location = new URL(locationString); + info.location = URLUtil.buildURL(locationString); info.name = child.get(KEY_NAME, null); info.description = child.get(KEY_DESCRIPTION, null); info.isSystem = child.getBoolean(KEY_SYSTEM, false); @@ -698,7 +698,7 @@ String pathString = tokenizer.nextToken(); try { RepositoryInfo info = new RepositoryInfo(); - info.location = new URL(pathString); + info.location = URLUtil.buildURL(pathString); repositories.put(getKey(info.location), info); } catch (MalformedURLException e) { log("Error while restoring repository " + pathString, e); //$NON-NLS-1$ Index: src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java,v retrieving revision 1.16 diff -u -r1.16 URLMetadataRepository.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java 22 May 2008 03:27:25 -0000 1.16 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/URLMetadataRepository.java 23 May 2008 21:11:29 -0000 @@ -15,6 +15,7 @@ import java.net.URL; import java.util.*; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.query.Collector; import org.eclipse.equinox.internal.provisional.p2.query.Query; import org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository.AbstractMetadataRepository; @@ -43,7 +44,7 @@ String spec = base.toExternalForm(); if (spec.endsWith(CONTENT_FILENAME + extension)) try { - return new URL(spec + extension); + return URLUtil.buildURL(spec + extension); } catch (MalformedURLException e1) { return null; } @@ -52,7 +53,7 @@ else spec += "/" + CONTENT_FILENAME; //$NON-NLS-1$ try { - return new URL(spec + extension); + return URLUtil.buildURL(spec + extension); } catch (MalformedURLException e) { return null; } Index: src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java,v retrieving revision 1.20 diff -u -r1.20 MetadataParser.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java 23 Apr 2008 16:05:37 -0000 1.20 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/io/MetadataParser.java 23 May 2008 21:11:29 -0000 @@ -12,9 +12,9 @@ package org.eclipse.equinox.internal.p2.metadata.repository.io; import java.net.MalformedURLException; -import java.net.URL; import java.util.*; import org.eclipse.equinox.internal.p2.core.helpers.OrderedProperties; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.p2.metadata.ArtifactKey; import org.eclipse.equinox.internal.p2.persistence.XMLParser; import org.eclipse.equinox.internal.provisional.p2.metadata.*; @@ -64,7 +64,7 @@ try { int type = checkInteger(elementHandled, TYPE_ATTRIBUTE, values[1]); int options = checkInteger(elementHandled, OPTIONS_ATTRIBUTE, values[2]); - references.add(new RepositoryReference(new URL(values[0]), type, options)); + references.add(new RepositoryReference(URLUtil.buildURL(values[0]), type, options)); } catch (MalformedURLException e) { invalidAttributeValue(elementHandled, URL_ATTRIBUTE, values[0]); } #P org.eclipse.equinox.p2.artifact.optimizers Index: src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java,v retrieving revision 1.6 diff -u -r1.6 Application.java --- src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java 10 Feb 2008 22:46:03 -0000 1.6 +++ src/org/eclipse/equinox/internal/p2/artifact/optimizers/jardelta/Application.java 23 May 2008 21:11:30 -0000 @@ -15,6 +15,7 @@ import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; @@ -64,7 +65,7 @@ String arg = args[++i]; if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$ - artifactRepositoryLocation = new URL(arg); + artifactRepositoryLocation = URLUtil.buildURL(arg); if (args[i - 1].equalsIgnoreCase("-depth")) //$NON-NLS-1$ depth = Integer.parseInt(arg); Index: src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java,v retrieving revision 1.9 diff -u -r1.9 Application.java --- src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java 15 Feb 2008 16:44:35 -0000 1.9 +++ src/org/eclipse/equinox/internal/p2/artifact/optimizers/pack200/Application.java 23 May 2008 21:11:30 -0000 @@ -15,6 +15,7 @@ import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; @@ -63,7 +64,7 @@ String arg = args[++i]; if (args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_ARG) || args[i - 1].equalsIgnoreCase(ARTIFACT_REPOSITORY_SHORT_ARG)) - artifactRepositoryLocation = new URL(arg); + artifactRepositoryLocation = URLUtil.buildURL(arg); } } } Index: src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.artifact.optimizers/src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java,v retrieving revision 1.5 diff -u -r1.5 Application.java --- src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java 10 Feb 2008 22:46:03 -0000 1.5 +++ src/org/eclipse/equinox/internal/p2/artifact/optimizers/jbdiff/Application.java 23 May 2008 21:11:30 -0000 @@ -15,6 +15,7 @@ import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.equinox.internal.p2.artifact.optimizers.Activator; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.core.helpers.URLUtil; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager; import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException; @@ -68,7 +69,7 @@ String arg = args[++i]; if (args[i - 1].equalsIgnoreCase("-artifactRepository") || args[i - 1].equalsIgnoreCase("-ar")) //$NON-NLS-1$ //$NON-NLS-2$ - artifactRepositoryLocation = new URL(arg); + artifactRepositoryLocation = URLUtil.buildURL(arg); if (args[i - 1].equalsIgnoreCase("-depth")) //$NON-NLS-1$ depth = Integer.parseInt(arg);