code cleanup
This commit is contained in:
@@ -19,8 +19,8 @@ import org.eclipse.lsp4j.InitializeParams;
|
||||
import org.eclipse.lsp4j.InitializeResult;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.AutowiredHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.BeansSymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentSymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentInjectedIntoHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.conditionals.ConditionalsLiveHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.BootJavaCodeLensEngine;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.BootJavaCompletionEngine;
|
||||
@@ -35,7 +35,6 @@ import org.springframework.ide.vscode.boot.java.handlers.ReferenceProvider;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.livehover.ActiveProfilesProvider;
|
||||
import org.springframework.ide.vscode.boot.java.livehover.InjectedIntoProvider;
|
||||
import org.springframework.ide.vscode.boot.java.requestmapping.LiveAppURLSymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.requestmapping.RequestMappingHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.requestmapping.RequestMappingSymbolProvider;
|
||||
@@ -262,7 +261,7 @@ public class BootJavaLanguageServer extends SimpleLanguageServer {
|
||||
providers.put(ActiveProfilesProvider.ANNOTATION, new ActiveProfilesProvider());
|
||||
|
||||
providers.put(org.springframework.ide.vscode.boot.java.autowired.Constants.SPRING_AUTOWIRED, new AutowiredHoverProvider());
|
||||
providers.put(org.springframework.ide.vscode.boot.java.beans.Constants.SPRING_COMPONENT, new InjectedIntoProvider());
|
||||
providers.put(org.springframework.ide.vscode.boot.java.beans.Constants.SPRING_COMPONENT, new ComponentInjectedIntoHoverProvider());
|
||||
|
||||
providers.put(org.springframework.ide.vscode.boot.java.conditionals.Constants.CONDITIONAL, new ConditionalsLiveHoverProvider());
|
||||
providers.put(org.springframework.ide.vscode.boot.java.conditionals.Constants.CONDITIONAL_ON_BEAN, new ConditionalsLiveHoverProvider());
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.boot.java.livehover;
|
||||
package org.springframework.ide.vscode.boot.java.beans;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -20,12 +20,12 @@ import java.util.stream.Stream;
|
||||
import org.eclipse.jdt.core.dom.ASTNode;
|
||||
import org.eclipse.jdt.core.dom.Annotation;
|
||||
import org.eclipse.jdt.core.dom.ITypeBinding;
|
||||
import org.eclipse.jdt.core.dom.Name;
|
||||
import org.eclipse.jdt.core.dom.TypeDeclaration;
|
||||
import org.eclipse.lsp4j.Hover;
|
||||
import org.eclipse.lsp4j.Range;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.HoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.livehover.ASTUtils;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.SpringBootApp;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBean;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansModel;
|
||||
@@ -35,15 +35,15 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
public class InjectedIntoProvider implements HoverProvider {
|
||||
public class ComponentInjectedIntoHoverProvider implements HoverProvider {
|
||||
|
||||
@Override
|
||||
public Collection<Range> getLiveHoverHints(Annotation annotation, TextDocument doc, SpringBootApp[] runningApps) {
|
||||
//Highlight if any running app contains an instance of this component
|
||||
// Highlight if any running app contains an instance of this component
|
||||
try {
|
||||
if (runningApps.length > 0) {
|
||||
LiveBean definedBean = getDefinedBean(annotation);
|
||||
if (definedBean!=null) {
|
||||
if (definedBean != null) {
|
||||
if (Stream.of(runningApps).anyMatch(app -> hasRelevantBeans(app, definedBean))) {
|
||||
Optional<Range> nameRange = ASTUtils.nameRange(doc, annotation);
|
||||
if (nameRange.isPresent()) {
|
||||
@@ -63,17 +63,13 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
}
|
||||
|
||||
private Stream<LiveBean> findRelevantBeans(SpringBootApp app, LiveBean definedBean) {
|
||||
return app.getBeans()
|
||||
.getBeansOfName(definedBean.getId())
|
||||
.stream()
|
||||
.filter(bean ->
|
||||
definedBean.getType().equals(bean.getType())
|
||||
);
|
||||
return app.getBeans().getBeansOfName(definedBean.getId()).stream()
|
||||
.filter(bean -> definedBean.getType().equals(bean.getType()));
|
||||
}
|
||||
|
||||
private LiveBean getDefinedBean(Annotation annotation) {
|
||||
ITypeBinding beanType = getAnnotatedType(annotation);
|
||||
if (beanType!=null) {
|
||||
if (beanType != null) {
|
||||
String id = getBeanId(annotation, beanType);
|
||||
if (StringUtil.hasText(id)) {
|
||||
return LiveBean.builder().id(id).type(beanType.getQualifiedName()).build();
|
||||
@@ -85,13 +81,13 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
@Override
|
||||
public CompletableFuture<Hover> provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset,
|
||||
TextDocument doc, SpringBootApp[] runningApps) {
|
||||
if (runningApps.length>0) {
|
||||
if (runningApps.length > 0) {
|
||||
LiveBean definedBean = getDefinedBean(annotation);
|
||||
if (definedBean!=null) {
|
||||
if (definedBean != null) {
|
||||
StringBuilder hover = new StringBuilder();
|
||||
hover.append("**Injection report for "+showBean(definedBean)+"**\n\n");
|
||||
hover.append("**Injection report for " + showBean(definedBean) + "**\n\n");
|
||||
boolean hasInterestingApp = false;
|
||||
for (SpringBootApp app : runningApps) {
|
||||
for (SpringBootApp app : runningApps) {
|
||||
LiveBeansModel beans = app.getBeans();
|
||||
List<LiveBean> relevantBeans = findRelevantBeans(app, definedBean).collect(Collectors.toList());
|
||||
if (!relevantBeans.isEmpty()) {
|
||||
@@ -100,12 +96,12 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
} else {
|
||||
hover.append("\n\n");
|
||||
}
|
||||
hover.append(niceAppName(app)+":");
|
||||
hover.append(niceAppName(app) + ":");
|
||||
for (LiveBean bean : relevantBeans) {
|
||||
hover.append("\n\n");
|
||||
List<LiveBean> dependers = beans.getBeansDependingOn(bean.getId());
|
||||
if (dependers.isEmpty()) {
|
||||
hover.append(showBean(bean)+" exists but is **Not injected anywhere**");
|
||||
hover.append(showBean(bean) + " exists but is **Not injected anywhere**");
|
||||
} else {
|
||||
hover.append(showBean(definedBean) + " injected into:\n\n");
|
||||
boolean firstDependency = true;
|
||||
@@ -113,7 +109,7 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
if (!firstDependency) {
|
||||
hover.append("\n");
|
||||
}
|
||||
hover.append("- "+showBean(dependingBean));
|
||||
hover.append("- " + showBean(dependingBean));
|
||||
firstDependency = false;
|
||||
}
|
||||
}
|
||||
@@ -122,9 +118,8 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
}
|
||||
if (hasInterestingApp) {
|
||||
System.out.println(hover);
|
||||
return CompletableFuture.completedFuture(new Hover(
|
||||
ImmutableList.of(Either.forLeft(hover.toString()))
|
||||
));
|
||||
return CompletableFuture
|
||||
.completedFuture(new Hover(ImmutableList.of(Either.forLeft(hover.toString()))));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,13 +133,13 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
}
|
||||
String typeName = beanType.getName();
|
||||
if (StringUtil.hasText(typeName)) {
|
||||
return Character.toLowerCase(typeName.charAt(0))+typeName.substring(1);
|
||||
return Character.toLowerCase(typeName.charAt(0)) + typeName.substring(1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String showBean(LiveBean bean) {
|
||||
return "Bean [id: "+bean.getId()+", type: `"+bean.getType()+"`]";
|
||||
return "Bean [id: " + bean.getId() + ", type: `" + bean.getType() + "`]";
|
||||
}
|
||||
|
||||
private ITypeBinding getAnnotatedType(Annotation annotation) {
|
||||
@@ -157,7 +152,7 @@ public class InjectedIntoProvider implements HoverProvider {
|
||||
}
|
||||
|
||||
private String niceAppName(SpringBootApp app) {
|
||||
return "Process [PID="+app.getProcessID()+", name=`"+app.getProcessName()+"`]";
|
||||
return "Process [PID=" + app.getProcessID() + ", name=`" + app.getProcessName() + "`]";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -38,10 +38,7 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
*/
|
||||
public class ComponentHoverProvider implements HoverProvider {
|
||||
public class ComponentInjectionsHoverProvider implements HoverProvider {
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Hover> provideHover(ASTNode node, Annotation annotation,
|
||||
@@ -211,5 +208,4 @@ public class ComponentHoverProvider implements HoverProvider {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,11 +27,11 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
public class BootJavaCodeLensEngine {
|
||||
|
||||
private final SimpleLanguageServer server;
|
||||
private final JavaProjectFinder projectFinder;
|
||||
// private final JavaProjectFinder projectFinder;
|
||||
|
||||
public BootJavaCodeLensEngine(SimpleLanguageServer server, JavaProjectFinder projectFinder) {
|
||||
this.server = server;
|
||||
this.projectFinder = projectFinder;
|
||||
// this.projectFinder = projectFinder;
|
||||
}
|
||||
|
||||
public CompletableFuture<List<? extends CodeLens>> createCodeLenses(CodeLensParams params) {
|
||||
|
||||
@@ -21,8 +21,6 @@ import org.eclipse.lsp4j.Range;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.SpringBootApp;
|
||||
import org.springframework.ide.vscode.commons.util.text.TextDocument;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
*/
|
||||
|
||||
@@ -26,8 +26,9 @@ public class ASTUtils {
|
||||
try {
|
||||
int start = annotation.getTypeName().getStartPosition();
|
||||
int len = annotation.getTypeName().getLength();
|
||||
if (doc.getSafeChar(start-1)=='@') {
|
||||
start--; len++;
|
||||
if (doc.getSafeChar(start - 1) == '@') {
|
||||
start--;
|
||||
len++;
|
||||
}
|
||||
return Optional.of(doc.toRange(start, len));
|
||||
} catch (Exception e) {
|
||||
@@ -48,5 +49,4 @@ public class ASTUtils {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.boot.java.livehover.test;
|
||||
package org.springframework.ide.vscode.boot.java.beans.test;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness.CustomizableProjectContent;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness.ProjectCustomizer;
|
||||
|
||||
public class InjectedIntoProviderTest {
|
||||
public class ComponentInjectedIntoHoverProviderTest {
|
||||
|
||||
private static final ProjectCustomizer FOO_INTERFACE = (CustomizableProjectContent p) -> {
|
||||
p.createType("com.examle.Foo",
|
||||
@@ -384,7 +384,7 @@ public class InjectedIntoProviderTest {
|
||||
);
|
||||
}
|
||||
|
||||
@Test public void hoHoversWhenRunningAppDoesntHaveTheComponent() throws Exception {
|
||||
@Test public void noHoversWhenRunningAppDoesntHaveTheComponent() throws Exception {
|
||||
LiveBeansModel beans = LiveBeansModel.builder()
|
||||
.add(LiveBean.builder()
|
||||
.id("whateverBean")
|
||||
@@ -423,7 +423,7 @@ public class InjectedIntoProviderTest {
|
||||
editor.assertNoHover("@Component");
|
||||
}
|
||||
|
||||
@Test public void hoHoversWhenNoRunningApps() throws Exception {
|
||||
@Test public void noHoversWhenNoRunningApps() throws Exception {
|
||||
Editor editor = harness.newEditor(LanguageId.JAVA,
|
||||
"package com.example;\n" +
|
||||
"\n" +
|
||||
@@ -41,7 +41,7 @@ import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.SpringBootAppProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentInjectionsHoverProvider;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansModel;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
@@ -55,7 +55,7 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness;
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
*/
|
||||
public class ComponentHoverProviderTest {
|
||||
public class ComponentInjectionsHoverProviderTest {
|
||||
|
||||
private JavaProjectFinder projectFinder;
|
||||
private BootLanguageServerHarness harness;
|
||||
@@ -80,7 +80,7 @@ public class ComponentHoverProviderTest {
|
||||
int offset = document.toOffset(new Position(4, 2));
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
ComponentInjectionsHoverProvider provider = new ComponentInjectionsHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information-automatically-wired.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
@@ -106,7 +106,7 @@ public class ComponentHoverProviderTest {
|
||||
int offset = document.toOffset(new Position(5, 2));
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
ComponentInjectionsHoverProvider provider = new ComponentInjectionsHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
@@ -127,7 +127,7 @@ public class ComponentHoverProviderTest {
|
||||
int offset = document.toOffset(new Position(4, 2));
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
ComponentInjectionsHoverProvider provider = new ComponentInjectionsHoverProvider();
|
||||
LiveBeansModel beansModel = LiveBeansModel.parse(new String(Files.readAllBytes(new File(directory, "runtime-bean-information-automatically-wired.json").toPath())));
|
||||
|
||||
SpringBootAppProvider bootApp = new SpringBootAppProvider() {
|
||||
@@ -18,23 +18,18 @@ import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import org.eclipse.lsp4j.SymbolInformation;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer;
|
||||
import org.springframework.ide.vscode.boot.java.beans.BeansSymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentSymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.Constants;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider;
|
||||
import org.springframework.ide.vscode.boot.java.utils.SpringIndexer;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.CompositeJavaProjectFinder;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
|
||||
import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
|
||||
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
|
||||
import org.springframework.ide.vscode.project.harness.PropertyIndexHarness;
|
||||
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
|
||||
@@ -21,11 +21,8 @@ import org.apache.commons.io.IOUtils;
|
||||
import org.eclipse.lsp4j.CompletionItem;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerParams;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider;
|
||||
import org.springframework.ide.vscode.boot.java.value.ValueCompletionProcessor;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver;
|
||||
import org.springframework.ide.vscode.commons.util.text.LanguageId;
|
||||
import org.springframework.ide.vscode.languageserver.testharness.Editor;
|
||||
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
|
||||
|
||||
@@ -13,13 +13,10 @@ package org.springframework.ide.vscode.project.harness;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
@@ -27,7 +24,7 @@ import org.springframework.ide.vscode.commons.maven.MavenBuilder;
|
||||
import org.springframework.ide.vscode.commons.maven.MavenCore;
|
||||
import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject;
|
||||
import org.springframework.ide.vscode.commons.maven.java.classpathfile.JavaProjectWithClasspathFile;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness.CustomizableProjectContent;
|
||||
import org.springframework.ide.vscode.commons.util.IOUtil;
|
||||
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
@@ -36,8 +33,6 @@ import com.google.common.io.Files;
|
||||
import reactor.util.function.Tuple3;
|
||||
import reactor.util.function.Tuples;
|
||||
|
||||
import org.springframework.ide.vscode.commons.util.IOUtil;
|
||||
|
||||
/**
|
||||
* Test projects harness
|
||||
*
|
||||
|
||||
@@ -19,13 +19,11 @@ import org.springframework.boot.configurationmetadata.ConfigurationMetadataPrope
|
||||
import org.springframework.boot.configurationmetadata.Deprecation;
|
||||
import org.springframework.boot.configurationmetadata.ValueHint;
|
||||
import org.springframework.boot.configurationmetadata.ValueProvider;
|
||||
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerParams;
|
||||
import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndex;
|
||||
import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
|
||||
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
|
||||
import org.springframework.ide.vscode.commons.util.FuzzyMap;
|
||||
import org.springframework.ide.vscode.commons.util.text.IDocument;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user