From a41435f69e8cc56fff030ff650118dc1e9a9b3cc Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Tue, 3 Dec 2019 14:45:41 -0800 Subject: [PATCH] Improve process labels for remote processes --- .../java/livehover/v2/LiveProcessCommand.java | 8 ++++-- .../v2/SpringProcessCommandHandler.java | 25 +++++++++++++++---- .../livehover/v2/SpringProcessConnector.java | 3 +-- .../v2/SpringProcessConnectorOverJMX.java | 18 +++++++++---- .../v2/SpringProcessConnectorRemote.java | 19 ++++++++++---- .../livehover/v2/SpringProcessDescriptor.java | 12 ++++++--- 6 files changed, 62 insertions(+), 23 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/LiveProcessCommand.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/LiveProcessCommand.java index 6dda99178..967418691 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/LiveProcessCommand.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/LiveProcessCommand.java @@ -44,8 +44,12 @@ public class LiveProcessCommand { @Override public String toString() { - return "LiveProcessCommand [processKey=" + processKey + ", action=" + action + ", projectName=" + projectName - + ", processId=" + processId + "]"; + return "LiveProcessCommand [\n" + + " processKey=" + processKey + ",\n" + + " label=" + label +",\n" + + " action=" + action + ",\n" + + " projectName=" + projectName+"\n" + + " processId=" + processId + "\n]"; } public String getProjectName() { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessCommandHandler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessCommandHandler.java index 73eeb2b97..50bd1c6d0 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessCommandHandler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessCommandHandler.java @@ -125,7 +125,7 @@ public class SpringProcessCommandHandler { SpringProcessConnector[] connectedProcesses = connectorService.getConnectedProcesses(); for (SpringProcessConnector process : connectedProcesses) { String processKey = process.getProcessKey(); - String label = process.getLabel(); + String label = createLabel(process); result.add(new LiveProcessCommand(COMMAND_REFRESH, processKey, label, process.getProjectName(), process.getProcessId())); result.add(new LiveProcessCommand(COMMAND_DISCONNECT, processKey, label, process.getProjectName(), process.getProcessId())); alreadyConnected.add(processKey); @@ -137,7 +137,7 @@ public class SpringProcessCommandHandler { for (SpringProcessDescriptor localProcess : localProcesses) { String processKey = localProcess.getProcessKey(); if (!alreadyConnected.contains(processKey)) { - String label = localProcess.getLabel(); + String label = createLabel(localProcess); LiveProcessCommand command = new LiveProcessCommand(COMMAND_CONNECT, processKey, label, localProcess.getProjectName(), null); result.add(command); @@ -150,14 +150,29 @@ public class SpringProcessCommandHandler { for (RemoteBootAppData remoteProcess : remoteProcesses) { String processKey = SpringProcessConnectorRemote.getProcessKey(remoteProcess); if (!alreadyConnected.contains(processKey)) { - String label = "remote process: " + remoteProcess.getJmxurl(); - result.add(new LiveProcessCommand(COMMAND_CONNECT, processKey, label, null, remoteProcess.getProcessId())); + String label = createLabel(remoteProcess); + result.add(new LiveProcessCommand(COMMAND_CONNECT, processKey, label, null, remoteProcess.getProcessID())); } } - log.info("getProcessCommands => {}", result); + log.debug("getProcessCommands => {}", result); return CompletableFuture.completedFuture((Object[]) result.toArray(new Object[result.size()])); } + private String createLabel(RemoteBootAppData remoteProcess) { + //For the case of a not yet connected Remote BootApp + return remoteProcess.getProcessID() + " ("+SpringProcessConnectorRemote.getProcessName(remoteProcess); + } + + private String createLabel(SpringProcessDescriptor localProcess) { + //For the case of a not yet connected local process + return localProcess.getProcessID() + " ("+localProcess.getProcessName()+")"; + } + + private String createLabel(SpringProcessConnector process) { + //For the case of an already connected process (local or remote). + return process.getProcessId() +" ("+process.getProcessName() + ")"; + } + private String getProcessKey(ExecuteCommandParams params) { List arguments = params.getArguments(); for (Object arg : arguments) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnector.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnector.java index c15e6b177..2d7d015ba 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnector.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnector.java @@ -16,7 +16,6 @@ package org.springframework.ide.vscode.boot.java.livehover.v2; public interface SpringProcessConnector { String getProcessKey(); - String getLabel(); void connect() throws Exception; SpringProcessLiveData refresh() throws Exception; @@ -26,5 +25,5 @@ public interface SpringProcessConnector { void removeConnectorChangeListener(SpringProcessConnectionChangeListener listener); String getProjectName(); String getProcessId(); - + String getProcessName(); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorOverJMX.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorOverJMX.java index 5469e665e..b7c5920ad 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorOverJMX.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorOverJMX.java @@ -95,11 +95,6 @@ public class SpringProcessConnectorOverJMX implements SpringProcessConnector { return processKey; } - @Override - public String getLabel() { - return processID + " (" + processName + ") "; - } - @Override public void connect() throws Exception { jmxServiceURL = new JMXServiceURL(jmxURL); @@ -187,4 +182,17 @@ public class SpringProcessConnectorOverJMX implements SpringProcessConnector { public String getProcessId() { return processID; } + + @Override + public String getProcessName() { + return processName; + } + + @Override + public String toString() { + return "SpringProcessConnectorOverJMX [jmxURL=" + jmxURL + ", processID=" + processID + ", processName=" + + processName + ", listeners=" + listeners + ", jmxConnection=" + jmxConnection + ", jmxServiceURL=" + + jmxServiceURL + ", notificationListener=" + notificationListener + "]"; + } + } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java index 509ae8a19..210e024bc 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessConnectorRemote.java @@ -22,6 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.commons.languageserver.util.Settings; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; +import org.springframework.util.StringUtils; /** * @author Martin Lippert @@ -87,7 +88,7 @@ public class SpringProcessConnectorRemote { + port + ", keepChecking=" + keepChecking + "]"; } - public String getProcessId() { + public String getProcessID() { return processId; } @@ -199,15 +200,23 @@ public class SpringProcessConnectorRemote { }); } } - + + public static String getProcessName(RemoteBootAppData appData) { + if (StringUtils.hasText(appData.getHost())) { + return "remote process - "+ appData.getHost(); + } else { + return "remote process - " + appData.getJmxurl(); + } + } + public static String getProcessKey(RemoteBootAppData appData) { return "remote process - " + appData.getJmxurl(); } - + public void connectProcess(RemoteBootAppData remoteProcess) { String processKey = getProcessKey(remoteProcess); - String processID = remoteProcess.getProcessId(); - String processName = processKey; + String processID = remoteProcess.getProcessID(); + String processName = getProcessName(remoteProcess); String jmxURL = remoteProcess.getJmxurl(); String host = remoteProcess.getHost(); String port = remoteProcess.getPort(); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessDescriptor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessDescriptor.java index 8f3ed174d..119b15d18 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessDescriptor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/v2/SpringProcessDescriptor.java @@ -82,10 +82,6 @@ public class SpringProcessDescriptor { return vm; } - public String getLabel() { - return processID + " (" + processName + ")"; - } - public SpringProcessStatus getStatus() { return this.status; } @@ -193,4 +189,12 @@ public class SpringProcessDescriptor { return projectName; } + @Override + public String toString() { + return "SpringProcessDescriptor [processKey=" + processKey + ", processID=" + processID + ", processName=" + + processName + "]"; + } + + + }