File eclipse-updatehomedir-core.patch of Package eclipse

Index: src/org/eclipse/update/internal/core/ConfiguredSite.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java,v
retrieving revision 1.95
diff -u -r1.95 ConfiguredSite.java
--- src/org/eclipse/update/internal/core/ConfiguredSite.java	15 Nov 2005 06:01:07 -0000	1.95
+++ src/org/eclipse/update/internal/core/ConfiguredSite.java	2 Dec 2005 06:18:34 -0000
@@ -11,18 +11,51 @@
 package org.eclipse.update.internal.core;
 
 
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import org.eclipse.core.runtime.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.PropertyResourceBundle;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.osgi.util.NLS;
-import org.eclipse.update.configuration.*;
-import org.eclipse.update.core.*;
-import org.eclipse.update.core.model.*;
-import org.eclipse.update.internal.model.*;
-import org.eclipse.update.internal.operations.*;
-import org.eclipse.update.configurator.*;
+import org.eclipse.update.configuration.IActivity;
+import org.eclipse.update.configuration.IConfiguredSite;
+import org.eclipse.update.configuration.IConfiguredSiteChangedListener;
+import org.eclipse.update.configuration.IInstallConfiguration;
+import org.eclipse.update.configuration.IProblemHandler;
+import org.eclipse.update.configurator.ConfiguratorUtils;
+import org.eclipse.update.configurator.IPlatformConfiguration;
+import org.eclipse.update.core.IFeature;
+import org.eclipse.update.core.IFeatureReference;
+import org.eclipse.update.core.IIncludedFeatureReference;
+import org.eclipse.update.core.IPluginEntry;
+import org.eclipse.update.core.ISite;
+import org.eclipse.update.core.ISiteFeatureReference;
+import org.eclipse.update.core.IVerificationListener;
+import org.eclipse.update.core.SiteManager;
+import org.eclipse.update.core.Utilities;
+import org.eclipse.update.core.VersionedIdentifier;
+import org.eclipse.update.core.model.InstallAbortedException;
+import org.eclipse.update.internal.model.ConfiguredSiteModel;
+import org.eclipse.update.internal.operations.UpdateUtils;
 
 /**
  * A Configured site manages the Configured and unconfigured features of a Site
@@ -770,7 +803,9 @@
 			}
 		} else {
 			File container = getSiteContaining(file);
-			if (container != null) {
+			// allow the install location to pass even though it looks like this
+			// site is contained in another site
+			if (container != null && !siteLocation.equals(Platform.getInstallLocation().getURL().getFile())) {
 				verifyStatus = createStatus(IStatus.ERROR, NLS.bind(Messages.ConfiguredSite_ContainedInAnotherSite, (new String[] { container.getAbsolutePath() })), null);
 				return verifyStatus;
 			}
Index: src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java,v
retrieving revision 1.8
diff -u -r1.8 OptionalFeatureSearchCategory.java
--- src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java	1 Mar 2005 20:29:16 -0000	1.8
+++ src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java	2 Dec 2005 06:18:34 -0000
@@ -76,6 +76,13 @@
 		public IQueryUpdateSiteAdapter getQuerySearchSite() {
 			return null;
 		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.update.internal.ui.search.ISearchQuery#getFeature()
+		 */
+		public IFeature getFeature() {
+			return null;
+		}
 	}
 
 	public void addVersionedIdentifier(VersionedIdentifier vid) {
Index: src/org/eclipse/update/internal/search/SiteSearchCategory.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java,v
retrieving revision 1.10
diff -u -r1.10 SiteSearchCategory.java
--- src/org/eclipse/update/internal/search/SiteSearchCategory.java	23 Sep 2005 21:32:44 -0000	1.10
+++ src/org/eclipse/update/internal/search/SiteSearchCategory.java	2 Dec 2005 06:18:34 -0000
@@ -79,6 +79,13 @@
 		public IQueryUpdateSiteAdapter getQuerySearchSite() {
 			return null;
 		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.update.internal.ui.search.ISearchQuery#getFeature()
+		 */
+		public IFeature getFeature() {
+			return null;
+		}
 	}
 
 	public SiteSearchCategory() {
Index: src/org/eclipse/update/internal/search/UpdatesSearchCategory.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java,v
retrieving revision 1.26
diff -u -r1.26 UpdatesSearchCategory.java
--- src/org/eclipse/update/internal/search/UpdatesSearchCategory.java	23 May 2005 17:59:41 -0000	1.26
+++ src/org/eclipse/update/internal/search/UpdatesSearchCategory.java	2 Dec 2005 06:18:34 -0000
@@ -285,6 +285,10 @@
 			monitor.worked(1);
 			monitor.done();
 		}
+
+		public IFeature getFeature() {
+			return candidate;
+		}
 	}
 
 	private ArrayList candidates;
Index: src/org/eclipse/update/search/IUpdateSearchQuery.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/search/IUpdateSearchQuery.java,v
retrieving revision 1.8
diff -u -r1.8 IUpdateSearchQuery.java
--- src/org/eclipse/update/search/IUpdateSearchQuery.java	1 Mar 2005 20:29:16 -0000	1.8
+++ src/org/eclipse/update/search/IUpdateSearchQuery.java	2 Dec 2005 06:18:34 -0000
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Red Hat Incorporated - getFeature() API addition
  *******************************************************************************/
 package org.eclipse.update.search;
 
@@ -50,4 +51,12 @@
  * @param monitor a progress monitor to report search progress within the provided site
  */
 	public void run(ISite site, String [] categoriesToSkip, IUpdateSearchFilter filter, IUpdateSearchResultCollector collector, IProgressMonitor monitor);
+	
+/**
+ * Returns IFeature associated with the IUpdateSearchQuery
+ * 
+ * @return the IFeature that is associated with the IUpdateSearchQuery
+ * @since 3.2
+ */
+	public IFeature getFeature(); 
 }
Index: src/org/eclipse/update/search/UpdateSearchRequest.java
===================================================================
RCS file: /home/eclipse/org.eclipse.update.core/src/org/eclipse/update/search/UpdateSearchRequest.java,v
retrieving revision 1.26
diff -u -r1.26 UpdateSearchRequest.java
--- src/org/eclipse/update/search/UpdateSearchRequest.java	18 May 2005 22:48:27 -0000	1.26
+++ src/org/eclipse/update/search/UpdateSearchRequest.java	2 Dec 2005 06:18:35 -0000
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.update.search;
 
+import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
 
@@ -140,11 +141,11 @@
 		this.category = category;
 		this.scope = scope;
 	}
+	
 	/**
 	 * Returns the search catagory used in this request.
 	 * @return the search category
 	 */
-	
 	public IUpdateSearchCategory getCategory() {
 		return category;
 	}
@@ -242,6 +243,11 @@
 					// currently, the next conditional is only executed (qsite!=null) when
 					// running an update search. 
 					if (qsite != null && searchFeatureProvidedSites) {
+						// do not update features that are installed in read-only locations
+						IFeature feature = query.getFeature();
+						if (feature != null && 
+							!feature.getSite().getCurrentConfiguredSite().verifyUpdatableStatus().isOK())
+							continue;
 						// check for mapping
 						IUpdateSiteAdapter mappedSite = getMappedSite(updatePolicy, qsite);
 						// when there is no mapped site the feature is not updatable
openSUSE Build Service is sponsored by