Improve process labels for remote processes

This commit is contained in:
Kris De Volder
2019-12-03 14:45:41 -08:00
parent 65df6cb90e
commit a41435f69e
6 changed files with 62 additions and 23 deletions

View File

@@ -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() {

View File

@@ -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<Object> arguments = params.getArguments();
for (Object arg : arguments) {

View File

@@ -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();
}

View File

@@ -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 + "]";
}
}

View File

@@ -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();

View File

@@ -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 + "]";
}
}