diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/Map.json b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/Map.json index a4e8ddb3f..77caa33d5 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/Map.json +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/Map.json @@ -42,7 +42,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -62,7 +62,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -82,7 +82,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -126,7 +126,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -146,11 +146,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.Map\u003c+TK;+TV;\u003e;", + "name": "Ljava/util/Map\u003c+TK;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Map;" + "name": "Ljava/util/Map;" }, "arguments": [ { @@ -188,15 +188,15 @@ "label": "void java.util.Map.clear()" }, { - "bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;", + "bindingKey": "Ljava/util/Map;.keySet()Ljava/util/Set\u003cTK;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Set\u003cTK;\u003e;", + "name": "Ljava/util/Set\u003cTK;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Set;" + "name": "Ljava/util/Set;" }, "arguments": [ { @@ -215,15 +215,15 @@ "label": "Set\u003cK\u003e java.util.Map.keySet()" }, { - "bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;", + "bindingKey": "Ljava/util/Map;.values()Ljava/util/Collection\u003cTV;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Collection\u003cTV;\u003e;", + "name": "Ljava/util/Collection\u003cTV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Collection;" + "name": "Ljava/util/Collection;" }, "arguments": [ { @@ -242,24 +242,24 @@ "label": "Collection\u003cV\u003e java.util.Map.values()" }, { - "bindingKey": "Ljava/util/Map;.entrySet()Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;", + "bindingKey": "Ljava/util/Map;.entrySet()Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;", + "name": "Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Set;" + "name": "Ljava/util/Set;" }, "arguments": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;", + "name": "Ljava/util/Map$Entry\u003cTK;TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Map$Entry;" + "name": "Ljava/util/Map$Entry;" }, "arguments": [ { @@ -294,7 +294,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -329,7 +329,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" }, { "kind": "TYPE_VARIABLE", @@ -353,11 +353,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;", + "name": "Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiConsumer;" + "name": "Ljava/util/function/BiConsumer;" }, "arguments": [ { @@ -389,11 +389,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -453,11 +453,11 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" }, { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -533,11 +533,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;", + "name": "Ljava/util/function/Function\u003c-TK;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.Function;" + "name": "Ljava/util/function/Function;" }, "arguments": [ { @@ -573,11 +573,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -617,11 +617,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -665,11 +665,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/ServerProperties.json b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/ServerProperties.json index 165e590c2..f1ae15d80 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/ServerProperties.json +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/ServerProperties.json @@ -5,7 +5,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port", "type": { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" }, "enumConstant": false, "annotations": [], @@ -19,7 +19,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address", "type": { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" }, "enumConstant": false, "annotations": [], @@ -33,7 +33,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;" + "name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;" }, "enumConstant": false, "annotations": [ @@ -55,7 +55,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders", "type": { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" }, "enumConstant": false, "annotations": [], @@ -69,7 +69,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader", "type": { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" }, "enumConstant": false, "annotations": [], @@ -97,7 +97,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout", "type": { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" }, "enumConstant": false, "annotations": [], @@ -111,7 +111,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" }, "enumConstant": false, "annotations": [ @@ -133,7 +133,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Compression;" + "name": "Lorg/springframework/boot/web/server/Compression;" }, "enumConstant": false, "annotations": [ @@ -155,7 +155,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Http2;" + "name": "Lorg/springframework/boot/web/server/Http2;" }, "enumConstant": false, "annotations": [ @@ -177,7 +177,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;" }, "enumConstant": false, "annotations": [], @@ -191,7 +191,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;" }, "enumConstant": false, "annotations": [], @@ -205,7 +205,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;" }, "enumConstant": false, "annotations": [], @@ -219,7 +219,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;" }, "enumConstant": false, "annotations": [], @@ -247,11 +247,11 @@ "label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava/lang/Integer;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" }, "parameters": [], "annotations": [], @@ -271,7 +271,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" } ], "annotations": [], @@ -282,11 +282,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava/net/InetAddress;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" }, "parameters": [], "annotations": [], @@ -306,7 +306,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" } ], "annotations": [], @@ -317,11 +317,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava/lang/Boolean;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" }, "parameters": [], "annotations": [], @@ -341,7 +341,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" } ], "annotations": [], @@ -352,11 +352,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava/lang/String;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" }, "parameters": [], "annotations": [], @@ -376,7 +376,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" } ], "annotations": [], @@ -422,11 +422,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava/time/Duration;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" }, "parameters": [], "annotations": [], @@ -446,7 +446,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" } ], "annotations": [], @@ -457,11 +457,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setConnectionTimeout(Duration connectionTimeout)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg.springframework.boot.autoconfigure.web.ErrorProperties;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg/springframework/boot/autoconfigure/web/ErrorProperties;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;" + "name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;" }, "parameters": [], "annotations": [], @@ -472,11 +472,11 @@ "label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg.springframework.boot.web.server.Ssl;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg/springframework/boot/web/server/Ssl;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" }, "parameters": [], "annotations": [], @@ -496,7 +496,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" } ], "annotations": [], @@ -507,11 +507,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setSsl(Ssl ssl)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg.springframework.boot.web.server.Compression;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg/springframework/boot/web/server/Compression;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Compression;" + "name": "Lorg/springframework/boot/web/server/Compression;" }, "parameters": [], "annotations": [], @@ -522,11 +522,11 @@ "label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg.springframework.boot.web.server.Http2;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg/springframework/boot/web/server/Http2;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Http2;" + "name": "Lorg/springframework/boot/web/server/Http2;" }, "parameters": [], "annotations": [], @@ -537,11 +537,11 @@ "label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;" }, "parameters": [], "annotations": [], @@ -552,11 +552,11 @@ "label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;" }, "parameters": [], "annotations": [], @@ -567,11 +567,11 @@ "label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;" }, "parameters": [], "annotations": [], @@ -582,11 +582,11 @@ "label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;" }, "parameters": [], "annotations": [], diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/Wrappers.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/Wrappers.java index 4707dc6d7..ba03c1adb 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/Wrappers.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/Wrappers.java @@ -11,7 +11,9 @@ package org.springframework.ide.vscode.commons.jdtls; import java.io.File; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -35,6 +37,7 @@ import org.springframework.ide.vscode.commons.java.IWildcardType; import org.springframework.ide.vscode.commons.java.JavaUtils; import org.springframework.ide.vscode.commons.javadoc.IJavadoc; import org.springframework.ide.vscode.commons.protocol.java.JavaTypeData; +import org.springframework.ide.vscode.commons.protocol.java.JavaTypeData.JavaTypeKind; import org.springframework.ide.vscode.commons.protocol.java.TypeData; import org.springframework.ide.vscode.commons.protocol.java.TypeData.AnnotationData; import org.springframework.ide.vscode.commons.protocol.java.TypeData.FieldData; @@ -42,8 +45,11 @@ import org.springframework.ide.vscode.commons.protocol.java.TypeData.MethodData; import org.springframework.ide.vscode.commons.protocol.java.TypeDescriptorData; import com.google.common.base.Supplier; +import com.google.gson.Gson; public class Wrappers { + + static private final Gson GSON = new Gson(); public static IJavaType wrap(JavaTypeData data) { switch (data.getKind()) { @@ -107,7 +113,8 @@ public class Wrappers { @Override public IJavaType component() { if (data.getExtras() != null && data.getExtras().containsKey("component")) { - return wrap((JavaTypeData) data.getExtras().get("component")); + JavaTypeData typeData = GSON.fromJson(GSON.toJsonTree(data.getExtras().get("component")), JavaTypeData.class); + return wrap(typeData); } return null; } @@ -128,10 +135,16 @@ public class Wrappers { return data.getName(); } + @SuppressWarnings("unchecked") @Override public IJavaType owner() { if (data.getExtras() != null && data.getExtras().containsKey("owner")) { - return wrap((JavaTypeData) data.getExtras().get("owner")); + Map owner = (Map) data.getExtras().get("owner"); + JavaTypeData typeData = GSON.fromJson(GSON.toJsonTree(owner), JavaTypeData.class); + if (owner.get("kind") instanceof Double) { + typeData.setKind(JavaTypeKind.values()[((Double)owner.get("kind")).intValue()]); + } + return wrap((typeData) ); } return null; } @@ -140,7 +153,18 @@ public class Wrappers { @Override public Stream arguments() { if (data.getExtras() != null && data.getExtras().containsKey("arguments")) { - return ((List) data.getExtras().get("arguments")).stream().map(Wrappers::wrap); + List> args = (List>) data.getExtras().get("arguments"); + if (args != null) { + List types = new ArrayList<>(args.size()); + for (Map entry : args) { + JavaTypeData typeData = GSON.fromJson(GSON.toJson(entry), JavaTypeData.class); + if (entry.get("kind") instanceof Double) { + typeData.setKind(JavaTypeKind.values()[((Double)entry.get("kind")).intValue()]); + } + types.add(Wrappers.wrap(typeData)); + } + return types.stream(); + } } return Stream.of(); } diff --git a/headless-services/commons/commons-java/src/test/resources/java-data-json/Map.json b/headless-services/commons/commons-java/src/test/resources/java-data-json/Map.json index a4e8ddb3f..77caa33d5 100644 --- a/headless-services/commons/commons-java/src/test/resources/java-data-json/Map.json +++ b/headless-services/commons/commons-java/src/test/resources/java-data-json/Map.json @@ -42,7 +42,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -62,7 +62,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -82,7 +82,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -126,7 +126,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -146,11 +146,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.Map\u003c+TK;+TV;\u003e;", + "name": "Ljava/util/Map\u003c+TK;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Map;" + "name": "Ljava/util/Map;" }, "arguments": [ { @@ -188,15 +188,15 @@ "label": "void java.util.Map.clear()" }, { - "bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;", + "bindingKey": "Ljava/util/Map;.keySet()Ljava/util/Set\u003cTK;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Set\u003cTK;\u003e;", + "name": "Ljava/util/Set\u003cTK;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Set;" + "name": "Ljava/util/Set;" }, "arguments": [ { @@ -215,15 +215,15 @@ "label": "Set\u003cK\u003e java.util.Map.keySet()" }, { - "bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;", + "bindingKey": "Ljava/util/Map;.values()Ljava/util/Collection\u003cTV;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Collection\u003cTV;\u003e;", + "name": "Ljava/util/Collection\u003cTV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Collection;" + "name": "Ljava/util/Collection;" }, "arguments": [ { @@ -242,24 +242,24 @@ "label": "Collection\u003cV\u003e java.util.Map.values()" }, { - "bindingKey": "Ljava/util/Map;.entrySet()Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;", + "bindingKey": "Ljava/util/Map;.entrySet()Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;", "constructor": false, "returnType": { "kind": "PARAMETERIZED", - "name": "Ljava.util.Set\u003cLjava.util.Map$Entry\u003cTK;TV;\u003e;\u003e;", + "name": "Ljava/util/Set\u003cLjava/util/Map$Entry\u003cTK;TV;\u003e;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Set;" + "name": "Ljava/util/Set;" }, "arguments": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;", + "name": "Ljava/util/Map$Entry\u003cTK;TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.Map$Entry;" + "name": "Ljava/util/Map$Entry;" }, "arguments": [ { @@ -294,7 +294,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -329,7 +329,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" }, { "kind": "TYPE_VARIABLE", @@ -353,11 +353,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;", + "name": "Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiConsumer;" + "name": "Ljava/util/function/BiConsumer;" }, "arguments": [ { @@ -389,11 +389,11 @@ "parameters": [ { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -453,11 +453,11 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" }, { "kind": "CLASS", - "name": "Ljava.lang.Object;" + "name": "Ljava/lang/Object;" } ], "annotations": [], @@ -533,11 +533,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;", + "name": "Ljava/util/function/Function\u003c-TK;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.Function;" + "name": "Ljava/util/function/Function;" }, "arguments": [ { @@ -573,11 +573,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -617,11 +617,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { @@ -665,11 +665,11 @@ }, { "kind": "PARAMETERIZED", - "name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;", + "name": "Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;", "extras": { "owner": { "kind": "CLASS", - "name": "Ljava.util.function.BiFunction;" + "name": "Ljava/util/function/BiFunction;" }, "arguments": [ { diff --git a/headless-services/commons/commons-java/src/test/resources/java-data-json/ServerProperties.json b/headless-services/commons/commons-java/src/test/resources/java-data-json/ServerProperties.json index 165e590c2..f1ae15d80 100644 --- a/headless-services/commons/commons-java/src/test/resources/java-data-json/ServerProperties.json +++ b/headless-services/commons/commons-java/src/test/resources/java-data-json/ServerProperties.json @@ -5,7 +5,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port", "type": { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" }, "enumConstant": false, "annotations": [], @@ -19,7 +19,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address", "type": { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" }, "enumConstant": false, "annotations": [], @@ -33,7 +33,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;" + "name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;" }, "enumConstant": false, "annotations": [ @@ -55,7 +55,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders", "type": { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" }, "enumConstant": false, "annotations": [], @@ -69,7 +69,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader", "type": { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" }, "enumConstant": false, "annotations": [], @@ -97,7 +97,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout", "type": { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" }, "enumConstant": false, "annotations": [], @@ -111,7 +111,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" }, "enumConstant": false, "annotations": [ @@ -133,7 +133,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Compression;" + "name": "Lorg/springframework/boot/web/server/Compression;" }, "enumConstant": false, "annotations": [ @@ -155,7 +155,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Http2;" + "name": "Lorg/springframework/boot/web/server/Http2;" }, "enumConstant": false, "annotations": [ @@ -177,7 +177,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;" }, "enumConstant": false, "annotations": [], @@ -191,7 +191,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;" }, "enumConstant": false, "annotations": [], @@ -205,7 +205,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;" }, "enumConstant": false, "annotations": [], @@ -219,7 +219,7 @@ "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow", "type": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;" }, "enumConstant": false, "annotations": [], @@ -247,11 +247,11 @@ "label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava/lang/Integer;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" }, "parameters": [], "annotations": [], @@ -271,7 +271,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Integer;" + "name": "Ljava/lang/Integer;" } ], "annotations": [], @@ -282,11 +282,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava/net/InetAddress;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" }, "parameters": [], "annotations": [], @@ -306,7 +306,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.net.InetAddress;" + "name": "Ljava/net/InetAddress;" } ], "annotations": [], @@ -317,11 +317,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava/lang/Boolean;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" }, "parameters": [], "annotations": [], @@ -341,7 +341,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.Boolean;" + "name": "Ljava/lang/Boolean;" } ], "annotations": [], @@ -352,11 +352,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava/lang/String;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" }, "parameters": [], "annotations": [], @@ -376,7 +376,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.lang.String;" + "name": "Ljava/lang/String;" } ], "annotations": [], @@ -422,11 +422,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava/time/Duration;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" }, "parameters": [], "annotations": [], @@ -446,7 +446,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Ljava.time.Duration;" + "name": "Ljava/time/Duration;" } ], "annotations": [], @@ -457,11 +457,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setConnectionTimeout(Duration connectionTimeout)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg.springframework.boot.autoconfigure.web.ErrorProperties;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getError()Lorg/springframework/boot/autoconfigure/web/ErrorProperties;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;" + "name": "Lorg/springframework/boot/autoconfigure/web/ErrorProperties;" }, "parameters": [], "annotations": [], @@ -472,11 +472,11 @@ "label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg.springframework.boot.web.server.Ssl;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getSsl()Lorg/springframework/boot/web/server/Ssl;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" }, "parameters": [], "annotations": [], @@ -496,7 +496,7 @@ "parameters": [ { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Ssl;" + "name": "Lorg/springframework/boot/web/server/Ssl;" } ], "annotations": [], @@ -507,11 +507,11 @@ "label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setSsl(Ssl ssl)" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg.springframework.boot.web.server.Compression;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getCompression()Lorg/springframework/boot/web/server/Compression;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Compression;" + "name": "Lorg/springframework/boot/web/server/Compression;" }, "parameters": [], "annotations": [], @@ -522,11 +522,11 @@ "label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg.springframework.boot.web.server.Http2;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getHttp2()Lorg/springframework/boot/web/server/Http2;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.web.server.Http2;" + "name": "Lorg/springframework/boot/web/server/Http2;" }, "parameters": [], "annotations": [], @@ -537,11 +537,11 @@ "label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServlet()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Servlet;" }, "parameters": [], "annotations": [], @@ -552,11 +552,11 @@ "label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getTomcat()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Tomcat;" }, "parameters": [], "annotations": [], @@ -567,11 +567,11 @@ "label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getJetty()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Jetty;" }, "parameters": [], "annotations": [], @@ -582,11 +582,11 @@ "label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()" }, { - "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;", + "bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getUndertow()Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;", "constructor": false, "returnType": { "kind": "CLASS", - "name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;" + "name": "Lorg/springframework/boot/autoconfigure/web/ServerProperties$Undertow;" }, "parameters": [], "annotations": [], diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/JavaData.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/JavaData.java index 4b1b09efe..86e50b874 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/JavaData.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/java/JavaData.java @@ -359,7 +359,7 @@ public class JavaData { private JavaTypeData createFromSignature(IType type, String signature) { JavaTypeData data = new JavaTypeData(); - data.setName(signature); + data.setName(signature.replace('.', '/')); char[] typeSignature = signature.toCharArray(); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringLiveHoverWatchdog.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringLiveHoverWatchdog.java index 22977d592..6a2293f3f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringLiveHoverWatchdog.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringLiveHoverWatchdog.java @@ -239,14 +239,17 @@ public class SpringLiveHoverWatchdog { private IJavaProject getCachedProject(String docURI) { AtomicReference reference = this.watchedDocs.get(docURI); - IJavaProject project = reference.get(); - if (project == null) { - project = identifyProject(docURI); - if (!reference.compareAndSet(null, project)) { - return reference.get(); + if (reference != null) { + IJavaProject project = reference.get(); + if (project == null) { + project = identifyProject(docURI); + if (!reference.compareAndSet(null, project)) { + return reference.get(); + } } + return project; } - return project; + return null; } private IJavaProject identifyProject(String docURI) { @@ -260,9 +263,12 @@ public class SpringLiveHoverWatchdog { } private void publishLiveHints(String docURI, CodeLens[] codeLenses) { - int version = server.getTextDocumentService().get(docURI).getVersion(); - VersionedTextDocumentIdentifier id = new VersionedTextDocumentIdentifier(docURI, version); - server.getClient().highlight(new HighlightParams(id, Arrays.asList(codeLenses))); + TextDocument doc = server.getTextDocumentService().get(docURI); + if (doc != null) { + int version = doc.getVersion(); + VersionedTextDocumentIdentifier id = new VersionedTextDocumentIdentifier(docURI, version); + server.getClient().highlight(new HighlightParams(id, Arrays.asList(codeLenses))); + } } private void cleanupLiveHints(String docURI) {