Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Kaegi2008-11-27 18:07:20 +0000
committerSimon Kaegi2008-11-27 18:07:20 +0000
commit905c10b13f63500e97e3b56bc42f562086102111 (patch)
tree7f026a7187ad64f7782b46404245060bee094636
parent18ecdc95e1a9ed0cb77b8709332371d0a04d1714 (diff)
downloadrt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.tar.gz
rt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.tar.xz
rt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.zip
Bug 256708 Accept null base in SimpleConfiguratorManipulator#saveConfiguration
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorTests.java6
-rw-r--r--bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java6
2 files changed, 8 insertions, 4 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorTests.java
index 9eb047c12..a247c8809 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorTests.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorTests.java
@@ -27,21 +27,21 @@ public class SimpleConfiguratorManipulatorTests extends AbstractProvisioningTest
File baseFile = getTempFolder();
//absolute location written with base
- BundleInfo[] bundles = new BundleInfo[] {new BundleInfo(new File(folder, "plugins/a_1.0.0.jar").toURI())};
+ BundleInfo[] bundles = new BundleInfo[] {new BundleInfo("a", "1.0.0", new File(folder, "plugins/a_1.0.0.jar").toURI(), BundleInfo.NO_LEVEL, false)};
SimpleConfiguratorManipulator manipulator = new SimpleConfiguratorManipulatorImpl();
manipulator.saveConfiguration(bundles, infoFile, folder);
bundles = manipulator.loadConfiguration(infoFile.toURL(), baseFile);
assertEquals(bundles[0].getLocation(), new File(baseFile, "plugins/a_1.0.0.jar").toURI());
//relative location written with null base
- bundles = new BundleInfo[] {new BundleInfo(new URI("plugins/b_1.0.0.jar"))};
+ bundles = new BundleInfo[] {new BundleInfo("b", "1.0.0", new URI("plugins/b_1.0.0.jar"), BundleInfo.NO_LEVEL, false)};
manipulator.saveConfiguration(bundles, infoFile, null);
bundles = manipulator.loadConfiguration(infoFile.toURL(), baseFile);
assertEquals(bundles[0].getLocation(), new File(baseFile, "plugins/b_1.0.0.jar").toURI());
//absolute location written with null base
URI absolute = new File(folder, "plugins/c_1.0.0.jar").toURI();
- bundles = new BundleInfo[] {new BundleInfo(absolute)};
+ bundles = new BundleInfo[] {new BundleInfo("c", "1.0.0", absolute, BundleInfo.NO_LEVEL, false)};
manipulator.saveConfiguration(bundles, infoFile, null);
bundles = manipulator.loadConfiguration(infoFile.toURL(), baseFile);
assertEquals(bundles[0].getLocation(), absolute);
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
index 71642c9b1..f64339b58 100644
--- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
+++ b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorImpl.java
@@ -326,8 +326,12 @@ public class SimpleConfiguratorManipulatorImpl implements SimpleConfiguratorMani
org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo[] simpleInfos = new org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo[configuration.length];
for (int i = 0; i < configuration.length; i++) {
BundleInfo bundleInfo = (BundleInfo) configuration[i];
+ String symbolicName = bundleInfo.getSymbolicName();
+ String bundleVersion = bundleInfo.getVersion();
URI location = base != null ? URIUtil.makeRelative(bundleInfo.getLocation(), base.toURI()) : bundleInfo.getLocation();
- simpleInfos[i] = new org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo(bundleInfo.getSymbolicName(), bundleInfo.getVersion(), location, bundleInfo.getStartLevel(), bundleInfo.isMarkedAsStarted());
+ if (symbolicName == null || bundleVersion == null || location == null)
+ throw new IllegalArgumentException("Cannot persist bundleinfo: " + bundleInfo.toString());
+ simpleInfos[i] = new org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo(symbolicName, bundleVersion, location, bundleInfo.getStartLevel(), bundleInfo.isMarkedAsStarted());
}
SimpleConfiguratorManipulatorUtils.writeConfiguration(simpleInfos, outputFile);
}

Back to the top