Skip to content

Commit c3a17bb

Browse files
committed
Added java major version check utilities
1 parent afe15ff commit c3a17bb

File tree

4 files changed

+76
-3
lines changed

4 files changed

+76
-3
lines changed

docgen/parameters.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"title" : "Jupiter (Fugerit Core A.P.I.)",
33
"name": "Jupiter",
4-
"version" : "0.8.4",
5-
"date" : "08/12/2021",
4+
"version" : "0.8.5",
5+
"date" : "20/12/2021",
66
"organization" : {
77
"name" : "Fugerit Org",
88
"url" : "https://www.fugerit.org"

docgen/release-notes.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
0.8.4 (2022-12-08)
1+
0.8.5 (2022-12-20)
2+
------------------
3+
+ Added java major version check utilities
4+
5+
0.8.4 (2022-12-08)
26
------------------
37
+ Added some Exception and RuntimeException utilities
48

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package org.fugerit.java.core.lang.helpers;
2+
3+
import org.fugerit.java.core.cfg.ConfigRuntimeException;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
7+
public class JavaVersionHelper {
8+
9+
public static final int MAJOR_VERSION_JAVA_8 = 8;
10+
11+
public static final int MAJOR_VERSION_JAVA_9 = 9;
12+
13+
public static final int MAJOR_VERSION_JAVA_10 = 10;
14+
15+
public static final int MAJOR_VERSION_JAVA_11 = 11;
16+
17+
public static final int MAJOR_VERSION_FJ_CORE_REF = MAJOR_VERSION_JAVA_8; // current reference version for fj-core library!
18+
19+
private static final Logger logger = LoggerFactory.getLogger( JavaVersionHelper.class );
20+
21+
private static final String SYS_PROP = "java.version";
22+
23+
private static final String REMOVE_1_X = "1.";
24+
25+
public static final int UNDEFINED = -1;
26+
27+
public static int parseUniversalJavaMajorVersion() {
28+
int res = UNDEFINED;
29+
String javaVersion = System.getProperty( SYS_PROP );
30+
if ( StringUtils.isEmpty( javaVersion ) ) {
31+
throw new ConfigRuntimeException( "null property "+SYS_PROP );
32+
} else {
33+
logger.info( "{} -> {}", SYS_PROP, javaVersion );
34+
if ( javaVersion.startsWith( REMOVE_1_X ) ) {
35+
javaVersion = javaVersion.substring( REMOVE_1_X.length() );
36+
}
37+
int index = javaVersion.indexOf( '.' );
38+
if ( index != -1 ) {
39+
res = Integer.parseInt( javaVersion.substring( 0, index ) );
40+
if ( res < MAJOR_VERSION_FJ_CORE_REF ) {
41+
logger.info( "major version found : '{}' is lower than minimum required -> '{}'", res, MAJOR_VERSION_FJ_CORE_REF );
42+
}
43+
}
44+
logger.info( "parseUniversalJavaMajorVersion -> '{}'", res );
45+
}
46+
return res;
47+
}
48+
49+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package test.org.fugerit.java.core.lang.helpers;
2+
3+
import org.fugerit.java.core.lang.helpers.JavaVersionHelper;
4+
import org.junit.Assert;
5+
import org.junit.Test;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
public class TestJavaVersionHelper {
10+
11+
private static final Logger logger = LoggerFactory.getLogger(TestJavaVersionHelper.class);
12+
13+
@Test
14+
public void test() {
15+
int majorVersion = JavaVersionHelper.parseUniversalJavaMajorVersion();
16+
logger.info("major version -> '{}'", majorVersion);
17+
Assert.assertEquals( "Wrong java major version" , JavaVersionHelper.MAJOR_VERSION_FJ_CORE_REF, majorVersion );
18+
}
19+
20+
}

0 commit comments

Comments
 (0)