From 03df0cf8cd76e11a1b02dd051cbfa7344d647168 Mon Sep 17 00:00:00 2001
From: Sergio Zharinov <zharinov@users.noreply.github.com>
Date: Wed, 17 Apr 2019 01:21:49 +0400
Subject: [PATCH] refactor: Maven versioning scheme (#3550)

---
 lib/versioning/maven/compare.js |  6 +++---
 lib/versioning/maven/index.js   | 32 ++++++++++++--------------------
 2 files changed, 15 insertions(+), 23 deletions(-)

diff --git a/lib/versioning/maven/compare.js b/lib/versioning/maven/compare.js
index 5bb34ca573..5123672f7d 100644
--- a/lib/versioning/maven/compare.js
+++ b/lib/versioning/maven/compare.js
@@ -215,7 +215,7 @@ function compare(left, right) {
   return 0;
 }
 
-function isPrimitiveVersion(version) {
+function isSingleVersion(version) {
   // istanbul ignore if
   if (!version) return false;
   if (!/^[a-z0-9.-]+$/i.test(version)) return false;
@@ -229,7 +229,7 @@ function isVersion(str) {
   if (!str) {
     return false;
   }
-  return isPrimitiveVersion(str) || !!parseRange(str);
+  return isSingleVersion(str) || !!parseRange(str);
 }
 
 const INCLUDING_POINT = 'INCLUDING_POINT';
@@ -396,7 +396,7 @@ module.exports = {
   TYPE_QUALIFIER,
   tokenize,
   compare,
-  isPrimitiveVersion,
+  isSingleVersion,
   isVersion,
   parseRange,
   rangeToStr,
diff --git a/lib/versioning/maven/index.js b/lib/versioning/maven/index.js
index 3ae9e68585..6d09c121b4 100644
--- a/lib/versioning/maven/index.js
+++ b/lib/versioning/maven/index.js
@@ -4,7 +4,7 @@ const {
   compare,
   TYPE_NUMBER,
   TYPE_QUALIFIER,
-  isPrimitiveVersion,
+  isSingleVersion,
   autoExtendMavenRange,
   parseRange,
   EXCLUDING_POINT,
@@ -14,7 +14,7 @@ const equals = (a, b) => compare(a, b) === 0;
 
 function matches(a, b) {
   if (!b) return false;
-  if (isPrimitiveVersion(b)) return compare(a, b) === 0;
+  if (isSingleVersion(b)) return equals(a, b);
   const ranges = parseRange(b);
   if (!ranges) return false;
   return ranges.reduce((result, range) => {
@@ -44,7 +44,7 @@ function matches(a, b) {
 }
 
 const getMajor = version => {
-  if (isVersion(version)) {
+  if (isSingleVersion(version)) {
     const tokens = tokenize(version);
     const majorToken = tokens[0];
     return majorToken.val;
@@ -53,7 +53,7 @@ const getMajor = version => {
 };
 
 const getMinor = version => {
-  if (isVersion(version)) {
+  if (isSingleVersion(version)) {
     const tokens = tokenize(version);
     const minorToken = tokens[1];
     if (minorToken && minorToken.type === TYPE_NUMBER) {
@@ -65,7 +65,7 @@ const getMinor = version => {
 };
 
 const getPatch = version => {
-  if (isVersion(version)) {
+  if (isSingleVersion(version)) {
     const tokens = tokenize(version);
     const minorToken = tokens[1];
     const patchToken = tokens[2];
@@ -84,23 +84,15 @@ const getPatch = version => {
 const isGreaterThan = (a, b) => compare(a, b) === 1;
 
 const isStable = version => {
-  if (isVersion(version)) {
+  if (isSingleVersion(version)) {
     const tokens = tokenize(version);
     const qualToken = tokens.find(token => token.type === TYPE_QUALIFIER);
     if (qualToken) {
       const val = qualToken.val;
-      if (val === 'final') {
-        return true;
-      }
-      if (val === 'ga') {
-        return true;
-      }
-      if (val === 'release') {
-        return true;
-      }
-      if (val === 'sp') {
-        return true;
-      }
+      if (val === 'final') return true;
+      if (val === 'ga') return true;
+      if (val === 'release') return true;
+      if (val === 'sp') return true;
       // istanbul ignore next
       return false;
     }
@@ -113,7 +105,7 @@ const maxSatisfyingVersion = (versions, range) =>
   versions.find(version => equals(version, range));
 
 function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) {
-  return isPrimitiveVersion(currentValue)
+  return isSingleVersion(currentValue)
     ? toVersion
     : autoExtendMavenRange(currentValue, toVersion);
 }
@@ -125,7 +117,7 @@ module.exports = {
   getPatch,
   isCompatible: isVersion,
   isGreaterThan,
-  isSingleVersion: isVersion,
+  isSingleVersion,
   isStable,
   isValid: isVersion,
   isVersion,
-- 
GitLab