diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml index 0c6b68a67..026ccbeaa 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml @@ -22,11 +22,12 @@ maven-dependency-plugin 3.1.1 + - unpack-server + copy-server prepare-package - unpack + copy @@ -40,9 +41,29 @@ true true - ${project.build.directory}/../servers/spring-boot-language-server + ${project.basedir}/servers + + + problem-types.json + prepare-package + + unpack + + + + + org.springframework.ide.vscode + spring-boot-language-server + ${project.version} + ${project.basedir}/servers/spring-boot-language-server + **/problem-types.json + + + + + xml-extension prepare-package @@ -67,7 +88,57 @@ true true true - ${project.build.directory}/../jars + ${project.basedir}/jars + + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.3.0 + + + extract + prepare-package + + java + + -Djarmode=tools + -jar + ${project.basedir}/servers/spring-boot-language-server-${project.version}-exec.jar + extract + --force + --destination + ${project.basedir}/servers/spring-boot-language-server + + + + exec + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + prepare-package + + run + + + + + + + diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java index bcc9460e0..aa210a5d5 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2021 Pivotal, Inc. + * Copyright (c) 2017, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -28,10 +28,9 @@ public class SpringBootLanguageServer extends STS4LanguageServerProcessStreamCon public SpringBootLanguageServer() { super(SPRING_BOOT_SERVER); - initExplodedJarCommand( + initExecutableJarCommand( Paths.get("servers", "spring-boot-language-server"), - "org.springframework.ide.vscode.boot.app.BootLanguageServerBootApp", - "application.properties", + "spring-boot-language-server", getJVMArgs() ); diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/LanguageServerProblemTypesMetadata.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/LanguageServerProblemTypesMetadata.java index eef0e03d9..07f949ba1 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/LanguageServerProblemTypesMetadata.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/LanguageServerProblemTypesMetadata.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2020, 2022 Pivotal, Inc. + * Copyright (c) 2020, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -27,7 +27,7 @@ public class LanguageServerProblemTypesMetadata { public static List load() throws IOException { File root = FileLocator.getBundleFile(BootLanguageServerPlugin.getDefault().getBundle()); - File metadataFile = root.toPath().resolve("servers/spring-boot-language-server/BOOT-INF/classes/problem-types.json").toFile(); + File metadataFile = root.toPath().resolve("servers/spring-boot-language-server/problem-types.json").toFile(); return readCategoriesFromFile(metadataFile); } diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml index 856d58550..bc25d5ad6 100644 --- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml @@ -24,10 +24,10 @@ 3.1.1 - unpack-server + copy-server prepare-package - unpack + copy @@ -41,7 +41,7 @@ true true - ${project.build.directory}/../servers/bosh-language-server + ${project.basedir}/servers @@ -68,6 +68,56 @@ + + org.codehaus.mojo + exec-maven-plugin + 3.3.0 + + + extract + prepare-package + + java + + -Djarmode=tools + -jar + ${project.basedir}/servers/bosh-language-server-${project.version}-exec.jar + extract + --force + --destination + ${project.basedir}/servers/bosh-language-server + + + + exec + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + prepare-package + + run + + + + + + + + + + + + maven-clean-plugin 3.1.0 diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java index 537bcf3fb..899c5f0c0 100644 --- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2019 Pivotal, Inc. + * Copyright (c) 2016, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -25,16 +25,15 @@ public class BoshLanguageServer extends STS4LanguageServerProcessStreamConnector public BoshLanguageServer() { super(BOSH_SERVER); - initExplodedJarCommand( + initExecutableJarCommand( Paths.get("servers", "bosh-language-server"), - "org.springframework.ide.vscode.bosh.BoshLanguageServerBootApp", - "application.properties", + "bosh-language-server", Arrays.asList( "-Dlsp.lazy.completions.disable=true", "-XX:TieredStopAtLevel=1" ) ); - + setWorkingDirectory(getWorkingDirLocation()); } diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml index 737fec6c0..a4251cbb1 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml @@ -24,10 +24,10 @@ 3.1.1 - unpack-server + copy-server prepare-package - unpack + copy @@ -41,7 +41,7 @@ true true - ${project.build.directory}/../servers/manifest-yaml-language-server + ${project.basedir}/servers @@ -68,6 +68,56 @@ + + org.codehaus.mojo + exec-maven-plugin + 3.3.0 + + + extract + prepare-package + + java + + -Djarmode=tools + -jar + ${project.basedir}/servers/manifest-yaml-language-server-${project.version}-exec.jar + extract + --force + --destination + ${project.basedir}/servers/manifest-yaml-language-server + + + + exec + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + prepare-package + + run + + + + + + + + + + + + maven-clean-plugin 3.1.0 diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java index 4927a4c51..33934ddfe 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2020 Pivotal, Inc. + * Copyright (c) 2016, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -41,16 +41,15 @@ public class CloudFoundryManifestLanguageServer extends STS4LanguageServerProces public CloudFoundryManifestLanguageServer() { super(CLOUDFOUNDRY_SERVER); - initExplodedJarCommand( + initExecutableJarCommand( Paths.get("servers", "manifest-yaml-language-server"), - "org.springframework.ide.vscode.manifest.yaml.ManifestYamlLanguageServerBootApp", - "application.properties", + "manifest-yaml-language-server", Arrays.asList( "-Dlsp.lazy.completions.disable=true", "-XX:TieredStopAtLevel=1" ) ); - + setWorkingDirectory(getWorkingDirLocation()); } diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml index abec4a740..b36b9dcd3 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml @@ -24,10 +24,10 @@ 2.10 - unpack-server + copy-server prepare-package - unpack + copy @@ -41,7 +41,7 @@ true true - ${project.build.directory}/../servers/concourse-language-server + ${project.basedir}/servers @@ -68,6 +68,56 @@ + + org.codehaus.mojo + exec-maven-plugin + 3.3.0 + + + extract + prepare-package + + java + + -Djarmode=tools + -jar + ${project.basedir}/servers/concourse-language-server-${project.version}-exec.jar + extract + --force + --destination + ${project.basedir}/servers/concourse-language-server + + + + exec + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + prepare-package + + run + + + + + + + + + + + + maven-clean-plugin 3.1.0 diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java index c9c60e789..0764674dc 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2019 Pivotal, Inc. + * Copyright (c) 2016, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -24,11 +24,10 @@ public class ConcourseLanguageServer extends STS4LanguageServerProcessStreamConn public ConcourseLanguageServer() { super(CONCOURSE_SERVER); - - initExplodedJarCommand( + + initExecutableJarCommand( Paths.get("servers", "concourse-language-server"), - "org.springframework.ide.vscode.concourse.ConcourseLanguageServerBootApp", - "application.properties", + "concourse-language-server", Arrays.asList( "-Dlsp.lazy.completions.disable=true", "-XX:TieredStopAtLevel=1" diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java index 8e2226593..0c72089b8 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2023 Pivotal, Inc. + * Copyright (c) 2017, 2024 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -14,9 +14,11 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.FileLocator; @@ -80,6 +82,72 @@ public abstract class STS4LanguageServerProcessStreamConnector extends ProcessSt return JRE.currentJRE(); } + protected final void initExecutableJarCommand(Path lsDir, String jarPrefix, List extraVmArgs) { + try { + Bundle bundle = Platform.getBundle(getPluginId()); + JRE runtime = getJRE(); + + Assert.isNotNull(lsDir); + + File bundleFile = FileLocator.getBundleFileLocation(bundle).orElse(null); + File bundleRoot = bundleFile.getAbsoluteFile(); + Path languageServerRoot = bundleRoot.toPath().resolve(lsDir); + + List jarFiles = Files.list(languageServerRoot).filter(Files::isRegularFile).filter(f -> { + String fileName = f.toFile().getName(); + return fileName.endsWith(".jar") && fileName.startsWith(jarPrefix); + }).limit(2).collect(Collectors.toList()); + + if (jarFiles.size() > 1) { + throw new IllegalStateException("More than one LS JAR files found: '%s' and '%s'".formatted(jarFiles.get(0), jarFiles.get(1))); + } else if (jarFiles.isEmpty()) { + throw new IllegalStateException("No LS JAR files found!"); + } + + Path jarFile = jarFiles.get(0); + + List command = new ArrayList<>(); + + command.add(runtime.getJavaExecutable()); + command.add("-jar"); + + command.add(languageServerRoot.resolve(jarFile).toFile().toString()); + + fillCommand(command, extraVmArgs); + + setCommands(command); + + LanguageServerCommonsActivator.getInstance().getLog().info("Command list starting LS: " + connectorId + "\nSTART:\n" + String.join("\n", command) + "\nEND"); + } catch (Throwable t) { + LanguageServerCommonsActivator.logError(t, "Failed to assemble executable LS JAR launch command"); + } + + } + + private void fillCommand(List command, List extraVmArgs) { + command.add("-Dsts.lsp.client=eclipse"); + + command.addAll(extraVmArgs); + + if (!hasVmArgStartingWith(command, LOG_RESOLVE_VM_ARG_PREFIX)) { + command.add(LOG_RESOLVE_VM_ARG_PREFIX + "off"); + } + + LsPreferencesUtil.getServerInfo(getPluginId()).ifPresent(info -> { + IPreferenceStore preferenceStore = LanguageServerCommonsActivator.getInstance().getPreferenceStore(); + if (!preferenceStore.getBoolean(info.preferenceKeyConsoleLog)) { + String pathStr = preferenceStore.getString(info.preferenceKeyFileLog); + if (pathStr != null && !pathStr.isBlank()) { + command.add("-Dsts.log.file=" + pathStr); + } + } + command.add("-XX:ErrorFile=" + Platform.getStateLocation(Platform.getBundle(getPluginId())).append("fatal-error-" + info.label.replaceAll("\\s+", "-").toLowerCase() + "_" + System.currentTimeMillis())); + }); + + command.add("-Dlanguageserver.hover-timeout=225"); + + } + protected final void initExplodedJarCommand(Path lsFolder, String mainClass, String configFileName, List extraVmArgs) { try { Bundle bundle = Platform.getBundle(getPluginId()); @@ -113,39 +181,20 @@ public abstract class STS4LanguageServerProcessStreamConnector extends ProcessSt command.add(classpath.toString()); - command.add("-Dsts.lsp.client=eclipse"); - - command.addAll(extraVmArgs); - - if (!hasVmArgStartingWith(command, LOG_RESOLVE_VM_ARG_PREFIX)) { - command.add(LOG_RESOLVE_VM_ARG_PREFIX + "off"); - } - if (configFileName != null) { command.add("-Dspring.config.location=file:" + languageServerRoot.resolve("BOOT-INF/classes").resolve(configFileName).toFile()); } - LsPreferencesUtil.getServerInfo(getPluginId()).ifPresent(info -> { - IPreferenceStore preferenceStore = LanguageServerCommonsActivator.getInstance().getPreferenceStore(); - if (!preferenceStore.getBoolean(info.preferenceKeyConsoleLog)) { - String pathStr = preferenceStore.getString(info.preferenceKeyFileLog); - if (pathStr != null && !pathStr.isBlank()) { - command.add("-Dsts.log.file=" + pathStr); - } - } - command.add("-XX:ErrorFile=" + Platform.getStateLocation(bundle).append("fatal-error-" + info.label.replaceAll("\\s+", "-").toLowerCase() + "_" + System.currentTimeMillis())); - }); + fillCommand(command, extraVmArgs); command.add(mainClass); - command.add("--languageserver.hover-timeout=225"); - setCommands(command); LanguageServerCommonsActivator.getInstance().getLog().info("Command list starting LS: " + connectorId + "\nSTART:\n" + String.join("\n", command) + "\nEND"); } - catch (Exception e) { - LanguageServerCommonsActivator.logError(e, "Failed to assemble exploded LS JAR launch command"); + catch (Throwable t) { + LanguageServerCommonsActivator.logError(t, "Failed to assemble exploded LS JAR launch command"); } } diff --git a/vscode-extensions/commons-vscode/src/launch-util.ts b/vscode-extensions/commons-vscode/src/launch-util.ts index 252e43eff..444328073 100644 --- a/vscode-extensions/commons-vscode/src/launch-util.ts +++ b/vscode-extensions/commons-vscode/src/launch-util.ts @@ -207,7 +207,7 @@ function createServerOptionsForPortComm(options: ActivatorOptions, context: VSCo jvm.mainClassLaunch(explodedLsJarData.mainClass, classpath, args, processLaunchoptions); } else { // Start the child java process - const launcher = findServerJar(Path.resolve(context.extensionPath, 'jars')); + const launcher = findServerJar(Path.resolve(context.extensionPath, 'language-server')); jvm.jarLaunch(launcher, args, processLaunchoptions); } }); @@ -281,7 +281,7 @@ function addCpAndLauncherToJvmArgs(args: string[], options: ActivatorOptions, co } else { // Start the child java process args.push('-jar'); - const launcher = findServerJar(Path.resolve(context.extensionPath, 'jars')); + const launcher = findServerJar(Path.resolve(context.extensionPath, 'language-server')); args.push(launcher); } } diff --git a/vscode-extensions/vscode-bosh/lib/Main.ts b/vscode-extensions/vscode-bosh/lib/Main.ts index 89629ecb1..efa801a61 100644 --- a/vscode-extensions/vscode-bosh/lib/Main.ts +++ b/vscode-extensions/vscode-bosh/lib/Main.ts @@ -28,11 +28,6 @@ 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: [ { diff --git a/vscode-extensions/vscode-bosh/package.json b/vscode-extensions/vscode-bosh/package.json index b8c74de9f..7eff8785e 100644 --- a/vscode-extensions/vscode-bosh/package.json +++ b/vscode-extensions/vscode-bosh/package.json @@ -135,7 +135,7 @@ "devDependencies": { "@types/node": "^18.8.0", "@types/vscode": "1.75.0", - "typescript": "^4.8.0", - "@vscode/vsce": "^2.22.0" + "@vscode/vsce": "^2.22.0", + "typescript": "^4.8.0" } } diff --git a/vscode-extensions/vscode-bosh/scripts/preinstall.sh b/vscode-extensions/vscode-bosh/scripts/preinstall.sh index b26b54753..a57dbda8e 100755 --- a/vscode-extensions/vscode-bosh/scripts/preinstall.sh +++ b/vscode-extensions/vscode-bosh/scripts/preinstall.sh @@ -15,8 +15,8 @@ cd ../../headless-services/bosh-language-server 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} +# Extract LS JAR +cd ${workdir}/../../headless-services/bosh-language-server/target +server_jar_file=$(find . -name '*-exec.jar'); +java -Djarmode=tools -jar $server_jar_file extract --destination ${workdir}/language-server diff --git a/vscode-extensions/vscode-concourse/lib/Main.ts b/vscode-extensions/vscode-concourse/lib/Main.ts index 671274558..e6055bf39 100644 --- a/vscode-extensions/vscode-concourse/lib/Main.ts +++ b/vscode-extensions/vscode-concourse/lib/Main.ts @@ -31,11 +31,6 @@ 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: [ { diff --git a/vscode-extensions/vscode-concourse/package.json b/vscode-extensions/vscode-concourse/package.json index 976dfe6a3..0e67e2029 100644 --- a/vscode-extensions/vscode-concourse/package.json +++ b/vscode-extensions/vscode-concourse/package.json @@ -135,7 +135,7 @@ "devDependencies": { "@types/node": "^18.8.0", "@types/vscode": "1.75.0", - "typescript": "^4.8.0", - "@vscode/vsce": "^2.22.0" + "@vscode/vsce": "^2.22.0", + "typescript": "^4.8.0" } } diff --git a/vscode-extensions/vscode-concourse/scripts/preinstall.sh b/vscode-extensions/vscode-concourse/scripts/preinstall.sh index ddc4c350a..eef8846b0 100755 --- a/vscode-extensions/vscode-concourse/scripts/preinstall.sh +++ b/vscode-extensions/vscode-concourse/scripts/preinstall.sh @@ -15,7 +15,7 @@ cd ../../headless-services/concourse-language-server 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} +# Extract LS JAR +cd ${workdir}/../../headless-services/concourse-language-server/target +server_jar_file=$(find . -name '*-exec.jar'); +java -Djarmode=tools -jar $server_jar_file extract --destination ${workdir}/language-server diff --git a/vscode-extensions/vscode-manifest-yaml/lib/Main.ts b/vscode-extensions/vscode-manifest-yaml/lib/Main.ts index 97aec5216..0e0ff9230 100644 --- a/vscode-extensions/vscode-manifest-yaml/lib/Main.ts +++ b/vscode-extensions/vscode-manifest-yaml/lib/Main.ts @@ -28,11 +28,6 @@ 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: [ { diff --git a/vscode-extensions/vscode-manifest-yaml/scripts/preinstall.sh b/vscode-extensions/vscode-manifest-yaml/scripts/preinstall.sh index 85a28b537..d915d461b 100755 --- a/vscode-extensions/vscode-manifest-yaml/scripts/preinstall.sh +++ b/vscode-extensions/vscode-manifest-yaml/scripts/preinstall.sh @@ -15,9 +15,9 @@ cd ../../headless-services/manifest-yaml-language-server 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} +# Extract LS JAR +cd ${workdir}/../../headless-services/manifest-yaml-language-server/target +server_jar_file=$(find . -name '*-exec.jar'); +java -Djarmode=tools -jar $server_jar_file extract --destination ${workdir}/language-server diff --git a/vscode-extensions/vscode-spring-boot/lib/Main.ts b/vscode-extensions/vscode-spring-boot/lib/Main.ts index 44a3149d3..30689ffdc 100644 --- a/vscode-extensions/vscode-spring-boot/lib/Main.ts +++ b/vscode-extensions/vscode-spring-boot/lib/Main.ts @@ -60,11 +60,6 @@ export function activate(context: ExtensionContext): Thenable { ); } }, - explodedLsJarData: { - lsLocation: 'language-server', - mainClass: 'org.springframework.ide.vscode.boot.app.BootLanguageServerBootApp', - configFileName: 'application.properties' - }, workspaceOptions: workspace.getConfiguration("spring-boot.ls"), clientOptions: { markdown: { diff --git a/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh b/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh index aa867f949..3d0b1177c 100755 --- a/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh +++ b/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh @@ -19,10 +19,10 @@ mkdir -p ${workdir}/language-server cd ${workdir}/../../headless-services/spring-boot-language-server ./build.sh -# 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} +# Extract LS JAR +cd ${workdir}/../../headless-services/spring-boot-language-server/target +server_jar_file=$(find . -name '*-exec.jar'); +java -Djarmode=tools -jar $server_jar_file extract --destination ${workdir}/language-server # JDT LS Extension cd ${workdir}/../../headless-services/jdt-ls-extension