diff options
author | Andrew Niefer | 2008-10-20 22:13:03 +0000 |
---|---|---|
committer | Andrew Niefer | 2008-10-20 22:13:03 +0000 |
commit | bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753 (patch) | |
tree | 81e780c80882cc5b912017a8b985b4e3ce84ff6a | |
parent | f542700ba552b25b7dfe86e1dd0ee71d22b6beb7 (diff) | |
download | eclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.tar.gz eclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.tar.xz eclipse.pde.build-bfad0b6b2eff6d18a1fb6ffcd907c6cf632d3753.zip |
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 } |