Merge pull request #754 from spring-projects/api-get-live-processes
Add 'listConnectedProcesses' to public api
This commit is contained in:
@@ -17,6 +17,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.eclipse.lsp4j.ExecuteCommandParams;
|
||||
import org.slf4j.Logger;
|
||||
@@ -39,6 +42,7 @@ public class SpringProcessCommandHandler {
|
||||
private static final String COMMAND_REFRESH = "sts/livedata/refresh";
|
||||
private static final String COMMAND_DISCONNECT = "sts/livedata/disconnect";
|
||||
private static final String COMMAND_GET = "sts/livedata/get";
|
||||
private static final String COMMAND_LIST_CONNECTED = "sts/livedata/listConnected";
|
||||
|
||||
private final SpringProcessConnectorService connectorService;
|
||||
private final SpringProcessConnectorLocal localProcessConnector;
|
||||
@@ -74,6 +78,13 @@ public class SpringProcessCommandHandler {
|
||||
return get(params);
|
||||
});
|
||||
log.info("Registered command handler: {}",COMMAND_GET);
|
||||
|
||||
server.onCommand(COMMAND_LIST_CONNECTED, (params) -> {
|
||||
return CompletableFuture.completedFuture(Stream.of(connectorService.getConnectedProcesses())
|
||||
.map(process -> process.getProcessKey())
|
||||
.collect(Collectors.toList())
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
private CompletableFuture<Object> connect(ExecuteCommandParams params) {
|
||||
|
||||
@@ -23,6 +23,13 @@ export interface ExtensionAPI {
|
||||
* A command to get live process data.
|
||||
*/
|
||||
readonly getLiveProcessData: (query: SimpleQuery | BeansQuery) => Promise<any>
|
||||
|
||||
/**
|
||||
* A command to list all currently connected processes.
|
||||
*
|
||||
* Returns a list of processKeys.
|
||||
*/
|
||||
readonly listConnectedProcesses: () => Promise<string[]>
|
||||
}
|
||||
|
||||
interface LiveProcessDataQuery {
|
||||
|
||||
@@ -19,6 +19,11 @@ export class ApiManager {
|
||||
return await commands.executeCommand(COMMAND_LIVEDATA_GET, query);
|
||||
}
|
||||
|
||||
const COMMAND_LIVEDATA_LIST_CONNECTED = "sts/livedata/listConnected"
|
||||
const listConnectedProcesses = async () : Promise<string[]> => {
|
||||
return await commands.executeCommand(COMMAND_LIVEDATA_LIST_CONNECTED);
|
||||
}
|
||||
|
||||
client.onNotification(LiveProcessConnectedNotification.type, (processKey: string) => this.onDidLiveProcessConnectEmitter.fire(processKey));
|
||||
client.onNotification(LiveProcessDisconnectedNotification.type, (processKey: string) => this.onDidLiveProcessDisconnectEmitter.fire(processKey));
|
||||
client.onNotification(LiveProcessUpdatedNotification.type, (processKey: string) => this.onDidLiveProcessUpdateEmitter.fire(processKey));
|
||||
@@ -28,7 +33,8 @@ export class ApiManager {
|
||||
onDidLiveProcessConnect,
|
||||
onDidLiveProcessDisconnect,
|
||||
onDidLiveProcessUpdate,
|
||||
getLiveProcessData
|
||||
getLiveProcessData,
|
||||
listConnectedProcesses,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user