diff options
author | Simon Kaegi | 2008-11-27 18:07:20 +0000 |
---|---|---|
committer | Simon Kaegi | 2008-11-27 18:07:20 +0000 |
commit | 905c10b13f63500e97e3b56bc42f562086102111 (patch) | |
tree | 7f026a7187ad64f7782b46404245060bee094636 | |
parent | 18ecdc95e1a9ed0cb77b8709332371d0a04d1714 (diff) | |
download | rt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.tar.gz rt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.tar.xz rt.equinox.p2-905c10b13f63500e97e3b56bc42f562086102111.zip |
Bug 256708 Accept null base in SimpleConfiguratorManipulator#saveConfiguration
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); } |