Bug 541810 - PlatformConfiguration initialization does super expensive
pointless work on startup

Change-Id: I7152a951d3b048a760de94d84a7d711a7a4b7929
Signed-off-by: Ed Merks <ed.merks@gmail.com>
diff --git a/update/org.eclipse.update.configurator/META-INF/MANIFEST.MF b/update/org.eclipse.update.configurator/META-INF/MANIFEST.MF
index 6faf1b0..6c4b2d1 100644
--- a/update/org.eclipse.update.configurator/META-INF/MANIFEST.MF
+++ b/update/org.eclipse.update.configurator/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.update.configurator; singleton:=true
-Bundle-Version: 3.4.100.qualifier
+Bundle-Version: 3.4.200.qualifier
 Bundle-Activator: org.eclipse.update.internal.configurator.ConfigurationActivator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/update/org.eclipse.update.configurator/pom.xml b/update/org.eclipse.update.configurator/pom.xml
index a29c507..c8e01a5 100644
--- a/update/org.eclipse.update.configurator/pom.xml
+++ b/update/org.eclipse.update.configurator/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.update</groupId>
   <artifactId>org.eclipse.update.configurator</artifactId>
-  <version>3.4.100-SNAPSHOT</version>
+  <version>3.4.200-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
index e43ebd4..52e6d3a 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
@@ -485,7 +485,7 @@
 		// on next access
 		ISiteEntry[] sites = getConfiguredSites();
 		for (int i = 0; i < sites.length; i++) {
-			if (sites[i].isUpdateable()) {
+			if (sites[i].isUpdateable() && sites[i].getSitePolicy().getType() != ISitePolicy.MANAGED_ONLY) {
 				// reset site entry
 				((SiteEntry) sites[i]).refresh();
 			}
@@ -783,7 +783,9 @@
 		long result = 0;
 		ISiteEntry[] sites = config.getSites();
 		for (int i = 0; i < sites.length; i++) {
-			result = Math.max(result, sites[i].getFeaturesChangeStamp());
+			if (sites[i].getSitePolicy().getType() != ISitePolicy.MANAGED_ONLY) {
+				result = Math.max(result, sites[i].getFeaturesChangeStamp());
+			}
 		}
 		featuresChangeStamp = result;
 		featuresChangeStampIsValid = true;
@@ -797,7 +799,9 @@
 		long result = 0;
 		ISiteEntry[] sites = config.getSites();
 		for (int i = 0; i < sites.length; i++) {
-			result = Math.max(result, sites[i].getPluginsChangeStamp());
+			if (sites[i].getSitePolicy().getType() != ISitePolicy.MANAGED_ONLY) {
+				result = Math.max(result, sites[i].getPluginsChangeStamp());
+			}
 		}
 		pluginsChangeStamp = result;
 		pluginsChangeStampIsValid = true;
@@ -997,7 +1001,7 @@
 		long lastChange = config.getDate().getTime();
 		SiteEntry[] sites = config.getSites();
 		for (int s = 0; s < sites.length; s++) {
-			if (sites[s].isUpdateable()) {
+			if (sites[s].isUpdateable() && sites[s].getSitePolicy().getType() != ISitePolicy.MANAGED_ONLY) {
 				long siteTimestamp = sites[s].getChangeStamp();
 				if (siteTimestamp > lastChange)
 					sites[s].loadFromDisk(lastChange);