Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2008-10-20 22:13:03 +0000
committerAndrew Niefer2008-10-20 22:13:03 +0000
commitbfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753 (patch)
tree81e780c80882cc5b912017a8b985b4e3ce84ff6a
parentf542700ba552b25b7dfe86e1dd0ee71d22b6beb7 (diff)
downloadeclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.tar.gz
eclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.tar.xz
eclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.zip
bug 250942 - version character orderingv20081020
-rw-r--r--org.eclipse.pde.build.tests/src/org/eclipse/pde/build/internal/tests/ScriptGenerationTests.java106
-rw-r--r--org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java2
-rw-r--r--org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/BuildDirector.java4
3 files changed, 106 insertions, 6 deletions
diff --git a/org.eclipse.pde.build.tests/src/org/eclipse/pde/build/internal/tests/ScriptGenerationTests.java b/org.eclipse.pde.build.tests/src/org/eclipse/pde/build/internal/tests/ScriptGenerationTests.java
index 9226f51d..5564d902 100644
--- a/org.eclipse.pde.build.tests/src/org/eclipse/pde/build/internal/tests/ScriptGenerationTests.java
+++ b/org.eclipse.pde.build.tests/src/org/eclipse/pde/build/internal/tests/ScriptGenerationTests.java
@@ -25,6 +25,7 @@ import org.eclipse.pde.build.internal.tests.ant.AntUtils;
import org.eclipse.pde.build.tests.BuildConfiguration;
import org.eclipse.pde.build.tests.PDETestCase;
import org.eclipse.pde.internal.build.*;
+import org.eclipse.pde.internal.build.builder.BuildDirector;
import org.eclipse.pde.internal.build.site.*;
import org.eclipse.pde.internal.build.site.compatibility.FeatureEntry;
import org.osgi.framework.Version;
@@ -557,8 +558,8 @@ public class ScriptGenerationTests extends PDETestCase {
public void testBug247091() throws Exception {
IFolder buildFolder = newTest("247091");
-
- Utils.generateFeature(buildFolder, "sdk", new String[] {"f;version=0.0.0", "f;version=1.0.0.qualifier", "f;version=1.0.0.vqualifier"}, null);
+ //also tests bug 250942
+ Utils.generateFeature(buildFolder, "sdk", new String[] {"f;version=0.0.0", "f;version=1.0.0.qualifier", "f;version=1.0.0.v_qualifier"}, null);
Utils.generateFeature(buildFolder, "f", null, null, "2.0.0");
IFolder f = buildFolder.getFolder("features/f");
f.refreshLocal(IResource.DEPTH_INFINITE, null);
@@ -566,7 +567,7 @@ public class ScriptGenerationTests extends PDETestCase {
Utils.generateFeature(buildFolder, "f", null, null, "1.0.0.z1234");
f.refreshLocal(IResource.DEPTH_INFINITE, null);
f.move(new org.eclipse.core.runtime.Path("F2"), true, null);
- Utils.generateFeature(buildFolder, "f", null, null, "1.0.0.v5678");
+ Utils.generateFeature(buildFolder, "f", null, null, "1.0.0.v_5678");
f.refreshLocal(IResource.DEPTH_INFINITE, null);
f.move(new org.eclipse.core.runtime.Path("F3"), true, null);
@@ -611,6 +612,13 @@ public class ScriptGenerationTests extends PDETestCase {
assertFalse(range.getIncludeMaximum());
assertEquals(range.getMinimum(), new Version("1.0.0.abzz"));
assertEquals(range.getMaximum(), new Version("1.0.0.ac"));
+
+ range = org.eclipse.pde.internal.build.Utils.createVersionRange("1.0.0.abzz_qualifier");
+ assertTrue(range.getIncludeMinimum());
+ assertFalse(range.getIncludeMaximum());
+ assertEquals(range.getMinimum(), new Version("1.0.0.abzz_"));
+ assertEquals(range.getMaximum(), new Version("1.0.0.abzza"));
+
}
public void testBug246127() throws Exception {
@@ -762,4 +770,96 @@ public class ScriptGenerationTests extends PDETestCase {
assertTrue(tasks.length == 1);
assertEquals("plugins/F", tasks[0].getRuntimeConfigurableWrapper().getAttributeMap().get("dir"));
}
+
+ public static class TestQualifierDirector extends BuildDirector {
+ public TestQualifierDirector() {
+ super();
+ setGenerateVersionSuffix(true);
+ setWorkingDirectory("foo");
+ }
+
+ public String getQualifierSuffix(BuildTimeFeature feature) throws CoreException {
+ return super.generateFeatureVersionSuffix(feature);
+ }
+ }
+
+ public void testQualifierSuffixes() throws Exception {
+ BuildTimeFeature f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.aaa-0z-aaa", true));
+ f1.setContextQualifierLength(2);
+
+ BuildTimeFeature f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.3.aaa-10-aaa", true));
+ f2.setContextQualifierLength(2);
+
+ TestQualifierDirector director = new TestQualifierDirector();
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.abcd", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.4.aaaa", true));
+ f2.setContextQualifierLength(2);
+
+ director = new TestQualifierDirector();
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "4.5.6.xyz", true));
+ f1.addEntry(new FeatureEntry("b", "1.2.3.abccccc", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "4.5.6.xyz", true));
+ f2.addEntry(new FeatureEntry("b", "1.2.3.abcd", true));
+ f2.setContextQualifierLength(2);
+
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.abcdefg", true));
+ f1.addEntry(new FeatureEntry("b", "4.5.6.xyz", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.3.abcdefg", true));
+ f2.addEntry(new FeatureEntry("b", "4.5.6.xyz-", true));
+ f2.setContextQualifierLength(2);
+
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.abcdefg", true));
+ f1.addEntry(new FeatureEntry("b", "4.5.6.xyz", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.3.abcdefg", true));
+ f2.addEntry(new FeatureEntry("b", "4.5.6.xyz-", true));
+ f2.setContextQualifierLength(2);
+
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.aAb", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.3.a_b", true));
+ f2.setContextQualifierLength(2);
+
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+
+ f1 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f1.addEntry(new FeatureEntry("a", "1.2.3.aZ", true));
+ f1.setContextQualifierLength(2);
+
+ f2 = new BuildTimeFeature("foo", "1.0.0.v1");
+ f2.addEntry(new FeatureEntry("a", "1.2.3.a_", true));
+ f2.setContextQualifierLength(2);
+
+ assertTrue(director.getQualifierSuffix(f1).compareTo(director.getQualifierSuffix(f2)) < 0);
+ }
}
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java
index ab7d2826..a2c544e9 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/Utils.java
@@ -26,7 +26,7 @@ import org.osgi.framework.Version;
*/
public final class Utils implements IPDEBuildConstants, IBuildPropertiesConstants, IXMLConstants {
// The 64 characters that are legal in a version qualifier, in lexicographical order.
- private static final String BASE_64_ENCODING = "-0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; //$NON-NLS-1$
+ private static final String BASE_64_ENCODING = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"; //$NON-NLS-1$
/**
* returns a value 1 - 64 for valid qualifier characters. Returns 0 for non-valid characters
diff --git a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/BuildDirector.java b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/BuildDirector.java
index 0e8b9c53..4c9bbedf 100644
--- a/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/BuildDirector.java
+++ b/org.eclipse.pde.build/src/org/eclipse/pde/internal/build/builder/BuildDirector.java
@@ -23,7 +23,7 @@ import org.osgi.framework.Version;
*/
public class BuildDirector extends AbstractBuildScriptGenerator {
- private static final int QUALIFIER_SUFFIX_VERSION = 1;
+ private static final int QUALIFIER_SUFFIX_VERSION = 2;
// GENERATION FLAGS
/**
@@ -299,7 +299,7 @@ public class BuildDirector extends AbstractBuildScriptGenerator {
return result;
}
- private String generateFeatureVersionSuffix(BuildTimeFeature buildFeature) throws CoreException {
+ protected String generateFeatureVersionSuffix(BuildTimeFeature buildFeature) throws CoreException {
if (!generateVersionSuffix || buildFeature.getContextQualifierLength() == -1) {
return null; // do nothing
}

Back to the top