aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java13
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java2
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java55
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevisionPackage.java23
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevision.java19
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevisionPackage.java16
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/repository/PkgProps.java8
-rwxr-xr-xsdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionPackageTest.java9
-rwxr-xr-xsdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java59
-rwxr-xr-xsdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/MajorRevisionTest.java75
-rwxr-xr-xsdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/PackageTest.java2
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AboutDialog.java2
12 files changed, 238 insertions, 45 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
index 0dde05f..594912b 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/VersionCheck.java
@@ -21,6 +21,7 @@ import com.android.ide.eclipse.adt.AdtPlugin.CheckSdkErrorHandler;
import com.android.ide.eclipse.adt.AdtPlugin.CheckSdkErrorHandler.Solution;
import com.android.ide.eclipse.adt.Messages;
import com.android.sdklib.SdkConstants;
+import com.android.sdklib.internal.repository.packages.FullRevision;
import com.android.sdklib.repository.PkgProps;
import org.osgi.framework.Constants;
@@ -48,7 +49,7 @@ public final class VersionCheck {
/**
* The minimum version of the SDK Tools that this version of ADT requires.
*/
- private final static int MIN_TOOLS_REV = 17;
+ private final static FullRevision MIN_TOOLS_REV = new FullRevision(17);
/**
* Pattern to get the minimum plugin version supported by the SDK. This is read from
@@ -57,7 +58,7 @@ public final class VersionCheck {
private final static Pattern sPluginVersionPattern = Pattern.compile(
"^plugin.version=(\\d+)\\.(\\d+)\\.(\\d+).*$"); //$NON-NLS-1$
private final static Pattern sSourcePropPattern = Pattern.compile(
- "^" + PkgProps.PKG_MAJOR_REV + "=(\\d+).*$"); //$NON-NLS-1$
+ "^" + PkgProps.PKG_REVISION + "=(.*)$"); //$NON-NLS-1$
/**
* Checks the plugin and the SDK have compatible versions.
@@ -136,7 +137,7 @@ public final class VersionCheck {
// now check whether the tools are new enough.
String osTools = osSdkPath + SdkConstants.OS_SDK_TOOLS_FOLDER;
- int toolsRevision = Integer.MAX_VALUE;
+ FullRevision toolsRevision = new FullRevision(Integer.MAX_VALUE);
try {
reader = new FileReader(osTools + SdkConstants.FN_SOURCE_PROP);
BufferedReader bReader = new BufferedReader(reader);
@@ -144,7 +145,9 @@ public final class VersionCheck {
while ((line = bReader.readLine()) != null) {
Matcher m = sSourcePropPattern.matcher(line);
if (m.matches()) {
- toolsRevision = Integer.parseInt(m.group(1));
+ try {
+ toolsRevision = FullRevision.parseRevision(m.group(1));
+ } catch (NumberFormatException ignore) {}
break;
}
}
@@ -163,7 +166,7 @@ public final class VersionCheck {
}
}
- if (toolsRevision < MIN_TOOLS_REV) {
+ if (toolsRevision.compareTo(MIN_TOOLS_REV) < 0) {
// this is a warning only as we need to parse the SDK to allow updating
// of the tools!
return errorHandler.handleWarning(
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java
index a786728..8284054 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java
@@ -463,7 +463,7 @@ public class SdkManager {
int revision = 1;
LayoutlibVersion layoutlibVersion = null;
try {
- revision = Integer.parseInt(platformProp.get(PkgProps.PKG_MAJOR_REV));
+ revision = Integer.parseInt(platformProp.get(PkgProps.PKG_REVISION));
} catch (NumberFormatException e) {
// do nothing, we'll keep the default value of 1.
}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java
index a90fa0a..40235c2 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevision.java
@@ -16,6 +16,11 @@
package com.android.sdklib.internal.repository.packages;
+import com.android.annotations.NonNull;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
/**
* Package multi-part revision number composed of a tuple
@@ -32,6 +37,10 @@ public class FullRevision implements Comparable<FullRevision> {
public static final int IMPLICIT_MICRO_REV = 0;
public static final int NOT_A_PREVIEW = 0;
+ private final static Pattern FULL_REVISION_PATTERN =
+ // 1=major 2=minor 3=micro 4=preview
+ Pattern.compile("\\s*([0-9]+)(?:\\.([0-9]+)(?:\\.([0-9]+))?)?\\s*(?:rc([0-9]+))?\\s*");
+
private final int mMajor;
private final int mMinor;
private final int mMicro;
@@ -73,6 +82,52 @@ public class FullRevision implements Comparable<FullRevision> {
}
/**
+ * Parses a string of format "major.minor.micro rcPreview" and returns
+ * a new {@link FullRevision} for it. All the fields except major are
+ * optional.
+ * <p/>
+ * The parsing is equivalent to the pseudo-BNF/regexp:
+ * <pre>
+ * Major/Minor/Micro/Preview := [0-9]+
+ * Revision := Major ('.' Minor ('.' Micro)? )? \s* ('rc'Preview)?
+ * </pre>
+ *
+ * @param revision A non-null revision to parse.
+ * @return A new non-null {@link FullRevision}.
+ * @throws NumberFormatException if the parsing failed.
+ */
+ public static @NonNull FullRevision parseRevision(@NonNull String revision)
+ throws NumberFormatException {
+
+ if (revision == null) {
+ throw new NumberFormatException("revision is <null>"); //$NON-NLS-1$
+ }
+
+ Throwable cause = null;
+ try {
+ Matcher m = FULL_REVISION_PATTERN.matcher(revision);
+ if (m != null && m.matches()) {
+ int major = Integer.parseInt(m.group(1));
+ String s = m.group(2);
+ int minor = s == null ? IMPLICIT_MINOR_REV : Integer.parseInt(s);
+ s = m.group(3);
+ int micro = s == null ? IMPLICIT_MICRO_REV : Integer.parseInt(s);
+ s = m.group(4);
+ int preview = s == null ? NOT_A_PREVIEW : Integer.parseInt(s);
+
+ return new FullRevision(major, minor, micro, preview);
+ }
+ } catch (Throwable t) {
+ cause = t;
+ }
+
+ NumberFormatException n = new NumberFormatException(
+ "Invalid full revision: " + revision); //$NON-NLS-1$
+ n.initCause(cause);
+ throw n;
+ }
+
+ /**
* Returns the version in a fixed format major.minor.micro
* with an optional "rc preview#". For example it would
* return "18.0.0", "18.1.0" or "18.1.2 rc5".
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevisionPackage.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevisionPackage.java
index 10c4ce0..6028873 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevisionPackage.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/FullRevisionPackage.java
@@ -102,12 +102,19 @@ public abstract class FullRevisionPackage extends Package
super(source, props, revision, license, description, descUrl,
archiveOs, archiveArch, archiveOsPath);
- int major = getPropertyInt(props, PkgProps.PKG_MAJOR_REV,revision);
- int minor = getPropertyInt(props, PkgProps.PKG_MINOR_REV, FullRevision.IMPLICIT_MINOR_REV);
- int micro = getPropertyInt(props, PkgProps.PKG_MICRO_REV, FullRevision.IMPLICIT_MINOR_REV);
- int preview = getPropertyInt(props, PkgProps.PKG_PREVIEW_REV, FullRevision.NOT_A_PREVIEW);
+ String revStr = getProperty(props, PkgProps.PKG_REVISION, null);
- mPreviewVersion = new FullRevision(major, minor, micro, preview);
+ FullRevision rev = null;
+ if (revStr != null) {
+ try {
+ rev = FullRevision.parseRevision(revStr);
+ } catch (NumberFormatException ignore) {}
+ }
+ if (rev == null) {
+ rev = new FullRevision(revision);
+ }
+
+ mPreviewVersion = rev;
}
@Override
@@ -118,11 +125,7 @@ public abstract class FullRevisionPackage extends Package
@Override
public void saveProperties(Properties props) {
super.saveProperties(props);
-
- props.setProperty(PkgProps.PKG_MAJOR_REV, Integer.toString(mPreviewVersion.getMajor()));
- props.setProperty(PkgProps.PKG_MINOR_REV, Integer.toString(mPreviewVersion.getMinor()));
- props.setProperty(PkgProps.PKG_MICRO_REV, Integer.toString(mPreviewVersion.getMicro()));
- props.setProperty(PkgProps.PKG_PREVIEW_REV, Integer.toString(mPreviewVersion.getPreview()));
+ props.setProperty(PkgProps.PKG_REVISION, mPreviewVersion.toString());
}
@Override
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevision.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevision.java
index 2678b1f..9ca9e22 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevision.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevision.java
@@ -16,6 +16,8 @@
package com.android.sdklib.internal.repository.packages;
+import com.android.annotations.NonNull;
+
/**
* Package revision number composed of a <em>single</em> major revision.
@@ -34,4 +36,21 @@ public class MajorRevision extends FullRevision {
public String toString() {
return super.toShortString();
}
+
+ /**
+ * Parses a single-integer string and returns a new {@link MajorRevision} for it.
+ *
+ * @param revision A non-null revision to parse.
+ * @return A new non-null {@link MajorRevision}.
+ * @throws NumberFormatException if the parsing failed.
+ */
+ public static @NonNull MajorRevision parseRevision(@NonNull String revision)
+ throws NumberFormatException {
+
+ if (revision == null) {
+ throw new NumberFormatException("revision is <null>"); //$NON-NLS-1$
+ }
+
+ return new MajorRevision(Integer.parseInt(revision.trim()));
+ }
}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevisionPackage.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevisionPackage.java
index 7e61e5f..1348bb9 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevisionPackage.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/packages/MajorRevisionPackage.java
@@ -77,7 +77,19 @@ public abstract class MajorRevisionPackage extends Package {
super(source, props, revision, license, description, descUrl,
archiveOs, archiveArch, archiveOsPath);
- mRevision = new MajorRevision(getPropertyInt(props, PkgProps.PKG_MAJOR_REV, revision));
+ String revStr = getProperty(props, PkgProps.PKG_REVISION, null);
+
+ MajorRevision rev = null;
+ if (revStr != null) {
+ try {
+ rev = MajorRevision.parseRevision(revStr);
+ } catch (NumberFormatException ignore) {}
+ }
+ if (rev == null) {
+ rev = new MajorRevision(revision);
+ }
+
+ mRevision = rev;
}
/**
@@ -93,7 +105,7 @@ public abstract class MajorRevisionPackage extends Package {
@Override
public void saveProperties(Properties props) {
super.saveProperties(props);
- props.setProperty(PkgProps.PKG_MAJOR_REV, Integer.toString(mRevision.getMajor()));
+ props.setProperty(PkgProps.PKG_REVISION, mRevision.toString());
}
@Override
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/PkgProps.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/PkgProps.java
index 4406b42..571a4a6 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/PkgProps.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/PkgProps.java
@@ -29,6 +29,7 @@ package com.android.sdklib.repository;
public class PkgProps {
// Base Package
+ public static final String PKG_REVISION = "Pkg.Revision"; //$NON-NLS-1$
public static final String PKG_LICENSE = "Pkg.License"; //$NON-NLS-1$
public static final String PKG_DESC = "Pkg.Desc"; //$NON-NLS-1$
public static final String PKG_DESC_URL = "Pkg.DescUrl"; //$NON-NLS-1$
@@ -37,13 +38,6 @@ public class PkgProps {
public static final String PKG_SOURCE_URL = "Pkg.SourceUrl"; //$NON-NLS-1$
public static final String PKG_OBSOLETE = "Pkg.Obsolete"; //$NON-NLS-1$
- // FullRevision
- // Note that MajorRev keeps the legacy "Pkg.Revision" property name for legacy compatibility.
- public static final String PKG_MAJOR_REV = "Pkg.Revision"; //$NON-NLS-1$
- public static final String PKG_MINOR_REV = "Pkg.MinorRev"; //$NON-NLS-1$
- public static final String PKG_MICRO_REV = "Pkg.MicroRev"; //$NON-NLS-1$
- public static final String PKG_PREVIEW_REV = "Pkg.PreviewRev"; //$NON-NLS-1$
-
// AndroidVersion
public static final String VERSION_API_LEVEL = "AndroidVersion.ApiLevel";//$NON-NLS-1$
diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionPackageTest.java b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionPackageTest.java
index d816256..9bf2703 100755
--- a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionPackageTest.java
+++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionPackageTest.java
@@ -34,14 +34,7 @@ public class FullRevisionPackageTest extends TestCase {
public static Properties createProps(FullRevision revision) {
Properties props = new Properties();
if (revision != null) {
- props.setProperty(PkgProps.PKG_MAJOR_REV,
- Integer.toString(revision.getMajor()));
- props.setProperty(PkgProps.PKG_MINOR_REV,
- Integer.toString(revision.getMinor()));
- props.setProperty(PkgProps.PKG_MICRO_REV,
- Integer.toString(revision.getMicro()));
- props.setProperty(PkgProps.PKG_PREVIEW_REV,
- Integer.toString(revision.getPreview()));
+ props.setProperty(PkgProps.PKG_REVISION, revision.toString());
}
return props;
}
diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java
index 97e76bb..d072d05 100755
--- a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java
+++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/FullRevisionTest.java
@@ -20,16 +20,6 @@ import junit.framework.TestCase;
public class FullRevisionTest extends TestCase {
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
public final void testFullRevision() {
FullRevision p = new FullRevision(5);
assertEquals(5, p.getMajor());
@@ -38,7 +28,9 @@ public class FullRevisionTest extends TestCase {
assertEquals(FullRevision.NOT_A_PREVIEW, p.getPreview());
assertFalse (p.isPreview());
assertEquals("5", p.toShortString());
+ assertEquals(p, FullRevision.parseRevision("5"));
assertEquals("5.0.0", p.toString());
+ assertEquals(p, FullRevision.parseRevision("5.0.0"));
p = new FullRevision(5, 0, 0, 6);
assertEquals(5, p.getMajor());
@@ -47,7 +39,9 @@ public class FullRevisionTest extends TestCase {
assertEquals(6, p.getPreview());
assertTrue (p.isPreview());
assertEquals("5 rc6", p.toShortString());
+ assertEquals(p, FullRevision.parseRevision("5 rc6"));
assertEquals("5.0.0 rc6", p.toString());
+ assertEquals(p, FullRevision.parseRevision("5.0.0 rc6"));
p = new FullRevision(6, 7, 0);
assertEquals(6, p.getMajor());
@@ -56,7 +50,9 @@ public class FullRevisionTest extends TestCase {
assertEquals(0, p.getPreview());
assertFalse (p.isPreview());
assertEquals("6.7", p.toShortString());
+ assertEquals(p, FullRevision.parseRevision("6.7"));
assertEquals("6.7.0", p.toString());
+ assertEquals(p, FullRevision.parseRevision("6.7.0"));
p = new FullRevision(10, 11, 12, FullRevision.NOT_A_PREVIEW);
assertEquals(10, p.getMajor());
@@ -66,6 +62,7 @@ public class FullRevisionTest extends TestCase {
assertFalse (p.isPreview());
assertEquals("10.11.12", p.toShortString());
assertEquals("10.11.12", p.toString());
+ assertEquals(p, FullRevision.parseRevision("10.11.12"));
p = new FullRevision(10, 11, 12, 13);
assertEquals(10, p.getMajor());
@@ -75,6 +72,48 @@ public class FullRevisionTest extends TestCase {
assertTrue (p.isPreview());
assertEquals("10.11.12 rc13", p.toShortString());
assertEquals("10.11.12 rc13", p.toString());
+ assertEquals(p, FullRevision.parseRevision("10.11.12 rc13"));
+ assertEquals(p, FullRevision.parseRevision(" 10.11.12 rc13"));
+ assertEquals(p, FullRevision.parseRevision("10.11.12 rc13 "));
+ assertEquals(p, FullRevision.parseRevision(" 10.11.12 rc13 "));
+ }
+
+ public final void testParseError() {
+ String errorMsg = null;
+ try {
+ FullRevision.parseRevision("not a number");
+ fail("FullRevision.parseRevision should thrown NumberFormatException");
+ } catch (NumberFormatException e) {
+ errorMsg = e.getMessage();
+ }
+ assertEquals("Invalid full revision: not a number", errorMsg);
+
+ errorMsg = null;
+ try {
+ FullRevision.parseRevision("5 .6 .7");
+ fail("FullRevision.parseRevision should thrown NumberFormatException");
+ } catch (NumberFormatException e) {
+ errorMsg = e.getMessage();
+ }
+ assertEquals("Invalid full revision: 5 .6 .7", errorMsg);
+
+ errorMsg = null;
+ try {
+ FullRevision.parseRevision("5.0.0 preview 1");
+ fail("FullRevision.parseRevision should thrown NumberFormatException");
+ } catch (NumberFormatException e) {
+ errorMsg = e.getMessage();
+ }
+ assertEquals("Invalid full revision: 5.0.0 preview 1", errorMsg);
+
+ errorMsg = null;
+ try {
+ FullRevision.parseRevision(" 5.1.2 rc 42 ");
+ fail("FullRevision.parseRevision should thrown NumberFormatException");
+ } catch (NumberFormatException e) {
+ errorMsg = e.getMessage();
+ }
+ assertEquals("Invalid full revision: 5.1.2 rc 42 ", errorMsg);
}
public final void testCompareTo() {
diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/MajorRevisionTest.java b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/MajorRevisionTest.java
new file mode 100755
index 0000000..b77caad
--- /dev/null
+++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/MajorRevisionTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.internal.repository.packages;
+
+import junit.framework.TestCase;
+
+public class MajorRevisionTest extends TestCase {
+
+ public final void testMajorRevision() {
+ MajorRevision p = new MajorRevision(5);
+ assertEquals(5, p.getMajor());
+ assertEquals(FullRevision.IMPLICIT_MINOR_REV, p.getMinor());
+ assertEquals(FullRevision.IMPLICIT_MICRO_REV, p.getMicro());
+ assertEquals(FullRevision.NOT_A_PREVIEW, p.getPreview());
+ assertFalse (p.isPreview());
+ assertEquals("5", p.toShortString());
+ assertEquals(p, MajorRevision.parseRevision("5"));
+ assertEquals("5", p.toString());
+
+ assertEquals(new FullRevision(5, 0, 0, 0), p);
+ }
+
+ public final void testParseError() {
+ String errorMsg = null;
+ try {
+ MajorRevision.parseRevision("5.0.0");
+ fail("MajorRevision.parseRevision should thrown NumberFormatException");
+ } catch (NumberFormatException e) {
+ errorMsg = e.getMessage();
+ }
+ assertEquals("For input string: \"5.0.0\"", errorMsg);
+ }
+
+ public final void testCompareTo() {
+ MajorRevision s4 = new MajorRevision(4);
+ MajorRevision i4 = new MajorRevision(4);
+ FullRevision g5 = new FullRevision (5, 1, 0, 6);
+ MajorRevision y5 = new MajorRevision(5);
+ FullRevision c5 = new FullRevision (5, 1, 0, 6);
+ FullRevision o5 = new FullRevision (5, 0, 0, 7);
+ FullRevision p5 = new FullRevision (5, 1, 0, 0);
+
+ assertEquals(s4, i4); // 4.0.0-0 == 4.0.0-0
+ assertEquals(g5, c5); // 5.1.0-6 == 5.1.0-6
+
+ assertFalse(y5.equals(p5)); // 5.0.0-0 != 5.1.0-0
+ assertFalse(g5.equals(p5)); // 5.1.0-6 != 5.1.0-0
+ assertTrue (s4.compareTo(i4) == 0); // 4.0.0-0 == 4.0.0-0
+ assertTrue (s4.compareTo(y5) < 0); // 4.0.0-0 < 5.0.0-0
+ assertTrue (y5.compareTo(y5) == 0); // 5.0.0-0 == 5.0.0-0
+ assertTrue (y5.compareTo(p5) < 0); // 5.0.0-0 < 5.1.0-0
+ assertTrue (o5.compareTo(y5) < 0); // 5.0.0-7 < 5.0.0-0
+ assertTrue (p5.compareTo(p5) == 0); // 5.1.0-0 == 5.1.0-0
+ assertTrue (c5.compareTo(p5) < 0); // 5.1.0-6 < 5.1.0-0
+ assertTrue (p5.compareTo(c5) > 0); // 5.1.0-0 > 5.1.0-6
+ assertTrue (p5.compareTo(o5) > 0); // 5.1.0-0 > 5.0.0-7
+ assertTrue (c5.compareTo(o5) > 0); // 5.1.0-6 > 5.0.0-7
+ assertTrue (o5.compareTo(o5) == 0); // 5.0.0-7 > 5.0.0-7
+ }
+
+}
diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/PackageTest.java b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/PackageTest.java
index 6023b5a..f4d7b56 100755
--- a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/PackageTest.java
+++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/internal/repository/packages/PackageTest.java
@@ -136,7 +136,7 @@ public class PackageTest extends TestCase {
Properties props = new Properties();
// Package properties
- props.setProperty(PkgProps.PKG_MAJOR_REV, "42");
+ props.setProperty(PkgProps.PKG_REVISION, "42");
props.setProperty(PkgProps.PKG_LICENSE, "The License");
props.setProperty(PkgProps.PKG_DESC, "Some description.");
props.setProperty(PkgProps.PKG_DESC_URL, "http://description/url");
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AboutDialog.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AboutDialog.java
index 6352bdb..35e3420 100755
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AboutDialog.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AboutDialog.java
@@ -107,7 +107,7 @@ public class AboutDialog extends UpdaterBaseDialog {
}
}
- String revision = p.getProperty(PkgProps.PKG_MAJOR_REV);
+ String revision = p.getProperty(PkgProps.PKG_REVISION);
if (revision != null) {
return revision;
}