diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginCondition.java b/scm-core/src/main/java/sonia/scm/plugin/PluginCondition.java index 8fab066523..479c6be9a5 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginCondition.java +++ b/scm-core/src/main/java/sonia/scm/plugin/PluginCondition.java @@ -41,6 +41,7 @@ import sonia.scm.PlatformType; import sonia.scm.SCMContext; import sonia.scm.util.SystemUtil; import sonia.scm.util.Util; +import sonia.scm.version.Version; //~--- JDK imports ------------------------------------------------------------ @@ -235,7 +236,7 @@ public class PluginCondition implements Cloneable, Serializable if (Util.isNotEmpty(minVersion) && Util.isNotEmpty(version)) { supported = (minVersion.equalsIgnoreCase(version) - || new PluginVersion(version).isNewer(minVersion)); + || new Version(version).isNewer(minVersion)); } if (supported && Util.isNotEmpty(this.os) && Util.isNotEmpty(os)) diff --git a/scm-core/src/main/java/sonia/scm/upgrade/UpgradeHandler.java b/scm-core/src/main/java/sonia/scm/upgrade/UpgradeHandler.java index d08760e07e..47aeb51833 100644 --- a/scm-core/src/main/java/sonia/scm/upgrade/UpgradeHandler.java +++ b/scm-core/src/main/java/sonia/scm/upgrade/UpgradeHandler.java @@ -34,7 +34,7 @@ package sonia.scm.upgrade; //~--- non-JDK imports -------------------------------------------------------- -import sonia.scm.plugin.PluginVersion; +import sonia.scm.version.Version; //~--- JDK imports ------------------------------------------------------------ @@ -59,5 +59,5 @@ public interface UpgradeHandler * @param newVersion new version */ public void doUpgrade(File homeDirectory, File configDirectory, - PluginVersion oldVersion, PluginVersion newVersion); + Version oldVersion, Version newVersion); } diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java b/scm-core/src/main/java/sonia/scm/version/Version.java similarity index 91% rename from scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java rename to scm-core/src/main/java/sonia/scm/version/Version.java index 0982e8b669..09efe75cb8 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginVersion.java +++ b/scm-core/src/main/java/sonia/scm/version/Version.java @@ -31,7 +31,7 @@ -package sonia.scm.plugin; +package sonia.scm.version; //~--- non-JDK imports -------------------------------------------------------- @@ -49,16 +49,15 @@ import java.util.Locale; /** * Version object for comparing and parsing versions. * - * TODO for 2.0: rename to version and move to another package. * * @author Sebastian Sdorra */ -public class PluginVersion implements Comparable +public final class Version implements Comparable { - /** the logger for PluginVersion */ + /** the logger for Version */ private static final Logger logger = - LoggerFactory.getLogger(PluginVersion.class); + LoggerFactory.getLogger(Version.class); //~--- constructors --------------------------------------------------------- @@ -68,12 +67,12 @@ public class PluginVersion implements Comparable * * @param versionString string representation of the version */ - public PluginVersion(String versionString) + public Version(String versionString) { this.unparsedVersion = versionString; int index = versionString.indexOf('-'); - String versionPart = null; + String versionPart; String qualifierPart = null; if (index > 0) @@ -87,7 +86,7 @@ public class PluginVersion implements Comparable } parseVersionPart(versionPart); - type = PluginVersionType.RELEASE; + type = VersionType.RELEASE; if (qualifierPart != null) { @@ -109,13 +108,13 @@ public class PluginVersion implements Comparable * * @return version object */ - public static PluginVersion createVersion(String versionString) + public static Version createVersion(String versionString) { - PluginVersion version = null; + Version version = null; try { - version = new PluginVersion(versionString); + version = new Version(versionString); } catch (NumberFormatException ex) { @@ -132,7 +131,7 @@ public class PluginVersion implements Comparable * {@inheritDoc} */ @Override - public int compareTo(PluginVersion o) + public int compareTo(Version o) { Preconditions.checkNotNull(o); @@ -164,7 +163,7 @@ public class PluginVersion implements Comparable return false; } - final PluginVersion other = (PluginVersion) obj; + final Version other = (Version) obj; return Objects.equal(major, other.major) && Objects.equal(minor, other.minor) @@ -246,7 +245,7 @@ public class PluginVersion implements Comparable * * @return version type */ - public PluginVersionType getType() + public VersionType getType() { return type; } @@ -280,7 +279,7 @@ public class PluginVersion implements Comparable * * @return true if newer */ - public boolean isNewer(PluginVersion o) + public boolean isNewer(Version o) { return compareTo(o) < 0; } @@ -295,7 +294,7 @@ public class PluginVersion implements Comparable */ public boolean isNewer(String versionString) { - PluginVersion o = PluginVersion.createVersion(versionString); + Version o = Version.createVersion(versionString); return (o != null) && isNewer(o); } @@ -308,7 +307,7 @@ public class PluginVersion implements Comparable * * @return true if older */ - public boolean isOlder(PluginVersion o) + public boolean isOlder(Version o) { return compareTo(o) > 0; } @@ -323,7 +322,7 @@ public class PluginVersion implements Comparable */ public boolean isOlder(String versionString) { - PluginVersion o = PluginVersion.createVersion(versionString); + Version o = Version.createVersion(versionString); return (o != null) && isOlder(o); } @@ -386,7 +385,7 @@ public class PluginVersion implements Comparable if (qualifier.length() > 0) { - for (PluginVersionType versionType : PluginVersionType.values()) + for (VersionType versionType : VersionType.values()) { for (String name : versionType.getNames()) { @@ -492,7 +491,7 @@ public class PluginVersion implements Comparable private boolean snapshot; /** version type */ - private PluginVersionType type; + private VersionType type; /** type version */ private int typeVersion = 1; diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginVersionType.java b/scm-core/src/main/java/sonia/scm/version/VersionType.java similarity index 95% rename from scm-core/src/main/java/sonia/scm/plugin/PluginVersionType.java rename to scm-core/src/main/java/sonia/scm/version/VersionType.java index bddf88f5b3..ad057cc823 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginVersionType.java +++ b/scm-core/src/main/java/sonia/scm/version/VersionType.java @@ -31,7 +31,7 @@ -package sonia.scm.plugin; +package sonia.scm.version; //~--- JDK imports ------------------------------------------------------------ @@ -44,7 +44,7 @@ import java.util.List; * * @author Sebastian Sdorra */ -public enum PluginVersionType +public enum VersionType { EARLY_ACESS("ea", 0, "early", "earlyaccess"), MILESTONE("M", 1, "milestone"), ALPHA("alpha", 2), BETA("beta", 3), @@ -56,7 +56,7 @@ public enum PluginVersionType * * @param value */ - private PluginVersionType(int value) + private VersionType(int value) { this(null, value); } @@ -70,7 +70,7 @@ public enum PluginVersionType * @param value * @param aliases */ - private PluginVersionType(String id, int value, String... aliases) + private VersionType(String id, int value, String... aliases) { this.id = id; this.value = value; diff --git a/scm-core/src/test/java/sonia/scm/plugin/PluginVersionTest.java b/scm-core/src/test/java/sonia/scm/version/VersionTest.java similarity index 68% rename from scm-core/src/test/java/sonia/scm/plugin/PluginVersionTest.java rename to scm-core/src/test/java/sonia/scm/version/VersionTest.java index 9f59b5fa72..eb9b79dd6c 100644 --- a/scm-core/src/test/java/sonia/scm/plugin/PluginVersionTest.java +++ b/scm-core/src/test/java/sonia/scm/version/VersionTest.java @@ -31,7 +31,7 @@ -package sonia.scm.plugin; +package sonia.scm.version; //~--- non-JDK imports -------------------------------------------------------- @@ -47,7 +47,7 @@ import java.util.Arrays; * * @author Sebastian Sdorra */ -public class PluginVersionTest +public class VersionTest { /** @@ -57,31 +57,31 @@ public class PluginVersionTest @Test public void parseSimpleVersion() { - PluginVersion v = new PluginVersion("1.0"); + Version v = new Version("1.0"); assertTrue(v.getMajor() == 1); assertTrue(v.getMinor() == 0); - assertTrue(v.getMaintenance() == 0); + assertTrue(v.getPatch() == 0); assertFalse(v.isSnapshot()); - assertTrue(v.getType() == PluginVersionType.RELEASE); + assertTrue(v.getType() == VersionType.RELEASE); assertEquals(v.getParsedVersion(), "1.0.0"); // test with snapshot - v = new PluginVersion("1.1-SNAPSHOT"); + v = new Version("1.1-SNAPSHOT"); assertTrue(v.getMajor() == 1); assertTrue(v.getMinor() == 1); - assertTrue(v.getMaintenance() == 0); + assertTrue(v.getPatch() == 0); assertTrue(v.isSnapshot()); - assertTrue(v.getType() == PluginVersionType.RELEASE); + assertTrue(v.getType() == VersionType.RELEASE); assertEquals(v.getParsedVersion(), "1.1.0-SNAPSHOT"); // test with maintenance - v = new PluginVersion("2.3.14"); + v = new Version("2.3.14"); assertTrue(v.getMajor() == 2); assertTrue(v.getMinor() == 3); - assertTrue(v.getMaintenance() == 14); + assertTrue(v.getPatch() == 14); assertFalse(v.isSnapshot()); - assertTrue(v.getType() == PluginVersionType.RELEASE); + assertTrue(v.getType() == VersionType.RELEASE); assertEquals(v.getParsedVersion(), "2.3.14"); } @@ -92,23 +92,23 @@ public class PluginVersionTest @Test public void parseTypeVersions() { - PluginVersion v = new PluginVersion("1.0-alpha"); + Version v = new Version("1.0-alpha"); assertTrue(v.getMajor() == 1); assertTrue(v.getMinor() == 0); - assertTrue(v.getMaintenance() == 0); + assertTrue(v.getPatch() == 0); assertFalse(v.isSnapshot()); - assertTrue(v.getType() == PluginVersionType.ALPHA); + assertTrue(v.getType() == VersionType.ALPHA); assertTrue(v.getTypeVersion() == 1); assertEquals(v.getParsedVersion(), "1.0.0-alpha1"); // Test release candidate - v = new PluginVersion("2.1.2-RC3"); + v = new Version("2.1.2-RC3"); assertTrue(v.getMajor() == 2); assertTrue(v.getMinor() == 1); - assertTrue(v.getMaintenance() == 2); + assertTrue(v.getPatch() == 2); assertFalse(v.isSnapshot()); - assertTrue(v.getType() == PluginVersionType.RELEASE_CANDIDAT); + assertTrue(v.getType() == VersionType.RELEASE_CANDIDAT); assertTrue(v.getTypeVersion() == 3); assertEquals(v.getParsedVersion(), "2.1.2-RC3"); } @@ -120,17 +120,17 @@ public class PluginVersionTest @Test public void testCompareTo() { - PluginVersion[] versions = new PluginVersion[9]; + Version[] versions = new Version[9]; - versions[0] = PluginVersion.createVersion("2.3.1-SNAPSHOT"); - versions[1] = PluginVersion.createVersion("2.3.1-beta1"); - versions[2] = PluginVersion.createVersion("2.3.1-beta2"); - versions[3] = PluginVersion.createVersion("2.3.1-M1"); - versions[4] = PluginVersion.createVersion("2.3.1-alpha2"); - versions[5] = PluginVersion.createVersion("2.3.1-RC1"); - versions[6] = PluginVersion.createVersion("2.3.1"); - versions[7] = PluginVersion.createVersion("2.3"); - versions[8] = PluginVersion.createVersion("2.4.6"); + versions[0] = Version.createVersion("2.3.1-SNAPSHOT"); + versions[1] = Version.createVersion("2.3.1-beta1"); + versions[2] = Version.createVersion("2.3.1-beta2"); + versions[3] = Version.createVersion("2.3.1-M1"); + versions[4] = Version.createVersion("2.3.1-alpha2"); + versions[5] = Version.createVersion("2.3.1-RC1"); + versions[6] = Version.createVersion("2.3.1"); + versions[7] = Version.createVersion("2.3"); + versions[8] = Version.createVersion("2.4.6"); Arrays.sort(versions); assertEquals(versions[0].getParsedVersion(), "2.4.6"); assertEquals(versions[1].getParsedVersion(), "2.3.1"); @@ -150,9 +150,9 @@ public class PluginVersionTest @Test public void testIsNewer() { - assertFalse(PluginVersion.createVersion("1.0").isNewer("1.0.1")); - assertTrue(PluginVersion.createVersion("1.1").isNewer("1.1-alpha1")); - assertTrue(PluginVersion.createVersion("1.1").isNewer("1.1-RC5")); + assertFalse(Version.createVersion("1.0").isNewer("1.0.1")); + assertTrue(Version.createVersion("1.1").isNewer("1.1-alpha1")); + assertTrue(Version.createVersion("1.1").isNewer("1.1-RC5")); } /** @@ -162,8 +162,8 @@ public class PluginVersionTest @Test public void testIsOlder() { - assertFalse(PluginVersion.createVersion("1.0.1").isOlder("1.0")); - assertTrue(PluginVersion.createVersion("1.1-alpha1").isOlder("1.1")); - assertTrue(PluginVersion.createVersion("1.1-RC5").isOlder("1.1")); + assertFalse(Version.createVersion("1.0.1").isOlder("1.0")); + assertTrue(Version.createVersion("1.1-alpha1").isOlder("1.1")); + assertTrue(Version.createVersion("1.1-RC5").isOlder("1.1")); } }