JDT LS based index for searches and refactorings to replace Jandex
This commit is contained in:
@@ -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
Reference in New Issue
Block a user