*** empty log message ***
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
index 733711c..bb5e118 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties
@@ -427,6 +427,7 @@
InstallWizard.error.unable=Unable to locate configuration site for the feature
InstallWizard.error.old= Error while updating the old feature version
+InstallWizard.savedConfig = {0} - backup configuration
InstallDeltaWizard.wtitle = Configuration Changes
InstallDeltaWizard.processing = Processing pending changes:
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/forms/DetailsForm.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/forms/DetailsForm.java
index e8e653d..3e2e706 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/forms/DetailsForm.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/forms/DetailsForm.java
@@ -907,6 +907,11 @@
validationStatus);
return;
}
+ if (job.getJobType()==PendingChange.UNCONFIGURE &&
+ UpdateUIPlugin.isPatch(job.getFeature())) {
+ unconfigurePatch(job.getFeature());
+ return;
+ }
BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
public void run() {
InstallWizard wizard = new InstallWizard(job);
@@ -922,6 +927,9 @@
}
});
}
+
+ private void unconfigurePatch(IFeature feature) {
+ }
private void doButtonSelected() {
if (currentFeature != null) {
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
index b194439..65aedbd 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UpdatesView.java
@@ -746,7 +746,7 @@
config,
dir,
true)) {
- InstallWizard.makeConfigurationCurrent(config);
+ InstallWizard.makeConfigurationCurrent(config, null);
InstallWizard.saveLocalSite();
UpdateUIPlugin.informRestartNeeded();
}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
index 04da62f..7501bca 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java
@@ -24,6 +24,7 @@
public class InstallWizard extends Wizard {
private static final String KEY_UNABLE = "InstallWizard.error.unable";
private static final String KEY_OLD = "InstallWizard.error.old";
+ private static final String KEY_SAVED_CONFIG = "InstallWizard.savedConfig";
private ReviewPage reviewPage;
private OptionalFeaturesPage optionalFeaturesPage;
private TargetPage targetPage;
@@ -76,7 +77,7 @@
throws InvocationTargetException {
try {
successfulInstall = false;
- makeConfigurationCurrent(config);
+ makeConfigurationCurrent(config, job);
execute(
targetSite,
optionalElements,
@@ -139,9 +140,22 @@
}
}
- public static void makeConfigurationCurrent(IInstallConfiguration config)
+ public static void makeConfigurationCurrent(IInstallConfiguration config, PendingChange job)
throws CoreException {
ILocalSite localSite = SiteManager.getLocalSite();
+ if (job!=null && job.getJobType()==PendingChange.INSTALL) {
+ if (UpdateUIPlugin.isPatch(job.getFeature())) {
+ // Installing a patch - preserve the current configuration
+ IInstallConfiguration cconfig = localSite.getCurrentConfiguration();
+ IInstallConfiguration savedConfig = localSite.addToPreservedConfigurations(cconfig);
+ VersionedIdentifier vid = job.getFeature().getVersionedIdentifier();
+ String key = "@"+vid.getIdentifier()+"_"+vid.getVersion();
+ String newLabel = UpdateUIPlugin.getFormattedMessage(KEY_SAVED_CONFIG, key);
+ savedConfig.setLabel(newLabel);
+ UpdateModel model = UpdateUIPlugin.getDefault().getUpdateModel();
+ model.fireObjectChanged(savedConfig, null);
+ }
+ }
localSite.addConfiguration(config);
}
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizard.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizard.java
index 30a52ce..757fbaa 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizard.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdatesWizard.java
@@ -118,7 +118,7 @@
throws InvocationTargetException {
try {
installCount = 0;
- InstallWizard.makeConfigurationCurrent(config);
+ InstallWizard.makeConfigurationCurrent(config, null);
execute(selectedJobs, monitor);
} catch (InstallAbortedException e) {
throw new InvocationTargetException(e);