JDT LS based index for searches and refactorings to replace Jandex
This commit is contained in:
@@ -11,4 +11,10 @@ Require-Bundle: org.junit,
|
||||
org.springframework.tooling.ls.eclipse.commons,
|
||||
org.eclipse.jdt.core,
|
||||
org.apache.commons.io,
|
||||
org.springframework.tooling.jdt.ls.commons
|
||||
org.springframework.tooling.jdt.ls.commons,
|
||||
org.eclipse.lsp4j,
|
||||
org.eclipse.m2e.core,
|
||||
org.eclipse.m2e.maven.runtime,
|
||||
org.eclipse.m2e.core.ui,
|
||||
com.google.gson,
|
||||
org.eclipse.lsp4j.jsonrpc
|
||||
|
||||
@@ -0,0 +1,720 @@
|
||||
{
|
||||
"fqName": "java.util.Map",
|
||||
"bindingKey": "Ljava/util/Map;",
|
||||
"clazz": false,
|
||||
"annotation": false,
|
||||
"interfaze": true,
|
||||
"enam": false,
|
||||
"superClassName": "java.lang.Object",
|
||||
"superInterfaceNames": [],
|
||||
"fields": [],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.size()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "size",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~size",
|
||||
"label": "int java.util.Map.size()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.isEmpty()Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "isEmpty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~isEmpty",
|
||||
"label": "boolean java.util.Map.isEmpty()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.containsKey(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "containsKey",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~containsKey~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.containsKey(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.containsValue(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "containsValue",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~containsValue~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.containsValue(Object value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.get(Ljava/lang/Object;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "get",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~get~Ljava.lang.Object;",
|
||||
"label": "V java.util.Map.get(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.put(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "put",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~put~TK;~TV;",
|
||||
"label": "V java.util.Map.put(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.remove(Ljava/lang/Object;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "remove",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~remove~Ljava.lang.Object;",
|
||||
"label": "V java.util.Map.remove(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.putAll(Ljava/util/Map\u003c+TK;+TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Map\u003c+TK;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Map;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "putAll",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~putAll~Ljava.util.Map\\\u003c+TK;+TV;\u003e;",
|
||||
"label": "void java.util.Map.putAll(Map\u003c? extends K, ? extends V\u003e m)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.clear()V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "clear",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~clear",
|
||||
"label": "void java.util.Map.clear()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Set\u003cTK;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Set;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "keySet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~keySet",
|
||||
"label": "Set\u003cK\u003e java.util.Map.keySet()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Collection\u003cTV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Collection;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "values",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~values",
|
||||
"label": "Collection\u003cV\u003e java.util.Map.values()"
|
||||
},
|
||||
{
|
||||
"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;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Set;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Map$Entry;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "entrySet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~entrySet",
|
||||
"label": "Set\u003cEntry\u003cK, V\u003e\u003e java.util.Map.entrySet()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.equals(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "equals",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~equals~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.equals(Object o)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.hashCode()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "hashCode",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~hashCode",
|
||||
"label": "int java.util.Map.hashCode()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.getOrDefault(Ljava/lang/Object;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "getOrDefault",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~getOrDefault~Ljava.lang.Object;~TV;",
|
||||
"label": "V java.util.Map.getOrDefault(Object key, V defaultValue)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.forEach(Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiConsumer;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "forEach",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~forEach~Ljava.util.function.BiConsumer\\\u003c-TK;-TV;\u003e;",
|
||||
"label": "void java.util.Map.forEach(BiConsumer\u003c? super K, ? super V\u003e action)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replaceAll(Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replaceAll",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replaceAll~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "void java.util.Map.replaceAll(BiFunction\u003c? super K, ? super V, ? extends V\u003e function)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.putIfAbsent(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "putIfAbsent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~putIfAbsent~TK;~TV;",
|
||||
"label": "V java.util.Map.putIfAbsent(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.remove(Ljava/lang/Object;Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "remove",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~remove~Ljava.lang.Object;~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.remove(Object key, Object value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replace(TK;TV;TV;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replace",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replace~TK;~TV;~TV;",
|
||||
"label": "boolean java.util.Map.replace(K key, V oldValue, V newValue)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replace(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replace",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replace~TK;~TV;",
|
||||
"label": "V java.util.Map.replace(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.computeIfAbsent(TK;Ljava/util/function/Function\u003c-TK;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.Function;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "computeIfAbsent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~computeIfAbsent~TK;~Ljava.util.function.Function\\\u003c-TK;+TV;\u003e;",
|
||||
"label": "V java.util.Map.computeIfAbsent(K key, Function\u003c? super K, ? extends V\u003e mappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.computeIfPresent(TK;Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "computeIfPresent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~computeIfPresent~TK;~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.computeIfPresent(K key, BiFunction\u003c? super K, ? super V, ? extends V\u003e remappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.compute(TK;Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "compute",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~compute~TK;~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.compute(K key, BiFunction\u003c? super K, ? super V, ? extends V\u003e remappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.merge(TK;TV;Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "merge",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~merge~TK;~TV;~Ljava.util.function.BiFunction\\\u003c-TV;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.merge(K key, V value, BiFunction\u003c? super V, ? super V, ? extends V\u003e remappingFunction)"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "binary",
|
||||
"path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/rt.jar",
|
||||
"sourceContainerUrl": "file:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/src.zip",
|
||||
"isSystem": true,
|
||||
"isOwn": false
|
||||
}
|
||||
},
|
||||
"flags": 1537,
|
||||
"name": "Map",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map",
|
||||
"label": "java.util.Map\u003cK, V\u003e"
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"fqName": "org.test.NestedRouter3",
|
||||
"bindingKey": "Lorg/test/NestedRouter3;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superInterfaceNames": [],
|
||||
"fields": [],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/NestedRouter3;.routingFunction()Lorg/springframework/web/reactive/function/server/RouterFunction\u003cLorg/springframework/web/reactive/function/server/ServerResponse;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/RouterFunction\u003cLorg/springframework/web/reactive/function/server/ServerResponse;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/RouterFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/ServerResponse;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.context.annotation.Bean",
|
||||
"valuePairs": {},
|
||||
"name": "Bean",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3~routingFunction}Bean",
|
||||
"label": "Bean"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/test/NestedRouter3;",
|
||||
"flags": 1,
|
||||
"name": "routingFunction",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3~routingFunction",
|
||||
"label": "RouterFunction\u003cServerResponse\u003e org.test.NestedRouter3.routingFunction()"
|
||||
}
|
||||
],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.context.annotation.Configuration",
|
||||
"valuePairs": {},
|
||||
"name": "Configuration",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3}Configuration",
|
||||
"label": "Configuration"
|
||||
}
|
||||
],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "source",
|
||||
"path": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/src/main/java",
|
||||
"outputFolder": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/target/classes",
|
||||
"isSystem": false,
|
||||
"isOwn": true
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "NestedRouter3",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3",
|
||||
"label": "org.test.NestedRouter3"
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
{
|
||||
"fqName": "org.test.Quote",
|
||||
"bindingKey": "Lorg/test/Quote;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superInterfaceNames": [],
|
||||
"fields": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.MATH_CONTEXT",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/MathContext;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 26,
|
||||
"name": "MATH_CONTEXT",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^MATH_CONTEXT",
|
||||
"label": "MathContext MATH_CONTEXT"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.ticker",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "ticker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^ticker",
|
||||
"label": "String ticker"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.price",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "price",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^price",
|
||||
"label": "BigDecimal price"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.instant",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "instant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^instant",
|
||||
"label": "Instant instant"
|
||||
}
|
||||
],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.()V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote",
|
||||
"label": "org.test.Quote.Quote()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.(Ljava/lang/String;Ljava/math/BigDecimal;)V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote~QString;~QBigDecimal;",
|
||||
"label": "org.test.Quote.Quote(String ticker, BigDecimal price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.(Ljava/lang/String;Ljava/lang/Double;)V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/Double;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote~QString;~QDouble;",
|
||||
"label": "org.test.Quote.Quote(String ticker, Double price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getTicker()Ljava/lang/String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getTicker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getTicker",
|
||||
"label": "String org.test.Quote.getTicker()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setTicker(Ljava/lang/String;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setTicker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setTicker~QString;",
|
||||
"label": "void org.test.Quote.setTicker(String ticker)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getPrice()Ljava/math/BigDecimal;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getPrice",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getPrice",
|
||||
"label": "BigDecimal org.test.Quote.getPrice()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setPrice(Ljava/math/BigDecimal;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setPrice",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setPrice~QBigDecimal;",
|
||||
"label": "void org.test.Quote.setPrice(BigDecimal price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getInstant()Ljava/time/Instant;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getInstant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getInstant",
|
||||
"label": "Instant org.test.Quote.getInstant()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setInstant(Ljava/time/Instant;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setInstant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setInstant~QInstant;",
|
||||
"label": "void org.test.Quote.setInstant(Instant instant)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.toString()Ljava/lang/String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "java.lang.Override",
|
||||
"valuePairs": {},
|
||||
"name": "Override",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~toString}Override",
|
||||
"label": "Override"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "toString",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~toString",
|
||||
"label": "String org.test.Quote.toString()"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "source",
|
||||
"path": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/src/main/java",
|
||||
"outputFolder": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/target/classes",
|
||||
"isSystem": false,
|
||||
"isOwn": true
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote",
|
||||
"label": "org.test.Quote"
|
||||
}
|
||||
@@ -0,0 +1,632 @@
|
||||
{
|
||||
"fqName": "org.springframework.boot.autoconfigure.web.ServerProperties",
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superClassName": "java.lang.Object",
|
||||
"superInterfaceNames": [],
|
||||
"fields": [
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "port",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^port",
|
||||
"label": "Integer port"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "address",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^address",
|
||||
"label": "InetAddress address"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^error}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "error",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^error",
|
||||
"label": "ErrorProperties error"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "useForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^useForwardHeaders",
|
||||
"label": "Boolean useForwardHeaders"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "serverHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^serverHeader",
|
||||
"label": "String serverHeader"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.maxHttpHeaderSize",
|
||||
"type": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "maxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^maxHttpHeaderSize",
|
||||
"label": "int maxHttpHeaderSize"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "connectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^connectionTimeout",
|
||||
"label": "Duration connectionTimeout"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Ssl;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^ssl}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "ssl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^ssl",
|
||||
"label": "Ssl ssl"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Compression;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^compression}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "compression",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^compression",
|
||||
"label": "Compression compression"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Http2;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^http2}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "http2",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^http2",
|
||||
"label": "Http2 http2"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "servlet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^servlet",
|
||||
"label": "Servlet servlet"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "tomcat",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^tomcat",
|
||||
"label": "Tomcat tomcat"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "jetty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^jetty",
|
||||
"label": "Jetty jetty"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "undertow",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^undertow",
|
||||
"label": "Undertow undertow"
|
||||
}
|
||||
],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.()V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "ServerProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~ServerProperties",
|
||||
"label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getPort",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getPort",
|
||||
"label": "Integer org.springframework.boot.autoconfigure.web.ServerProperties.getPort()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setPort(Ljava/lang/Integer;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setPort",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setPort~Ljava.lang.Integer;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getAddress",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getAddress",
|
||||
"label": "InetAddress org.springframework.boot.autoconfigure.web.ServerProperties.getAddress()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setAddress(Ljava/net/InetAddress;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setAddress",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setAddress~Ljava.net.InetAddress;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "isUseForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~isUseForwardHeaders",
|
||||
"label": "Boolean org.springframework.boot.autoconfigure.web.ServerProperties.isUseForwardHeaders()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setUseForwardHeaders(Ljava/lang/Boolean;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setUseForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setUseForwardHeaders~Ljava.lang.Boolean;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getServerHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getServerHeader",
|
||||
"label": "String org.springframework.boot.autoconfigure.web.ServerProperties.getServerHeader()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setServerHeader(Ljava/lang/String;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setServerHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setServerHeader~Ljava.lang.String;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setServerHeader(String serverHeader)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getMaxHttpHeaderSize()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getMaxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getMaxHttpHeaderSize",
|
||||
"label": "int org.springframework.boot.autoconfigure.web.ServerProperties.getMaxHttpHeaderSize()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setMaxHttpHeaderSize(I)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setMaxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setMaxHttpHeaderSize~I",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getConnectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getConnectionTimeout",
|
||||
"label": "Duration org.springframework.boot.autoconfigure.web.ServerProperties.getConnectionTimeout()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setConnectionTimeout(Ljava/time/Duration;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setConnectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setConnectionTimeout~Ljava.time.Duration;",
|
||||
"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;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getError",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getError",
|
||||
"label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getSsl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getSsl",
|
||||
"label": "Ssl org.springframework.boot.autoconfigure.web.ServerProperties.getSsl()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setSsl(Lorg/springframework/boot/web/server/Ssl;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Ssl;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setSsl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setSsl~Lorg.springframework.boot.web.server.Ssl;",
|
||||
"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;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Compression;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getCompression",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getCompression",
|
||||
"label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getHttp2",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getHttp2",
|
||||
"label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getServlet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getServlet",
|
||||
"label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getTomcat",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getTomcat",
|
||||
"label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getJetty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getJetty",
|
||||
"label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getUndertow",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getUndertow",
|
||||
"label": "Undertow org.springframework.boot.autoconfigure.web.ServerProperties.getUndertow()"
|
||||
}
|
||||
],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"valuePairs": {
|
||||
"ignoreUnknownFields": true,
|
||||
"prefix": "server"
|
||||
},
|
||||
"name": "org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties}org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"label": "org.springframework.boot.context.properties.ConfigurationProperties"
|
||||
}
|
||||
],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "binary",
|
||||
"path": "/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.RELEASE/spring-boot-autoconfigure-2.0.0.RELEASE.jar",
|
||||
"sourceContainerUrl": "file:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.RELEASE/spring-boot-autoconfigure-2.0.0.RELEASE-sources.jar",
|
||||
"isSystem": false,
|
||||
"isOwn": false
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "ServerProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties",
|
||||
"label": "org.springframework.boot.autoconfigure.web.ServerProperties"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,175 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.ls.eclipse.commons.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeHierarchyParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
import org.springframework.tooling.ls.eclipse.commons.STS4LanguageClientImpl;
|
||||
|
||||
public class JavaLangugeClientTest {
|
||||
|
||||
private static STS4LanguageClientImpl client = new STS4LanguageClientImpl();
|
||||
|
||||
private static IProject project;
|
||||
|
||||
@AfterClass
|
||||
public static void tearDown() throws Exception {
|
||||
TestUtils.deleteAllProjects();
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void setupAll() throws Exception {
|
||||
project = TestUtils.importMavenProject("test-webflux-project");
|
||||
assertNotNull(project);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findTypeInJRE() throws Exception {
|
||||
TypeData data = client
|
||||
.javaType(new JavaDataParams(project.getLocationURI().toString(), "Ljava/util/Map;", true))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertEquals(TestUtils.loadJsonString("Map.json"), TestUtils.toJsonString(data));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findTypeInJar() throws Exception {
|
||||
TypeData data = client
|
||||
.javaType(new JavaDataParams(project.getLocationURI().toString(),
|
||||
"Lorg/springframework/boot/autoconfigure/web/ServerProperties;", true))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertEquals(TestUtils.loadJsonString("ServerProperties.json"), TestUtils.toJsonString(data));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findTypeInSource1() throws Exception {
|
||||
TypeData data = client
|
||||
.javaType(new JavaDataParams(project.getLocationURI().toString(), "Lorg/test/Quote;", true))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertEquals(TestUtils.loadJsonString("Quote.json"), TestUtils.toJsonString(data));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findTypeInSource2() throws Exception {
|
||||
TypeData data = client
|
||||
.javaType(new JavaDataParams(project.getLocationURI().toString(), "Lorg/test/NestedRouter3;", true))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertEquals(TestUtils.loadJsonString("NestedRouter3.json"), TestUtils.toJsonString(data));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fuzzyFindTypesIncludingSysLibs() throws Exception {
|
||||
List<TypeData> data = client
|
||||
.javaSearchTypes(new JavaSearchParams(project.getLocationURI().toString(), "util.Map", true, true))
|
||||
.get(100, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertTrue(data.size() > 500);
|
||||
List<TypeData> closeMatches = data.stream().filter(t -> t.getFqName().contains("util.Map")).collect(Collectors.toList());
|
||||
assertEquals(2, closeMatches.size());
|
||||
assertNotNull(closeMatches.stream().filter(t -> "java.util.Map".equals(t.getFqName())).findFirst().orElse(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fuzzyFindTypesExcludingSysLibs() throws Exception {
|
||||
List<TypeData> data = client
|
||||
.javaSearchTypes(new JavaSearchParams(project.getLocationURI().toString(), "util.Map", true, false))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertEquals(186, data.size());
|
||||
TestUtils.saveJsonData("search-util-map.json", data);
|
||||
List<TypeData> closeMatches = data.stream().filter(t -> t.getFqName().contains("util.Map")).collect(Collectors.toList());
|
||||
assertEquals(1, closeMatches.size());
|
||||
assertEquals("io.netty.util.Mapping", closeMatches.get(0).getFqName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void searchPackagesIncludingSysLibs() throws Exception {
|
||||
List<String> packages = client.javaSearchPackages(new JavaSearchParams(project.getLocationURI().toString(), "java.lang", true, true)).get(30, TimeUnit.SECONDS);
|
||||
assertTrue(packages.size() > 15 && packages.size() < 25);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void searchPackagesExcludingSysLibs() throws Exception {
|
||||
List<String> packages = client.javaSearchPackages(new JavaSearchParams(project.getLocationURI().toString(), "java.lang", true, false)).get(30, TimeUnit.SECONDS);
|
||||
assertEquals(1, packages.size());
|
||||
packages = client.javaSearchPackages(new JavaSearchParams(project.getLocationURI().toString(), "org.test", true, false)).get(30, TimeUnit.SECONDS);
|
||||
assertTrue(packages.contains("org.test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void map_Subtypes() throws Exception {
|
||||
List<TypeData> data = client
|
||||
.javaSubTypes(new JavaTypeHierarchyParams(project.getLocationURI().toString(), "java.util.Map"))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
assertTrue(data.size() > 200);
|
||||
assertTrue(data.stream().filter(t -> "java.util.AbstractMap".equals(t.getFqName())).findFirst().isPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void arrayList_SuperTypes() throws Exception {
|
||||
List<TypeData> data = client
|
||||
.javaSuperTypes(new JavaTypeHierarchyParams(project.getLocationURI().toString(), "java.util.ArrayList"))
|
||||
.get(10, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
Set<String> actual = data.stream().map(t -> t.getFqName()).collect(Collectors.toSet());
|
||||
Set<String> expected = new HashSet<>(Arrays.asList(
|
||||
"java.util.List",
|
||||
"java.util.RandomAccess",
|
||||
"java.lang.Cloneable",
|
||||
"java.io.Serializable",
|
||||
"java.util.AbstractList",
|
||||
"java.util.Collection",
|
||||
"java.lang.Object",
|
||||
"java.util.AbstractCollection",
|
||||
"java.lang.Iterable"
|
||||
));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void taskExecutorFactoryBean_SuperTypes() throws Exception {
|
||||
List<TypeData> data = client
|
||||
.javaSuperTypes(new JavaTypeHierarchyParams(project.getLocationURI().toString(), "org.springframework.scheduling.config.TaskExecutorFactoryBean"))
|
||||
.get(100000, TimeUnit.SECONDS);
|
||||
assertNotNull(data);
|
||||
Set<String> actual = data.stream().map(t -> t.getFqName()).collect(Collectors.toSet());
|
||||
Set<String> expected = new HashSet<>(Arrays.asList(
|
||||
"org.springframework.beans.factory.FactoryBean",
|
||||
"org.springframework.beans.factory.DisposableBean",
|
||||
"org.springframework.beans.factory.Aware",
|
||||
"java.lang.Object",
|
||||
"org.springframework.beans.factory.BeanNameAware",
|
||||
"org.springframework.beans.factory.InitializingBean"
|
||||
));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -19,10 +19,10 @@ import org.eclipse.jdt.core.IField;
|
||||
import org.eclipse.jdt.core.IJavaProject;
|
||||
import org.eclipse.jdt.core.IMethod;
|
||||
import org.eclipse.jdt.core.IType;
|
||||
import org.eclipse.lsp4j.MarkupContent;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaDataParams;
|
||||
import org.springframework.tooling.jdt.ls.commons.javadoc.JavadocResponse;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.tooling.ls.eclipse.commons.STS4LanguageClientImpl;
|
||||
|
||||
public class JavadocTest {
|
||||
@@ -44,9 +44,9 @@ public class JavadocTest {
|
||||
String expectedBindingKey = "Lcom/sample/SampleJavadoc;";
|
||||
assertEquals(expectedBindingKey, type.getKey());
|
||||
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey);
|
||||
JavadocResponse response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample class**", response.getContent());
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey, false);
|
||||
MarkupContent response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample class**", response.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -61,9 +61,9 @@ public class JavadocTest {
|
||||
String expectedBindingKey = "Lcom/sample/SampleJavadoc;.number";
|
||||
assertEquals(expectedBindingKey, field.getKey());
|
||||
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey);
|
||||
JavadocResponse response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample field**", response.getContent());
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey, false);
|
||||
MarkupContent response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample field**", response.getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -78,9 +78,9 @@ public class JavadocTest {
|
||||
String expectedBindingKey = "Lcom/sample/SampleJavadoc;.getNumber()V";
|
||||
assertEquals(expectedBindingKey, method.getKey());
|
||||
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey);
|
||||
JavadocResponse response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample getter**", response.getContent());
|
||||
JavaDataParams params = new JavaDataParams(project.getProject().getLocation().toFile().toURI().toString(), expectedBindingKey, false);
|
||||
MarkupContent response = client.javadoc(params).get(1, TimeUnit.SECONDS);
|
||||
assertEquals("**Sample getter**", response.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -13,20 +13,37 @@
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.maven.model.Model;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IWorkspaceDescription;
|
||||
import org.eclipse.core.resources.IncrementalProjectBuilder;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.FileLocator;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.jdt.core.IJavaProject;
|
||||
import org.eclipse.jdt.core.JavaCore;
|
||||
import org.eclipse.m2e.core.MavenPlugin;
|
||||
import org.eclipse.m2e.core.project.IMavenProjectImportResult;
|
||||
import org.eclipse.m2e.core.project.MavenProjectInfo;
|
||||
import org.eclipse.m2e.core.project.ProjectImportConfiguration;
|
||||
import org.eclipse.m2e.core.project.ResolverConfiguration;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
||||
public class TestUtils {
|
||||
|
||||
private static Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
|
||||
public static IJavaProject createTestProject(String name) throws Exception {
|
||||
File testProjectSourceLocation = new File(FileLocator.toFileURL(Platform.getBundle("org.springframework.tooling.ls.eclipse.commons.test").getEntry("test-projects/"+name)).toURI());
|
||||
File targetWorkspace = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
|
||||
@@ -44,6 +61,34 @@ public class TestUtils {
|
||||
return JavaCore.create(project);
|
||||
}
|
||||
|
||||
public static IProject importMavenProject(String name) throws Exception {
|
||||
File testProjectSourceLocation = new File(FileLocator.toFileURL(Platform.getBundle("org.springframework.tooling.ls.eclipse.commons.test").getEntry("test-projects/"+name)).toURI());
|
||||
File targetWorkspace = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
|
||||
|
||||
File destDir = new File(targetWorkspace, name);
|
||||
FileUtils.copyDirectory(testProjectSourceLocation, destDir);
|
||||
File pom = new File(destDir, "pom.xml");
|
||||
return createEclipseProjectFromExistingMavenProject(pom, new NullProgressMonitor()).get(0);
|
||||
}
|
||||
|
||||
public static void saveJsonData(String fileName, Object data) throws Exception {
|
||||
File jsonFile = new File("/Users/aboyko/git/sts4/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/java-data-json/"+fileName);
|
||||
FileUtils.write(jsonFile, toJsonString(data));
|
||||
}
|
||||
|
||||
public static String toJsonString(Object obj) {
|
||||
return gson.toJson(obj);
|
||||
}
|
||||
|
||||
public static TypeData loadJsonData(String fileName) throws Exception {
|
||||
return gson.fromJson(loadJsonString(fileName), TypeData.class);
|
||||
}
|
||||
|
||||
public static String loadJsonString(String fileName) throws Exception {
|
||||
File jsonFile = new File(FileLocator.toFileURL(Platform.getBundle("org.springframework.tooling.ls.eclipse.commons.test").getEntry("java-data-json/"+fileName)).toURI());
|
||||
return FileUtils.readFileToString(jsonFile);
|
||||
}
|
||||
|
||||
public static void deleteAllProjects() throws Exception {
|
||||
IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
|
||||
for (IProject project : allProjects) {
|
||||
@@ -75,5 +120,54 @@ public class TestUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void setAutoBuilding(boolean enabled) throws CoreException {
|
||||
IWorkspaceDescription wsd = ResourcesPlugin.getWorkspace().getDescription();
|
||||
if (!wsd.isAutoBuilding() == enabled) {
|
||||
wsd.setAutoBuilding(enabled);
|
||||
ResourcesPlugin.getWorkspace().setDescription(wsd);
|
||||
}
|
||||
}
|
||||
|
||||
public static List<IProject> createEclipseProjectFromExistingMavenProject(File pomFile, IProgressMonitor monitor) throws Exception {
|
||||
|
||||
Model model = MavenPlugin.getMavenModelManager().readMavenModel(pomFile);
|
||||
String derivedProjectName = model.getName();
|
||||
if (derivedProjectName == null) {
|
||||
derivedProjectName = model.getArtifactId();
|
||||
}
|
||||
if (derivedProjectName == null) {
|
||||
String[] groupPieces = model.getGroupId().split("\\.");
|
||||
int lastIndex = groupPieces.length - 1;
|
||||
if (lastIndex >= 0) {
|
||||
derivedProjectName = groupPieces[lastIndex];
|
||||
} else {
|
||||
throw new Exception("Bad pom.xml: no name, artifactId, or groupId.");
|
||||
}
|
||||
}
|
||||
MavenProjectInfo parent = null;
|
||||
MavenProjectInfo projectInfo = new MavenProjectInfo(derivedProjectName, pomFile, model, parent);
|
||||
ArrayList<MavenProjectInfo> projectInfos = new ArrayList<MavenProjectInfo>();
|
||||
projectInfos.add(projectInfo);
|
||||
ResolverConfiguration resolverConfiguration = new ResolverConfiguration();
|
||||
String activeProfiles = "pom.xml";
|
||||
resolverConfiguration.setSelectedProfiles(activeProfiles);
|
||||
ProjectImportConfiguration configuration = new ProjectImportConfiguration(resolverConfiguration);
|
||||
|
||||
List<IMavenProjectImportResult> importResults = MavenPlugin.getProjectConfigurationManager().importProjects(projectInfos, configuration,
|
||||
monitor);
|
||||
|
||||
List<IProject> projects = new ArrayList<>(importResults.size());
|
||||
for (IMavenProjectImportResult importResult : importResults) {
|
||||
// skip projects which have not been properly imported
|
||||
IProject project = importResult.getProject();
|
||||
if (project != null) {
|
||||
MavenPlugin.getProjectConfigurationManager().updateProjectConfiguration(project, monitor);
|
||||
project.refreshLocal(IResource.DEPTH_INFINITE, null);
|
||||
assertTrue(project.hasNature(JavaCore.NATURE_ID));
|
||||
ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
|
||||
projects.add(project);
|
||||
}
|
||||
}
|
||||
return projects;
|
||||
}
|
||||
}
|
||||
|
||||
233
eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/test-projects/test-webflux-project/mvnw
vendored
Executable file
233
eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons.test/test-projects/test-webflux-project/mvnw
vendored
Executable file
@@ -0,0 +1,233 @@
|
||||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven2 Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||
|
||||
if [ -f /etc/mavenrc ] ; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ] ; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
mingw=false
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true;;
|
||||
Darwin*) darwin=true
|
||||
#
|
||||
# Look for the Apple JDKs first to preserve the existing behaviour, and then look
|
||||
# for the new JDKs provided by Oracle.
|
||||
#
|
||||
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
|
||||
#
|
||||
# Apple JDKs
|
||||
#
|
||||
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
|
||||
#
|
||||
# Apple JDKs
|
||||
#
|
||||
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
|
||||
#
|
||||
# Oracle JDKs
|
||||
#
|
||||
export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
|
||||
#
|
||||
# Apple JDKs
|
||||
#
|
||||
export JAVA_HOME=`/usr/libexec/java_home`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if [ -r /etc/gentoo-release ] ; then
|
||||
JAVA_HOME=`java-config --jre-home`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ] ; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="`dirname "$PRG"`/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=`pwd`
|
||||
|
||||
M2_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# For Migwn, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||
# TODO classpath?
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="`which javac`"
|
||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||
if $darwin ; then
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||
else
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
fi
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="`which java`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
local basedir=$(pwd)
|
||||
local wdir=$(pwd)
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
wdir=$(cd "$wdir/.."; pwd)
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' < "$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} "$@"
|
||||
@@ -0,0 +1,145 @@
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM http://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven2 Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
|
||||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
|
||||
set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
|
||||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%" == "on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
|
||||
|
||||
exit /B %ERROR_CODE%
|
||||
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.example</groupId>
|
||||
<artifactId>test-webflux-project</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.0.0.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-webflux</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,17 @@
|
||||
package org.test;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class Application {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(Application.class);
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(Application.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.test;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.accept;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.contentType;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.method;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.path;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.nest;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
@Configuration
|
||||
public class NestedRouter1 {
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> routingFunction1() {
|
||||
PersonHandler1 handler = new PersonHandler1();
|
||||
|
||||
return nest(path("/person"),
|
||||
nest(accept(APPLICATION_JSON),
|
||||
route(GET("/{id}"), handler::getPerson)
|
||||
.andRoute(method(HttpMethod.GET), handler::listPeople)
|
||||
).andRoute(POST("/").and(contentType(APPLICATION_JSON)), handler::createPerson));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package org.test;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.http.MediaType.APPLICATION_PDF;
|
||||
import static org.springframework.http.MediaType.TEXT_PLAIN;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.accept;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.contentType;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.method;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.path;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.nest;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
@Configuration
|
||||
public class NestedRouter2 {
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> routingFunction2() {
|
||||
PersonHandler2 handler = new PersonHandler2();
|
||||
|
||||
return nest(accept(APPLICATION_JSON),
|
||||
nest(path("/person"),
|
||||
route(GET("/{id}"), handler::getPerson)
|
||||
.andRoute(method(HttpMethod.GET).and(method(HttpMethod.HEAD)).and(accept(TEXT_PLAIN)), handler::listPeople)
|
||||
).andRoute(POST("/").and(contentType(APPLICATION_JSON)).and(contentType(APPLICATION_PDF)), handler::createPerson));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package org.test;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.accept;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.contentType;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.method;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.path;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.nest;
|
||||
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
@Configuration
|
||||
public class NestedRouter3 {
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> routingFunction() {
|
||||
PersonHandler3 handler = new PersonHandler3();
|
||||
|
||||
return nest(path("/person"),
|
||||
nest(path("/sub1"),
|
||||
nest(path("/sub2"),
|
||||
nest(accept(APPLICATION_JSON),
|
||||
route(GET("/{id}"), handler::getPerson)
|
||||
.andRoute(method(HttpMethod.GET), handler::listPeople))
|
||||
.andRoute(GET("/nestedGet"), handler::getPerson))
|
||||
.and(nest(path("/andNestPath"),
|
||||
route(GET("/andNestPathGET"), handler::getPerson))))
|
||||
.andRoute(POST("/").and(contentType(APPLICATION_JSON)), handler::createPerson))
|
||||
.and(nest(method(HttpMethod.DELETE), route(path("/nestedDelete"), handler::deletePerson)));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.test;
|
||||
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public class PersonHandler1 {
|
||||
|
||||
public Mono<ServerResponse> getPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> createPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> listPeople(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.test;
|
||||
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public class PersonHandler2 {
|
||||
|
||||
public Mono<ServerResponse> getPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> createPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> listPeople(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.test;
|
||||
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public class PersonHandler3 {
|
||||
|
||||
public Mono<ServerResponse> getPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> createPerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> listPeople(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> deletePerson(ServerRequest request) {
|
||||
return ServerResponse.notFound().build();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package org.test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.time.Instant;
|
||||
|
||||
public class Quote {
|
||||
|
||||
private static final MathContext MATH_CONTEXT = new MathContext(2);
|
||||
|
||||
private String ticker;
|
||||
|
||||
private BigDecimal price;
|
||||
|
||||
private Instant instant;
|
||||
|
||||
public Quote() {
|
||||
}
|
||||
|
||||
public Quote(String ticker, BigDecimal price) {
|
||||
this.ticker = ticker;
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
public Quote(String ticker, Double price) {
|
||||
this(ticker, new BigDecimal(price, MATH_CONTEXT));
|
||||
}
|
||||
|
||||
public String getTicker() {
|
||||
return ticker;
|
||||
}
|
||||
|
||||
public void setTicker(String ticker) {
|
||||
this.ticker = ticker;
|
||||
}
|
||||
|
||||
public BigDecimal getPrice() {
|
||||
return price;
|
||||
}
|
||||
|
||||
public void setPrice(BigDecimal price) {
|
||||
this.price = price;
|
||||
}
|
||||
|
||||
public Instant getInstant() {
|
||||
return instant;
|
||||
}
|
||||
|
||||
public void setInstant(Instant instant) {
|
||||
this.instant = instant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Quote{" +
|
||||
"ticker='" + ticker + '\'' +
|
||||
", price=" + price +
|
||||
", instant=" + instant +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package org.test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.SynchronousSink;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class QuoteGenerator {
|
||||
|
||||
private final MathContext mathContext = new MathContext(2);
|
||||
|
||||
private final Random random = new Random();
|
||||
|
||||
private final List<Quote> prices = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Bootstraps the generator with tickers and initial prices
|
||||
*/
|
||||
public QuoteGenerator() {
|
||||
this.prices.add(new Quote("CTXS", 82.26));
|
||||
this.prices.add(new Quote("DELL", 63.74));
|
||||
this.prices.add(new Quote("GOOG", 847.24));
|
||||
this.prices.add(new Quote("MSFT", 65.11));
|
||||
this.prices.add(new Quote("ORCL", 45.71));
|
||||
this.prices.add(new Quote("RHT", 84.29));
|
||||
this.prices.add(new Quote("VMW", 92.21));
|
||||
}
|
||||
|
||||
|
||||
public Flux<Quote> fetchQuoteStream(Duration period) {
|
||||
|
||||
// We use here Flux.generate to create quotes,
|
||||
// iterating on each stock starting at index 0
|
||||
return Flux.generate(() -> 0,
|
||||
(BiFunction<Integer, SynchronousSink<Quote>, Integer>) (index, sink) -> {
|
||||
Quote updatedQuote = updateQuote(this.prices.get(index));
|
||||
sink.next(updatedQuote);
|
||||
return ++index % this.prices.size();
|
||||
})
|
||||
// We want to emit them with a specific period;
|
||||
// to do so, we zip that Flux with a Flux.interval
|
||||
.zipWith(Flux.interval(period)).map(t -> t.getT1())
|
||||
// Because values are generated in batches,
|
||||
// we need to set their timestamp after their creation
|
||||
.map(quote -> {
|
||||
quote.setInstant(Instant.now());
|
||||
return quote;
|
||||
})
|
||||
.log("io.spring.workshop.stockquotes");
|
||||
}
|
||||
|
||||
private Quote updateQuote(Quote quote) {
|
||||
BigDecimal priceChange = quote.getPrice()
|
||||
.multiply(new BigDecimal(0.05 * this.random.nextDouble()), this.mathContext);
|
||||
return new Quote(quote.getTicker(), quote.getPrice().add(priceChange));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package org.test;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.reactive.function.BodyInserters;
|
||||
import org.springframework.web.reactive.function.server.ServerRequest;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import static java.time.Duration.ofMillis;
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.http.MediaType.APPLICATION_STREAM_JSON;
|
||||
import static org.springframework.http.MediaType.TEXT_PLAIN;
|
||||
import static org.springframework.web.reactive.function.server.ServerResponse.ok;
|
||||
|
||||
@Component
|
||||
public class QuoteHandler {
|
||||
|
||||
private final Flux<Quote> quoteStream;
|
||||
|
||||
public QuoteHandler(QuoteGenerator quoteGenerator) {
|
||||
this.quoteStream = quoteGenerator.fetchQuoteStream(ofMillis(200)).share();
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> hello(ServerRequest request) {
|
||||
return ok().contentType(TEXT_PLAIN)
|
||||
.body(BodyInserters.fromObject("Hello Spring!"));
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> echo(ServerRequest request) {
|
||||
return ok().contentType(TEXT_PLAIN)
|
||||
.body(request.bodyToMono(String.class), String.class);
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> streamQuotes(ServerRequest request) {
|
||||
return ok()
|
||||
.contentType(APPLICATION_STREAM_JSON)
|
||||
.body(this.quoteStream, Quote.class);
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> fetchQuotes(ServerRequest request) {
|
||||
int size = Integer.parseInt(request.queryParam("size").orElse("10"));
|
||||
return ok()
|
||||
.contentType(APPLICATION_JSON)
|
||||
.body(this.quoteStream.take(size), Quote.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.test;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.reactive.function.server.RouterFunction;
|
||||
import org.springframework.web.reactive.function.server.RouterFunctions;
|
||||
import org.springframework.web.reactive.function.server.ServerResponse;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.http.MediaType.APPLICATION_STREAM_JSON;
|
||||
import static org.springframework.http.MediaType.TEXT_PLAIN;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.POST;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.accept;
|
||||
import static org.springframework.web.reactive.function.server.RequestPredicates.contentType;
|
||||
|
||||
@Configuration
|
||||
public class QuoteRouter {
|
||||
|
||||
@Bean
|
||||
public RouterFunction<ServerResponse> route(QuoteHandler quoteHandler) {
|
||||
return RouterFunctions
|
||||
.route(GET("/hello").and(accept(TEXT_PLAIN)), quoteHandler::hello)
|
||||
.andRoute(POST("/echo").and(accept(TEXT_PLAIN).and(contentType(TEXT_PLAIN))), quoteHandler::echo)
|
||||
.andRoute(GET("/quotes").and(accept(APPLICATION_JSON)), quoteHandler::fetchQuotes)
|
||||
.andRoute(GET("/quotes").and(accept(APPLICATION_STREAM_JSON)), quoteHandler::streamQuotes);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.test;
|
||||
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
@RestController
|
||||
public class UserController {
|
||||
|
||||
@GetMapping(path = "/users", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public Flux<Object> listUsers() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@GetMapping(path = "/users/{username}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public Mono<Object> showUsers(@PathVariable String username) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.ls.eclipse.commons;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.lsp4j.CodeLens;
|
||||
import org.eclipse.lsp4j.VersionedTextDocumentIdentifier;
|
||||
|
||||
public class HighlightParams {
|
||||
|
||||
//TODO: Identical copy of this exists in org.springframework.ide.vscode.commons.languageserver.HighlightParams
|
||||
// But because that is only built in plain maven jar (not osgi) we can't use it. We should find a solution
|
||||
// for this somehow (i.e. build a version of some of our 'plain maven' jars as osgi bundles and publish on
|
||||
// a update site.
|
||||
|
||||
private VersionedTextDocumentIdentifier doc;
|
||||
private List<CodeLens> codeLenses;
|
||||
|
||||
public HighlightParams() {
|
||||
}
|
||||
|
||||
public HighlightParams(VersionedTextDocumentIdentifier doc, List<CodeLens> codeLenses) {
|
||||
super();
|
||||
this.doc = doc;
|
||||
this.codeLenses = codeLenses;
|
||||
}
|
||||
public VersionedTextDocumentIdentifier getDoc() {
|
||||
return doc;
|
||||
}
|
||||
public void setDoc(VersionedTextDocumentIdentifier doc) {
|
||||
this.doc = doc;
|
||||
}
|
||||
|
||||
public List<CodeLens> getCodeLenses() {
|
||||
return codeLenses;
|
||||
}
|
||||
|
||||
public void setCodeLenses(List<CodeLens> codeLenses) {
|
||||
this.codeLenses = codeLenses;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import org.eclipse.lsp4j.Command;
|
||||
import org.eclipse.swt.events.MouseEvent;
|
||||
import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
import org.springframework.ide.vscode.commons.protocol.HighlightParams;
|
||||
import org.springframework.tooling.ls.eclipse.commons.preferences.PreferenceConstants;
|
||||
|
||||
import com.google.gson.JsonPrimitive;
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.ls.eclipse.commons;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import org.eclipse.lsp4j.Location;
|
||||
import org.eclipse.lsp4j.jsonrpc.services.JsonNotification;
|
||||
import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
|
||||
import org.eclipse.lsp4j.services.LanguageClient;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaDataParams;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaTypeResponse;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavadocHoverLinkResponse;
|
||||
import org.springframework.tooling.jdt.ls.commons.javadoc.JavadocResponse;
|
||||
|
||||
/**
|
||||
* Some 'custom' extensions to standard LSP {@link LanguageClient}.
|
||||
*
|
||||
* @author Kris De Volder
|
||||
*/
|
||||
public interface STS4LanguageClient extends LanguageClient {
|
||||
|
||||
@JsonNotification("sts/highlight")
|
||||
void highlight(HighlightParams highlights);
|
||||
|
||||
@JsonNotification("sts/progress")
|
||||
void progress(ProgressParams progressEvent);
|
||||
|
||||
@JsonRequest("sts/moveCursor")
|
||||
CompletableFuture<Object> moveCursor(CursorMovement cursorMovement);
|
||||
|
||||
@JsonRequest("sts/addClasspathListener")
|
||||
CompletableFuture<Object> addClasspathListener(ClasspathListenerParams params);
|
||||
|
||||
@JsonRequest("sts/removeClasspathListener")
|
||||
CompletableFuture<Object> removeClasspathListener(ClasspathListenerParams classpathListenerParams);
|
||||
|
||||
@JsonRequest("sts/javadoc")
|
||||
CompletableFuture<JavadocResponse> javadoc(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javaType")
|
||||
CompletableFuture<JavaTypeResponse> javaType(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javadocHoverLink")
|
||||
CompletableFuture<JavadocHoverLinkResponse> javadocHoverLink(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javaLocation")
|
||||
CompletableFuture<Location> javaLocation(JavaDataParams params);
|
||||
|
||||
}
|
||||
@@ -14,18 +14,22 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jdt.core.IJavaElement;
|
||||
import org.eclipse.jdt.core.IJavaProject;
|
||||
import org.eclipse.jdt.core.ILocalVariable;
|
||||
import org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer;
|
||||
import org.eclipse.jdt.internal.ui.viewsupport.JavaElementLinks;
|
||||
import org.eclipse.jdt.ui.JavaElementLabels;
|
||||
import org.eclipse.jface.action.IStatusLineManager;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
@@ -44,6 +48,8 @@ import org.eclipse.lsp4e.LSPEclipseUtils;
|
||||
import org.eclipse.lsp4e.LanguageClientImpl;
|
||||
import org.eclipse.lsp4j.CodeLens;
|
||||
import org.eclipse.lsp4j.Location;
|
||||
import org.eclipse.lsp4j.MarkupContent;
|
||||
import org.eclipse.lsp4j.MarkupKind;
|
||||
import org.eclipse.swt.custom.StyledText;
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
@@ -57,13 +63,20 @@ import org.eclipse.ui.progress.UIJob;
|
||||
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditor;
|
||||
import org.eclipse.ui.texteditor.AbstractTextEditor;
|
||||
import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
|
||||
import org.springframework.ide.vscode.commons.protocol.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.protocol.HighlightParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.ProgressParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeHierarchyParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
import org.springframework.tooling.jdt.ls.commons.Logger;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.ReusableClasspathListenerHandler;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaData;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaDataParams;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaTypeResponse;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavadocHoverLinkResponse;
|
||||
import org.springframework.tooling.jdt.ls.commons.javadoc.JavadocResponse;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.JavaSearch;
|
||||
import org.springframework.tooling.jdt.ls.commons.java.TypeHierarchy;
|
||||
import org.springframework.tooling.jdt.ls.commons.javadoc.JavadocUtils;
|
||||
import org.springframework.tooling.jdt.ls.commons.resources.ResourceUtils;
|
||||
import org.springframework.tooling.ls.eclipse.commons.javadoc.JavaDoc2MarkdownConverter;
|
||||
@@ -81,7 +94,41 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
() -> new ProjectSorter()
|
||||
);
|
||||
|
||||
private static JavaData JAVA_DATA = new JavaData(Logger.forEclipsePlugin(LanguageServerCommonsActivator::getInstance));
|
||||
private static final long LABEL_FLAGS=
|
||||
JavaElementLabels.ALL_FULLY_QUALIFIED
|
||||
| JavaElementLabels.M_PRE_RETURNTYPE
|
||||
| JavaElementLabels.M_PARAMETER_ANNOTATIONS
|
||||
| JavaElementLabels.M_PARAMETER_TYPES
|
||||
| JavaElementLabels.M_PARAMETER_NAMES
|
||||
| JavaElementLabels.M_EXCEPTIONS
|
||||
| JavaElementLabels.F_PRE_TYPE_SIGNATURE
|
||||
| JavaElementLabels.M_PRE_TYPE_PARAMETERS
|
||||
| JavaElementLabels.T_TYPE_PARAMETERS
|
||||
| JavaElementLabels.USE_RESOLVED;
|
||||
|
||||
private static final long LOCAL_VARIABLE_FLAGS= LABEL_FLAGS & ~JavaElementLabels.F_FULLY_QUALIFIED | JavaElementLabels.F_POST_QUALIFIED;
|
||||
|
||||
private static final long COMMON_SIGNATURE_FLAGS = LABEL_FLAGS & ~JavaElementLabels.ALL_FULLY_QUALIFIED
|
||||
| JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.M_FULLY_QUALIFIED;
|
||||
|
||||
|
||||
private static String label(IJavaElement element) {
|
||||
try {
|
||||
if (element instanceof ILocalVariable) {
|
||||
return JavaElementLabels.getElementLabel(element,LOCAL_VARIABLE_FLAGS);
|
||||
} else {
|
||||
return JavaElementLabels.getElementLabel(element,COMMON_SIGNATURE_FLAGS);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
final private JavaData javaData = new JavaData(STS4LanguageClientImpl::label , Logger.forEclipsePlugin(LanguageServerCommonsActivator::getInstance));
|
||||
|
||||
final private JavaSearch javaSearch = new JavaSearch(Logger.forEclipsePlugin(LanguageServerCommonsActivator::getInstance), javaData);
|
||||
|
||||
final private TypeHierarchy typeHierarchy = new TypeHierarchy(Logger.forEclipsePlugin(LanguageServerCommonsActivator::getInstance), javaData);
|
||||
|
||||
private static final String ANNOTION_TYPE_ID = "org.springframework.tooling.bootinfo";
|
||||
|
||||
@@ -312,16 +359,19 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavadocResponse> javadoc(JavaDataParams params) {
|
||||
JavadocResponse response = new JavadocResponse();
|
||||
try {
|
||||
String content = JavadocUtils.javadoc(JavaDoc2MarkdownConverter::getMarkdownContentReader,
|
||||
URI.create(params.getProjectUri()), params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params));
|
||||
response.setContent(content);
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e, "Failed getting javadoc for " + params.toString());
|
||||
}
|
||||
return CompletableFuture.completedFuture(response);
|
||||
public CompletableFuture<MarkupContent> javadoc(JavaDataParams params) {
|
||||
return CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
MarkupContent mc = new MarkupContent();
|
||||
mc.setKind(MarkupKind.MARKDOWN);
|
||||
mc.setValue(JavadocUtils.javadoc(JavaDoc2MarkdownConverter::getMarkdownContentReader,
|
||||
URI.create(params.getProjectUri()), params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params)));
|
||||
return mc;
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e, "Failed getting javadoc for " + params.toString());
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -350,24 +400,24 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavaTypeResponse> javaType(JavaDataParams params) {
|
||||
JavaTypeResponse response = new JavaTypeResponse(JAVA_DATA.typeData(params.getProjectUri(), params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params)));
|
||||
return CompletableFuture.completedFuture(response);
|
||||
public CompletableFuture<TypeData> javaType(JavaDataParams params) {
|
||||
return CompletableFuture.supplyAsync(() -> javaData.typeData(params.getProjectUri(), params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavadocHoverLinkResponse> javadocHoverLink(JavaDataParams params) {
|
||||
JavadocHoverLinkResponse response = new JavadocHoverLinkResponse(null);
|
||||
try {
|
||||
URI projectUri = params.getProjectUri() == null ? null : URI.create(params.getProjectUri());
|
||||
IJavaElement element = JavaData.findElement(projectUri, params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params));
|
||||
if (element != null) {
|
||||
response.setLink(JavaElementLinks.createURI(JavaElementLinks.OPEN_LINK_SCHEME, element));
|
||||
public CompletableFuture<String> javadocHoverLink(JavaDataParams params) {
|
||||
return CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
URI projectUri = params.getProjectUri() == null ? null : URI.create(params.getProjectUri());
|
||||
IJavaElement element = JavaData.findElement(projectUri, params.getBindingKey(), JavaDataParams.isLookInOtherProjects(params));
|
||||
if (element != null) {
|
||||
return JavaElementLinks.createURI(JavaElementLinks.OPEN_LINK_SCHEME, element);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e, "Failed to find java element for key " + params.getBindingKey());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e, "Failed to find java element for key " + params.getBindingKey());
|
||||
}
|
||||
return CompletableFuture.completedFuture(response);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -389,4 +439,45 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSearchTypes(JavaSearchParams params) {
|
||||
return CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return javaSearch.fuzzySearchTypes(URI.create(params.getProjectUri()), params.getTerm(),
|
||||
params.isIncludeBinaries(), params.isIncludeSystemLibs()).collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e,
|
||||
"Failed to search type with term '" + params.getTerm() + "' in project " + params.getProjectUri());
|
||||
return Collections.emptyList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<String>> javaSearchPackages(JavaSearchParams params) {
|
||||
return CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return javaSearch.fuzzySearchPackages(URI.create(params.getProjectUri()), params.getTerm(),
|
||||
params.isIncludeBinaries(), params.isIncludeSystemLibs()).collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
LanguageServerCommonsActivator.logError(e, "Failed to search package with term '" + params.getTerm() +"' in project " + params.getProjectUri());
|
||||
return Collections.emptyList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSubTypes(JavaTypeHierarchyParams params) {
|
||||
return CompletableFuture.supplyAsync(() ->
|
||||
typeHierarchy.subTypes(params.getProjectUri() == null ? null : URI.create(params.getProjectUri()), params.getFqName()).collect(Collectors.toList())
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSuperTypes(JavaTypeHierarchyParams params) {
|
||||
return CompletableFuture.supplyAsync(() ->
|
||||
typeHierarchy.superTypes(params.getProjectUri() == null ? null : URI.create(params.getProjectUri()), params.getFqName()).collect(Collectors.toList())
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ import org.gradle.tooling.model.eclipse.EclipseProjectDependency;
|
||||
import org.gradle.tooling.model.eclipse.EclipseSourceDirectory;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.JavaUtils;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableList.Builder;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -91,7 +91,7 @@ public class GradleProjectTest {
|
||||
@Test
|
||||
public void gradleClasspathResource() throws Exception {
|
||||
GradleJavaProject project = getGradleProject("test-app-1");
|
||||
List<String> resources = project.getClasspathResources();
|
||||
List<String> resources = IClasspathUtil.getClasspathResources(project.getClasspath());
|
||||
assertArrayEquals(new String[] {"test-resource-1.txt"}, resources.toArray(new String[resources.size()]));
|
||||
}
|
||||
|
||||
|
||||
@@ -40,5 +40,11 @@
|
||||
<artifactId>reactor-core</artifactId>
|
||||
<version>${reactor-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<version>1.10.19</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -31,7 +31,7 @@ public class AnnotationImpl implements IAnnotation {
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return annotation.name().toString();
|
||||
return fqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -74,4 +74,9 @@ public class AnnotationImpl implements IAnnotation {
|
||||
return BindingKeyUtils.getBindingKey(annotation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String fqName() {
|
||||
return annotation.name().toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -15,13 +15,18 @@ import org.jboss.jandex.ClassType;
|
||||
import org.springframework.ide.vscode.commons.java.IClassType;
|
||||
|
||||
final class ClassTypeWrapper extends TypeWrapper<ClassType> implements IClassType {
|
||||
|
||||
|
||||
ClassTypeWrapper(ClassType type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "L" + getType().name().toString().replace('.', '/') + ";";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFQName() {
|
||||
return getType().name().toString();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -34,7 +34,7 @@ import org.jboss.jandex.JarIndexer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspathUtil;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.common.base.Suppliers;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -11,18 +11,13 @@
|
||||
package org.springframework.ide.vscode.commons.jandex;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -32,14 +27,11 @@ import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspathUtil;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaModuleData;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.CollectorUtil;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.util.FileObserver;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.common.base.Suppliers;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import reactor.core.Disposable;
|
||||
import reactor.core.Disposables;
|
||||
@@ -103,24 +95,18 @@ public final class JandexClasspath implements ClasspathIndex {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<URL> sourceContainer(File binaryClasspathRoot) {
|
||||
CPE cpe = IClasspathUtil.findEntryForBinaryRoot(classpath, binaryClasspathRoot);
|
||||
return cpe == null ? Optional.empty() : Optional.ofNullable(cpe.getSourceContainerUrl());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType findType(String fqName) {
|
||||
return javaIndex.get().findType(fqName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, Predicate<IType> typeFilter) {
|
||||
public Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs, Predicate<IType> typeFilter) {
|
||||
return javaIndex.get().fuzzySearchTypes(searchTerm, typeFilter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<Tuple2<String, Double>> fuzzySearchPackages(String searchTerm) {
|
||||
public Flux<Tuple2<String, Double>> fuzzySearchPackages(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) {
|
||||
return javaIndex.get().fuzzySearchPackages(searchTerm);
|
||||
}
|
||||
|
||||
@@ -151,23 +137,6 @@ public final class JandexClasspath implements ClasspathIndex {
|
||||
this.javaIndex = Suppliers.synchronizedSupplier(Suppliers.memoize(() -> createIndex()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImmutableList<String> getClasspathResources() {
|
||||
return IClasspathUtil.getSourceFolders(classpath)
|
||||
.flatMap(folder -> {
|
||||
try {
|
||||
return Files.walk(folder.toPath())
|
||||
.filter(path -> Files.isRegularFile(path))
|
||||
.map(path -> folder.toPath().relativize(path))
|
||||
.map(relativePath -> relativePath.toString())
|
||||
.filter(pathString -> !pathString.endsWith(".java") && !pathString.endsWith(".class"));
|
||||
} catch (IOException e) {
|
||||
return Stream.empty();
|
||||
}
|
||||
})
|
||||
.collect(CollectorUtil.toImmutableList());
|
||||
}
|
||||
|
||||
private static void updateQueue(Queue<String> queue, Set<String> exclusion, IType type) {
|
||||
for (String t : type.getSuperInterfaceNames()) {
|
||||
if (!exclusion.contains(t)) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -15,11 +15,13 @@ import static org.springframework.ide.vscode.commons.jandex.Wrappers.wrap;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.jboss.jandex.ParameterizedType;
|
||||
import org.jboss.jandex.Type;
|
||||
import org.springframework.ide.vscode.commons.java.IClassType;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaType;
|
||||
import org.springframework.ide.vscode.commons.java.IParameterizedType;
|
||||
|
||||
final class ParameterizedTypeWrapper extends TypeWrapper<ParameterizedType> implements IParameterizedType {
|
||||
|
||||
|
||||
ParameterizedTypeWrapper(ParameterizedType type) {
|
||||
super(type);
|
||||
}
|
||||
@@ -31,12 +33,28 @@ final class ParameterizedTypeWrapper extends TypeWrapper<ParameterizedType> impl
|
||||
|
||||
@Override
|
||||
public IJavaType owner() {
|
||||
return wrap(getType().owner());
|
||||
Type owner = getType().owner();
|
||||
if (owner == null) {
|
||||
return new IClassType() {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return getFQName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFQName() {
|
||||
return ParameterizedTypeWrapper.this.name();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
return wrap(owner);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IJavaType> arguments() {
|
||||
return getType().arguments().stream().map(Wrappers::wrap);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
|
||||
import reactor.core.Disposable;
|
||||
|
||||
public abstract class AbstractJavaProject implements IJavaProject, Disposable {
|
||||
|
||||
private final IClasspath classpath;
|
||||
private final URI uri;
|
||||
|
||||
private ClasspathIndex index;
|
||||
|
||||
public AbstractJavaProject(URI uri, IClasspath classpath) {
|
||||
this.uri = uri;
|
||||
this.classpath = classpath;
|
||||
}
|
||||
@Override
|
||||
public IClasspath getClasspath() {
|
||||
return classpath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized ClasspathIndex getIndex() {
|
||||
if (index == null) {
|
||||
index = createIndex();
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
abstract protected ClasspathIndex createIndex();
|
||||
|
||||
@Override
|
||||
public URI getLocationUri() {
|
||||
return uri;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
Disposable toDispose = null;
|
||||
synchronized (this) {
|
||||
toDispose = index;
|
||||
index = null;
|
||||
}
|
||||
if (toDispose!=null) {
|
||||
toDispose.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return new File(uri).exists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JavaProject("+uri+")";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -16,7 +16,7 @@ import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -10,13 +10,8 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import reactor.core.Disposable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.util.function.Tuple2;
|
||||
@@ -24,22 +19,10 @@ import reactor.util.function.Tuple2;
|
||||
public interface ClasspathIndex extends Disposable {
|
||||
|
||||
IType findType(String fqName);
|
||||
Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, Predicate<IType> typeFilter);
|
||||
Flux<Tuple2<String, Double>> fuzzySearchPackages(String searchTerm);
|
||||
Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs, Predicate<IType> typeFilter);
|
||||
Flux<Tuple2<String, Double>> fuzzySearchPackages(String searchTerm, boolean includeBinaries, boolean includeSystemLibs);
|
||||
Flux<IType> allSubtypesOf(IType type);
|
||||
Flux<IType> allSuperTypesOf(IType type);
|
||||
IJavaModuleData findClasspathResourceContainer(String fqName);
|
||||
|
||||
//Maybe the stuff below is another interface? Something that provides operations
|
||||
// on classpaths?
|
||||
|
||||
Optional<URL> sourceContainer(File binaryClasspathRoot);
|
||||
|
||||
/**
|
||||
* Classpath resources paths relative to the source folder path
|
||||
* @return classpath resource relative paths
|
||||
*/
|
||||
ImmutableList<String> getClasspathResources();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -13,7 +13,7 @@ package org.springframework.ide.vscode.commons.java;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.Assert;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2013, 2016 IBM Corporation and others.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corporation - initial API and implementation
|
||||
* Pivotal Inc - copied and modified
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
@@ -25,4 +24,6 @@ public interface IAnnotation extends IJavaElement {
|
||||
*/
|
||||
Stream<IMemberValuePair> getMemberValuePairs();
|
||||
|
||||
String fqName();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -12,4 +12,6 @@ package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
public interface IClassType extends IJavaType {
|
||||
|
||||
String getFQName();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -14,7 +14,7 @@ import java.util.Collection;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
/**
|
||||
* Classpath for a Java artifact
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -12,15 +12,19 @@ package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.CollectorUtil;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
@@ -117,4 +121,32 @@ public class IClasspathUtil {
|
||||
}
|
||||
return Stream.empty();
|
||||
}
|
||||
|
||||
public static Optional<URL> sourceContainer(IClasspath classpath, File binaryClasspathRoot) {
|
||||
CPE cpe = IClasspathUtil.findEntryForBinaryRoot(classpath, binaryClasspathRoot);
|
||||
return cpe == null ? Optional.empty() : Optional.ofNullable(cpe.getSourceContainerUrl());
|
||||
}
|
||||
|
||||
/**
|
||||
* Classpath resources paths relative to the source folder path
|
||||
* @return classpath resource relative paths
|
||||
*/
|
||||
public static ImmutableList<String> getClasspathResources(IClasspath classpath) {
|
||||
return IClasspathUtil.getSourceFolders(classpath)
|
||||
.flatMap(folder -> {
|
||||
try {
|
||||
return Files.walk(folder.toPath())
|
||||
.filter(path -> Files.isRegularFile(path))
|
||||
.map(path -> folder.toPath().relativize(path))
|
||||
.map(relativePath -> relativePath.toString())
|
||||
.filter(pathString -> !pathString.endsWith(".java") && !pathString.endsWith(".class"));
|
||||
} catch (IOException e) {
|
||||
return Stream.empty();
|
||||
}
|
||||
})
|
||||
.collect(CollectorUtil.toImmutableList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -10,15 +10,7 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.util.function.Tuple2;
|
||||
|
||||
public interface IJavaProject {
|
||||
|
||||
@@ -33,32 +25,4 @@ public interface IJavaProject {
|
||||
return getClasspath().getName();
|
||||
}
|
||||
|
||||
default IType findType(String fqName) {
|
||||
return getIndex().findType(fqName);
|
||||
}
|
||||
|
||||
default Flux<IType> allSubtypesOf(IType targetType) {
|
||||
return getIndex().allSubtypesOf(targetType);
|
||||
}
|
||||
|
||||
default Flux<IType> allSuperTypesOf(IType targetType) {
|
||||
return getIndex().allSuperTypesOf(targetType);
|
||||
}
|
||||
|
||||
default Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, Predicate<IType> typeFilter) {
|
||||
return getIndex().fuzzySearchTypes(searchTerm, typeFilter);
|
||||
}
|
||||
|
||||
default Optional<URL> sourceContainer(File classpathResource) {
|
||||
return getIndex().sourceContainer(classpathResource);
|
||||
}
|
||||
|
||||
default List<String> getClasspathResources() {
|
||||
return getIndex().getClasspathResources();
|
||||
}
|
||||
|
||||
default IJavaModuleData findClasspathResourceContainer(String fqName) {
|
||||
return getIndex().findClasspathResourceContainer(fqName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -10,30 +10,22 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
|
||||
import org.springframework.ide.vscode.commons.jandex.JandexClasspath;
|
||||
import org.springframework.ide.vscode.commons.jandex.JandexIndex.JavadocProviderFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.JavadocService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.FileObserver;
|
||||
|
||||
import reactor.core.Disposable;
|
||||
public class JavaProject extends AbstractJavaProject {
|
||||
|
||||
public class JavaProject implements IJavaProject, Disposable {
|
||||
|
||||
private final IClasspath classpath;
|
||||
private ClasspathIndex index;
|
||||
private URI uri;
|
||||
private final FileObserver fileObserver;
|
||||
private final JavadocProviderFactory javadocProviderFactory;
|
||||
|
||||
public JavaProject(FileObserver fileObserver, URI uri, IClasspath classpath, JavadocService javadocService) {
|
||||
super();
|
||||
this.classpath = classpath;
|
||||
super(uri, classpath);
|
||||
this.fileObserver = fileObserver;
|
||||
this.uri = uri;
|
||||
this.javadocProviderFactory = (classpathResource) -> {
|
||||
CPE cpe = IClasspathUtil.findEntryForBinaryRoot(classpath, classpathResource);
|
||||
return javadocService.javadocProvider(uri.toString(), cpe);
|
||||
@@ -41,42 +33,8 @@ public class JavaProject implements IJavaProject, Disposable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IClasspath getClasspath() {
|
||||
return classpath;
|
||||
protected ClasspathIndex createIndex() {
|
||||
return new JandexClasspath(getClasspath(), fileObserver, javadocProviderFactory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized ClasspathIndex getIndex() {
|
||||
if (index==null) {
|
||||
index = new JandexClasspath(classpath, fileObserver, javadocProviderFactory);
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
@Override
|
||||
public URI getLocationUri() {
|
||||
return uri;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
Disposable toDispose = null;
|
||||
synchronized (this) {
|
||||
toDispose = index;
|
||||
index = null;
|
||||
}
|
||||
if (toDispose!=null) {
|
||||
toDispose.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return new File(uri).exists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JavaProject("+uri+")";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.java;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import org.springframework.ide.vscode.commons.jdtls.JdtLsIndex;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
|
||||
public class JdtLsJavaProject extends AbstractJavaProject {
|
||||
|
||||
final private STS4LanguageClient client;
|
||||
|
||||
public JdtLsJavaProject(STS4LanguageClient client, URI uri, IClasspath classpath) {
|
||||
super(uri, classpath);
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClasspathIndex createIndex() {
|
||||
return new JdtLsIndex(client, getLocationUri());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -13,7 +13,7 @@ package org.springframework.ide.vscode.commons.javadoc;
|
||||
import java.net.URL;
|
||||
|
||||
import org.springframework.ide.vscode.commons.java.IJavadocProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
public class JavaDocProviders {
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.eclipse.lsp4j.MarkupContent;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.java.IAnnotation;
|
||||
@@ -22,9 +23,8 @@ import org.springframework.ide.vscode.commons.java.IJavaElement;
|
||||
import org.springframework.ide.vscode.commons.java.IJavadocProvider;
|
||||
import org.springframework.ide.vscode.commons.java.IMethod;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavadocResponse;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.util.Renderable;
|
||||
import org.springframework.ide.vscode.commons.util.Renderables;
|
||||
|
||||
@@ -41,8 +41,7 @@ public class JdtLsJavadocProvider implements IJavadocProvider {
|
||||
this.projectUri = projectUri;
|
||||
}
|
||||
|
||||
private IJavadoc produceJavadocFromMd(JavadocResponse response) {
|
||||
String md = response.getContent();
|
||||
private IJavadoc produceJavadocFromMd(String md) {
|
||||
if (md != null) {
|
||||
final Renderable renderableDoc = Renderables.mdBlob(md);
|
||||
return new IJavadoc() {
|
||||
@@ -61,9 +60,9 @@ public class JdtLsJavadocProvider implements IJavadocProvider {
|
||||
long start = System.currentTimeMillis();
|
||||
try {
|
||||
log.info("Fetching javadoc {}", element.getBindingKey());
|
||||
JavadocResponse response = client.javadoc(new JavaDataParams(projectUri, element.getBindingKey(), false)).get(10, TimeUnit.SECONDS);
|
||||
MarkupContent md = client.javadoc(new JavaDataParams(projectUri, element.getBindingKey(), false)).get(10, TimeUnit.SECONDS);
|
||||
log.info("Fetching javadoc {} took {} ms", element.getBindingKey(), System.currentTimeMillis()-start);
|
||||
return produceJavadocFromMd(response);
|
||||
return produceJavadocFromMd(md == null ? null : md.getValue());
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException e) {
|
||||
log.error("Fetching javadoc {} failed", element.getBindingKey(), e);
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.jdtls;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.java.ClasspathIndex;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaModuleData;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.javadoc.JdtLsJavadocProvider;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeHierarchyParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
import org.springframework.ide.vscode.commons.util.FuzzyMatcher;
|
||||
|
||||
import com.google.common.base.Suppliers;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.scheduler.Schedulers;
|
||||
import reactor.util.function.Tuple2;
|
||||
import reactor.util.function.Tuples;
|
||||
|
||||
public class JdtLsIndex implements ClasspathIndex {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(JdtLsIndex.class);
|
||||
|
||||
private final STS4LanguageClient client;
|
||||
private final URI projectUri;
|
||||
private final JdtLsJavadocProvider javadocProvider;
|
||||
|
||||
public JdtLsIndex(STS4LanguageClient client, URI projectUri) {
|
||||
this.client = client;
|
||||
this.projectUri = projectUri;
|
||||
this.javadocProvider = new JdtLsJavadocProvider(client, projectUri.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
private IType toType(TypeData data) {
|
||||
String declaringTypeBindingKey = data.getDeclaringType();
|
||||
String declaringTypeFqName = declaringTypeBindingKey == null ? null : declaringTypeBindingKey.substring(1, declaringTypeBindingKey.length() - 1).replace('/', '.');
|
||||
return Wrappers.wrap(data, Suppliers.memoize(() -> declaringTypeFqName == null ? null : findType(declaringTypeFqName)), javadocProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType findType(String fqName) {
|
||||
JavaDataParams params = new JavaDataParams(projectUri.toString(), "L" + fqName.replace('.', '/') + ";", false);
|
||||
try {
|
||||
TypeData data = client.javaType(params).get(500, TimeUnit.MILLISECONDS);
|
||||
if (data != null) {
|
||||
return toType(data);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException e) {
|
||||
log.error("", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<Tuple2<IType, Double>> fuzzySearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs, Predicate<IType> typeFilter) {
|
||||
JavaSearchParams searchParams = new JavaSearchParams(projectUri.toString(), searchTerm, includeBinaries, includeSystemLibs);
|
||||
return Mono.fromFuture(client.javaSearchTypes(searchParams))
|
||||
.flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel()))
|
||||
.filter(Objects::nonNull)
|
||||
.map(this::toType)
|
||||
.filter(t -> typeFilter == null || typeFilter.test(t))
|
||||
.map(type -> Tuples.of(type, FuzzyMatcher.matchScore(searchTerm, type.getFullyQualifiedName())))
|
||||
.filter(tuple -> tuple.getT2() != 0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<Tuple2<String, Double>> fuzzySearchPackages(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) {
|
||||
JavaSearchParams searchParams = new JavaSearchParams(projectUri.toString(), searchTerm, includeBinaries, includeSystemLibs);
|
||||
return Mono.fromFuture(client.javaSearchPackages(searchParams))
|
||||
.flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel()))
|
||||
.filter(Objects::nonNull)
|
||||
.map(p -> Tuples.of(p, FuzzyMatcher.matchScore(searchTerm, p)))
|
||||
.filter(tuple -> tuple.getT2() != 0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<IType> allSubtypesOf(IType type) {
|
||||
JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toString(), type.getFullyQualifiedName());
|
||||
return Mono.fromFuture(client.javaSubTypes(searchParams))
|
||||
.flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel()))
|
||||
.filter(Objects::nonNull)
|
||||
.map(this::toType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<IType> allSuperTypesOf(IType type) {
|
||||
JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toString(), type.getFullyQualifiedName());
|
||||
return Mono.fromFuture(client.javaSuperTypes(searchParams))
|
||||
.flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel()))
|
||||
.filter(Objects::nonNull)
|
||||
.map(this::toType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaModuleData findClasspathResourceContainer(String fqName) {
|
||||
IType type = findType(fqName);
|
||||
return type == null ? null : type.classpathContainer();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,494 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.jdtls;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.springframework.ide.vscode.commons.java.IAnnotation;
|
||||
import org.springframework.ide.vscode.commons.java.IArrayType;
|
||||
import org.springframework.ide.vscode.commons.java.IClassType;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspathUtil;
|
||||
import org.springframework.ide.vscode.commons.java.IField;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaModuleData;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaType;
|
||||
import org.springframework.ide.vscode.commons.java.IJavadocProvider;
|
||||
import org.springframework.ide.vscode.commons.java.IMemberValuePair;
|
||||
import org.springframework.ide.vscode.commons.java.IMethod;
|
||||
import org.springframework.ide.vscode.commons.java.IParameterizedType;
|
||||
import org.springframework.ide.vscode.commons.java.IPrimitiveType;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.java.ITypeVariable;
|
||||
import org.springframework.ide.vscode.commons.java.IUnresolvedTypeVariable;
|
||||
import org.springframework.ide.vscode.commons.java.IVoidType;
|
||||
import org.springframework.ide.vscode.commons.java.IWildcardType;
|
||||
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.TypeData;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData.AnnotationData;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData.FieldData;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData.MethodData;
|
||||
|
||||
import com.google.common.base.Supplier;
|
||||
|
||||
public class Wrappers {
|
||||
|
||||
public static IJavaType wrap(JavaTypeData data) {
|
||||
switch (data.getKind()) {
|
||||
case INT:
|
||||
return IPrimitiveType.INT;
|
||||
case CHAR:
|
||||
return IPrimitiveType.CHAR;
|
||||
case BOOLEAN:
|
||||
return IPrimitiveType.BOOLEAN;
|
||||
case FLOAT:
|
||||
return IPrimitiveType.FLOAT;
|
||||
case BYTE:
|
||||
return IPrimitiveType.BYTE;
|
||||
case DOUBLE:
|
||||
return IPrimitiveType.DOUBLE;
|
||||
case LONG:
|
||||
return IPrimitiveType.LONG;
|
||||
case SHORT:
|
||||
return IPrimitiveType.SHORT;
|
||||
case VOID:
|
||||
return IVoidType.DEFAULT;
|
||||
case CLASS:
|
||||
return new IClassType() {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof IClassType) {
|
||||
return data.getName().equals(((IClassType)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFQName() {
|
||||
String key = data.getName();
|
||||
return key.substring(0, key.length() - 1).replace('/', '.');
|
||||
}
|
||||
|
||||
};
|
||||
case ARRAY:
|
||||
return new IArrayType() {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int dimensions() {
|
||||
if (data.getExtras() != null && data.getExtras().containsKey("dimensions")) {
|
||||
return (Integer) data.getExtras().get("dimenions");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaType component() {
|
||||
if (data.getExtras() != null && data.getExtras().containsKey("component")) {
|
||||
return wrap((JavaTypeData) data.getExtras().get("component"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof IArrayType) {
|
||||
return data.getName().equals(((IArrayType)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
case PARAMETERIZED:
|
||||
return new IParameterizedType() {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaType owner() {
|
||||
if (data.getExtras() != null && data.getExtras().containsKey("owner")) {
|
||||
return wrap((JavaTypeData) data.getExtras().get("owner"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Stream<IJavaType> arguments() {
|
||||
if (data.getExtras() != null && data.getExtras().containsKey("arguments")) {
|
||||
return ((List<JavaTypeData>) data.getExtras().get("arguments")).stream().map(Wrappers::wrap);
|
||||
}
|
||||
return Stream.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof IParameterizedType) {
|
||||
return data.getName().equals(((IParameterizedType)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
};
|
||||
case TYPE_VARIABLE:
|
||||
return new ITypeVariable() {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof ITypeVariable) {
|
||||
return data.getName().equals(((ITypeVariable)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
case WILDCARD:
|
||||
return new IWildcardType() {
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof IWildcardType) {
|
||||
return data.getName().equals(((IWildcardType)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
case UNRESOLVED:
|
||||
return new IUnresolvedTypeVariable() {
|
||||
@Override
|
||||
public String name() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof IUnresolvedTypeVariable) {
|
||||
return data.getName().equals(((IUnresolvedTypeVariable)obj).name());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IAnnotation wrap(AnnotationData data, IJavadocProvider javadocProvider) {
|
||||
return new IAnnotation() {
|
||||
|
||||
@Override
|
||||
public IJavadoc getJavaDoc() {
|
||||
return javadocProvider.getJavadoc(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return data.getFqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBindingKey() {
|
||||
return data.getFqName() == null ? null : "L" + data.getFqName().replace('.', '/') + ";";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IMemberValuePair> getMemberValuePairs() {
|
||||
return data.getValuePairs().entrySet().stream().map(e -> new IMemberValuePair() {
|
||||
|
||||
@Override
|
||||
public String getMemberName() {
|
||||
return e.getKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getValue() {
|
||||
return e.getValue();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public String fqName() {
|
||||
return data.getFqName();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static IMethod wrap(MethodData data, IType declaringType, IJavadocProvider javadocProvider) {
|
||||
return new IMethod() {
|
||||
|
||||
@Override
|
||||
public int getFlags() {
|
||||
return data.getFlags();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getDeclaringType() {
|
||||
return declaringType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String signature() {
|
||||
return data.getLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavadoc getJavaDoc() {
|
||||
return javadocProvider.getJavadoc(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBindingKey() {
|
||||
return data.getBindingKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IAnnotation> getAnnotations() {
|
||||
return data.getAnnotations().stream().map(a -> Wrappers.wrap(a, javadocProvider));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaType getReturnType() {
|
||||
return Wrappers.wrap(data.getReturnType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IJavaType> parameters() {
|
||||
return data.getParameters().stream().map(Wrappers::wrap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConstructor() {
|
||||
return data.isConstructor();
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
public static IField wrap(FieldData data, IType declaringType, IJavadocProvider javadocProvider) {
|
||||
return new IField() {
|
||||
|
||||
@Override
|
||||
public int getFlags() {
|
||||
return data.getFlags();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getDeclaringType() {
|
||||
return declaringType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String signature() {
|
||||
return data.getLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavadoc getJavaDoc() {
|
||||
return javadocProvider.getJavadoc(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBindingKey() {
|
||||
return data.getBindingKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IAnnotation> getAnnotations() {
|
||||
return data.getAnnotations().stream().map(a -> Wrappers.wrap(a, javadocProvider));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnumConstant() {
|
||||
return data.isEnumConstant();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaType type() {
|
||||
return wrap(data.getType());
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
public static IType wrap(TypeData data, Supplier<IType> declaringTypeSupplier, IJavadocProvider javadocProvider) {
|
||||
return new IType() {
|
||||
|
||||
@Override
|
||||
public int getFlags() {
|
||||
return data.getFlags();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IType getDeclaringType() {
|
||||
return declaringTypeSupplier.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavaModuleData classpathContainer() {
|
||||
return new IJavaModuleData() {
|
||||
|
||||
@Override
|
||||
public String getModule() {
|
||||
return data.getClasspathEntry().getModule();
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getContainer() {
|
||||
return IClasspathUtil.binaryLocation(data.getClasspathEntry().getCpe());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String signature() {
|
||||
return data.getLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return data.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IJavadoc getJavaDoc() {
|
||||
return javadocProvider.getJavadoc(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBindingKey() {
|
||||
return data.getBindingKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IAnnotation> getAnnotations() {
|
||||
return data.getAnnotations().stream().map(a -> Wrappers.wrap(a, javadocProvider));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isClass() {
|
||||
return data.isClass();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnum() {
|
||||
return data.isEnum();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInterface() {
|
||||
return data.isInterface();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAnnotation() {
|
||||
return data.isAnnotation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFullyQualifiedName() {
|
||||
return data.getFqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IField getField(String name) {
|
||||
return getFields().filter(f -> name.equals(f.getElementName())).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IField> getFields() {
|
||||
return data.getFields().stream().map(f -> wrap(f, this, javadocProvider));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMethod getMethod(String name, Stream<IJavaType> parameters) {
|
||||
List<IJavaType> arguments = parameters.collect(Collectors.toList());
|
||||
return data.getMethods().stream()
|
||||
.filter(m -> name.equals(m.getName()))
|
||||
.filter(m -> arguments.equals(m.getParameters().stream()
|
||||
.map(Wrappers::wrap)
|
||||
.collect(Collectors.toList())))
|
||||
.findFirst()
|
||||
.map(m -> wrap(m, this, javadocProvider))
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<IMethod> getMethods() {
|
||||
return data.getMethods().stream().map(m -> wrap(m, this, javadocProvider));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSuperclassName() {
|
||||
return data.getSuperClassName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getSuperInterfaceNames() {
|
||||
return data.getSuperInterfaceNames();
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -11,7 +11,7 @@
|
||||
package org.springframework.ide.vscode.commons.languageserver.java;
|
||||
|
||||
import org.springframework.ide.vscode.commons.java.IJavadocProvider;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
public interface JavadocService {
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -25,7 +25,7 @@ import org.springframework.ide.vscode.commons.java.ClasspathData;
|
||||
import org.springframework.ide.vscode.commons.java.IField;
|
||||
import org.springframework.ide.vscode.commons.java.IMethod;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.BasicFileObserver;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.jandex;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.lang.reflect.Type;
|
||||
import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.ide.vscode.commons.java.IAnnotation;
|
||||
import org.springframework.ide.vscode.commons.java.IMethod;
|
||||
import org.springframework.ide.vscode.commons.java.IPrimitiveType;
|
||||
import org.springframework.ide.vscode.commons.java.IType;
|
||||
import org.springframework.ide.vscode.commons.jdtls.JdtLsIndex;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import reactor.util.function.Tuple2;
|
||||
|
||||
public class JdtLsIndexTest {
|
||||
|
||||
private Gson gson = new Gson();
|
||||
|
||||
private TypeData loadJsonData(String fileName) throws Exception {
|
||||
File jsonFile = new File(JdtLsIndexTest.class.getResource("/java-data-json/" + fileName).toURI());
|
||||
return gson.fromJson(new FileReader(jsonFile), TypeData.class);
|
||||
}
|
||||
|
||||
private List<TypeData> loadJsonSearchTypeResults(String fileName) throws Exception {
|
||||
File jsonFile = new File(JdtLsIndexTest.class.getResource("/java-data-json/" + fileName).toURI());
|
||||
Type listType = new TypeToken<List<TypeData>>(){}.getType();
|
||||
return gson.fromJson(new FileReader(jsonFile), listType);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findTypeInJRE() throws Exception {
|
||||
STS4LanguageClient client = Mockito.mock(STS4LanguageClient.class);
|
||||
when(client.javaType(any())).thenReturn(CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return loadJsonData("Map.json");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
// Some valid URI necessary for URI#toString() to succeed
|
||||
JdtLsIndex index = new JdtLsIndex(client, URI.create(System.getProperty("java.io.tmpdir")));
|
||||
IType type = index.findType("java.util.Map");
|
||||
assertNotNull(type);
|
||||
assertEquals("Ljava/util/Map;", type.getBindingKey());
|
||||
assertEquals("Map", type.getElementName());
|
||||
assertEquals("java.util.Map", type.getFullyQualifiedName());
|
||||
assertTrue(type.isInterface());
|
||||
assertFalse(type.isClass());
|
||||
assertEquals("java.util.Map<K, V>", type.signature());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findMethodNoArgsInType() throws Exception {
|
||||
STS4LanguageClient client = Mockito.mock(STS4LanguageClient.class);
|
||||
when(client.javaType(any())).thenReturn(CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return loadJsonData("Map.json");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
// Some valid URI necessary for URI#toString() to succeed
|
||||
JdtLsIndex index = new JdtLsIndex(client, URI.create(System.getProperty("java.io.tmpdir")));
|
||||
IType type = index.findType("java.util.Map");
|
||||
assertNotNull(type);
|
||||
|
||||
IMethod method = type.getMethod("size", Stream.of());
|
||||
assertNotNull(method);
|
||||
assertEquals("Ljava/util/Map;.size()I", method.getBindingKey());
|
||||
assertEquals(IPrimitiveType.INT, method.getReturnType());
|
||||
assertEquals(type, method.getDeclaringType());
|
||||
assertTrue(method.parameters().collect(Collectors.toList()).isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void typeAnnotation() throws Exception {
|
||||
STS4LanguageClient client = Mockito.mock(STS4LanguageClient.class);
|
||||
when(client.javaType(any())).thenReturn(CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return loadJsonData("ServerProperties.json");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
// Some valid URI necessary for URI#toString() to succeed
|
||||
JdtLsIndex index = new JdtLsIndex(client, URI.create(System.getProperty("java.io.tmpdir")));
|
||||
IType type = index.findType("org.springframework.boot.autoconfigure.web.ServerProperties");
|
||||
assertNotNull(type);
|
||||
|
||||
List<IAnnotation> annotations = type.getAnnotations().collect(Collectors.toList());
|
||||
assertEquals(1, annotations.size());
|
||||
IAnnotation a = annotations.get(0);
|
||||
|
||||
// Don't tests element name for Annotation as it is different in JDT for source and binary types
|
||||
assertEquals("org.springframework.boot.context.properties.ConfigurationProperties", a.fqName());
|
||||
assertEquals("Lorg/springframework/boot/context/properties/ConfigurationProperties;", a.getBindingKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void searchType() throws Exception {
|
||||
STS4LanguageClient client = Mockito.mock(STS4LanguageClient.class);
|
||||
when(client.javaSearchTypes(any())).thenReturn(CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return loadJsonSearchTypeResults("search-util-map.json");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
// Some valid URI necessary for URI#toString() to succeed
|
||||
JdtLsIndex index = new JdtLsIndex(client, URI.create(System.getProperty("java.io.tmpdir")));
|
||||
List<Tuple2<IType, Double>> results = index.fuzzySearchTypes("util.Map", true, false, null).collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2())).block();
|
||||
IType type = results.get(0).getT1();
|
||||
assertEquals("io.netty.util.Mapping", type.getFullyQualifiedName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void searchPackage() throws Exception {
|
||||
STS4LanguageClient client = Mockito.mock(STS4LanguageClient.class);
|
||||
when(client.javaSearchPackages(any())).thenReturn(CompletableFuture.supplyAsync(() -> {
|
||||
try {
|
||||
return Arrays.asList("org.spring.example", "java.util", "com.example", "org.spring.data", "com.another.example", "org.example");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
// Some valid URI necessary for URI#toString() to succeed
|
||||
JdtLsIndex index = new JdtLsIndex(client, URI.create(System.getProperty("java.io.tmpdir")));
|
||||
List<Tuple2<String, Double>> results = index.fuzzySearchPackages("com.e", true, false).collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2())).block();
|
||||
List<String> packages = results.stream().map(t -> t.getT1()).collect(Collectors.toList());
|
||||
assertEquals(Arrays.asList("com.example", "com.another.example"), packages);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,720 @@
|
||||
{
|
||||
"fqName": "java.util.Map",
|
||||
"bindingKey": "Ljava/util/Map;",
|
||||
"clazz": false,
|
||||
"annotation": false,
|
||||
"interfaze": true,
|
||||
"enam": false,
|
||||
"superClassName": "java.lang.Object",
|
||||
"superInterfaceNames": [],
|
||||
"fields": [],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.size()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "size",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~size",
|
||||
"label": "int java.util.Map.size()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.isEmpty()Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "isEmpty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~isEmpty",
|
||||
"label": "boolean java.util.Map.isEmpty()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.containsKey(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "containsKey",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~containsKey~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.containsKey(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.containsValue(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "containsValue",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~containsValue~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.containsValue(Object value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.get(Ljava/lang/Object;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "get",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~get~Ljava.lang.Object;",
|
||||
"label": "V java.util.Map.get(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.put(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "put",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~put~TK;~TV;",
|
||||
"label": "V java.util.Map.put(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.remove(Ljava/lang/Object;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "remove",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~remove~Ljava.lang.Object;",
|
||||
"label": "V java.util.Map.remove(Object key)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.putAll(Ljava/util/Map\u003c+TK;+TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Map\u003c+TK;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Map;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "putAll",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~putAll~Ljava.util.Map\\\u003c+TK;+TV;\u003e;",
|
||||
"label": "void java.util.Map.putAll(Map\u003c? extends K, ? extends V\u003e m)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.clear()V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "clear",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~clear",
|
||||
"label": "void java.util.Map.clear()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.keySet()Ljava.util.Set\u003cTK;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Set\u003cTK;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Set;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "keySet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~keySet",
|
||||
"label": "Set\u003cK\u003e java.util.Map.keySet()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.values()Ljava.util.Collection\u003cTV;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Collection\u003cTV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Collection;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "values",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~values",
|
||||
"label": "Collection\u003cV\u003e java.util.Map.values()"
|
||||
},
|
||||
{
|
||||
"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;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Set;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.Map$Entry\u003cTK;TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.Map$Entry;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "entrySet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~entrySet",
|
||||
"label": "Set\u003cEntry\u003cK, V\u003e\u003e java.util.Map.entrySet()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.equals(Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "equals",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~equals~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.equals(Object o)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.hashCode()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 1025,
|
||||
"name": "hashCode",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~hashCode",
|
||||
"label": "int java.util.Map.hashCode()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.getOrDefault(Ljava/lang/Object;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "getOrDefault",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~getOrDefault~Ljava.lang.Object;~TV;",
|
||||
"label": "V java.util.Map.getOrDefault(Object key, V defaultValue)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.forEach(Ljava/util/function/BiConsumer\u003c-TK;-TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiConsumer\u003c-TK;-TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiConsumer;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "forEach",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~forEach~Ljava.util.function.BiConsumer\\\u003c-TK;-TV;\u003e;",
|
||||
"label": "void java.util.Map.forEach(BiConsumer\u003c? super K, ? super V\u003e action)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replaceAll(Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replaceAll",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replaceAll~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "void java.util.Map.replaceAll(BiFunction\u003c? super K, ? super V, ? extends V\u003e function)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.putIfAbsent(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "putIfAbsent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~putIfAbsent~TK;~TV;",
|
||||
"label": "V java.util.Map.putIfAbsent(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.remove(Ljava/lang/Object;Ljava/lang/Object;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Object;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "remove",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~remove~Ljava.lang.Object;~Ljava.lang.Object;",
|
||||
"label": "boolean java.util.Map.remove(Object key, Object value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replace(TK;TV;TV;)Z",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "BOOLEAN",
|
||||
"name": "Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replace",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replace~TK;~TV;~TV;",
|
||||
"label": "boolean java.util.Map.replace(K key, V oldValue, V newValue)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.replace(TK;TV;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "replace",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~replace~TK;~TV;",
|
||||
"label": "V java.util.Map.replace(K key, V value)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.computeIfAbsent(TK;Ljava/util/function/Function\u003c-TK;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.Function\u003c-TK;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.Function;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "computeIfAbsent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~computeIfAbsent~TK;~Ljava.util.function.Function\\\u003c-TK;+TV;\u003e;",
|
||||
"label": "V java.util.Map.computeIfAbsent(K key, Function\u003c? super K, ? extends V\u003e mappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.computeIfPresent(TK;Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "computeIfPresent",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~computeIfPresent~TK;~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.computeIfPresent(K key, BiFunction\u003c? super K, ? super V, ? extends V\u003e remappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.compute(TK;Ljava/util/function/BiFunction\u003c-TK;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TK;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TK;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "compute",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~compute~TK;~Ljava.util.function.BiFunction\\\u003c-TK;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.compute(K key, BiFunction\u003c? super K, ? super V, ? extends V\u003e remappingFunction)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Ljava/util/Map;.merge(TK;TV;Ljava/util/function/BiFunction\u003c-TV;-TV;+TV;\u003e;)TV;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TK;"
|
||||
},
|
||||
{
|
||||
"kind": "TYPE_VARIABLE",
|
||||
"name": "TV;"
|
||||
},
|
||||
{
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Ljava.util.function.BiFunction\u003c-TV;-TV;+TV;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.util.function.BiFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "-TV;"
|
||||
},
|
||||
{
|
||||
"kind": "WILDCARD",
|
||||
"name": "+TV;"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Ljava/util/Map;",
|
||||
"flags": 65537,
|
||||
"name": "merge",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map~merge~TK;~TV;~Ljava.util.function.BiFunction\\\u003c-TV;-TV;+TV;\u003e;",
|
||||
"label": "V java.util.Map.merge(K key, V value, BiFunction\u003c? super V, ? super V, ? extends V\u003e remappingFunction)"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "binary",
|
||||
"path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/rt.jar",
|
||||
"sourceContainerUrl": "file:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/src.zip",
|
||||
"isSystem": true,
|
||||
"isOwn": false
|
||||
}
|
||||
},
|
||||
"flags": 1537,
|
||||
"name": "Map",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Library\\/Java\\/JavaVirtualMachines\\/jdk1.8.0_151.jdk\\/Contents\\/Home\\/jre\\/lib\\/rt.jar\u003cjava.util(Map.class[Map",
|
||||
"label": "java.util.Map\u003cK, V\u003e"
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"fqName": "org.test.NestedRouter3",
|
||||
"bindingKey": "Lorg/test/NestedRouter3;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superInterfaceNames": [],
|
||||
"fields": [],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/NestedRouter3;.routingFunction()Lorg/springframework/web/reactive/function/server/RouterFunction\u003cLorg/springframework/web/reactive/function/server/ServerResponse;\u003e;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "PARAMETERIZED",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/RouterFunction\u003cLorg/springframework/web/reactive/function/server/ServerResponse;\u003e;",
|
||||
"extras": {
|
||||
"owner": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/RouterFunction;"
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg/springframework/web/reactive/function/server/ServerResponse;"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.context.annotation.Bean",
|
||||
"valuePairs": {},
|
||||
"name": "Bean",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3~routingFunction}Bean",
|
||||
"label": "Bean"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/test/NestedRouter3;",
|
||||
"flags": 1,
|
||||
"name": "routingFunction",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3~routingFunction",
|
||||
"label": "RouterFunction\u003cServerResponse\u003e org.test.NestedRouter3.routingFunction()"
|
||||
}
|
||||
],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.context.annotation.Configuration",
|
||||
"valuePairs": {},
|
||||
"name": "Configuration",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3}Configuration",
|
||||
"label": "Configuration"
|
||||
}
|
||||
],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "source",
|
||||
"path": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/src/main/java",
|
||||
"outputFolder": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/target/classes",
|
||||
"isSystem": false,
|
||||
"isOwn": true
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "NestedRouter3",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{NestedRouter3.java[NestedRouter3",
|
||||
"label": "org.test.NestedRouter3"
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
{
|
||||
"fqName": "org.test.Quote",
|
||||
"bindingKey": "Lorg/test/Quote;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superInterfaceNames": [],
|
||||
"fields": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.MATH_CONTEXT",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/MathContext;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 26,
|
||||
"name": "MATH_CONTEXT",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^MATH_CONTEXT",
|
||||
"label": "MathContext MATH_CONTEXT"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.ticker",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "ticker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^ticker",
|
||||
"label": "String ticker"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.price",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "price",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^price",
|
||||
"label": "BigDecimal price"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.instant",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 2,
|
||||
"name": "instant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote^instant",
|
||||
"label": "Instant instant"
|
||||
}
|
||||
],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.()V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote",
|
||||
"label": "org.test.Quote.Quote()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.(Ljava/lang/String;Ljava/math/BigDecimal;)V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote~QString;~QBigDecimal;",
|
||||
"label": "org.test.Quote.Quote(String ticker, BigDecimal price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.(Ljava/lang/String;Ljava/lang/Double;)V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/Double;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~Quote~QString;~QDouble;",
|
||||
"label": "org.test.Quote.Quote(String ticker, Double price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getTicker()Ljava/lang/String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getTicker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getTicker",
|
||||
"label": "String org.test.Quote.getTicker()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setTicker(Ljava/lang/String;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setTicker",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setTicker~QString;",
|
||||
"label": "void org.test.Quote.setTicker(String ticker)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getPrice()Ljava/math/BigDecimal;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getPrice",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getPrice",
|
||||
"label": "BigDecimal org.test.Quote.getPrice()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setPrice(Ljava/math/BigDecimal;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/math/BigDecimal;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setPrice",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setPrice~QBigDecimal;",
|
||||
"label": "void org.test.Quote.setPrice(BigDecimal price)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.getInstant()Ljava/time/Instant;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "getInstant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~getInstant",
|
||||
"label": "Instant org.test.Quote.getInstant()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.setInstant(Ljava/time/Instant;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/time/Instant;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "setInstant",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~setInstant~QInstant;",
|
||||
"label": "void org.test.Quote.setInstant(Instant instant)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/test/Quote;.toString()Ljava/lang/String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava/lang/String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "java.lang.Override",
|
||||
"valuePairs": {},
|
||||
"name": "Override",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~toString}Override",
|
||||
"label": "Override"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/test/Quote;",
|
||||
"flags": 1,
|
||||
"name": "toString",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote~toString",
|
||||
"label": "String org.test.Quote.toString()"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "source",
|
||||
"path": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/src/main/java",
|
||||
"outputFolder": "/Users/aboyko/Documents/junit-workspace/test-webflux-project/target/classes",
|
||||
"isSystem": false,
|
||||
"isOwn": true
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "Quote",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/src\\/main\\/java\u003corg.test{Quote.java[Quote",
|
||||
"label": "org.test.Quote"
|
||||
}
|
||||
@@ -0,0 +1,632 @@
|
||||
{
|
||||
"fqName": "org.springframework.boot.autoconfigure.web.ServerProperties",
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"clazz": true,
|
||||
"annotation": false,
|
||||
"interfaze": false,
|
||||
"enam": false,
|
||||
"superClassName": "java.lang.Object",
|
||||
"superInterfaceNames": [],
|
||||
"fields": [
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.port",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "port",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^port",
|
||||
"label": "Integer port"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.address",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "address",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^address",
|
||||
"label": "InetAddress address"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.error",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^error}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "error",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^error",
|
||||
"label": "ErrorProperties error"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.useForwardHeaders",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "useForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^useForwardHeaders",
|
||||
"label": "Boolean useForwardHeaders"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.serverHeader",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "serverHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^serverHeader",
|
||||
"label": "String serverHeader"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.maxHttpHeaderSize",
|
||||
"type": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "maxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^maxHttpHeaderSize",
|
||||
"label": "int maxHttpHeaderSize"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.connectionTimeout",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "connectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^connectionTimeout",
|
||||
"label": "Duration connectionTimeout"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.ssl",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Ssl;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^ssl}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 2,
|
||||
"name": "ssl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^ssl",
|
||||
"label": "Ssl ssl"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.compression",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Compression;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^compression}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "compression",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^compression",
|
||||
"label": "Compression compression"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.http2",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Http2;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"valuePairs": {},
|
||||
"name": "org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^http2}org.springframework.boot.context.properties.NestedConfigurationProperty",
|
||||
"label": "org.springframework.boot.context.properties.NestedConfigurationProperty"
|
||||
}
|
||||
],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "http2",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^http2",
|
||||
"label": "Http2 http2"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.servlet",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Servlet;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "servlet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^servlet",
|
||||
"label": "Servlet servlet"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.tomcat",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Tomcat;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "tomcat",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^tomcat",
|
||||
"label": "Tomcat tomcat"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.jetty",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Jetty;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "jetty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^jetty",
|
||||
"label": "Jetty jetty"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.undertow",
|
||||
"type": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ServerProperties$Undertow;"
|
||||
},
|
||||
"enumConstant": false,
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 18,
|
||||
"name": "undertow",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties^undertow",
|
||||
"label": "Undertow undertow"
|
||||
}
|
||||
],
|
||||
"methods": [
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.()V",
|
||||
"constructor": true,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "ServerProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~ServerProperties",
|
||||
"label": "org.springframework.boot.autoconfigure.web.ServerProperties.ServerProperties()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getPort()Ljava.lang.Integer;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getPort",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getPort",
|
||||
"label": "Integer org.springframework.boot.autoconfigure.web.ServerProperties.getPort()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setPort(Ljava/lang/Integer;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Integer;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setPort",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setPort~Ljava.lang.Integer;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setPort(Integer port)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getAddress()Ljava.net.InetAddress;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getAddress",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getAddress",
|
||||
"label": "InetAddress org.springframework.boot.autoconfigure.web.ServerProperties.getAddress()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setAddress(Ljava/net/InetAddress;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.net.InetAddress;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setAddress",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setAddress~Ljava.net.InetAddress;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setAddress(InetAddress address)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.isUseForwardHeaders()Ljava.lang.Boolean;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "isUseForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~isUseForwardHeaders",
|
||||
"label": "Boolean org.springframework.boot.autoconfigure.web.ServerProperties.isUseForwardHeaders()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setUseForwardHeaders(Ljava/lang/Boolean;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.Boolean;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setUseForwardHeaders",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setUseForwardHeaders~Ljava.lang.Boolean;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setUseForwardHeaders(Boolean useForwardHeaders)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getServerHeader()Ljava.lang.String;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getServerHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getServerHeader",
|
||||
"label": "String org.springframework.boot.autoconfigure.web.ServerProperties.getServerHeader()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setServerHeader(Ljava/lang/String;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.lang.String;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setServerHeader",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setServerHeader~Ljava.lang.String;",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setServerHeader(String serverHeader)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getMaxHttpHeaderSize()I",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getMaxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getMaxHttpHeaderSize",
|
||||
"label": "int org.springframework.boot.autoconfigure.web.ServerProperties.getMaxHttpHeaderSize()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setMaxHttpHeaderSize(I)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "INT",
|
||||
"name": "I"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setMaxHttpHeaderSize",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setMaxHttpHeaderSize~I",
|
||||
"label": "void org.springframework.boot.autoconfigure.web.ServerProperties.setMaxHttpHeaderSize(int maxHttpHeaderSize)"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.getConnectionTimeout()Ljava.time.Duration;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getConnectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getConnectionTimeout",
|
||||
"label": "Duration org.springframework.boot.autoconfigure.web.ServerProperties.getConnectionTimeout()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setConnectionTimeout(Ljava/time/Duration;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Ljava.time.Duration;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setConnectionTimeout",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setConnectionTimeout~Ljava.time.Duration;",
|
||||
"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;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.autoconfigure.web.ErrorProperties;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getError",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getError",
|
||||
"label": "ErrorProperties org.springframework.boot.autoconfigure.web.ServerProperties.getError()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getSsl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getSsl",
|
||||
"label": "Ssl org.springframework.boot.autoconfigure.web.ServerProperties.getSsl()"
|
||||
},
|
||||
{
|
||||
"bindingKey": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;.setSsl(Lorg/springframework/boot/web/server/Ssl;)V",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "VOID",
|
||||
"name": "V"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Ssl;"
|
||||
}
|
||||
],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "setSsl",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~setSsl~Lorg.springframework.boot.web.server.Ssl;",
|
||||
"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;",
|
||||
"constructor": false,
|
||||
"returnType": {
|
||||
"kind": "CLASS",
|
||||
"name": "Lorg.springframework.boot.web.server.Compression;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getCompression",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getCompression",
|
||||
"label": "Compression org.springframework.boot.autoconfigure.web.ServerProperties.getCompression()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getHttp2",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getHttp2",
|
||||
"label": "Http2 org.springframework.boot.autoconfigure.web.ServerProperties.getHttp2()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getServlet",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getServlet",
|
||||
"label": "Servlet org.springframework.boot.autoconfigure.web.ServerProperties.getServlet()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getTomcat",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getTomcat",
|
||||
"label": "Tomcat org.springframework.boot.autoconfigure.web.ServerProperties.getTomcat()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getJetty",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getJetty",
|
||||
"label": "Jetty org.springframework.boot.autoconfigure.web.ServerProperties.getJetty()"
|
||||
},
|
||||
{
|
||||
"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;"
|
||||
},
|
||||
"parameters": [],
|
||||
"annotations": [],
|
||||
"declaringType": "Lorg/springframework/boot/autoconfigure/web/ServerProperties;",
|
||||
"flags": 1,
|
||||
"name": "getUndertow",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties~getUndertow",
|
||||
"label": "Undertow org.springframework.boot.autoconfigure.web.ServerProperties.getUndertow()"
|
||||
}
|
||||
],
|
||||
"annotations": [
|
||||
{
|
||||
"fqName": "org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"valuePairs": {
|
||||
"ignoreUnknownFields": true,
|
||||
"prefix": "server"
|
||||
},
|
||||
"name": "org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties}org.springframework.boot.context.properties.ConfigurationProperties",
|
||||
"label": "org.springframework.boot.context.properties.ConfigurationProperties"
|
||||
}
|
||||
],
|
||||
"classpathEntry": {
|
||||
"cpe": {
|
||||
"kind": "binary",
|
||||
"path": "/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.RELEASE/spring-boot-autoconfigure-2.0.0.RELEASE.jar",
|
||||
"sourceContainerUrl": "file:/Users/aboyko/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.0.RELEASE/spring-boot-autoconfigure-2.0.0.RELEASE-sources.jar",
|
||||
"isSystem": false,
|
||||
"isOwn": false
|
||||
}
|
||||
},
|
||||
"flags": 1,
|
||||
"name": "ServerProperties",
|
||||
"handleIdentifier": "\u003dtest-webflux-project/\\/Users\\/aboyko\\/.m2\\/repository\\/org\\/springframework\\/boot\\/spring-boot-autoconfigure\\/2.0.0.RELEASE\\/spring-boot-autoconfigure-2.0.0.RELEASE.jar\u003corg.springframework.boot.autoconfigure.web(ServerProperties.class[ServerProperties",
|
||||
"label": "org.springframework.boot.autoconfigure.web.ServerProperties"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,11 @@
|
||||
<artifactId>commons-util</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.ide.vscode</groupId>
|
||||
<artifactId>commons-lsp-extensions</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- JSON -->
|
||||
<dependency>
|
||||
<groupId>io.projectreactor</groupId>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -36,6 +36,7 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerProperties;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.util.Log;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.springframework.ide.vscode.commons.languageserver;
|
||||
|
||||
public class ProgressParams {
|
||||
|
||||
/**
|
||||
* An id representing the enitity for which progress messages are to be shown.
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* Updates the current statusMsg associated with a given the id. If null, then the message
|
||||
* is cleared.
|
||||
*/
|
||||
private String statusMsg;
|
||||
|
||||
|
||||
public ProgressParams() {
|
||||
}
|
||||
|
||||
public ProgressParams(String id, String statusMsg) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.statusMsg = statusMsg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ProgressParams [id=" + id + ", statusMsg=" + statusMsg + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||
result = prime * result + ((statusMsg == null) ? 0 : statusMsg.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
ProgressParams other = (ProgressParams) obj;
|
||||
if (id == null) {
|
||||
if (other.id != null)
|
||||
return false;
|
||||
} else if (!id.equals(other.id))
|
||||
return false;
|
||||
if (statusMsg == null) {
|
||||
if (other.statusMsg != null)
|
||||
return false;
|
||||
} else if (!statusMsg.equals(other.statusMsg))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getStatusMsg() {
|
||||
return statusMsg;
|
||||
}
|
||||
|
||||
public void setStatusMsg(String statusMsg) {
|
||||
this.statusMsg = statusMsg;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -10,6 +10,8 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
|
||||
public interface ClasspathListener {
|
||||
|
||||
void changed(Event event);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -22,6 +22,8 @@ import org.eclipse.lsp4j.UnregistrationParams;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.util.AsyncRunner;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
public class ClasspathListenerParams {
|
||||
|
||||
private String callbackCommandId;
|
||||
|
||||
public ClasspathListenerParams(String callbackCommandId) {
|
||||
super();
|
||||
this.callbackCommandId = callbackCommandId;
|
||||
}
|
||||
|
||||
public String getCallbackCommandId() {
|
||||
return callbackCommandId;
|
||||
}
|
||||
|
||||
public void setCallbackCommandId(String callbackCommandId) {
|
||||
this.callbackCommandId = callbackCommandId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ClasspathListenerParams [callbackCommandId=" + callbackCommandId + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
public class JavaElementData {
|
||||
|
||||
private String name;
|
||||
private String handleIdentifier;
|
||||
|
||||
public JavaElementData() {
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getHandleIdentifier() {
|
||||
return handleIdentifier;
|
||||
}
|
||||
|
||||
public void setHandleIdentifier(String handleIdentifier) {
|
||||
this.handleIdentifier = handleIdentifier;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
public class JavaTypeResponse {
|
||||
|
||||
private TypeData data;
|
||||
|
||||
public JavaTypeResponse(TypeData data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public TypeData getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(TypeData data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
public class JavadocHoverLinkResponse {
|
||||
|
||||
private String link;
|
||||
|
||||
public JavadocHoverLinkResponse(String link) {
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
public String getLink() {
|
||||
return link;
|
||||
}
|
||||
|
||||
public void setLink(String link) {
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
public class JavadocResponse {
|
||||
|
||||
private String content;
|
||||
|
||||
public JavadocResponse() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,234 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
|
||||
public class TypeData extends MemberData {
|
||||
|
||||
private String fqName;
|
||||
private String bindingKey;
|
||||
private boolean clazz;
|
||||
private boolean annotation;
|
||||
private boolean interfaze;
|
||||
private boolean enam;
|
||||
private String superClassName;
|
||||
private String[] superInterfaceNames;
|
||||
private List<FieldData> fields;
|
||||
private List<MethodData> methods;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
private ClasspathEntryData classpathEntry;
|
||||
|
||||
public String getFqName() {
|
||||
return fqName;
|
||||
}
|
||||
|
||||
public void setFqName(String fqName) {
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
public List<FieldData> getFields() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
public void setFields(List<FieldData> fields) {
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
public List<MethodData> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
public void setMethods(List<MethodData> methods) {
|
||||
this.methods = methods;
|
||||
}
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public ClasspathEntryData getClasspathEntry() {
|
||||
return classpathEntry;
|
||||
}
|
||||
|
||||
public void setClasspathEntry(ClasspathEntryData classpathContainer) {
|
||||
this.classpathEntry = classpathContainer;
|
||||
}
|
||||
|
||||
public boolean isClass() {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
public void setClass(boolean clazz) {
|
||||
this.clazz = clazz;
|
||||
}
|
||||
|
||||
public boolean isAnnotation() {
|
||||
return annotation;
|
||||
}
|
||||
|
||||
public void setAnnotation(boolean annotation) {
|
||||
this.annotation = annotation;
|
||||
}
|
||||
|
||||
public boolean isInterface() {
|
||||
return interfaze;
|
||||
}
|
||||
|
||||
public void setInterface(boolean interfaze) {
|
||||
this.interfaze = interfaze;
|
||||
}
|
||||
|
||||
public boolean isEnum() {
|
||||
return enam;
|
||||
}
|
||||
|
||||
public void setEnum(boolean enam) {
|
||||
this.enam = enam;
|
||||
}
|
||||
|
||||
public String getSuperClassName() {
|
||||
return superClassName;
|
||||
}
|
||||
|
||||
public void setSuperClassName(String superClassName) {
|
||||
this.superClassName = superClassName;
|
||||
}
|
||||
|
||||
public String[] getSuperInterfaceNames() {
|
||||
return superInterfaceNames;
|
||||
}
|
||||
|
||||
public void setSuperInterfaceNames(String[] superInterfaceNames) {
|
||||
this.superInterfaceNames = superInterfaceNames;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
public static class AnnotationData extends JavaElementData {
|
||||
|
||||
String fqName;
|
||||
|
||||
Map<String, Object> valuePairs;
|
||||
|
||||
public AnnotationData() {
|
||||
}
|
||||
|
||||
public String getFqName() {
|
||||
return fqName;
|
||||
}
|
||||
|
||||
public void setFqName(String fqName) {
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
public Map<String, Object> getValuePairs() {
|
||||
return valuePairs;
|
||||
}
|
||||
|
||||
public void setValuePairs(Map<String, Object> valuePairs) {
|
||||
this.valuePairs = valuePairs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class FieldData extends MemberData {
|
||||
|
||||
private String bindingKey;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class ClasspathEntryData {
|
||||
|
||||
private String module;
|
||||
private CPE cpe;
|
||||
|
||||
public String getModule() {
|
||||
return module;
|
||||
}
|
||||
|
||||
public void setModule(String module) {
|
||||
this.module = module;
|
||||
}
|
||||
|
||||
public CPE getCpe() {
|
||||
return cpe;
|
||||
}
|
||||
|
||||
public void setCpe(CPE cpe) {
|
||||
this.cpe = cpe;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class MethodData extends MemberData {
|
||||
|
||||
private String bindingKey;
|
||||
private boolean constructor;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public boolean isConstructor() {
|
||||
return constructor;
|
||||
}
|
||||
|
||||
public void setConstructor(boolean constructor) {
|
||||
this.constructor = constructor;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -10,41 +10,11 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.quickfix;
|
||||
|
||||
import org.eclipse.lsp4j.Position;
|
||||
import org.eclipse.lsp4j.WorkspaceEdit;
|
||||
import org.springframework.ide.vscode.commons.protocol.CursorMovement;
|
||||
|
||||
public class QuickfixEdit {
|
||||
|
||||
public static class CursorMovement {
|
||||
private String uri;
|
||||
private Position position;
|
||||
|
||||
public CursorMovement() {
|
||||
}
|
||||
|
||||
public CursorMovement(String uri, Position position) {
|
||||
this.uri = uri;
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
public String getUri() {
|
||||
return uri;
|
||||
}
|
||||
|
||||
public void setUri(String uri) {
|
||||
this.uri = uri;
|
||||
}
|
||||
|
||||
public Position getPosition() {
|
||||
return position;
|
||||
}
|
||||
|
||||
public void setPosition(Position position) {
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final WorkspaceEdit workspaceEdit;
|
||||
public final CursorMovement cursorMovement;
|
||||
|
||||
|
||||
@@ -56,9 +56,7 @@ import org.eclipse.lsp4j.services.LanguageClientAware;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.DiagnosticService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.ProgressParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.ProgressService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.languageserver.Sts4LanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter;
|
||||
@@ -75,6 +73,8 @@ import org.springframework.ide.vscode.commons.languageserver.reconcile.Diagnosti
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
|
||||
import org.springframework.ide.vscode.commons.languageserver.reconcile.ReconcileProblem;
|
||||
import org.springframework.ide.vscode.commons.protocol.ProgressParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.util.Assert;
|
||||
import org.springframework.ide.vscode.commons.util.AsyncRunner;
|
||||
import org.springframework.ide.vscode.commons.util.BadLocationException;
|
||||
|
||||
22
headless-services/commons/commons-lsp-extensions/pom.xml
Normal file
22
headless-services/commons/commons-lsp-extensions/pom.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>commons-lsp-extensions</artifactId>
|
||||
<name>commons-lsp-extensions</name>
|
||||
<description>STS4 LSP extensions</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.ide.vscode</groupId>
|
||||
<artifactId>commons-parent</artifactId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.lsp4j</groupId>
|
||||
<artifactId>org.eclipse.lsp4j</artifactId>
|
||||
<version>${lsp4j-version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.ls.eclipse.commons;
|
||||
package org.springframework.ide.vscode.commons.protocol;
|
||||
|
||||
import org.eclipse.lsp4j.Position;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver;
|
||||
package org.springframework.ide.vscode.commons.protocol;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -9,7 +9,7 @@
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.springframework.tooling.ls.eclipse.commons;
|
||||
package org.springframework.ide.vscode.commons.protocol;
|
||||
|
||||
public class ProgressParams {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,21 +8,21 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol;
|
||||
|
||||
package org.springframework.ide.vscode.commons.languageserver;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import org.eclipse.lsp4j.Location;
|
||||
import org.eclipse.lsp4j.MarkupContent;
|
||||
import org.eclipse.lsp4j.jsonrpc.services.JsonNotification;
|
||||
import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
|
||||
import org.eclipse.lsp4j.services.LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavaTypeResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavadocHoverLinkResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavadocResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixEdit.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeHierarchyParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
|
||||
/**
|
||||
* Some 'custom' extensions to standard LSP {@link LanguageClient}.
|
||||
@@ -47,15 +47,27 @@ public interface STS4LanguageClient extends LanguageClient {
|
||||
CompletableFuture<Object> removeClasspathListener(ClasspathListenerParams classpathListenerParams);
|
||||
|
||||
@JsonRequest("sts/javadoc")
|
||||
CompletableFuture<JavadocResponse> javadoc(JavaDataParams params);
|
||||
CompletableFuture<MarkupContent> javadoc(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javaType")
|
||||
CompletableFuture<JavaTypeResponse> javaType(JavaDataParams params);
|
||||
CompletableFuture<TypeData> javaType(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javadocHoverLink")
|
||||
CompletableFuture<JavadocHoverLinkResponse> javadocHoverLink(JavaDataParams params);
|
||||
CompletableFuture<String> javadocHoverLink(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/javaLocation")
|
||||
CompletableFuture<Location> javaLocation(JavaDataParams params);
|
||||
|
||||
@JsonRequest("sts/searchJavaTypes")
|
||||
CompletableFuture<List<TypeData>> javaSearchTypes(JavaSearchParams params);
|
||||
|
||||
@JsonRequest("sts/searchJavaPackages")
|
||||
CompletableFuture<List<String>> javaSearchPackages(JavaSearchParams params);
|
||||
|
||||
@JsonRequest("sts/javaSubTypes")
|
||||
CompletableFuture<List<TypeData>> javaSubTypes(JavaTypeHierarchyParams params);
|
||||
|
||||
@JsonRequest("sts/javaSuperTypes")
|
||||
CompletableFuture<List<TypeData>> javaSuperTypes(JavaTypeHierarchyParams params);
|
||||
|
||||
}
|
||||
@@ -8,18 +8,18 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.ide.vscode.commons.util.Assert;
|
||||
|
||||
public class Classpath {
|
||||
|
||||
public static final String ENTRY_KIND_SOURCE = "source";
|
||||
public static final String ENTRY_KIND_BINARY = "binary";
|
||||
public static final Classpath EMPTY = new Classpath(Collections.<CPE>emptyList());
|
||||
|
||||
private List<CPE> entries;
|
||||
|
||||
@@ -63,10 +63,8 @@ public class Classpath {
|
||||
return outputFolder;
|
||||
}
|
||||
|
||||
public CPE setOutputFolder(String outputFolder) {
|
||||
Assert.isLegal(outputFolder==null || new File(outputFolder).isAbsolute());
|
||||
public void setOutputFolder(String outputFolder) {
|
||||
this.outputFolder = outputFolder;
|
||||
return this;
|
||||
}
|
||||
|
||||
public CPE() {}
|
||||
@@ -90,7 +88,6 @@ public class Classpath {
|
||||
}
|
||||
|
||||
public void setPath(String path) {
|
||||
Assert.isLegal(path == null || new File(path).isAbsolute());
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
@@ -136,6 +133,13 @@ public class Classpath {
|
||||
this.isOwn = isOwn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CPE [kind=" + kind + ", path=" + path + ", outputFolder=" + outputFolder + ", sourceContainerUrl="
|
||||
+ sourceContainerUrl + ", javadocContainerUrl=" + javadocContainerUrl + ", isSystem=" + isSystem
|
||||
+ ", isOwn=" + isOwn + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
@@ -191,19 +195,16 @@ public class Classpath {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CPE [kind=" + kind + ", path=" + path + ", outputFolder=" + outputFolder + ", sourceContainerUrl="
|
||||
+ sourceContainerUrl + ", javadocContainerUrl=" + javadocContainerUrl + ", isSystem=" + isSystem
|
||||
+ ", isOwn=" + isOwn + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static boolean isSource(CPE e) {
|
||||
return e!=null && Classpath.ENTRY_KIND_SOURCE.equals(e.getKind());
|
||||
}
|
||||
|
||||
public static boolean isBinary(CPE e) {
|
||||
return e!=null && Classpath.ENTRY_KIND_BINARY.equals(e.getKind());
|
||||
}
|
||||
|
||||
public static boolean isProjectSource(CPE e) {
|
||||
return isSource(e) && e.isOwn();
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.ls.eclipse.commons;
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class ClasspathListenerParams {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class JavaDataParams {
|
||||
|
||||
@@ -16,7 +16,7 @@ public class JavaDataParams {
|
||||
private String bindingKey;
|
||||
private Boolean lookInOtherProjects;
|
||||
|
||||
public JavaDataParams(String projectUri, String bindingKey, Boolean lookInOtherProjects) {
|
||||
public JavaDataParams(String projectUri, String bindingKey, boolean lookInOtherProjects) {
|
||||
super();
|
||||
this.projectUri = projectUri;
|
||||
this.bindingKey = bindingKey;
|
||||
@@ -52,11 +52,11 @@ public class JavaDataParams {
|
||||
public void setLookInOtherProjects(Boolean lookInOtherProjects) {
|
||||
this.lookInOtherProjects = lookInOtherProjects;
|
||||
}
|
||||
|
||||
|
||||
public static boolean isLookInOtherProjects(JavaDataParams params) {
|
||||
return isLookInOtherProjects(params.projectUri, params.getLookInOtherProjects());
|
||||
}
|
||||
|
||||
|
||||
public static boolean isLookInOtherProjects(String projectUri, Boolean lookInOtherProjects) {
|
||||
return projectUri == null ? true : lookInOtherProjects == null ? false : lookInOtherProjects.booleanValue();
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class JavaElementData {
|
||||
|
||||
private String name;
|
||||
private String handleIdentifier;
|
||||
private String label;
|
||||
|
||||
public JavaElementData() {
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getHandleIdentifier() {
|
||||
return handleIdentifier;
|
||||
}
|
||||
|
||||
public void setHandleIdentifier(String handleIdentifier) {
|
||||
this.handleIdentifier = handleIdentifier;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((handleIdentifier == null) ? 0 : handleIdentifier.hashCode());
|
||||
result = prime * result + ((label == null) ? 0 : label.hashCode());
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
JavaElementData other = (JavaElementData) obj;
|
||||
if (handleIdentifier == null) {
|
||||
if (other.handleIdentifier != null)
|
||||
return false;
|
||||
} else if (!handleIdentifier.equals(other.handleIdentifier))
|
||||
return false;
|
||||
if (label == null) {
|
||||
if (other.label != null)
|
||||
return false;
|
||||
} else if (!label.equals(other.label))
|
||||
return false;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class JavaSearchParams {
|
||||
|
||||
private String projectUri;
|
||||
private String term;
|
||||
private boolean includeBinaries;
|
||||
private boolean includeSystemLibs;
|
||||
|
||||
public JavaSearchParams(String projectUri, String term) {
|
||||
this(projectUri, term, true, false);
|
||||
}
|
||||
|
||||
public JavaSearchParams(String projectUri, String term, boolean includeBinaries, boolean includeSystemLibs) {
|
||||
super();
|
||||
this.projectUri = projectUri;
|
||||
this.term = term;
|
||||
this.includeBinaries = includeBinaries;
|
||||
this.includeSystemLibs = includeSystemLibs;
|
||||
}
|
||||
|
||||
public String getProjectUri() {
|
||||
return projectUri;
|
||||
}
|
||||
|
||||
public void setProjectUri(String projectUri) {
|
||||
this.projectUri = projectUri;
|
||||
}
|
||||
|
||||
public String getTerm() {
|
||||
return term;
|
||||
}
|
||||
|
||||
public void setTerm(String term) {
|
||||
this.term = term;
|
||||
}
|
||||
|
||||
public boolean isIncludeBinaries() {
|
||||
return includeBinaries;
|
||||
}
|
||||
|
||||
public void setIncludeBinaries(boolean includeBinaries) {
|
||||
this.includeBinaries = includeBinaries;
|
||||
}
|
||||
|
||||
public boolean isIncludeSystemLibs() {
|
||||
return includeSystemLibs;
|
||||
}
|
||||
|
||||
public void setIncludeSystemLibs(boolean includeSystemLibs) {
|
||||
this.includeSystemLibs = includeSystemLibs;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
public class JavaTypeData {
|
||||
|
||||
public enum JavaTypeKind {
|
||||
CLASS,
|
||||
ARRAY,
|
||||
PARAMETERIZED,
|
||||
TYPE_VARIABLE,
|
||||
WILDCARD,
|
||||
VOID,
|
||||
INT,
|
||||
CHAR,
|
||||
BOOLEAN,
|
||||
FLOAT,
|
||||
BYTE,
|
||||
DOUBLE,
|
||||
LONG,
|
||||
SHORT,
|
||||
UNRESOLVED
|
||||
}
|
||||
|
||||
private JavaTypeKind kind;
|
||||
private String name;
|
||||
private LinkedHashMap<String, Object> extras;
|
||||
|
||||
public JavaTypeKind getKind() {
|
||||
return kind;
|
||||
}
|
||||
public void setKind(JavaTypeKind kind) {
|
||||
this.kind = kind;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public LinkedHashMap<String, Object> getExtras() {
|
||||
return extras;
|
||||
}
|
||||
public void setExtras(LinkedHashMap<String, Object> extras) {
|
||||
this.extras = extras;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((extras == null) ? 0 : extras.hashCode());
|
||||
result = prime * result + ((kind == null) ? 0 : kind.hashCode());
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
JavaTypeData other = (JavaTypeData) obj;
|
||||
if (extras == null) {
|
||||
if (other.extras != null)
|
||||
return false;
|
||||
} else if (!extras.equals(other.extras))
|
||||
return false;
|
||||
if (kind != other.kind)
|
||||
return false;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class JavaTypeHierarchyParams {
|
||||
|
||||
private String projectUri;
|
||||
private String fqName;
|
||||
|
||||
public JavaTypeHierarchyParams(String projectUri, String fqName) {
|
||||
super();
|
||||
this.projectUri = projectUri;
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
public String getProjectUri() {
|
||||
return projectUri;
|
||||
}
|
||||
|
||||
public void setProjectUri(String projectUri) {
|
||||
this.projectUri = projectUri;
|
||||
}
|
||||
|
||||
public String getFqName() {
|
||||
return fqName;
|
||||
}
|
||||
|
||||
public void setFqName(String fqName) {
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.languageserver.java.ls;
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class MemberData extends JavaElementData {
|
||||
|
||||
@@ -31,4 +31,32 @@ public class MemberData extends JavaElementData {
|
||||
this.flags = flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + ((declaringType == null) ? 0 : declaringType.hashCode());
|
||||
result = prime * result + flags;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
MemberData other = (MemberData) obj;
|
||||
if (declaringType == null) {
|
||||
if (other.declaringType != null)
|
||||
return false;
|
||||
} else if (!declaringType.equals(other.declaringType))
|
||||
return false;
|
||||
if (flags != other.flags)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -8,22 +8,29 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.tooling.jdt.ls.commons.javadoc;
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
public class JavadocResponse {
|
||||
public class SearchMatch<T> {
|
||||
|
||||
private String content;
|
||||
|
||||
public JavadocResponse() {
|
||||
private T element;
|
||||
private double score;
|
||||
|
||||
public SearchMatch(T element, double score) {
|
||||
super();
|
||||
this.element = element;
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
public T getElement() {
|
||||
return element;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
public void setElement(T element) {
|
||||
this.element = element;
|
||||
}
|
||||
public double getScore() {
|
||||
return score;
|
||||
}
|
||||
public void setScore(double score) {
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,497 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.protocol.java;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
public class TypeData extends MemberData {
|
||||
|
||||
private String fqName;
|
||||
private String bindingKey;
|
||||
private boolean clazz;
|
||||
private boolean annotation;
|
||||
private boolean interfaze;
|
||||
private boolean enam;
|
||||
private String superClassName;
|
||||
private String[] superInterfaceNames;
|
||||
private List<FieldData> fields;
|
||||
private List<MethodData> methods;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
private ClasspathEntryData classpathEntry;
|
||||
|
||||
public String getFqName() {
|
||||
return fqName;
|
||||
}
|
||||
|
||||
public void setFqName(String fqName) {
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
public List<FieldData> getFields() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
public void setFields(List<FieldData> fields) {
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
public List<MethodData> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
public void setMethods(List<MethodData> methods) {
|
||||
this.methods = methods;
|
||||
}
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public ClasspathEntryData getClasspathEntry() {
|
||||
return classpathEntry;
|
||||
}
|
||||
|
||||
public void setClasspathEntry(ClasspathEntryData classpathContainer) {
|
||||
this.classpathEntry = classpathContainer;
|
||||
}
|
||||
|
||||
public boolean isClass() {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
public void setClass(boolean clazz) {
|
||||
this.clazz = clazz;
|
||||
}
|
||||
|
||||
public boolean isAnnotation() {
|
||||
return annotation;
|
||||
}
|
||||
|
||||
public void setAnnotation(boolean annotation) {
|
||||
this.annotation = annotation;
|
||||
}
|
||||
|
||||
public boolean isInterface() {
|
||||
return interfaze;
|
||||
}
|
||||
|
||||
public void setInterface(boolean interfaze) {
|
||||
this.interfaze = interfaze;
|
||||
}
|
||||
|
||||
public boolean isEnum() {
|
||||
return enam;
|
||||
}
|
||||
|
||||
public void setEnum(boolean enam) {
|
||||
this.enam = enam;
|
||||
}
|
||||
|
||||
public String getSuperClassName() {
|
||||
return superClassName;
|
||||
}
|
||||
|
||||
public void setSuperClassName(String superClassName) {
|
||||
this.superClassName = superClassName;
|
||||
}
|
||||
|
||||
public String[] getSuperInterfaceNames() {
|
||||
return superInterfaceNames;
|
||||
}
|
||||
|
||||
public void setSuperInterfaceNames(String[] superInterfaceNames) {
|
||||
this.superInterfaceNames = superInterfaceNames;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + (annotation ? 1231 : 1237);
|
||||
result = prime * result + ((annotations == null) ? 0 : annotations.hashCode());
|
||||
result = prime * result + ((bindingKey == null) ? 0 : bindingKey.hashCode());
|
||||
result = prime * result + ((classpathEntry == null) ? 0 : classpathEntry.hashCode());
|
||||
result = prime * result + (clazz ? 1231 : 1237);
|
||||
result = prime * result + (enam ? 1231 : 1237);
|
||||
result = prime * result + ((fields == null) ? 0 : fields.hashCode());
|
||||
result = prime * result + ((fqName == null) ? 0 : fqName.hashCode());
|
||||
result = prime * result + (interfaze ? 1231 : 1237);
|
||||
result = prime * result + ((methods == null) ? 0 : methods.hashCode());
|
||||
result = prime * result + ((superClassName == null) ? 0 : superClassName.hashCode());
|
||||
result = prime * result + Arrays.hashCode(superInterfaceNames);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
TypeData other = (TypeData) obj;
|
||||
if (annotation != other.annotation)
|
||||
return false;
|
||||
if (annotations == null) {
|
||||
if (other.annotations != null)
|
||||
return false;
|
||||
} else if (!annotations.equals(other.annotations))
|
||||
return false;
|
||||
if (bindingKey == null) {
|
||||
if (other.bindingKey != null)
|
||||
return false;
|
||||
} else if (!bindingKey.equals(other.bindingKey))
|
||||
return false;
|
||||
if (classpathEntry == null) {
|
||||
if (other.classpathEntry != null)
|
||||
return false;
|
||||
} else if (!classpathEntry.equals(other.classpathEntry))
|
||||
return false;
|
||||
if (clazz != other.clazz)
|
||||
return false;
|
||||
if (enam != other.enam)
|
||||
return false;
|
||||
if (fields == null) {
|
||||
if (other.fields != null)
|
||||
return false;
|
||||
} else if (!fields.equals(other.fields))
|
||||
return false;
|
||||
if (fqName == null) {
|
||||
if (other.fqName != null)
|
||||
return false;
|
||||
} else if (!fqName.equals(other.fqName))
|
||||
return false;
|
||||
if (interfaze != other.interfaze)
|
||||
return false;
|
||||
if (methods == null) {
|
||||
if (other.methods != null)
|
||||
return false;
|
||||
} else if (!methods.equals(other.methods))
|
||||
return false;
|
||||
if (superClassName == null) {
|
||||
if (other.superClassName != null)
|
||||
return false;
|
||||
} else if (!superClassName.equals(other.superClassName))
|
||||
return false;
|
||||
if (!Arrays.equals(superInterfaceNames, other.superInterfaceNames))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class AnnotationData extends JavaElementData {
|
||||
|
||||
String fqName;
|
||||
|
||||
Map<String, Object> valuePairs;
|
||||
|
||||
public AnnotationData() {
|
||||
}
|
||||
|
||||
public String getFqName() {
|
||||
return fqName;
|
||||
}
|
||||
|
||||
public void setFqName(String fqName) {
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
public Map<String, Object> getValuePairs() {
|
||||
return valuePairs;
|
||||
}
|
||||
|
||||
public void setValuePairs(Map<String, Object> valuePairs) {
|
||||
this.valuePairs = valuePairs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + ((fqName == null) ? 0 : fqName.hashCode());
|
||||
result = prime * result + ((valuePairs == null) ? 0 : valuePairs.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
AnnotationData other = (AnnotationData) obj;
|
||||
if (fqName == null) {
|
||||
if (other.fqName != null)
|
||||
return false;
|
||||
} else if (!fqName.equals(other.fqName))
|
||||
return false;
|
||||
if (valuePairs == null) {
|
||||
if (other.valuePairs != null)
|
||||
return false;
|
||||
} else if (!valuePairs.equals(other.valuePairs))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class FieldData extends MemberData {
|
||||
|
||||
private String bindingKey;
|
||||
private JavaTypeData type;
|
||||
private boolean enumConstant;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
public JavaTypeData getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(JavaTypeData type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public boolean isEnumConstant() {
|
||||
return enumConstant;
|
||||
}
|
||||
|
||||
public void setEnumConstant(boolean enumConstant) {
|
||||
this.enumConstant = enumConstant;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + ((annotations == null) ? 0 : annotations.hashCode());
|
||||
result = prime * result + ((bindingKey == null) ? 0 : bindingKey.hashCode());
|
||||
result = prime * result + (enumConstant ? 1231 : 1237);
|
||||
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
FieldData other = (FieldData) obj;
|
||||
if (annotations == null) {
|
||||
if (other.annotations != null)
|
||||
return false;
|
||||
} else if (!annotations.equals(other.annotations))
|
||||
return false;
|
||||
if (bindingKey == null) {
|
||||
if (other.bindingKey != null)
|
||||
return false;
|
||||
} else if (!bindingKey.equals(other.bindingKey))
|
||||
return false;
|
||||
if (enumConstant != other.enumConstant)
|
||||
return false;
|
||||
if (type == null) {
|
||||
if (other.type != null)
|
||||
return false;
|
||||
} else if (!type.equals(other.type))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class ClasspathEntryData {
|
||||
|
||||
private String module;
|
||||
private CPE cpe;
|
||||
|
||||
public String getModule() {
|
||||
return module;
|
||||
}
|
||||
|
||||
public void setModule(String module) {
|
||||
this.module = module;
|
||||
}
|
||||
|
||||
public CPE getCpe() {
|
||||
return cpe;
|
||||
}
|
||||
|
||||
public void setCpe(CPE cpe) {
|
||||
this.cpe = cpe;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((cpe == null) ? 0 : cpe.hashCode());
|
||||
result = prime * result + ((module == null) ? 0 : module.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
ClasspathEntryData other = (ClasspathEntryData) obj;
|
||||
if (cpe == null) {
|
||||
if (other.cpe != null)
|
||||
return false;
|
||||
} else if (!cpe.equals(other.cpe))
|
||||
return false;
|
||||
if (module == null) {
|
||||
if (other.module != null)
|
||||
return false;
|
||||
} else if (!module.equals(other.module))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class MethodData extends MemberData {
|
||||
|
||||
private String bindingKey;
|
||||
private boolean constructor;
|
||||
private JavaTypeData returnType;
|
||||
private List<JavaTypeData> parameters;
|
||||
private List<AnnotationData> annotations;
|
||||
|
||||
public String getBindingKey() {
|
||||
return bindingKey;
|
||||
}
|
||||
|
||||
public void setBindingKey(String bindingKey) {
|
||||
this.bindingKey = bindingKey;
|
||||
}
|
||||
|
||||
public boolean isConstructor() {
|
||||
return constructor;
|
||||
}
|
||||
|
||||
public void setConstructor(boolean constructor) {
|
||||
this.constructor = constructor;
|
||||
}
|
||||
|
||||
public List<AnnotationData> getAnnotations() {
|
||||
return annotations;
|
||||
}
|
||||
|
||||
public void setAnnotations(List<AnnotationData> annotations) {
|
||||
this.annotations = annotations;
|
||||
}
|
||||
|
||||
public JavaTypeData getReturnType() {
|
||||
return returnType;
|
||||
}
|
||||
|
||||
public void setReturnType(JavaTypeData returnType) {
|
||||
this.returnType = returnType;
|
||||
}
|
||||
|
||||
public List<JavaTypeData> getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public void setParameters(List<JavaTypeData> parameters) {
|
||||
this.parameters = parameters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + ((annotations == null) ? 0 : annotations.hashCode());
|
||||
result = prime * result + ((bindingKey == null) ? 0 : bindingKey.hashCode());
|
||||
result = prime * result + (constructor ? 1231 : 1237);
|
||||
result = prime * result + ((parameters == null) ? 0 : parameters.hashCode());
|
||||
result = prime * result + ((returnType == null) ? 0 : returnType.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
MethodData other = (MethodData) obj;
|
||||
if (annotations == null) {
|
||||
if (other.annotations != null)
|
||||
return false;
|
||||
} else if (!annotations.equals(other.annotations))
|
||||
return false;
|
||||
if (bindingKey == null) {
|
||||
if (other.bindingKey != null)
|
||||
return false;
|
||||
} else if (!bindingKey.equals(other.bindingKey))
|
||||
return false;
|
||||
if (constructor != other.constructor)
|
||||
return false;
|
||||
if (parameters == null) {
|
||||
if (other.parameters != null)
|
||||
return false;
|
||||
} else if (!parameters.equals(other.parameters))
|
||||
return false;
|
||||
if (returnType == null) {
|
||||
if (other.returnType != null)
|
||||
return false;
|
||||
} else if (!returnType.equals(other.returnType))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -25,9 +25,9 @@ import org.apache.maven.project.MavenProject;
|
||||
import org.springframework.ide.vscode.commons.java.ClasspathData;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.JavaUtils;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.maven.MavenCore;
|
||||
import org.springframework.ide.vscode.commons.maven.MavenException;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.Log;
|
||||
import org.springframework.ide.vscode.commons.util.RunnableWithException;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -56,7 +56,7 @@ public class HtmlJavadocTest {
|
||||
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("java.util.Map");
|
||||
IType type = project.getIndex().findType("java.util.Map");
|
||||
assertNotNull(type);
|
||||
String expected = String.join("\n",
|
||||
"<div class=\"block\">An object that maps keys to values. A map cannot contain duplicate keys;",
|
||||
@@ -72,7 +72,7 @@ public class HtmlJavadocTest {
|
||||
Assume.assumeTrue(javaVersionHigherThan(6));
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
IMethod method = type.getMethod("<init>", Stream.empty());
|
||||
assertNotNull(method);
|
||||
@@ -90,7 +90,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testEmptyJavadocClass() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("hello.Application");
|
||||
IType type = project.getIndex().findType("hello.Application");
|
||||
assertNotNull(type);
|
||||
assertNull(type.getJavaDoc());
|
||||
}
|
||||
@@ -99,7 +99,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testFieldAndMethodJavadocForJar() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("org.springframework.boot.SpringApplication");
|
||||
IType type = project.getIndex().findType("org.springframework.boot.SpringApplication");
|
||||
assertNotNull(type);
|
||||
|
||||
IField field = type.getField("BANNER_LOCATION_PROPERTY_VALUE");
|
||||
@@ -139,7 +139,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testInnerClassJavadocForOutputFolder() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("hello.Greeting$TestInnerClass");
|
||||
IType type = project.getIndex().findType("hello.Greeting$TestInnerClass");
|
||||
assertNotNull(type);
|
||||
IJavadoc javaDoc = type.getJavaDoc();
|
||||
assertNotNull(javaDoc);
|
||||
@@ -172,7 +172,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testInnerClassLevel2_JavadocForOutputFolder() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("hello.Greeting$TestInnerClass$TestInnerClassLevel2");
|
||||
IType type = project.getIndex().findType("hello.Greeting$TestInnerClass$TestInnerClassLevel2");
|
||||
assertNotNull(type);
|
||||
IJavadoc javaDoc = type.getJavaDoc();
|
||||
assertNotNull(javaDoc);
|
||||
@@ -204,7 +204,7 @@ public class HtmlJavadocTest {
|
||||
@Test
|
||||
public void html_testJavadocOutputFolder() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
IType type = project.findType("hello.Greeting");
|
||||
IType type = project.getIndex().findType("hello.Greeting");
|
||||
|
||||
assertNotNull(type);
|
||||
String expected = "<div class=\"block\">Comment for Greeting class</div>";
|
||||
@@ -241,7 +241,7 @@ public class HtmlJavadocTest {
|
||||
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
IMethod method = type.getMethod("size", Stream.empty());
|
||||
assertNotNull(method);
|
||||
@@ -262,7 +262,7 @@ public class HtmlJavadocTest {
|
||||
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("java.util.Map$Entry");
|
||||
IType type = project.getIndex().findType("java.util.Map$Entry");
|
||||
assertNotNull(type);
|
||||
String expected = String.join("\n",
|
||||
"<div class=\"block\">A map entry (key-value pair). The <tt>Map.entrySet</tt> method returns",
|
||||
@@ -276,7 +276,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testNoJavadocClass() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();;
|
||||
|
||||
IType type = project.findType("hello.GreetingController");
|
||||
IType type = project.getIndex().findType("hello.GreetingController");
|
||||
assertNotNull(type);
|
||||
assertNull(type.getJavaDoc());
|
||||
}
|
||||
@@ -285,7 +285,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testNoJavadocField() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("hello.GreetingController");
|
||||
IType type = project.getIndex().findType("hello.GreetingController");
|
||||
assertNotNull(type);
|
||||
IField field = type.getField("template");
|
||||
assertNotNull(field);
|
||||
@@ -306,7 +306,7 @@ public class HtmlJavadocTest {
|
||||
public void html_testNoJavadocMethod() throws Exception {
|
||||
MavenJavaProject project = projectSupplier.get();
|
||||
|
||||
IType type = project.findType("hello.Application");
|
||||
IType type = project.getIndex().findType("hello.Application");
|
||||
assertNotNull(type);
|
||||
IMethod method = type.getMethod("corsConfigurer", Stream.empty());
|
||||
assertNotNull(method);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -62,7 +62,7 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void fuzzySearchNoFilter() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
List<Tuple2<IType, Double>> results = project.getIndex().fuzzySearchTypes("util.Map", null)
|
||||
List<Tuple2<IType, Double>> results = project.getIndex().fuzzySearchTypes("util.Map", true, true, null)
|
||||
.collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2()))
|
||||
.block();
|
||||
assertTrue(results.size() > 10);
|
||||
@@ -75,7 +75,7 @@ public class JavaIndexTest {
|
||||
public void fuzzySearchWithFilter() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
List<Tuple2<IType, Double>> results = project.getIndex()
|
||||
.fuzzySearchTypes("util.Map", (type) -> Flags.isPrivate(type.getFlags()))
|
||||
.fuzzySearchTypes("util.Map", true, true, (type) -> Flags.isPrivate(type.getFlags()))
|
||||
.collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2()))
|
||||
.block();
|
||||
assertTrue(results.size() > 10);
|
||||
@@ -88,7 +88,7 @@ public class JavaIndexTest {
|
||||
public void fuzzySearchPackage() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
List<Tuple2<String, Double>> results = project.getIndex()
|
||||
.fuzzySearchPackages("util")
|
||||
.fuzzySearchPackages("util", true, true)
|
||||
.collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2()))
|
||||
.block();
|
||||
assertTrue(results.size() > 10);
|
||||
@@ -98,14 +98,14 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void findClassInJar() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("org.springframework.test.web.client.ExpectedCount");
|
||||
IType type = project.getIndex().findType("org.springframework.test.web.client.ExpectedCount");
|
||||
assertNotNull(type);
|
||||
}
|
||||
|
||||
// @Test
|
||||
// public void findStringStripMethodinJDK() throws Exception {
|
||||
// MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
// IType type = project.findType("java.lang.String");
|
||||
// IType type = project.getIndex().findType("java.lang.String");
|
||||
// assertNotNull(type);
|
||||
// IMethod method = type.getMethod("strip", Stream.empty());
|
||||
// assertNotNull(method);
|
||||
@@ -114,21 +114,21 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void findClassInOutputFolder() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("hello.Greeting");
|
||||
IType type = project.getIndex().findType("hello.Greeting");
|
||||
assertNotNull(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void classNotFound() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("hello.NonExistentClass");
|
||||
IType type = project.getIndex().findType("hello.NonExistentClass");
|
||||
assertNull(type);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void voidMethodNoParams() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
IMethod m = type.getMethod("clear", Stream.empty());
|
||||
System.out.println("Method clear: " + m.getBindingKey());
|
||||
@@ -140,7 +140,7 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void voidConstructor() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
IMethod m = type.getMethod("<init>", Stream.empty());
|
||||
assertEquals(type.getElementName(), m.getElementName());
|
||||
@@ -151,7 +151,7 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void constructorMethodWithParams() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
IMethod m = type.getMethod("<init>", Stream.of(IPrimitiveType.INT));
|
||||
assertEquals(m.getDeclaringType().getElementName(), m.getElementName());
|
||||
@@ -162,7 +162,7 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void testFindJarResource() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IJavaModuleData module = project.findClasspathResourceContainer("org.springframework.boot.autoconfigure.SpringBootApplication");
|
||||
IJavaModuleData module = project.getIndex().findClasspathResourceContainer("org.springframework.boot.autoconfigure.SpringBootApplication");
|
||||
assertNotNull(module);
|
||||
assertEquals("spring-boot-autoconfigure-1.4.1.RELEASE.jar", module.getContainer().getName());
|
||||
}
|
||||
@@ -170,7 +170,7 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void testFindJavaResource() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IJavaModuleData module = project.findClasspathResourceContainer("hello.GreetingController");
|
||||
IJavaModuleData module = project.getIndex().findClasspathResourceContainer("hello.GreetingController");
|
||||
assertNotNull(module);
|
||||
assertTrue(module.getContainer().exists());
|
||||
assertEquals(getOutputFolder(project).toString(), module.getContainer().toString());
|
||||
@@ -179,9 +179,9 @@ public class JavaIndexTest {
|
||||
@Test
|
||||
public void testFindAllSuperTypes() throws Exception {
|
||||
MavenJavaProject project = mavenProjectsCache.get("gs-rest-service-cors-boot-1.4.1-with-classpath-file");
|
||||
IType type = project.findType("java.util.ArrayList");
|
||||
IType type = project.getIndex().findType("java.util.ArrayList");
|
||||
assertNotNull(type);
|
||||
Set<String> actual = project.allSuperTypesOf(type).map(t -> t.getFullyQualifiedName()).collect(Collectors.toSet()).block();
|
||||
Set<String> actual = project.getIndex().allSuperTypesOf(type).map(t -> t.getFullyQualifiedName()).collect(Collectors.toSet()).block();
|
||||
Set<String> expected = new HashSet<>(Arrays.asList(
|
||||
"java.util.List",
|
||||
"java.util.RandomAccess",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017, 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2017, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -49,11 +49,11 @@ import org.springframework.ide.vscode.commons.languageserver.DiagnosticService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.ProgressService;
|
||||
import org.springframework.ide.vscode.commons.languageserver.Sts4LanguageServer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver.Listener;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.ShowMessageException;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleWorkspaceService;
|
||||
import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject;
|
||||
import org.springframework.ide.vscode.commons.maven.java.MavenProjectCache;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.util.BasicFileObserver;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
@@ -17,10 +17,10 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits.TextReplace;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixEdit;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixEdit.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixRegistry;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixType;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
|
||||
import org.springframework.ide.vscode.commons.protocol.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.util.BadLocationException;
|
||||
import org.springframework.ide.vscode.commons.util.text.IRegion;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -14,8 +14,8 @@ import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.Classpath.CPE;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
|
||||
public class ClasspathTestUtil {
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ import org.eclipse.lsp4j.TextDocumentPositionParams;
|
||||
import org.eclipse.lsp4j.TextEdit;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import org.junit.Assert;
|
||||
import org.springframework.ide.vscode.commons.languageserver.HighlightParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.HighlightParams;
|
||||
import org.springframework.ide.vscode.commons.util.StringUtil;
|
||||
import org.springframework.ide.vscode.commons.util.Unicodes;
|
||||
import org.springframework.ide.vscode.commons.util.text.LanguageId;
|
||||
|
||||
@@ -101,19 +101,19 @@ import org.eclipse.lsp4j.WorkspaceEdit;
|
||||
import org.eclipse.lsp4j.WorkspaceEditCapabilities;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import org.eclipse.lsp4j.services.LanguageClientAware;
|
||||
import org.springframework.ide.vscode.commons.languageserver.HighlightParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.ProgressParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavaTypeResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavadocHoverLinkResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ls.JavadocResponse;
|
||||
import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixEdit.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.LanguageServerTestListener;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
|
||||
import org.springframework.ide.vscode.commons.protocol.CursorMovement;
|
||||
import org.springframework.ide.vscode.commons.protocol.HighlightParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.ProgressParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.STS4LanguageClient;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.ClasspathListenerParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaDataParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaSearchParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.JavaTypeHierarchyParams;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.TypeData;
|
||||
import org.springframework.ide.vscode.commons.util.ExceptionUtil;
|
||||
import org.springframework.ide.vscode.commons.util.IOUtil;
|
||||
import org.springframework.ide.vscode.commons.util.UriUtil;
|
||||
@@ -343,18 +343,18 @@ public class LanguageServerHarness {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavadocResponse> javadoc(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(new JavadocResponse());
|
||||
public CompletableFuture<MarkupContent> javadoc(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavaTypeResponse> javaType(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(new JavaTypeResponse(null));
|
||||
public CompletableFuture<TypeData> javaType(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<JavadocHoverLinkResponse> javadocHoverLink(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(new JavadocHoverLinkResponse(null));
|
||||
public CompletableFuture<String> javadocHoverLink(JavaDataParams params) {
|
||||
return CompletableFuture.completedFuture(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -362,6 +362,26 @@ public class LanguageServerHarness {
|
||||
return CompletableFuture.completedFuture(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSearchTypes(JavaSearchParams params) {
|
||||
return CompletableFuture.completedFuture(Collections.emptyList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<String>> javaSearchPackages(JavaSearchParams params) {
|
||||
return CompletableFuture.completedFuture(Collections.emptyList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSubTypes(JavaTypeHierarchyParams params) {
|
||||
return CompletableFuture.completedFuture(Collections.emptyList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<TypeData>> javaSuperTypes(JavaTypeHierarchyParams params) {
|
||||
return CompletableFuture.completedFuture(Collections.emptyList());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
<modules>
|
||||
<module>commons-language-server</module>
|
||||
<module>commons-lsp-extensions</module>
|
||||
<module>language-server-test-harness</module>
|
||||
<module>commons-yaml</module>
|
||||
<module>commons-util</module>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Pivotal, Inc.
|
||||
* Copyright (c) 2018, 2019 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -37,19 +37,17 @@ import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.eclipse.jdt.core.JavaCore;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath;
|
||||
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
|
||||
import org.springframework.tooling.jdt.ls.commons.Logger.TestLogger;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.Classpath;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.Classpath.CPE;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.ClasspathUtil;
|
||||
import org.springframework.tooling.jdt.ls.commons.test.ClasspathListenerHandlerTest.MockClientCommandExecutor;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.ClientCommandExecutor;
|
||||
import org.springframework.tooling.jdt.ls.commons.classpath.ReusableClasspathListenerHandler;
|
||||
import org.springsource.ide.eclipse.commons.frameworks.test.util.ACondition;
|
||||
@@ -57,7 +55,6 @@ import org.springsource.ide.eclipse.commons.frameworks.test.util.Asserter;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.AssertionFailedError;
|
||||
|
||||
public class ClasspathListenerHandlerTest {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry exported="true" kind="lib" path="lib/commons-lsp-extensions.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
|
||||
1
headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.gitignore
vendored
Normal file
1
headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/lib/
|
||||
@@ -11,9 +11,15 @@ Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.core.resources,
|
||||
com.google.guava,
|
||||
org.eclipse.m2e.jdt,
|
||||
org.eclipse.m2e.core
|
||||
Export-Package: org.springframework.tooling.jdt.ls.commons,
|
||||
org.eclipse.m2e.core,
|
||||
org.eclipse.lsp4j,
|
||||
org.eclipse.lsp4j.jsonrpc
|
||||
Export-Package: org.springframework.ide.vscode.commons.protocol,
|
||||
org.springframework.ide.vscode.commons.protocol.java,
|
||||
org.springframework.tooling.jdt.ls.commons,
|
||||
org.springframework.tooling.jdt.ls.commons.classpath,
|
||||
org.springframework.tooling.jdt.ls.commons.java,
|
||||
org.springframework.tooling.jdt.ls.commons.javadoc,
|
||||
org.springframework.tooling.jdt.ls.commons.resources
|
||||
Bundle-ClassPath: .,
|
||||
lib/commons-lsp-extensions.jar
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user