Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit 65100ec

Browse files
committed
[refactoring] simplified function extractJavaMajorVersion()
test results: ######################################################## Testing function extractJavaMajorVersion() Tests with Java 1.6: [TEST OK] Extracted Java major version '6' for Java '1.6' [TEST OK] Extracted Java major version '6' for Java '1.6+' [TEST OK] Extracted Java major version '6' for Java '1.6.0' [TEST OK] Extracted Java major version '6' for Java '1.6.0_07' [TEST OK] Extracted Java major version '6' for Java '1.6.0_45' Tests with Java 1.7: [TEST OK] Extracted Java major version '7' for Java '1.7' [TEST OK] Extracted Java major version '7' for Java '1.7*' [TEST OK] Extracted Java major version '7' for Java '1.7.0' [TEST OK] Extracted Java major version '7' for Java '1.7.0_09' [TEST OK] Extracted Java major version '7' for Java '1.7.0_79' Tests with Java 1.8: [TEST OK] Extracted Java major version '8' for Java '1.8' [TEST OK] Extracted Java major version '8' for Java '1.8+' [TEST OK] Extracted Java major version '8' for Java '1.8.0' [TEST OK] Extracted Java major version '8' for Java '1.8.0_05' [TEST OK] Extracted Java major version '8' for Java '1.8.0_91' [TEST OK] Extracted Java major version '8' for Java '1.8.0_131' Tests with Java 9: [TEST OK] Extracted Java major version '9' for Java '9' [TEST OK] Extracted Java major version '9' for Java '9-ea' [TEST OK] Extracted Java major version '9' for Java '9.1*' [TEST OK] Extracted Java major version '9' for Java '9.0.1' [TEST OK] Extracted Java major version '9' for Java '9.0.1+' [TEST OK] Extracted Java major version '9' for Java '9.0.23' [TEST OK] Extracted Java major version '9' for Java '9.10.120' [TEST OK] Extracted Java major version '9' for Java '9.10.120+' [TEST OK] Extracted Java major version '9' for Java '9.100.120+' Tests with Java 10: [TEST OK] Extracted Java major version '10' for Java '10' [TEST OK] Extracted Java major version '10' for Java '10-ea' [TEST OK] Extracted Java major version '10' for Java '10.1+' [TEST OK] Extracted Java major version '10' for Java '10.0.1' [TEST OK] Extracted Java major version '10' for Java '10.0.1*' [TEST OK] Extracted Java major version '10' for Java '10.0.23' [TEST OK] Extracted Java major version '10' for Java '10.10.120' [TEST OK] Extracted Java major version '10' for Java '10.10.120+' [TEST OK] Extracted Java major version '10' for Java '10.100.120+'
1 parent fe19f50 commit 65100ec

2 files changed

Lines changed: 20 additions & 26 deletions

File tree

src/universalJavaApplicationStub

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -314,21 +314,10 @@ function extractJavaVersionString() {
314314

315315

316316
# helper function:
317-
# extract Java major version from java version string
318-
# - input '1.7.0_76' returns '7'
319-
# - input '1.8.0_121' returns '8'
320-
# - input '9-ea' returns '9'
321-
# - input '9.0.3' returns '9'
317+
# extract Java major version from a Java version string
322318
##########################################################
323319
function extractJavaMajorVersion() {
324-
java_ver=$1
325-
# Java 6, 7, 8 start with '1.x'
326-
if [ "${java_ver:0:2}" == "1." ] ; then
327-
echo ${java_ver} | sed -E 's/1\.([0-8])[0-9_.]{2,6}/\1/g'
328-
else
329-
# Java 9+ start with 'x' using semver versioning
330-
echo ${java_ver} | sed -E 's/([0-9]+)(-ea|(\.[0-9]+)*)/\1/g'
331-
fi
320+
echo $(echo "$1" | sed -E 's/^1\.//;s/^([0-9]+)(-ea|(\.[0-9_.]{1,7})?)[+*]?$/\1/')
332321
}
333322

334323

test/java-version-tester.sh

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,10 @@ function extractJavaVersionString() {
1616

1717

1818
# helper function:
19-
# extract Java major version from java version string
20-
# - input '1.7.0_76' returns '7'
21-
# - input '1.8.0_121' returns '8'
22-
# - input '9-ea' returns '9'
23-
# - input '9.0.3' returns '9'
19+
# extract Java major version from a Java version string
2420
##########################################################
2521
function extractJavaMajorVersion() {
26-
java_ver=$1
27-
# Java 6, 7, 8 start with '1.x'
28-
if [ "${java_ver:0:2}" == "1." ] ; then
29-
echo ${java_ver} | sed -E 's/1\.([0-8])[0-9_.]{2,6}/\1/g'
30-
else
31-
# Java 9+ start with 'x' using semver versioning
32-
echo ${java_ver} | sed -E 's/([0-9]+)(-ea|(\.[0-9]+)*)/\1/g'
33-
fi
22+
echo $(echo "$1" | sed -E 's/^1\.//;s/^([0-9]+)(-ea|(\.[0-9_.]{1,7})?)[+*]?$/\1/')
3423
}
3524

3625

@@ -116,32 +105,48 @@ echo "########################################################"
116105
echo "Testing function extractJavaMajorVersion()"
117106
echo ""
118107
echo "Tests with Java 1.6:"
108+
testExtractMajor "1.6" "6"
109+
testExtractMajor "1.6+" "6"
119110
testExtractMajor "1.6.0" "6"
120111
testExtractMajor "1.6.0_07" "6"
121112
testExtractMajor "1.6.0_45" "6"
122113
echo ""
123114
echo "Tests with Java 1.7:"
115+
testExtractMajor "1.7" "7"
116+
testExtractMajor "1.7*" "7"
124117
testExtractMajor "1.7.0" "7"
125118
testExtractMajor "1.7.0_09" "7"
126119
testExtractMajor "1.7.0_79" "7"
127120
echo ""
128121
echo "Tests with Java 1.8:"
122+
testExtractMajor "1.8" "8"
123+
testExtractMajor "1.8+" "8"
129124
testExtractMajor "1.8.0" "8"
130125
testExtractMajor "1.8.0_05" "8"
131126
testExtractMajor "1.8.0_91" "8"
132127
testExtractMajor "1.8.0_131" "8"
133128
echo ""
134129
echo "Tests with Java 9:"
130+
testExtractMajor "9" "9"
135131
testExtractMajor "9-ea" "9"
132+
testExtractMajor "9.1*" "9"
136133
testExtractMajor "9.0.1" "9"
134+
testExtractMajor "9.0.1+" "9"
137135
testExtractMajor "9.0.23" "9"
138136
testExtractMajor "9.10.120" "9"
137+
testExtractMajor "9.10.120+" "9"
138+
testExtractMajor "9.100.120+" "9"
139139
echo ""
140140
echo "Tests with Java 10:"
141+
testExtractMajor "10" "10"
141142
testExtractMajor "10-ea" "10"
143+
testExtractMajor "10.1+" "10"
142144
testExtractMajor "10.0.1" "10"
145+
testExtractMajor "10.0.1*" "10"
143146
testExtractMajor "10.0.23" "10"
144147
testExtractMajor "10.10.120" "10"
148+
testExtractMajor "10.10.120+" "10"
149+
testExtractMajor "10.100.120+" "10"
145150

146151

147152
# test function:

0 commit comments

Comments
 (0)