From 0c7f95f0a706efcd264af7c010ff7fd503bcba6a Mon Sep 17 00:00:00 2001
From: Sergio Zharinov <zharinov@users.noreply.github.com>
Date: Fri, 24 Jan 2020 17:23:41 +0400
Subject: [PATCH] fix(maven): Additional support for Service Release (SR)
 versions (#5194)

---
 lib/versioning/maven/compare.ts | 6 ++++--
 test/versioning/maven.spec.ts   | 7 +++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/lib/versioning/maven/compare.ts b/lib/versioning/maven/compare.ts
index 913d3cc97c..38bb1b8e81 100644
--- a/lib/versioning/maven/compare.ts
+++ b/lib/versioning/maven/compare.ts
@@ -101,7 +101,8 @@ function isNull(token: Token): boolean {
     val === 'final' ||
     val === 'ga' ||
     val === 'release' ||
-    val === 'latest'
+    val === 'latest' ||
+    val === 'sr'
   );
 }
 
@@ -192,7 +193,8 @@ export function qualifierType(token: Token): number {
     val === 'final' ||
     val === 'ga' ||
     val === 'release' ||
-    val === 'latest'
+    val === 'latest' ||
+    val === 'sr'
   ) {
     return QualifierTypes.Release;
   }
diff --git a/test/versioning/maven.spec.ts b/test/versioning/maven.spec.ts
index dfe6d49e58..c50033a8dd 100644
--- a/test/versioning/maven.spec.ts
+++ b/test/versioning/maven.spec.ts
@@ -58,6 +58,8 @@ describe('versioning/maven/compare', () => {
     expect(compare('v0.0-1552', '0.0-1552')).toEqual(0);
     expect(compare('v0.0.1', '0.0.1')).toEqual(0);
     expect(compare('5.0.7', '5.0.7.RELEASE')).toEqual(0);
+    expect(compare('Hoxton.RELEASE', 'hoxton')).toEqual(0);
+    expect(compare('Hoxton.SR1', 'hoxton.sr-1')).toEqual(0);
   });
   it('returns less than', () => {
     expect(compare('1', '1.1')).toEqual(-1);
@@ -78,6 +80,7 @@ describe('versioning/maven/compare', () => {
     expect(compare('0.0.1', '999')).toEqual(-1);
     expect(compare('1.3-RC1-groovy-2.5', '1.3-groovy-2.5')).toEqual(-1);
     expect(compare('1-abc', '1-xyz')).toEqual(-1);
+    expect(compare('Hoxton.RELEASE', 'Hoxton.SR1')).toEqual(-1);
   });
   it('returns greater than', () => {
     expect(compare('1.1', '1')).toEqual(1);
@@ -98,6 +101,7 @@ describe('versioning/maven/compare', () => {
     expect(compare('999', '0.0.1')).toEqual(1);
     expect(compare('1.3-groovy-2.5', '1.3-RC1-groovy-2.5')).toEqual(1);
     expect(compare('1-xyz', '1-abc')).toEqual(1);
+    expect(compare('Hoxton.SR1', 'Hoxton.RELEASE')).toEqual(1);
   });
 
   const invalidRanges = [
@@ -297,6 +301,9 @@ describe('versioning/maven/index', () => {
     expect(isStable('1-ga-1')).toBe(true);
     expect(isStable('1.3-groovy-2.5')).toBe(true);
     expect(isStable('1.3-RC1-groovy-2.5')).toBe(false);
+    expect(isStable('Hoxton.RELEASE')).toBe(true);
+    expect(isStable('Hoxton.SR')).toBe(true);
+    expect(isStable('Hoxton.SR1')).toBe(true);
   });
   it('returns major version', () => {
     expect(getMajor('')).toBeNull();
-- 
GitLab