moved process reaper to commons and re-used it for boot-java-ls
This commit is contained in:
@@ -15,7 +15,7 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
|
||||
org.eclipse.ui.workbench,
|
||||
org.eclipse.jface,
|
||||
org.eclipse.xtext.xbase.lib,
|
||||
org.springframework.tooling.ls.eclipse.commons,
|
||||
org.springframework.tooling.ls.eclipse.commons;bundle-version="0.0.10",
|
||||
org.eclipse.core.resources,
|
||||
org.eclipse.ui
|
||||
Import-Package: com.google.gson;version="2.7.0",
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
package org.springframework.tooling.boot.java.ls;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
@@ -23,6 +24,7 @@ import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.jdt.internal.launching.StandardVMType;
|
||||
import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider;
|
||||
import org.osgi.framework.Bundle;
|
||||
import org.springframework.tooling.ls.eclipse.commons.LanguageServerProcessReaper;
|
||||
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
@@ -30,6 +32,8 @@ import org.osgi.framework.Bundle;
|
||||
@SuppressWarnings("restriction")
|
||||
public class SpringBootJavaLanguageServer extends ProcessStreamConnectionProvider {
|
||||
|
||||
private static LanguageServerProcessReaper processReaper = new LanguageServerProcessReaper();
|
||||
|
||||
public SpringBootJavaLanguageServer() {
|
||||
List<String> commands = new ArrayList<>();
|
||||
commands.add(getJDKLocation());
|
||||
@@ -50,6 +54,18 @@ public class SpringBootJavaLanguageServer extends ProcessStreamConnectionProvide
|
||||
setWorkingDirectory(workingDir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() throws IOException {
|
||||
super.start();
|
||||
processReaper.addProcess(LanguageServerProcessReaper.getProcess(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
super.stop();
|
||||
processReaper.removeProcess(LanguageServerProcessReaper.getProcess(this));
|
||||
}
|
||||
|
||||
protected String getJDKLocation() {
|
||||
File jre = new File(System.getProperty("java.home"));
|
||||
File javaExecutable = StandardVMType.findJavaExecutable(jre);
|
||||
|
||||
Reference in New Issue
Block a user