Bug 305695 - Target Platform preference page: Cannot cherry-pick from Running Platform any more
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
index 6706515..dca40c2 100755
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java
@@ -521,7 +521,7 @@
List list = (List) bundleMap.get(info.getSymbolicName());
if (list != null) {
String version = info.getVersion();
- if (version == null) {
+ if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
// select newest
if (list.size() > 1) {
// sort the list
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
index 6e2c6c8..7020126 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/provisional/NameVersionDescriptor.java
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.pde.internal.core.target.provisional;
+import org.eclipse.equinox.frameworkadmin.BundleInfo;
+
/**
* Describes something with a name and version.
*/
@@ -24,18 +26,31 @@
/**
* Constructs a descriptor with a type of 'plugin'
+ * <p>
+ * If the passed string version is equal to {@link BundleInfo#EMPTY_VERSION},
+ * the version will be replaced with <code>null</code>.
+ * </p>
*
* @param id name identifier
* @param version version identifier, can be <code>null</code>
*/
public NameVersionDescriptor(String id, String version) {
fId = id;
- fVersion = version;
+ // If an empty version was passed to the constructor, treat it as if null was passed
+ if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
+ fVersion = null;
+ } else {
+ fVersion = version;
+ }
fType = TYPE_PLUGIN;
}
/**
* Constructs a descriptor of the given type
+ * <p>
+ * If the passed string version is equal to {@link BundleInfo#EMPTY_VERSION},
+ * the version will be replaced with <code>null</code>.
+ * </p>
*
* @param id name identifier
* @param version version identifier, can be <code>null</code>
@@ -43,7 +58,12 @@
*/
public NameVersionDescriptor(String id, String version, String type) {
fId = id;
- fVersion = version;
+ // If an empty version was passed to the constructor, treat it as if null was passed
+ if (version == null || version.equals(BundleInfo.EMPTY_VERSION)) {
+ fVersion = null;
+ } else {
+ fVersion = version;
+ }
fType = type;
}
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
index 6e89906..04e03fd 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java
@@ -183,7 +183,9 @@
}
}
assertNotNull(v1);
+ assertFalse(v1.equals(BundleInfo.EMPTY_VERSION));
assertNotNull(v2);
+ assertFalse(v2.equals(BundleInfo.EMPTY_VERSION));
NameVersionDescriptor[] restrictions = new NameVersionDescriptor[]{
new NameVersionDescriptor("org.eclipse.jdt.launching", v1),
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
index c2aeeef..c153a46 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/shared/target/StyledBundleLabelProvider.java
@@ -167,7 +167,7 @@
styledString.append(info.getSymbolicName());
if (fShowVersion) {
String version = info.getVersion();
- if (version != null) {
+ if (version != null && !version.equals(BundleInfo.EMPTY_VERSION)) {
styledString.append(' ');
styledString.append('(', StyledString.QUALIFIER_STYLER);
styledString.append(version, StyledString.QUALIFIER_STYLER);