diff --git a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/XtextVersion.xtend b/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/XtextVersion.xtend
index 233ab6287..aa2b407cf 100644
--- a/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/XtextVersion.xtend
+++ b/plugins/org.eclipse.xtext.util/src/org/eclipse/xtext/util/XtextVersion.xtend
@@ -48,8 +48,8 @@ class XtextVersion {
version.endsWith("-SNAPSHOT")
}
- def isBeta() {
- version.matches(".*beta(\\d)*")
+ def isStable() {
+ return !isSnapshot && !version.matches("\\d+\\.\\d+(\\.\\d+)+")
}
def getXtendGradlePluginVersion() {
diff --git a/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend b/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
index 390b1249e..d870e0d34 100644
--- a/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
+++ b/plugins/org.eclipse.xtext.xtext.wizard/src/org/eclipse/xtext/xtext/wizard/TargetPlatformProject.xtend
@@ -71,7 +71,7 @@ class TargetPlatformProject extends ProjectDescriptor {
«IF config.xtextVersion.isSnapshot»
- «ELSEIF config.xtextVersion.isBeta»
+ «ELSEIF config.xtextVersion.isStable»
«ELSE»
diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/XtextVersionTests.java b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/XtextVersionTests.java
new file mode 100644
index 000000000..fd1231887
--- /dev/null
+++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/util/XtextVersionTests.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2015 itemis AG (http://www.itemis.eu) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.xtext.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * @author dhuebner - Initial contribution and API
+ */
+public class XtextVersionTests {
+
+ @Test
+ public void testVersionKinds() {
+
+ XtextVersion version = new XtextVersion("2.9.0-SNAPSHOT");
+ //snapshot
+ assertTrue(version.isSnapshot());
+ assertFalse(version.isStable());
+
+ // stable version pre-release
+ version = new XtextVersion("2.9.0.beta1");
+ assertFalse(version.isSnapshot());
+ assertTrue(version.isStable());
+
+ version = new XtextVersion("2.9.0.rc1");
+ assertFalse(version.isSnapshot());
+ assertTrue(version.isStable());
+
+ version = new XtextVersion("2.9.0.maybeSomthingElse");
+ assertFalse(version.isSnapshot());
+ assertTrue(version.isStable());
+
+ // releases
+ version = new XtextVersion("2.9.0");
+ assertFalse(version.isSnapshot());
+ assertFalse(version.isStable());
+
+ version = new XtextVersion("2.9.0.1");
+ assertFalse(version.isSnapshot());
+ assertFalse(version.isStable());
+
+ }
+
+}