Disable boot-java language server internally on non-boot project

Also use Optional in project finder to avoid some NPE bugs for missing project
context.
This commit is contained in:
Kris De Volder
2017-10-19 13:41:53 -07:00
parent c02f96a812
commit 3a57d99a84
21 changed files with 88 additions and 56 deletions

View File

@@ -22,7 +22,6 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
@@ -41,20 +40,16 @@ import org.eclipse.lsp4j.TextDocumentIdentifier;
import org.eclipse.lsp4j.jsonrpc.messages.Either;
import org.junit.Before;
import org.junit.Test;
import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer;
import org.springframework.ide.vscode.boot.java.autowired.AutowiredHoverProvider;
import org.springframework.ide.vscode.boot.java.autowired.SpringBootAppProvider;
import org.springframework.ide.vscode.commons.java.IClasspath;
import org.springframework.ide.vscode.commons.java.IJavaProject;
import org.springframework.ide.vscode.commons.languageserver.java.CompositeJavaProjectFinder;
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
import org.springframework.ide.vscode.commons.util.BadLocationException;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
import org.springframework.ide.vscode.commons.util.text.TextDocument;
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
@@ -77,7 +72,7 @@ public class AutowiredHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutowiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);
@@ -103,7 +98,7 @@ public class AutowiredHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutowiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);
@@ -122,7 +117,7 @@ public class AutowiredHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutowiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);
@@ -143,7 +138,7 @@ public class AutowiredHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutowiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);

View File

@@ -72,7 +72,7 @@ public class ComponentHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutomaticallyWiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);
@@ -98,7 +98,7 @@ public class ComponentHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutowiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);
@@ -119,7 +119,7 @@ public class ComponentHoverProviderTest {
String docURI = "file://" + directory.getAbsolutePath() + "/src/main/java/org/test/MyAutomaticallyWiredComponent.java";
TextDocument document = createTempTextDocument(docURI);
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI));
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(docURI)).get();
CompilationUnit cu = parse(document, project);

View File

@@ -15,6 +15,7 @@ import static org.junit.Assert.fail;
import java.io.InputStream;
import java.util.List;
import java.util.Optional;
import org.apache.commons.io.IOUtils;
import org.eclipse.lsp4j.CompletionItem;
@@ -52,7 +53,7 @@ public class ValueCompletionTest {
testProject = ProjectsHarness.INSTANCE.mavenProject("test-annotations");
harness = BootLanguageServerHarness.builder()
.mockDefaults()
.projectFinder(d -> getTestProject())
.projectFinder(d -> Optional.ofNullable(getTestProject()))
.build();
indexHarness = harness.getPropertyIndexHarness();
harness.intialize(null);

View File

@@ -13,6 +13,7 @@ package org.springframework.ide.vscode.project.harness;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.boot.configurationmetadata.ConfigurationMetadataProperty;
import org.springframework.boot.configurationmetadata.Deprecation;
@@ -563,7 +564,7 @@ public class PropertyIndexHarness {
}
public JavaProjectFinder getProjectFinder() {
return (doc) -> testProject;
return (doc) -> Optional.ofNullable(testProject);
}
}