Skip to content

Commit 3e96ec1

Browse files
authored
fix: removed max java version limitation (#67)
1 parent f9a86ef commit 3e96ec1

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

lib/android-tools-info.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ export class AndroidToolsInfo implements NativeScriptDoctor.IAndroidToolsInfo {
4141
private static REQUIRED_BUILD_TOOLS_RANGE_PREFIX = ">=23";
4242
private static VERSION_REGEX = /((\d+\.){2}\d+)/;
4343
private static MIN_JAVA_VERSION = "1.8.0";
44-
private static MAX_JAVA_VERSION = "13.0.0";
44+
// If some java release breaks the code then set this version to the breaking release (e.g. "13.0.0")
45+
private static MAX_JAVA_VERSION = null as string;
4546

4647
private toolsInfo: NativeScriptDoctor.IAndroidToolsInfoData;
4748
public get androidHome(): string {
@@ -107,6 +108,16 @@ export class AndroidToolsInfo implements NativeScriptDoctor.IAndroidToolsInfo {
107108
return errors;
108109
}
109110

111+
public static unsupportedJavaMessage(installedJavaCompilerVersion: string): string {
112+
return `Javac version ${installedJavaCompilerVersion} is not supported. You must install a java version greater than ${
113+
AndroidToolsInfo.MIN_JAVA_VERSION
114+
}${
115+
AndroidToolsInfo.MAX_JAVA_VERSION
116+
? ` and less than ${AndroidToolsInfo.MAX_JAVA_VERSION}`
117+
: ""
118+
}.`;
119+
}
120+
110121
public validateJavacVersion(installedJavaCompilerVersion: string, projectDir?: string, runtimeVersion?: string): NativeScriptDoctor.IWarning[] {
111122
const errors: NativeScriptDoctor.IWarning[] = [];
112123

@@ -123,8 +134,8 @@ export class AndroidToolsInfo implements NativeScriptDoctor.IAndroidToolsInfo {
123134
"^10.0.0": "4.1.0-2018.5.18.1"
124135
};
125136

126-
if (semver.lt(installedJavaCompilerSemverVersion, AndroidToolsInfo.MIN_JAVA_VERSION) || semver.gte(installedJavaCompilerSemverVersion, AndroidToolsInfo.MAX_JAVA_VERSION)) {
127-
warning = `Javac version ${installedJavaCompilerVersion} is not supported. You have to install at least ${AndroidToolsInfo.MIN_JAVA_VERSION} and below ${AndroidToolsInfo.MAX_JAVA_VERSION}.`;
137+
if (semver.lt(installedJavaCompilerSemverVersion, AndroidToolsInfo.MIN_JAVA_VERSION) || (AndroidToolsInfo.MAX_JAVA_VERSION ? semver.gte(installedJavaCompilerSemverVersion, AndroidToolsInfo.MAX_JAVA_VERSION) : false)) {
138+
warning = AndroidToolsInfo.unsupportedJavaMessage(installedJavaCompilerVersion);
128139
} else {
129140
runtimeVersion = this.getRuntimeVersion({ runtimeVersion, projectDir });
130141
if (runtimeVersion) {

test/android-tools-info.ts

+9-10
Original file line numberDiff line numberDiff line change
@@ -115,20 +115,19 @@ describe("androidToolsInfo", () => {
115115
},
116116
{
117117
javacVersion: "1.7.0",
118-
warnings: ["Javac version 1.7.0 is not supported. You have to install at least 1.8.0 and below 13.0.0."]
118+
warnings: [AndroidToolsInfo.unsupportedJavaMessage("1.7.0")]
119119
},
120120
{
121121
javacVersion: "1.7.0_132",
122-
warnings: ["Javac version 1.7.0_132 is not supported. You have to install at least 1.8.0 and below 13.0.0."]
123-
},
124-
{
125-
javacVersion: "13.0.0",
126-
warnings: ["Javac version 13.0.0 is not supported. You have to install at least 1.8.0 and below 13.0.0."]
127-
},
128-
{
129-
javacVersion: "14.1.0",
130-
warnings: ["Javac version 14.1.0 is not supported. You have to install at least 1.8.0 and below 13.0.0."]
122+
warnings: [AndroidToolsInfo.unsupportedJavaMessage("1.7.0_132")]
131123
},
124+
//
125+
// Reinstate this test if there is some future max java version found to be not supported.
126+
//
127+
// {
128+
// javacVersion: "14.1.0",
129+
// warnings: [AndroidToolsInfo.unsupportedJavaMessage("14.1.0")]
130+
// },
132131
{
133132
javacVersion: null,
134133
warnings: ["Error executing command 'javac'. Make sure you have installed The Java Development Kit (JDK) and set JAVA_HOME environment variable."]

0 commit comments

Comments
 (0)