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