diff --git a/src/main/java/com/avaje/ebean/dbmigration/model/MigrationVersion.java b/src/main/java/com/avaje/ebean/dbmigration/model/MigrationVersion.java index c338ccde5..11ed26603 100644 --- a/src/main/java/com/avaje/ebean/dbmigration/model/MigrationVersion.java +++ b/src/main/java/com/avaje/ebean/dbmigration/model/MigrationVersion.java @@ -168,7 +168,7 @@ public class MigrationVersion implements Comparable { value = value.replace('_', '.'); - String[] sections = value.split("\\."); + String[] sections = value.split("[\\.-]"); if ("r".equalsIgnoreCase(sections[0])) { // a "repeatable" version (does not have a version number) diff --git a/src/test/java/com/avaje/ebean/dbmigration/model/MigrationVersionTest.java b/src/test/java/com/avaje/ebean/dbmigration/model/MigrationVersionTest.java index c1b8f73cc..6d02dfe57 100644 --- a/src/test/java/com/avaje/ebean/dbmigration/model/MigrationVersionTest.java +++ b/src/test/java/com/avaje/ebean/dbmigration/model/MigrationVersionTest.java @@ -30,6 +30,22 @@ public class MigrationVersionTest { assertThat(list.get(4).getComment()).isEqualTo("beta"); } + @Test + public void test_parse_hyphenSnapshot() { + + MigrationVersion version = MigrationVersion.parse("0.1.1-SNAPSHOT"); + assertThat(version.normalised()).isEqualTo("0.1.1"); + assertThat(version.getComment()).isEqualTo(""); + } + + @Test + public void test_parse_hyphenSnapshot_when_underscores() { + + MigrationVersion version = MigrationVersion.parse("0_1_1-SNAPSHOT__Foo"); + assertThat(version.normalised()).isEqualTo("0.1.1"); + assertThat(version.getComment()).isEqualTo("Foo"); + } + @Test public void test_parse_when_repeatable() throws Exception {