From 1d83b61c1d883083390bc33cf3486c8ad674dba2 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Fri, 27 Jan 2017 16:40:01 +0100 Subject: [PATCH] PT ##137877823: handle custom sts-progress message in a simple way --- .../META-INF/MANIFEST.MF | 2 ++ .../CloudFoundryManifestLanguageServer.java | 6 ++++++ .../META-INF/MANIFEST.MF | 5 ++++- .../SpringBootPropertiesLanguageServer.java | 21 +++++++++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF index 1d5a37c73..f27450134 100644 --- a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/META-INF/MANIFEST.MF @@ -13,4 +13,6 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0", org.eclipse.tm4e.core;bundle-version="1.0.0", org.eclipse.tm4e.ui;bundle-version="1.0.0" Import-Package: org.eclipse.jface.preference, + org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759", + org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759", org.osgi.framework diff --git a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/src/org/springframework/boot/ide/cloudfoundry/server/CloudFoundryManifestLanguageServer.java b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/src/org/springframework/boot/ide/cloudfoundry/server/CloudFoundryManifestLanguageServer.java index cc88463b0..b40dc9d05 100644 --- a/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/src/org/springframework/boot/ide/cloudfoundry/server/CloudFoundryManifestLanguageServer.java +++ b/eclipse-language-servers/org.springframework.boot.ide.cloudfoundry.server/src/org/springframework/boot/ide/cloudfoundry/server/CloudFoundryManifestLanguageServer.java @@ -24,6 +24,8 @@ import org.eclipse.jdt.internal.launching.StandardVMType; import org.eclipse.jdt.launching.IVMInstall; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider; +import org.eclipse.lsp4j.jsonrpc.messages.Message; +import org.eclipse.lsp4j.services.LanguageServer; import org.osgi.framework.Bundle; /** @@ -44,6 +46,10 @@ public class CloudFoundryManifestLanguageServer extends ProcessStreamConnectionP setWorkingDirectory(workingDir); } + public void handleMessage(Message message, LanguageServer languageServer, String rootPath) { + System.out.println("custom message arrived: " + message.toString()); + } + protected String getJDKLocation() { IVMInstall jdk = JavaRuntime.getDefaultVMInstall(); File javaExecutable = StandardVMType.findJavaExecutable(jdk.getInstallLocation()); diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF index b1e8e650a..b413815e0 100644 --- a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/META-INF/MANIFEST.MF @@ -12,5 +12,8 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0", org.eclipse.jdt.ui;bundle-version="3.13.0", org.eclipse.tm4e.core;bundle-version="1.0.0", org.eclipse.tm4e.ui;bundle-version="1.0.0" -Import-Package: org.eclipse.jface.preference, +Import-Package: com.google.gson;version="2.7.0", + org.eclipse.jface.preference, + org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759", + org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759", org.osgi.framework diff --git a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java index 8630a35c8..3b3536788 100644 --- a/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java +++ b/eclipse-language-servers/org.springframework.boot.ide.properties.servers/src/org/springframework/boot/ide/properties/servers/SpringBootPropertiesLanguageServer.java @@ -24,8 +24,13 @@ import org.eclipse.jdt.internal.launching.StandardVMType; import org.eclipse.jdt.launching.IVMInstall; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider; +import org.eclipse.lsp4j.jsonrpc.messages.Message; +import org.eclipse.lsp4j.jsonrpc.messages.NotificationMessage; +import org.eclipse.lsp4j.services.LanguageServer; import org.osgi.framework.Bundle; +import com.google.gson.JsonObject; + /** * @author Martin Lippert */ @@ -44,6 +49,22 @@ public class SpringBootPropertiesLanguageServer extends ProcessStreamConnectionP setWorkingDirectory(workingDir); } + public void handleMessage(Message message, LanguageServer languageServer, String rootPath) { + if (message instanceof NotificationMessage) { + NotificationMessage notificationMessage = (NotificationMessage) message; + if ("sts/progress".equals(notificationMessage.getMethod())) { + JsonObject params = (JsonObject) notificationMessage.getParams(); + if (params.has("statusMsg")) { + String status = params.get("statusMsg").getAsString(); + System.out.println("STS4 Language Server Status Update: " + status); + } + else { + System.out.println("STS4 Language Server Status Update: DONE"); + } + } + } + } + protected String getJDKLocation() { IVMInstall jdk = JavaRuntime.getDefaultVMInstall(); File javaExecutable = StandardVMType.findJavaExecutable(jdk.getInstallLocation());