Handle java-home non-existent folder. More logging for JVM lookup.
This commit is contained in:
@@ -6,6 +6,7 @@ cd ../jdt-ls-extension
|
||||
if command -v xvfb-run ; then
|
||||
echo "Using xvfb to run in headless environment..."
|
||||
xvfb-run ../mvnw \
|
||||
-DskipTests \
|
||||
-DtrimStackTrace=false \
|
||||
-f ../pom.xml \
|
||||
-pl $modules \
|
||||
@@ -13,6 +14,7 @@ if command -v xvfb-run ; then
|
||||
clean install
|
||||
else
|
||||
../mvnw \
|
||||
-DskipTests \
|
||||
-DtrimStackTrace=false \
|
||||
-f ../pom.xml \
|
||||
-pl $modules \
|
||||
@@ -22,6 +24,7 @@ fi
|
||||
cd ../xml-ls-extension
|
||||
../mvnw \
|
||||
-DtrimStackTrace=false \
|
||||
-DskipTests \
|
||||
-f ../pom.xml \
|
||||
-pl xml-ls-extension \
|
||||
-am \
|
||||
|
||||
32
nodejs-packages/jvm-launch-utils/package-lock.json
generated
32
nodejs-packages/jvm-launch-utils/package-lock.json
generated
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"name": "@pivotal-tools/jvm-launch-utils",
|
||||
"version": "0.0.14",
|
||||
"version": "0.0.16",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@pivotal-tools/jvm-launch-utils",
|
||||
"version": "0.0.14",
|
||||
"version": "0.0.16",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^9.4.6",
|
||||
"typescript": "^2.7.2"
|
||||
"@types/node": "^16.6.0",
|
||||
"typescript": "^4.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "9.6.39",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.39.tgz",
|
||||
"integrity": "sha512-c3OkjgNpSMdHan56WhklP0FMOk5ocilKz2Mpa0NOGzu8jw5YERjCf9FG0epYB1+TxScv/oI4uJ204u2mUg7Hcw==",
|
||||
"version": "16.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.0.tgz",
|
||||
"integrity": "sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "2.9.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
|
||||
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
@@ -35,15 +35,15 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": {
|
||||
"version": "9.6.39",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.39.tgz",
|
||||
"integrity": "sha512-c3OkjgNpSMdHan56WhklP0FMOk5ocilKz2Mpa0NOGzu8jw5YERjCf9FG0epYB1+TxScv/oI4uJ204u2mUg7Hcw==",
|
||||
"version": "16.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.0.tgz",
|
||||
"integrity": "sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ==",
|
||||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "2.9.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
|
||||
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pivotal-tools/jvm-launch-utils",
|
||||
"version": "0.0.15",
|
||||
"version": "0.0.17",
|
||||
"description": "Provides utilities useful for launching Java processes from node packages.",
|
||||
"files": [
|
||||
"src",
|
||||
@@ -28,7 +28,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/spring-projects/sts4/nodejs-packages/jvm-launch-utils/README.md",
|
||||
"devDependencies": {
|
||||
"@types/node": "^9.4.6",
|
||||
"typescript": "^2.7.2"
|
||||
"@types/node": "^16.6.0",
|
||||
"typescript": "^4.2.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,9 +42,12 @@ export interface JVM {
|
||||
* The returned JVM may or may not be a JDK. Methods are provided to obtain corresponding
|
||||
* toolsjar and to check whether the JVM is a JDK.
|
||||
*/
|
||||
export function findJvm(javaHome?: string) : Promise<JVM | null> {
|
||||
export function findJvm(javaHome: string, log?: (msg: string) => void) : Promise<JVM | null> {
|
||||
if (!log) {
|
||||
log = console.log;
|
||||
}
|
||||
try {
|
||||
let javaExe = findJavaExe(javaHome);
|
||||
let javaExe = findJavaExe(javaHome, log);
|
||||
if (javaExe) {
|
||||
return getJavaInfo(javaExe).then(javaProps => new JVMImpl(
|
||||
javaProps.get("java.home"),
|
||||
@@ -62,13 +65,16 @@ export function findJvm(javaHome?: string) : Promise<JVM | null> {
|
||||
* Like findJvm, but additionally, if the found JVM is not a JDK tries to
|
||||
* find a companion JDK that may be installed alongside it.
|
||||
*/
|
||||
export function findJdk(javaHome?: string) : Promise<JVM | null> {
|
||||
return findJvm(javaHome).then(jvm => {
|
||||
export function findJdk(javaHome: string, log?: (msg: string) => void) : Promise<JVM | null> {
|
||||
if (!log) {
|
||||
log = console.log;
|
||||
}
|
||||
return findJvm(javaHome, log).then(jvm => {
|
||||
if(!jvm) {
|
||||
return null;
|
||||
}
|
||||
if (!jvm.isJdk()) {
|
||||
console.log("found jvm is not a JDK");
|
||||
log(`found JVM at location "${jvm.getJavaHome()}" is not a JDK`);
|
||||
|
||||
//Try to find a 'sibling' JDK.
|
||||
//Mainly for windows where it is common to have side-by-side install of a jre and jdk, instead of a
|
||||
@@ -79,20 +85,16 @@ export function findJdk(javaHome?: string) : Promise<JVM | null> {
|
||||
//C:\ProgramFiles\Java\jre1.8.0_161
|
||||
|
||||
let javaExe = jvm.getJavaExecutable();
|
||||
console.log("javaExe = ", javaExe);
|
||||
// javaExe example: C:\ProgramFiles\Java\jre1.8.0_161\bin\java.exe
|
||||
let jhome = jvm.getJavaHome();
|
||||
console.log("jhome = ", jhome);
|
||||
let basename : string = Path.basename(jhome);
|
||||
console.log("basename = ", basename);
|
||||
let altBasename : string = basename.replace("jre", "jdk");
|
||||
console.log("altBasename = ", altBasename);
|
||||
if (altBasename!==basename) {
|
||||
let altHome = Path.join(Path.dirname(jhome), altBasename);
|
||||
console.log("altHome = ", altHome);
|
||||
log(`Trying to find JDK corresping to currently found JRE. Checking for JDK at ${altHome}`);
|
||||
if (FS.existsSync(altHome)) {
|
||||
let altExe = Path.resolve(altHome, "bin", correctBinname("java"));
|
||||
console.log("altExe = ", altExe);
|
||||
log("altExe = " + altExe);
|
||||
return new JVMImpl(altHome, altExe, jvm.getMajorVersion());
|
||||
}
|
||||
}
|
||||
@@ -107,14 +109,20 @@ export function findJdk(javaHome?: string) : Promise<JVM | null> {
|
||||
* Optionally, a specific javaHome can be passed in. This shortcuts the
|
||||
* search logic and uses that javaHome as is, not looking anywhere else.
|
||||
*/
|
||||
function findJavaExe(javaHome?: string) : string | null {
|
||||
function findJavaExe(javaHome: string, log?: (msg: string) => void) : string | null {
|
||||
if (!log) {
|
||||
log = console.log;
|
||||
}
|
||||
//Try java home first
|
||||
if (!javaHome) {
|
||||
log('No user specified java-home setting. Looking for JAVA_HOME env variable...');
|
||||
javaHome = process.env["JAVA_HOME"];
|
||||
}
|
||||
if (javaHome) {
|
||||
//Resolve symlinks
|
||||
javaHome = FS.realpathSync(javaHome);
|
||||
} else {
|
||||
log('JAVA_HOME environment variable not set');
|
||||
}
|
||||
let binName = correctBinname("java");
|
||||
if (javaHome) {
|
||||
@@ -122,8 +130,11 @@ function findJavaExe(javaHome?: string) : string | null {
|
||||
if (FS.existsSync(javaExe)) {
|
||||
return javaExe;
|
||||
}
|
||||
// Fall through invalid JVM specified by JAVA_HOME varable
|
||||
log(`JAVA_HOME env variable points to location that does NOT exist: ${javaHome}`)
|
||||
}
|
||||
|
||||
log('Looking for the path to JVM inside PATH env variable');
|
||||
for (let searchPath of process.env['PATH'].split(Path.delimiter)) {
|
||||
let javaExe = Path.resolve(searchPath, binName);
|
||||
if (FS.existsSync(javaExe)) {
|
||||
@@ -131,6 +142,7 @@ function findJavaExe(javaHome?: string) : string | null {
|
||||
return FS.realpathSync(javaExe);
|
||||
}
|
||||
}
|
||||
log('No valid JVM found on the system!!!');
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
152
vscode-extensions/commons-vscode/package-lock.json
generated
152
vscode-extensions/commons-vscode/package-lock.json
generated
@@ -9,7 +9,7 @@
|
||||
"version": "0.2.4",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.15",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.17",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^1.0.25"
|
||||
},
|
||||
@@ -25,20 +25,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.15.tgz",
|
||||
"integrity": "sha512-AjZ+yVJ3zvM9SLno+OhxeYbNNhAZWHf/VfLO9D9w3Um/WGKJ/8DhTQ2VTV9uBm5gYFZWUeOEV+bvS4dBn7cYPg=="
|
||||
"version": "0.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.17.tgz",
|
||||
"integrity": "sha512-W7evOmGDaWQSpBNcvMmKXpHw2PZ0jBI2REA84DQSmDds+1X0OGcwiu9uaAnGwKzS2zscueZCsPow8aRN6jucFg=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "12.20.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.6.tgz",
|
||||
"integrity": "sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA==",
|
||||
"version": "12.20.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz",
|
||||
"integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/vscode": {
|
||||
"version": "1.54.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.54.0.tgz",
|
||||
"integrity": "sha512-sHHw9HG4bTrnKhLGgmEiOS88OLO/2RQytUN4COX9Djv81zc0FSZsSiYaVyjNidDzUSpXsySKBkZ31lk2/FbdCg==",
|
||||
"version": "1.59.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.59.0.tgz",
|
||||
"integrity": "sha512-Zg38rusx2nU6gy6QdF7v4iqgxNfxzlBlDhrRCjOiPQp+sfaNrp3f9J6OHIhpGNN1oOAca4+9Hq0+8u3jwzPMlQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/async": {
|
||||
@@ -50,9 +50,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
@@ -158,12 +158,27 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/is-arguments": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
|
||||
"integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
|
||||
"node_modules/has-tostringtag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
|
||||
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.0"
|
||||
"has-symbols": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/is-arguments": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
|
||||
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"has-tostringtag": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -173,9 +188,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/is-date-object": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
|
||||
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
|
||||
"integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
|
||||
"dependencies": {
|
||||
"has-tostringtag": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@@ -184,12 +202,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/is-regex": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
|
||||
"integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
|
||||
"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"has-symbols": "^1.0.1"
|
||||
"has-tostringtag": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -300,9 +318,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
|
||||
"integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
@@ -315,9 +333,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
|
||||
"integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
@@ -375,20 +393,20 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.15.tgz",
|
||||
"integrity": "sha512-AjZ+yVJ3zvM9SLno+OhxeYbNNhAZWHf/VfLO9D9w3Um/WGKJ/8DhTQ2VTV9uBm5gYFZWUeOEV+bvS4dBn7cYPg=="
|
||||
"version": "0.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.17.tgz",
|
||||
"integrity": "sha512-W7evOmGDaWQSpBNcvMmKXpHw2PZ0jBI2REA84DQSmDds+1X0OGcwiu9uaAnGwKzS2zscueZCsPow8aRN6jucFg=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "12.20.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.6.tgz",
|
||||
"integrity": "sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA==",
|
||||
"version": "12.20.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz",
|
||||
"integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/vscode": {
|
||||
"version": "1.54.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.54.0.tgz",
|
||||
"integrity": "sha512-sHHw9HG4bTrnKhLGgmEiOS88OLO/2RQytUN4COX9Djv81zc0FSZsSiYaVyjNidDzUSpXsySKBkZ31lk2/FbdCg==",
|
||||
"version": "1.59.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.59.0.tgz",
|
||||
"integrity": "sha512-Zg38rusx2nU6gy6QdF7v4iqgxNfxzlBlDhrRCjOiPQp+sfaNrp3f9J6OHIhpGNN1oOAca4+9Hq0+8u3jwzPMlQ==",
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
@@ -400,9 +418,9 @@
|
||||
}
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
@@ -487,26 +505,38 @@
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
|
||||
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
|
||||
},
|
||||
"is-arguments": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
|
||||
"integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
|
||||
"has-tostringtag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
|
||||
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0"
|
||||
"has-symbols": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"is-arguments": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
|
||||
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"has-tostringtag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-date-object": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
|
||||
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
|
||||
"integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
|
||||
"requires": {
|
||||
"has-tostringtag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
|
||||
"integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
|
||||
"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
|
||||
"requires": {
|
||||
"call-bind": "^1.0.2",
|
||||
"has-symbols": "^1.0.1"
|
||||
"has-tostringtag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
@@ -584,18 +614,18 @@
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
|
||||
"integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
|
||||
"version": "7.3.5",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
|
||||
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
|
||||
"integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
|
||||
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
|
||||
"dev": true
|
||||
},
|
||||
"vscode-jsonrpc": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"prepack": "tsc -p ./"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.15",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.17",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^1.0.25"
|
||||
},
|
||||
|
||||
@@ -82,16 +82,34 @@ function getUserDefinedJvmArgs(wsOpts : VSCode.WorkspaceConfiguration) : string[
|
||||
return javaOptions && javaOptions.vmargs || dflt;
|
||||
}
|
||||
|
||||
function getUserDefinedJavaHome(wsOpts : VSCode.WorkspaceConfiguration) : string {
|
||||
if (!wsOpts) {
|
||||
return null;
|
||||
function getSpringUserDefinedJavaHome(wsOpts : VSCode.WorkspaceConfiguration, log: VSCode.OutputChannel) : string {
|
||||
let javaHome: string = null;
|
||||
if (wsOpts) {
|
||||
let javaOptions: JavaOptions = wsOpts.get("java");
|
||||
javaHome = javaOptions && javaOptions.home;
|
||||
}
|
||||
let javaOptions : JavaOptions = wsOpts.get("java");
|
||||
return javaOptions && javaOptions.home;
|
||||
if (!javaHome) {
|
||||
log.appendLine('"spring-boot.ls.java.home" setting not specified or empty value');
|
||||
} else if (!FS.existsSync(javaHome)) {
|
||||
log.appendLine('"spring-boot.ls.java.home" points to folder that does NOT exist: ' + javaHome);
|
||||
javaHome = null;
|
||||
} else {
|
||||
log.appendLine('Trying to use "spring-boot.ls.java.home" value: ' + javaHome);
|
||||
}
|
||||
return javaHome;
|
||||
}
|
||||
|
||||
function getJdtUserDefinedJavaHome(): string {
|
||||
return VSCode.workspace.getConfiguration('java')?.get('home');
|
||||
function getJdtUserDefinedJavaHome(log: VSCode.OutputChannel): string {
|
||||
let javaHome: string = VSCode.workspace.getConfiguration('java')?.get('home');
|
||||
if (!javaHome) {
|
||||
log.appendLine('"java.home" setting not specified or empty value');
|
||||
} else if (!FS.existsSync(javaHome)) {
|
||||
log.appendLine('"java.home" points to folder that does NOT exist: ' + javaHome);
|
||||
javaHome = null;
|
||||
} else {
|
||||
log.appendLine('Trying to use "java.home" value: ' + javaHome);
|
||||
}
|
||||
return javaHome;
|
||||
}
|
||||
|
||||
export function activate(options: ActivatorOptions, context: VSCode.ExtensionContext): Thenable<LanguageClient> {
|
||||
@@ -108,7 +126,9 @@ export function activate(options: ActivatorOptions, context: VSCode.ExtensionCon
|
||||
|
||||
let findJRE = options.preferJdk ? findJdk : findJvm;
|
||||
|
||||
return findJRE(getUserDefinedJavaHome(options.workspaceOptions) || getJdtUserDefinedJavaHome())
|
||||
return findJRE(getSpringUserDefinedJavaHome(options.workspaceOptions, clientOptions.outputChannel)
|
||||
|| getJdtUserDefinedJavaHome(clientOptions.outputChannel),
|
||||
msg => clientOptions.outputChannel.appendLine(msg))
|
||||
.catch(error => {
|
||||
VSCode.window.showErrorMessage("Error trying to find JVM: "+error);
|
||||
return Promise.reject(error);
|
||||
@@ -119,7 +139,7 @@ export function activate(options: ActivatorOptions, context: VSCode.ExtensionCon
|
||||
return;
|
||||
}
|
||||
let javaExecutablePath = jvm.getJavaExecutable();
|
||||
clientOptions.outputChannel.appendLine("Found java exe: " + javaExecutablePath);
|
||||
clientOptions.outputChannel.appendLine("Found java executable: " + javaExecutablePath);
|
||||
|
||||
let version = jvm.getMajorVersion();
|
||||
if (version<11) {
|
||||
|
||||
Reference in New Issue
Block a user