PT #165978425: Exploded LS Jar for VSCode
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pivotal-tools/jvm-launch-utils",
|
||||
"version": "0.0.11",
|
||||
"version": "0.0.12",
|
||||
"description": "Provides utilities useful for launching Java processes from node packages.",
|
||||
"files": [
|
||||
"src",
|
||||
|
||||
@@ -41,6 +41,8 @@ export interface JVM {
|
||||
* using spring-boot-maven-plugin ZIP layout.
|
||||
*/
|
||||
jarLaunch(jar: string, vmargs?: string[], execFileOptions?: ChildProcess.ExecFileOptions) : ChildProcess.ChildProcess
|
||||
|
||||
mainClassLaunch(mainClass: string, classpath: string[], jvmArgs: string[], execFileOptions?: ChildProcess.ExecFileOptions): ChildProcess.ChildProcess
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -216,6 +218,27 @@ class JVMImpl implements JVM {
|
||||
args.push("-jar", jar);
|
||||
return ChildProcess.execFile(this.getJavaExecutable(), args, execFileOptions);
|
||||
}
|
||||
|
||||
mainClassLaunch(mainClass: string, classpath: string[], jvmArgs: string[], execFileOptions?: ChildProcess.ExecFileOptions): ChildProcess.ChildProcess {
|
||||
const args: string[] = [];
|
||||
|
||||
// Classpath
|
||||
args.push('-cp');
|
||||
let classpathStr = classpath.join(Path.delimiter);
|
||||
const toolsJar = this.getToolsJar();
|
||||
if (toolsJar) {
|
||||
classpathStr += Path.delimiter + toolsJar;
|
||||
}
|
||||
args.push(classpathStr);
|
||||
|
||||
// JVM Arguments
|
||||
args.push(...jvmArgs);
|
||||
|
||||
// Main class
|
||||
args.push(mainClass);
|
||||
|
||||
return ChildProcess.execFile(this.getJavaExecutable(), args, execFileOptions);
|
||||
}
|
||||
}
|
||||
|
||||
function getJavaInfo(javaExe : string) : Promise<Map<string, string>> {
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.11.tgz",
|
||||
"integrity": "sha512-PSBzegFv+m1AaAlHBtWzfxdxZG3RFJaTNk0ognOjDV+URrPnMWkD2DBt4pgEGynpnnK8G5WZZGVu5flcIsKGyQ=="
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.12.tgz",
|
||||
"integrity": "sha512-6VnPe6TkVYr9UCOOlVVEAxhC+mEVt4Hevzc4eoDvUKFxexOD8MY38z6VNpa+lyhdvF6p5+Its/zfCPhdQlbhrQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.2",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"prepack": "node ./node_modules/vscode/bin/install && tsc -p ./"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.11",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.12",
|
||||
"portfinder": "^0.4.0",
|
||||
"deep-equal": "^1.0.1"
|
||||
},
|
||||
|
||||
@@ -25,6 +25,7 @@ import { JVM, findJvm, findJdk } from '@pivotal-tools/jvm-launch-utils';
|
||||
import { registerClasspathService } from './classpath';
|
||||
import {HighlightCodeLensProvider} from "./code-lens-service";
|
||||
import {registerJavaDataService} from "./java-data";
|
||||
import * as path from "path";
|
||||
|
||||
let p2c = P2C.createConverter();
|
||||
|
||||
@@ -43,6 +44,13 @@ export interface ActivatorOptions {
|
||||
checkjvm?: (context: VSCode.ExtensionContext, jvm: JVM) => any;
|
||||
preferJdk?: boolean;
|
||||
highlightCodeLensSettingKey?: string;
|
||||
explodedLsJarData?: ExplodedLsJarData;
|
||||
}
|
||||
|
||||
export interface ExplodedLsJarData {
|
||||
lsLocation: string;
|
||||
mainClass: string;
|
||||
configFileName?: string;
|
||||
}
|
||||
|
||||
type JavaOptions = {
|
||||
@@ -160,15 +168,35 @@ export function activate(options: ActivatorOptions, context: VSCode.ExtensionCon
|
||||
args.unshift(DEBUG_ARG);
|
||||
}
|
||||
|
||||
// Start the child java process
|
||||
let launcher = findServerJar(Path.resolve(context.extensionPath, 'jars'));
|
||||
let child = jvm.jarLaunch(launcher, args, processLaunchoptions);
|
||||
child.stdout.on('data', (data) => {
|
||||
log("" + data);
|
||||
});
|
||||
child.stderr.on('data', (data) => {
|
||||
error("" + data);
|
||||
})
|
||||
let child: ChildProcess.ChildProcess = null;
|
||||
if (options.explodedLsJarData) {
|
||||
const explodedLsJarData = options.explodedLsJarData;
|
||||
const lsRoot = Path.resolve(context.extensionPath, explodedLsJarData.lsLocation);
|
||||
|
||||
// Add config file if needed
|
||||
if (explodedLsJarData.configFileName) {
|
||||
args.push(`-Dspring.config.location=file:${Path.resolve(lsRoot, `BOOT-INF/classes/${explodedLsJarData.configFileName}`)}`);
|
||||
}
|
||||
|
||||
// Add classpath
|
||||
const classpath: string[] = [];
|
||||
classpath.push(Path.resolve(lsRoot, 'BOOT-INF/classes'));
|
||||
classpath.push(`${Path.resolve(lsRoot, 'BOOT-INF/lib')}${Path.sep}*`);
|
||||
|
||||
child = jvm.mainClassLaunch(explodedLsJarData.mainClass, classpath, args, processLaunchoptions);
|
||||
} else {
|
||||
// Start the child java process
|
||||
const launcher = findServerJar(Path.resolve(context.extensionPath, 'jars'));
|
||||
child = jvm.jarLaunch(launcher, args, processLaunchoptions);
|
||||
}
|
||||
if (child) {
|
||||
child.stdout.on('data', (data) => {
|
||||
log("" + data);
|
||||
});
|
||||
child.stderr.on('data', (data) => {
|
||||
error("" + data);
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
1
vscode-extensions/vscode-bosh/.gitignore
vendored
1
vscode-extensions/vscode-bosh/.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
out
|
||||
node_modules
|
||||
language-server
|
||||
target
|
||||
*.log
|
||||
*.log.*
|
||||
|
||||
@@ -33,6 +33,11 @@ export function activate(context: VSCode.ExtensionContext) {
|
||||
extensionId: 'vscode-bosh',
|
||||
jvmHeap: "48m",
|
||||
workspaceOptions: VSCode.workspace.getConfiguration("bosh.ls"),
|
||||
explodedLsJarData: {
|
||||
lsLocation: 'language-server',
|
||||
mainClass: 'org.springframework.ide.vscode.bosh.BoshLanguageServerBootApp',
|
||||
configFileName: 'application.properties'
|
||||
},
|
||||
clientOptions: {
|
||||
documentSelector: [
|
||||
{
|
||||
|
||||
12
vscode-extensions/vscode-bosh/package-lock.json
generated
12
vscode-extensions/vscode-bosh/package-lock.json
generated
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"name": "vscode-bosh",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@pivotal-tools/commons-vscode": {
|
||||
"version": "file:../commons-vscode/pivotal-tools-commons-vscode-0.2.2.tgz",
|
||||
"integrity": "sha512-hgbMlJKDCkG3xQsTNEKFcGgic/zuSkkqRD2HOx5xeHbPdFAuQbv7eXNNFRxaw1cLU8re/s4gHWAa56bESqP5RQ==",
|
||||
"integrity": "sha512-9N8DcTRaBBdduPvmlvpXLbyW8DQXTwlESUhNNUCksmik0O0TxJn3GH4c7K2I9Wdon5CGbpEROU0dY4l+rKUWEA==",
|
||||
"requires": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.11",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.12",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.11.tgz",
|
||||
"integrity": "sha512-PSBzegFv+m1AaAlHBtWzfxdxZG3RFJaTNk0ognOjDV+URrPnMWkD2DBt4pgEGynpnnK8G5WZZGVu5flcIsKGyQ=="
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.12.tgz",
|
||||
"integrity": "sha512-6VnPe6TkVYr9UCOOlVVEAxhC+mEVt4Hevzc4eoDvUKFxexOD8MY38z6VNpa+lyhdvF6p5+Its/zfCPhdQlbhrQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.2",
|
||||
|
||||
@@ -14,6 +14,12 @@ npm install ../commons-vscode/*-commons-vscode-*.tgz
|
||||
cd ../../headless-services/bosh-language-server
|
||||
./build.sh
|
||||
|
||||
rm -fr ${workdir}/jars
|
||||
mkdir -p ${workdir}/jars
|
||||
cp target/*-exec.jar ${workdir}/jars
|
||||
#Clean old LS folder
|
||||
rm -fr ${workdir}/language-server
|
||||
mkdir -p ${workdir}/language-server
|
||||
|
||||
# Explode LS JAR
|
||||
cd ${workdir}/language-server
|
||||
server_jar_file=$(find ${workdir}/../../headless-services/bosh-language-server/target -name '*-exec.jar');
|
||||
jar -xvf ${server_jar_file}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
out
|
||||
node_modules
|
||||
language-server
|
||||
target
|
||||
*.log
|
||||
*.log.*
|
||||
|
||||
@@ -36,6 +36,11 @@ export function activate(context: VSCode.ExtensionContext) {
|
||||
extensionId: 'vscode-concourse',
|
||||
jvmHeap: "48m",
|
||||
workspaceOptions: VSCode.workspace.getConfiguration("concourse.ls"),
|
||||
explodedLsJarData: {
|
||||
lsLocation: 'language-server',
|
||||
mainClass: 'org.springframework.ide.vscode.concourse.ConcourseLanguageServerBootApp',
|
||||
configFileName: 'application.properties'
|
||||
},
|
||||
clientOptions: {
|
||||
documentSelector: [
|
||||
{
|
||||
|
||||
12
vscode-extensions/vscode-concourse/package-lock.json
generated
12
vscode-extensions/vscode-concourse/package-lock.json
generated
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"name": "vscode-concourse",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@pivotal-tools/commons-vscode": {
|
||||
"version": "file:../commons-vscode/pivotal-tools-commons-vscode-0.2.2.tgz",
|
||||
"integrity": "sha512-hgbMlJKDCkG3xQsTNEKFcGgic/zuSkkqRD2HOx5xeHbPdFAuQbv7eXNNFRxaw1cLU8re/s4gHWAa56bESqP5RQ==",
|
||||
"integrity": "sha512-9N8DcTRaBBdduPvmlvpXLbyW8DQXTwlESUhNNUCksmik0O0TxJn3GH4c7K2I9Wdon5CGbpEROU0dY4l+rKUWEA==",
|
||||
"requires": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.11",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.12",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.11.tgz",
|
||||
"integrity": "sha512-PSBzegFv+m1AaAlHBtWzfxdxZG3RFJaTNk0ognOjDV+URrPnMWkD2DBt4pgEGynpnnK8G5WZZGVu5flcIsKGyQ=="
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.12.tgz",
|
||||
"integrity": "sha512-6VnPe6TkVYr9UCOOlVVEAxhC+mEVt4Hevzc4eoDvUKFxexOD8MY38z6VNpa+lyhdvF6p5+Its/zfCPhdQlbhrQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.2",
|
||||
|
||||
@@ -14,6 +14,11 @@ npm install ../commons-vscode/*-commons-vscode-*.tgz
|
||||
cd ../../headless-services/concourse-language-server
|
||||
./build.sh
|
||||
|
||||
rm -fr ${workdir}/jars
|
||||
mkdir -p ${workdir}/jars
|
||||
cp target/*-exec.jar ${workdir}/jars
|
||||
#Clean old LS folder
|
||||
rm -fr ${workdir}/language-server
|
||||
mkdir -p ${workdir}/language-server
|
||||
|
||||
# Explode LS JAR
|
||||
cd ${workdir}/language-server
|
||||
server_jar_file=$(find ${workdir}/../../headless-services/concourse-language-server/target -name '*-exec.jar');
|
||||
jar -xvf ${server_jar_file}
|
||||
|
||||
@@ -5,6 +5,7 @@ target
|
||||
*.log.*
|
||||
.idea
|
||||
*.iml
|
||||
language-server
|
||||
dependency-reduced-pom.xml
|
||||
classpath.txt
|
||||
*.vsix
|
||||
|
||||
@@ -33,6 +33,11 @@ export function activate(context: VSCode.ExtensionContext) {
|
||||
extensionId: 'vscode-manifest-yaml',
|
||||
workspaceOptions: VSCode.workspace.getConfiguration("cloudfoundry-manifest.ls"),
|
||||
jvmHeap: '64m',
|
||||
explodedLsJarData: {
|
||||
lsLocation: 'language-server',
|
||||
mainClass: 'org.springframework.ide.vscode.manifest.yaml.ManifestYamlLanguageServerBootApp',
|
||||
configFileName: 'application.properties'
|
||||
},
|
||||
clientOptions: {
|
||||
documentSelector: [
|
||||
{
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"name": "vscode-manifest-yaml",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@pivotal-tools/commons-vscode": {
|
||||
"version": "file:../commons-vscode/pivotal-tools-commons-vscode-0.2.2.tgz",
|
||||
"integrity": "sha512-hgbMlJKDCkG3xQsTNEKFcGgic/zuSkkqRD2HOx5xeHbPdFAuQbv7eXNNFRxaw1cLU8re/s4gHWAa56bESqP5RQ==",
|
||||
"integrity": "sha512-9N8DcTRaBBdduPvmlvpXLbyW8DQXTwlESUhNNUCksmik0O0TxJn3GH4c7K2I9Wdon5CGbpEROU0dY4l+rKUWEA==",
|
||||
"requires": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.11",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.12",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.11.tgz",
|
||||
"integrity": "sha512-PSBzegFv+m1AaAlHBtWzfxdxZG3RFJaTNk0ognOjDV+URrPnMWkD2DBt4pgEGynpnnK8G5WZZGVu5flcIsKGyQ=="
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.12.tgz",
|
||||
"integrity": "sha512-6VnPe6TkVYr9UCOOlVVEAxhC+mEVt4Hevzc4eoDvUKFxexOD8MY38z6VNpa+lyhdvF6p5+Its/zfCPhdQlbhrQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.2",
|
||||
|
||||
@@ -14,6 +14,13 @@ npm install ../commons-vscode/*-commons-vscode-*.tgz
|
||||
cd ../../headless-services/manifest-yaml-language-server
|
||||
./build.sh
|
||||
|
||||
rm -fr ${workdir}/jars
|
||||
mkdir -p ${workdir}/jars
|
||||
cp target/*-exec.jar ${workdir}/jars
|
||||
#Clean old LS folder
|
||||
rm -fr ${workdir}/language-server
|
||||
mkdir -p ${workdir}/language-server
|
||||
|
||||
# Explode LS JAR
|
||||
cd ${workdir}/language-server
|
||||
server_jar_file=$(find ${workdir}/../../headless-services/manifest-yaml-language-server/target -name '*-exec.jar');
|
||||
jar -xvf ${server_jar_file}
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ target
|
||||
*.log.*
|
||||
classpath.txt
|
||||
*.vsix
|
||||
language-server
|
||||
repo
|
||||
.idea
|
||||
*.iml
|
||||
|
||||
@@ -27,6 +27,11 @@ export function activate(context: VSCode.ExtensionContext): Thenable<LanguageCli
|
||||
VSCode.window.showWarningMessage('JAVA_HOME or PATH environment variable seems to point to a JRE. A JDK is required, hence Boot Hints are unavailable.');
|
||||
}
|
||||
},
|
||||
explodedLsJarData: {
|
||||
lsLocation: 'language-server',
|
||||
mainClass: 'org.springframework.ide.vscode.boot.app.BootLanguagServerBootApp',
|
||||
configFileName: 'application.properties'
|
||||
},
|
||||
workspaceOptions: VSCode.workspace.getConfiguration("spring-boot.ls"),
|
||||
clientOptions: {
|
||||
// See PT-158992999 as to why a scheme is added to the document selector
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
"dependencies": {
|
||||
"@pivotal-tools/commons-vscode": {
|
||||
"version": "file:../commons-vscode/pivotal-tools-commons-vscode-0.2.2.tgz",
|
||||
"integrity": "sha512-4nZnq7/ehz1nfZcHz5YZInEfWowepSysA2fTW0bAKoTsAQivmP92qly88HXf4tM1tOLxahyqAK5Rx7lbbct2wQ==",
|
||||
"integrity": "sha512-9N8DcTRaBBdduPvmlvpXLbyW8DQXTwlESUhNNUCksmik0O0TxJn3GH4c7K2I9Wdon5CGbpEROU0dY4l+rKUWEA==",
|
||||
"requires": {
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.11",
|
||||
"@pivotal-tools/jvm-launch-utils": "0.0.12",
|
||||
"deep-equal": "^1.0.1",
|
||||
"portfinder": "^0.4.0"
|
||||
}
|
||||
},
|
||||
"@pivotal-tools/jvm-launch-utils": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.11.tgz",
|
||||
"integrity": "sha512-PSBzegFv+m1AaAlHBtWzfxdxZG3RFJaTNk0ognOjDV+URrPnMWkD2DBt4pgEGynpnnK8G5WZZGVu5flcIsKGyQ=="
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@pivotal-tools/jvm-launch-utils/-/jvm-launch-utils-0.0.12.tgz",
|
||||
"integrity": "sha512-6VnPe6TkVYr9UCOOlVVEAxhC+mEVt4Hevzc4eoDvUKFxexOD8MY38z6VNpa+lyhdvF6p5+Its/zfCPhdQlbhrQ=="
|
||||
},
|
||||
"@pivotal-tools/pipeline-builder": {
|
||||
"version": "0.0.5",
|
||||
|
||||
@@ -18,10 +18,18 @@ sed -i -e 's/constant/identifier/g' properties-support/java-properties.tmLangua
|
||||
rm -fr ${workdir}/jars
|
||||
mkdir -p ${workdir}/jars
|
||||
|
||||
#Clean old LS folder
|
||||
rm -fr ${workdir}/language-server
|
||||
mkdir -p ${workdir}/language-server
|
||||
|
||||
# Use maven to build fat jar of the language server
|
||||
cd ${workdir}/../../headless-services/spring-boot-language-server
|
||||
./build.sh
|
||||
cp target/*-exec.jar ${workdir}/jars
|
||||
|
||||
# Explode LS JAR
|
||||
cd ${workdir}/language-server
|
||||
server_jar_file=$(find ${workdir}/../../headless-services/spring-boot-language-server/target -name '*-exec.jar');
|
||||
jar -xvf ${server_jar_file}
|
||||
|
||||
cd ${workdir}/../../headless-services/jdt-ls-extension
|
||||
cp org.springframework.tooling.jdt.ls.extension/target/*.jar ${workdir}/jars/jdt-ls-extension.jar
|
||||
|
||||
Reference in New Issue
Block a user