### Eclipse Workspace Patch 1.0 #P org.eclipse.update.core Index: src/org/eclipse/update/internal/core/InstallConfiguration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java,v retrieving revision 1.163 diff -u -r1.163 InstallConfiguration.java --- src/org/eclipse/update/internal/core/InstallConfiguration.java 13 Oct 2005 17:26:12 -0000 1.163 +++ src/org/eclipse/update/internal/core/InstallConfiguration.java 12 Mar 2006 20:30:11 -0000 @@ -135,7 +135,7 @@ * Returns the default site policy */ private int getDefaultPolicy() { - return IConfigurationConstants.DEFAULT_POLICY_TYPE; + return PlatformConfiguration.getDefaultPolicy(); } /** #P org.eclipse.update.configurator Index: src/org/eclipse/update/internal/configurator/ConfigurationParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java,v retrieving revision 1.24 diff -u -r1.24 ConfigurationParser.java --- src/org/eclipse/update/internal/configurator/ConfigurationParser.java 3 Aug 2005 19:09:45 -0000 1.24 +++ src/org/eclipse/update/internal/configurator/ConfigurationParser.java 12 Mar 2006 20:30:12 -0000 @@ -162,7 +162,7 @@ String[] policyList = null; String typeString = attributes.getValue(CFG_POLICY); if (typeString == null) { - policyType = DEFAULT_POLICY_TYPE; + policyType = PlatformConfiguration.getDefaultPolicy(); policyList = DEFAULT_POLICY_LIST; } else { int i; @@ -172,7 +172,7 @@ } } if (i >= CFG_POLICY_TYPE.length) { - policyType = DEFAULT_POLICY_TYPE; + policyType = PlatformConfiguration.getDefaultPolicy(); policyList = DEFAULT_POLICY_LIST; } else { policyType = i; Index: src/org/eclipse/update/internal/configurator/PlatformConfiguration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java,v retrieving revision 1.78 diff -u -r1.78 PlatformConfiguration.java --- src/org/eclipse/update/internal/configurator/PlatformConfiguration.java 18 Aug 2005 15:58:11 -0000 1.78 +++ src/org/eclipse/update/internal/configurator/PlatformConfiguration.java 12 Mar 2006 20:30:13 -0000 @@ -26,6 +26,7 @@ import org.eclipse.osgi.service.datalocation.*; import org.eclipse.osgi.util.NLS; import org.eclipse.update.configurator.*; +import org.eclipse.update.configurator.IPlatformConfiguration.ISitePolicy; import org.w3c.dom.*; /** @@ -58,6 +59,7 @@ //PAL nio optional //private FileLock lock; private Locker lock = null; + private static int defaultPolicy = DEFAULT_POLICY_TYPE; private static boolean checkNio = false; private static boolean useNio; @@ -85,6 +87,8 @@ // initialize configuration initializeCurrent(platformConfigLocation); + if(config != null) + setDefaultPolicy(); // Detect external links. These are "soft link" to additional sites. The link // files are usually provided by external installation programs. They are located @@ -113,6 +117,23 @@ initialize(url); } + private void setDefaultPolicy() { + // Assumption: If the configuration that we initialize with + // has a MANAGED_ONLY policy, then all sites should have default policy + // of MANAGED_ONLY. + ISiteEntry[] sentries = getConfiguredSites(); + if(sentries != null && sentries.length >0){ + int policyType = sentries[0].getSitePolicy().getType(); + if(policyType == ISitePolicy.MANAGED_ONLY){ + defaultPolicy = policyType; + } + } + } + + public static int getDefaultPolicy(){ + return defaultPolicy; + } + /* * @see IPlatformConfiguration#createSiteEntry(URL, ISitePolicy) */ @@ -755,7 +776,7 @@ } private ISiteEntry getRootSite() { // create default site entry for the root - ISitePolicy defaultPolicy = createSitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST); + ISitePolicy defaultPolicy = createSitePolicy(getDefaultPolicy(), DEFAULT_POLICY_LIST); URL siteURL = null; try { siteURL = new URL("platform:/base/"); //$NON-NLS-1$ // try using platform-relative URL @@ -934,7 +955,7 @@ SiteEntry linkSite = (SiteEntry) externalLinkSites.get(siteURL); if (linkSite == null) { // this is a link to a new target so create site for it - ISitePolicy linkSitePolicy = createSitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST); + ISitePolicy linkSitePolicy = createSitePolicy(getDefaultPolicy(), DEFAULT_POLICY_LIST); linkSite = (SiteEntry) createSiteEntry(siteURL, linkSitePolicy); } // update site entry if needed Index: src/org/eclipse/update/internal/configurator/SiteEntry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java,v retrieving revision 1.40 diff -u -r1.40 SiteEntry.java --- src/org/eclipse/update/internal/configurator/SiteEntry.java 3 Aug 2005 19:09:45 -0000 1.40 +++ src/org/eclipse/update/internal/configurator/SiteEntry.java 12 Mar 2006 20:30:13 -0000 @@ -57,7 +57,7 @@ } if (policy == null) - policy = new SitePolicy(DEFAULT_POLICY_TYPE, DEFAULT_POLICY_LIST); + policy = new SitePolicy(PlatformConfiguration.getDefaultPolicy(), DEFAULT_POLICY_LIST); if (url.getProtocol().equals("file")) { //$NON-NLS-1$ try {