PT #157668103: Switch to Gson where possible - except Bosh

This commit is contained in:
BoykoAlex
2018-05-17 15:53:33 -04:00
parent e598039f65
commit 984eafc2c0
8 changed files with 73 additions and 70 deletions

View File

@@ -110,10 +110,11 @@ import org.springframework.ide.vscode.commons.util.UriUtil;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
import org.springframework.ide.vscode.commons.util.text.TextDocument;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import reactor.core.publisher.Mono;
@@ -134,6 +135,7 @@ public class LanguageServerHarness<S extends SimpleLanguageServerWrapper> {
private Multimap<String, CompletableFuture<HighlightParams>> highlights = MultimapBuilder.hashKeys().linkedListValues().build();
private Map<String, PublishDiagnosticsParams> diagnostics = new HashMap<>();
private List<Editor> activeEditors = new ArrayList<>();
private Gson gson = new Gson();
public LanguageServerHarness(Callable<S> factory, LanguageId defaultLanguageId) {
@@ -657,14 +659,14 @@ public class LanguageServerHarness<S extends SimpleLanguageServerWrapper> {
.collect(Collectors.toList());
}
ObjectMapper mapper = new ObjectMapper();
@SuppressWarnings({ "unchecked", "rawtypes" })
public void perform(Command command) throws Exception {
List<Object> args = command.getArguments();
//Note convert the params to a 'typeless' Object because that is more representative on how it will be
// received when we get it in a real client/server setting (i.e. parsed from json).
List untypedParams = mapper.convertValue(args, List.class);
JsonArray jsonArray = gson.toJsonTree(args).getAsJsonArray();
List<Object> untypedParams = new ArrayList<>(jsonArray.size());
jsonArray.forEach(e -> untypedParams.add(e));
getServer().getWorkspaceService()
.executeCommand(new ExecuteCommandParams(command.getCommand(), untypedParams))
.get();