Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF1
-rw-r--r--bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java19
2 files changed, 16 insertions, 4 deletions
diff --git a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
index e48b69aa6..6a0a08bb3 100644
--- a/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.director/META-INF/MANIFEST.MF
@@ -14,6 +14,7 @@ Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
org.eclipse.equinox.p2.metadata.query,
org.eclipse.equinox.p2.metadata.repository,
org.eclipse.equinox.p2.query,
+ org.eclipse.equinox.spi.p2.metadata.repository,
org.eclipse.osgi.service.resolver;version="1.1.0",
org.eclipse.osgi.util;version="1.0.0",
org.osgi.framework;version="1.3.0"
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
index b8d663893..7a20aca98 100644
--- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
+++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/rollback/FormerState.java
@@ -8,19 +8,25 @@
******************************************************************************/
package org.eclipse.equinox.internal.p2.rollback;
+import java.net.URL;
import java.util.EventObject;
import java.util.Hashtable;
+import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
+import org.eclipse.equinox.internal.p2.director.DirectorActivator;
import org.eclipse.equinox.internal.p2.director.IUTransformationHelper;
import org.eclipse.equinox.p2.core.eventbus.ProvisioningEventBus;
import org.eclipse.equinox.p2.core.eventbus.SynchronousProvisioningListener;
import org.eclipse.equinox.p2.engine.*;
-import org.eclipse.equinox.p2.metadata.*;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.metadata.MetadataFactory;
import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
import org.eclipse.equinox.p2.metadata.repository.IMetadataRepository;
+import org.eclipse.equinox.p2.metadata.repository.IMetadataRepositoryManager;
+import org.eclipse.equinox.spi.p2.metadata.repository.AbstractMetadataRepository;
import org.osgi.framework.Version;
public class FormerState {
- IMetadataRepository storage = null;
+ URL location = null;
Hashtable generatedIUs = new Hashtable(); //key profile id, value the iu representing this profile
@@ -28,7 +34,7 @@ public class FormerState {
if (bus == null || repo == null) {
throw new IllegalArgumentException("bus and storage can' be null"); //$NON-NLS-1$
}
- storage = repo;
+ location = repo.getLocation();
//listen for pre-event. to memorize the state of the profile
bus.addListener(new SynchronousProvisioningListener() {
@@ -39,7 +45,7 @@ public class FormerState {
generatedIUs.put(event.getProfile().getProfileId(), iuForProfile);
} else if (o instanceof CommitOperationEvent) {
CommitOperationEvent event = (CommitOperationEvent) o;
- storage.addInstallableUnits(new IInstallableUnit[] {(IInstallableUnit) generatedIUs.get(event.getProfile().getProfileId())});
+ getRepository().addInstallableUnits(new IInstallableUnit[] {(IInstallableUnit) generatedIUs.get(event.getProfile().getProfileId())});
return;
} else if (o instanceof RollbackOperationEvent) {
RollbackOperationEvent event = (RollbackOperationEvent) o;
@@ -59,6 +65,11 @@ public class FormerState {
});
}
+ AbstractMetadataRepository getRepository() {
+ IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(DirectorActivator.context, IMetadataRepositoryManager.class.getName());
+ return (AbstractMetadataRepository) manager.loadRepository(location, null);
+ }
+
IInstallableUnit profileToIU(Profile toConvert) {
InstallableUnitDescription result = new MetadataFactory.InstallableUnitDescription();
result.setProperty(IInstallableUnit.PROP_PROFILE_IU_KEY, Boolean.TRUE.toString());

Back to the top