diff --git a/headless-services/spring-boot-language-server/.factorypath b/headless-services/spring-boot-language-server/.factorypath index e9f5f4cce..f9144714e 100644 --- a/headless-services/spring-boot-language-server/.factorypath +++ b/headless-services/spring-boot-language-server/.factorypath @@ -1,5 +1,4 @@ - @@ -10,8 +9,6 @@ - - @@ -20,7 +17,6 @@ - @@ -61,11 +57,8 @@ - - - @@ -73,12 +66,11 @@ - - + diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java index 5e30a7b38..7558018ea 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguagServerBootApp.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.springframework.ide.vscode.boot.app; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; @@ -25,11 +27,17 @@ import org.springframework.ide.vscode.boot.java.links.JdtJavaDocumentUriProvider import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; +import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.ClassReferenceProvider; +import org.springframework.ide.vscode.boot.metadata.LoggerNameProvider; import org.springframework.ide.vscode.boot.metadata.PropertyInfo; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.boot.yaml.completions.ApplicationYamlAssistContext; import org.springframework.ide.vscode.commons.languageserver.util.LspClient; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService; +import org.springframework.ide.vscode.commons.util.FileObserver; import org.springframework.ide.vscode.commons.util.FuzzyMap; import org.springframework.ide.vscode.commons.util.LogRedirect; import org.springframework.ide.vscode.commons.util.text.IDocument; @@ -55,8 +63,28 @@ public class BootLanguagServerBootApp { } @ConditionalOnMissingClass("org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness") - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server) { - return BootLanguageServerParams.createDefault(server); + @Bean AdHocSpringPropertyIndexProvider adHocProperties(BootLanguageServerParams params, FileObserver fileObserver) { + return new AdHocSpringPropertyIndexProvider(params.projectFinder, params.projectObserver, fileObserver); + } + + @Bean FileObserver fileObserver(SimpleLanguageServer server) { + return server.getWorkspaceService().getFileObserver(); + } + + @Bean ValueProviderRegistry valueProviders() { + return new ValueProviderRegistry(); + } + + @Bean InitializingBean initializeValueProviders(ValueProviderRegistry r, @Qualifier("adHocProperties") SpringPropertyIndexProvider adHocProperties) { + return () -> { + r.def("logger-name", new LoggerNameProvider(adHocProperties).FACTORY); + r.def("class-reference", ClassReferenceProvider.FACTORY); + }; + } + + @ConditionalOnMissingClass("org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness") + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, ValueProviderRegistry valueProviders) { + return BootLanguageServerParams.createDefault(server, valueProviders); } @ConditionalOnMissingClass("org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness") diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java index cefb3fa90..f8fd94605 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java @@ -14,10 +14,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; import org.springframework.ide.vscode.boot.java.links.JavaElementLocationProvider; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; +import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerComponents; import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine; import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter; @@ -44,6 +47,7 @@ public class BootLanguageServerInitializer implements InitializingBean { @Autowired YamlASTProvider parser; @Autowired YamlStructureProvider yamlStructureProvider; @Autowired YamlAssistContextProvider yamlAssistContextProvider; + @Qualifier("adHocProperties") @Autowired SpringPropertyIndexProvider adHocProperties; private CompositeLanguageServerComponents components; private VscodeCompletionEngineAdapter completionEngineAdapter; @@ -67,7 +71,7 @@ public class BootLanguageServerInitializer implements InitializingBean { // some server intialization code. Migrate that code and get rid of the ComposableLanguageServer class CompositeLanguageServerComponents.Builder builder = new CompositeLanguageServerComponents.Builder(); builder.add(new BootPropertiesLanguageServerComponents(server, params, javaElementLocationProvider, parser, yamlStructureProvider, yamlAssistContextProvider)); - builder.add(new BootJavaLanguageServerComponents(server, params, sourceLinks, cuCache)); + builder.add(new BootJavaLanguageServerComponents(server, params, sourceLinks, cuCache, adHocProperties)); components = builder.build(server); params.projectObserver.addListener(reconcileOpenDocuments(server, components)); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerParams.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerParams.java index 3eaf4454c..48c2a386f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerParams.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerParams.java @@ -25,6 +25,7 @@ import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProv import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider; import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndex; import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.boot.metadata.types.TypeUtil; import org.springframework.ide.vscode.boot.metadata.types.TypeUtilProvider; import org.springframework.ide.vscode.commons.gradle.GradleCore; @@ -59,7 +60,6 @@ public class BootLanguageServerParams { public final JavaProjectFinder projectFinder; public final ProjectObserver projectObserver; public final SpringPropertyIndexProvider indexProvider; - public final SpringPropertyIndexProvider adHocIndexProvider; //Boot Properies public final TypeUtilProvider typeUtilProvider; @@ -72,7 +72,6 @@ public class BootLanguageServerParams { JavaProjectFinder projectFinder, ProjectObserver projectObserver, SpringPropertyIndexProvider indexProvider, - SpringPropertyIndexProvider adHocIndexProvider, TypeUtilProvider typeUtilProvider, RunningAppProvider runningAppProvider, Duration watchDogInterval @@ -82,28 +81,25 @@ public class BootLanguageServerParams { this.projectFinder = projectFinder; this.projectObserver = projectObserver; this.indexProvider = indexProvider; - this.adHocIndexProvider = adHocIndexProvider; this.typeUtilProvider = typeUtilProvider; this.runningAppProvider = runningAppProvider; this.watchDogInterval = watchDogInterval; } - public static BootLanguageServerParams createDefault(SimpleLanguageServer server) { + public static BootLanguageServerParams createDefault(SimpleLanguageServer server, ValueProviderRegistry valueProviders) { // Initialize project finders, project caches and project observers JavaProjectsService jdtProjectCache = new JavaProjectsServiceWithFallback( server, new JdtLsProjectCache(server), () -> createFallbackProjectCache(server) ); - DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache); - SpringPropertyIndexProvider adHocProvider = new AdHocSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache, server.getWorkspaceService().getFileObserver()); + DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(jdtProjectCache, jdtProjectCache, valueProviders); indexProvider.setProgressService(server.getProgressService()); return new BootLanguageServerParams( jdtProjectCache.filter(BootProjectUtil::isBootProject), jdtProjectCache, indexProvider, - adHocProvider, (IDocument doc) -> new TypeUtil(jdtProjectCache.find(new TextDocumentIdentifier(doc.getUri()))), RunningAppProvider.createDefault(server), SpringLiveHoverWatchdog.DEFAULT_INTERVAL @@ -147,7 +143,7 @@ public class BootLanguageServerParams { }; } - public static BootLanguageServerParams createTestDefault(SimpleLanguageServer server) { + public static BootLanguageServerParams createTestDefault(SimpleLanguageServer server, ValueProviderRegistry valueProviders) { // Initialize project finders, project caches and project observers CompositeJavaProjectFinder javaProjectFinder = new CompositeJavaProjectFinder(); MavenProjectCache mavenProjectCache = new MavenProjectCache(server, MavenCore.getDefault(), false, null, (uri, cpe) -> JavaDocProviders.createFor(cpe)); @@ -160,14 +156,13 @@ public class BootLanguageServerParams { CompositeProjectOvserver projectObserver = new CompositeProjectOvserver(Arrays.asList(mavenProjectCache, gradleProjectCache)); - DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(javaProjectFinder, projectObserver); + DefaultSpringPropertyIndexProvider indexProvider = new DefaultSpringPropertyIndexProvider(javaProjectFinder, projectObserver, valueProviders); indexProvider.setProgressService(server.getProgressService()); return new BootLanguageServerParams( javaProjectFinder.filter(BootProjectUtil::isBootProject), projectObserver, indexProvider, - (doc) -> SpringPropertyIndex.EMPTY_INDEX, (IDocument doc) -> new TypeUtil(javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri()))), RunningAppProvider.NULL, SpringLiveHoverWatchdog.DEFAULT_INTERVAL diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java index 48a27e154..302baa6d7 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerComponents.java @@ -63,6 +63,7 @@ import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; import org.springframework.ide.vscode.boot.java.value.ValueCompletionProcessor; import org.springframework.ide.vscode.boot.java.value.ValueHoverProvider; import org.springframework.ide.vscode.boot.java.value.ValuePropertyReferencesProvider; +import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProvider; import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine; import org.springframework.ide.vscode.commons.languageserver.composable.LanguageServerComponents; @@ -108,7 +109,13 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent private CodeLensHandler codeLensHandler; private DocumentHighlightHandler highlightsEngine; - public BootJavaLanguageServerComponents(SimpleLanguageServer server, BootLanguageServerParams serverParams, SourceLinks sourceLinks, CompilationUnitCache cuCache) { + public BootJavaLanguageServerComponents( + SimpleLanguageServer server, + BootLanguageServerParams serverParams, + SourceLinks sourceLinks, + CompilationUnitCache cuCache, + SpringPropertyIndexProvider adHocIndexProvider + ) { this.server = server; this.serverParams = serverParams; @@ -119,7 +126,7 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent this.cuCache = cuCache; propertyIndexProvider = serverParams.indexProvider; - adHocPropertyIndexProvider = serverParams.adHocIndexProvider; + this.adHocPropertyIndexProvider = adHocIndexProvider; SimpleWorkspaceService workspaceService = server.getWorkspaceService(); SimpleTextDocumentService documents = server.getTextDocumentService(); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ClassReferenceProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ClassReferenceProvider.java index 9161a6287..8932f0f9d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ClassReferenceProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ClassReferenceProvider.java @@ -62,7 +62,7 @@ public class ClassReferenceProvider extends CachingValueProvider { return UNTARGETTED_INSTANCE; } ); - + private static Function applyOn(long duration, TimeUnit unit, Function func) { Cache cache = CacheBuilder.newBuilder().expireAfterAccess(duration, unit).expireAfterWrite(duration, unit).build(); return (k) -> { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/DefaultSpringPropertyIndexProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/DefaultSpringPropertyIndexProvider.java index 279f262b5..331ffef94 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/DefaultSpringPropertyIndexProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/DefaultSpringPropertyIndexProvider.java @@ -22,17 +22,17 @@ import org.springframework.ide.vscode.commons.util.FuzzyMap; import org.springframework.ide.vscode.commons.util.text.IDocument; public class DefaultSpringPropertyIndexProvider implements SpringPropertyIndexProvider { - + private JavaProjectFinder javaProjectFinder; private SpringPropertiesIndexManager indexManager; - + private ProgressService progressService = (id, msg) -> { /*ignore*/ }; - - public DefaultSpringPropertyIndexProvider(JavaProjectFinder javaProjectFinder, ProjectObserver projectObserver) { + + public DefaultSpringPropertyIndexProvider(JavaProjectFinder javaProjectFinder, ProjectObserver projectObserver, ValueProviderRegistry valueProviders) { this.javaProjectFinder = javaProjectFinder; - this.indexManager = new SpringPropertiesIndexManager(ValueProviderRegistry.getDefault(), projectObserver); + this.indexManager = new SpringPropertiesIndexManager(valueProviders, projectObserver); } - + @Override public FuzzyMap getIndex(IDocument doc) { Optional jp = javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri())); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProvider.java index 37b68267b..f52d6263a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProvider.java @@ -30,9 +30,14 @@ import reactor.util.function.Tuples; * @author Alex Boyko */ public class LoggerNameProvider extends CachingValueProvider { - - private static final ValueProviderStrategy INSTANCE = new LoggerNameProvider(); - public static final Function, ValueProviderStrategy> FACTORY = (params) -> INSTANCE; + + private final SpringPropertyIndexProvider adhocProperties; + + public LoggerNameProvider(SpringPropertyIndexProvider adhocProperties) { + this.adhocProperties = adhocProperties; + } + + public final Function, ValueProviderStrategy> FACTORY = (params) -> this; @Override protected Flux getValuesAsync(IJavaProject javaProject, String query) { @@ -48,5 +53,4 @@ public class LoggerNameProvider extends CachingValueProvider { .flatMapIterable(l -> l) .map(t -> t.getT1()); } - } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ValueProviderRegistry.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ValueProviderRegistry.java index a244f6c26..b9172975d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ValueProviderRegistry.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/ValueProviderRegistry.java @@ -32,26 +32,6 @@ import reactor.core.publisher.Flux; */ public class ValueProviderRegistry { - private static ValueProviderRegistry DEFAULT; - - /** - * Creates a default {@link ValueProviderRegistry} which is initialized with all the known - * providers. (This is the one production code should use, test code might make use - * something else for mocking purposes). - */ - public synchronized static ValueProviderRegistry getDefault() { - if (DEFAULT==null) { - DEFAULT = new ValueProviderRegistry(); - DEFAULT.initializeDefaults(DEFAULT); - } - return DEFAULT; - } - - protected void initializeDefaults(ValueProviderRegistry r) { - def("logger-name", LoggerNameProvider.FACTORY); - def("class-reference", ClassReferenceProvider.FACTORY); - } - private Map, ValueProviderStrategy>> registry = new HashMap<>(); public interface ValueProviderStrategy { diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/AdHocPropertyHarnessTestConf.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/AdHocPropertyHarnessTestConf.java new file mode 100644 index 000000000..5ed4d6fbf --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/AdHocPropertyHarnessTestConf.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.ide.vscode.boot.bootiful; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.ide.vscode.boot.editor.harness.AdHocPropertyHarness; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; + +@Configuration +public class AdHocPropertyHarnessTestConf { + @Bean AdHocPropertyHarness adHocPropertyHarness() { + return new AdHocPropertyHarness(); + } + + @Bean SpringPropertyIndexProvider adHocProperties(AdHocPropertyHarness adHocProperties) { + return adHocProperties.getIndexProvider(); + } +} diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/BootLanguageServerTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/BootLanguageServerTest.java index 4c93b9426..ab8bee8a6 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/BootLanguageServerTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/BootLanguageServerTest.java @@ -29,7 +29,7 @@ import org.springframework.test.annotation.DirtiesContext.ClassMode; @OverrideAutoConfiguration(enabled=false) @ImportAutoConfiguration(classes=LanguageServerAutoConf.class) @SpringBootTest(classes={ - BootLanguagServerBootApp.class, + BootLanguagServerBootApp.class }) @DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD) public @interface BootLanguageServerTest { diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/HoverTestConf.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/HoverTestConf.java index 5b695fb7b..7e9b28666 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/HoverTestConf.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/HoverTestConf.java @@ -1,13 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ package org.springframework.ide.vscode.boot.bootiful; import java.time.Duration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.util.text.LanguageId; @@ -15,10 +27,11 @@ import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; @Configuration +@Import(AdHocPropertyHarnessTestConf.class) public class HoverTestConf { - @Bean PropertyIndexHarness indexHarness() { - return new PropertyIndexHarness(); + @Bean PropertyIndexHarness indexHarness(ValueProviderRegistry valueProviders) { + return new PropertyIndexHarness(valueProviders); } @Bean MockRunningAppProvider mockAppsHarness() { @@ -33,13 +46,12 @@ public class HoverTestConf { return Duration.ofMillis(100); } - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server) { - BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server); + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, ValueProviderRegistry valueProviders, PropertyIndexHarness indexHarness) { + BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server, valueProviders); return new BootLanguageServerParams( - indexHarness().getProjectFinder(), + indexHarness.getProjectFinder(), testDefaults.projectObserver, - indexHarness().getIndexProvider(), - indexHarness().getAdHocIndexProvider(), + indexHarness.getIndexProvider(), testDefaults.typeUtilProvider, mockAppsHarness().provider, watchDogInterval() @@ -53,5 +65,4 @@ public class HoverTestConf { @Bean SourceLinks sourceLinks() { return SourceLinkFactory.NO_SOURCE_LINKS; } - } \ No newline at end of file diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/PropertyEditorTestConf.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/PropertyEditorTestConf.java index 81f372c6a..f0733d9c7 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/PropertyEditorTestConf.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/PropertyEditorTestConf.java @@ -14,6 +14,7 @@ import org.eclipse.lsp4j.TextDocumentIdentifier; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; import org.springframework.ide.vscode.boot.java.links.JavaDocumentUriProvider; @@ -21,6 +22,7 @@ import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.boot.metadata.types.TypeUtil; import org.springframework.ide.vscode.boot.metadata.types.TypeUtilProvider; import org.springframework.ide.vscode.boot.test.DefinitionLinkAsserts; @@ -32,10 +34,12 @@ import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; -@Configuration public class PropertyEditorTestConf { +@Configuration +@Import(AdHocPropertyHarnessTestConf.class) +public class PropertyEditorTestConf { - @Bean PropertyIndexHarness indexHarness() { - return new PropertyIndexHarness(); + @Bean PropertyIndexHarness indexHarness(ValueProviderRegistry valueProviders) { + return new PropertyIndexHarness(valueProviders); } @Bean MockRunningAppProvider mockAppsHarness() { @@ -53,15 +57,14 @@ import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; return new BootLanguageServerHarness(server, serverParams, indexHarness, projectFinder, defaultLanguageId, defaultFileExtension); } - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server) { - JavaProjectFinder projectFinder = indexHarness().getProjectFinder(); + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, PropertyIndexHarness indexHarness) { + JavaProjectFinder projectFinder = indexHarness.getProjectFinder(); TypeUtilProvider typeUtilProvider = (IDocument doc) -> new TypeUtil(projectFinder.find(new TextDocumentIdentifier(doc.getUri()))); return new BootLanguageServerParams( projectFinder, ProjectObserver.NULL, - indexHarness().getIndexProvider(), - indexHarness().getAdHocIndexProvider(), + indexHarness.getIndexProvider(), typeUtilProvider, mockAppsHarness().provider, SpringLiveHoverWatchdog.DEFAULT_INTERVAL diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/SymbolProviderTestConf.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/SymbolProviderTestConf.java index 6ceb27360..a36549ffc 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/SymbolProviderTestConf.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/SymbolProviderTestConf.java @@ -1,24 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ package org.springframework.ide.vscode.boot.bootiful; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerInitializer; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; +import org.springframework.ide.vscode.boot.editor.harness.AdHocPropertyHarness; import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.SpringIndexer; import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; -@Configuration public class SymbolProviderTestConf { +@Configuration +@Import(AdHocPropertyHarnessTestConf.class) +public class SymbolProviderTestConf { - @Bean PropertyIndexHarness indexHarness() { - return new PropertyIndexHarness(); + @Bean PropertyIndexHarness indexHarness(ValueProviderRegistry valueProviders) { + return new PropertyIndexHarness(valueProviders); } @Bean JavaProjectFinder projectFinder(BootLanguageServerParams serverParams) { @@ -29,8 +45,8 @@ import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; return new BootLanguageServerHarness(server, serverParams, indexHarness, projectFinder, LanguageId.JAVA, ".java"); } - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server) { - return BootLanguageServerParams.createTestDefault(server); + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, ValueProviderRegistry valueProviders) { + return BootLanguageServerParams.createTestDefault(server, valueProviders); } @Bean SpringIndexer springIndexer(BootLanguageServerInitializer serverInit) { diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/AdHocPropertyHarness.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/AdHocPropertyHarness.java new file mode 100644 index 000000000..f35a3d1f6 --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/AdHocPropertyHarness.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2018 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.ide.vscode.boot.editor.harness; + +import org.springframework.ide.vscode.boot.metadata.PropertyInfo; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.commons.util.FuzzyMap; + +public class AdHocPropertyHarness { + + private FuzzyMap adHocProperties = new FuzzyMap() { + @Override + protected String getKey(PropertyInfo entry) { + return entry.getId(); + } + }; + + protected final SpringPropertyIndexProvider adHocIndexProvider = doc -> adHocProperties; + + public SpringPropertyIndexProvider getIndexProvider() { + return adHocIndexProvider; + } + + public void add(String adHocPropertyId) { + adHocProperties.add(new PropertyInfo(adHocPropertyId, null, null, null, null, null, null, null, null, null, null)); + } +} diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/PropertyIndexHarness.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/PropertyIndexHarness.java index 4d0a604b8..794b34089 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/PropertyIndexHarness.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/editor/harness/PropertyIndexHarness.java @@ -34,15 +34,9 @@ import org.springframework.ide.vscode.commons.util.text.IDocument; */ public class PropertyIndexHarness { + private final ValueProviderRegistry valueProviders; private Map datas = new LinkedHashMap<>(); - private ValueProviderRegistry valueProviders = ValueProviderRegistry.getDefault(); private SpringPropertyIndex index = null; - private FuzzyMap adHocProperties = new FuzzyMap() { - @Override - protected String getKey(PropertyInfo entry) { - return entry.getId(); - } - }; private IJavaProject testProject = null; protected final SpringPropertyIndexProvider indexProvider = new SpringPropertyIndexProvider() { @@ -60,9 +54,11 @@ public class PropertyIndexHarness { } } }; - - protected final SpringPropertyIndexProvider adHocIndexProvider = doc -> adHocProperties; - + + public PropertyIndexHarness(ValueProviderRegistry valueProviders) { + this.valueProviders = valueProviders; + } + public synchronized void useProject(IJavaProject p) throws Exception { index = null; this.testProject = p; @@ -572,18 +568,10 @@ public class PropertyIndexHarness { return indexProvider; } - public SpringPropertyIndexProvider getAdHocIndexProvider() { - return adHocIndexProvider; - } - public JavaProjectFinder getProjectFinder() { return (doc) -> Optional.ofNullable(testProject); } - public void adHoc(String adHocPropertyId) { - adHocProperties.add(new PropertyInfo(adHocPropertyId, null, null, null, null, null, null, null, null, null, null)); - } - public IJavaProject getTestProject() { return testProject; } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java index 3b58b4fee..e769aa7f7 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java @@ -27,8 +27,10 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerInitializer; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; +import org.springframework.ide.vscode.boot.bootiful.AdHocPropertyHarnessTestConf; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; @@ -36,6 +38,7 @@ import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService; @@ -67,10 +70,11 @@ public class CompilationUnitCacheTest { @Autowired private MockProjectObserver projectObserver; + @Import(AdHocPropertyHarnessTestConf.class) @Configuration static class TestConf { - @Bean PropertyIndexHarness indexHarness() { - return new PropertyIndexHarness(); + @Bean PropertyIndexHarness indexHarness(ValueProviderRegistry valueProviders) { + return new PropertyIndexHarness(valueProviders); } @Bean JavaProjectFinder projectFinder(BootLanguageServerParams serverParams) { @@ -85,13 +89,12 @@ public class CompilationUnitCacheTest { return new BootLanguageServerHarness(server, serverParams, indexHarness, projectFinder, LanguageId.JAVA, ".java"); } - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, MockProjectObserver projectObserver) { - BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server); + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, MockProjectObserver projectObserver, ValueProviderRegistry valueProviders, PropertyIndexHarness indexHarness) { + BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server, valueProviders); return new BootLanguageServerParams( - indexHarness().getProjectFinder(), + indexHarness.getProjectFinder(), projectObserver, - indexHarness().getIndexProvider(), - indexHarness().getAdHocIndexProvider(), + indexHarness.getIndexProvider(), testDefaults.typeUtilProvider, RunningAppProvider.NULL, null diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java index 7e7886a80..2068ae710 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java @@ -19,20 +19,27 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.eclipse.lsp4j.CompletionItem; +import org.eclipse.xtend.lib.annotations.Accessors; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; +import org.springframework.ide.vscode.boot.bootiful.AdHocPropertyHarnessTestConf; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; +import org.springframework.ide.vscode.boot.editor.harness.AdHocPropertyHarness; import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; import org.springframework.ide.vscode.boot.java.links.SourceLinkFactory; import org.springframework.ide.vscode.boot.java.links.SourceLinks; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; import org.springframework.ide.vscode.boot.java.value.ValueCompletionProcessor; +import org.springframework.ide.vscode.boot.metadata.AdHocSpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.ValueProviderRegistry; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver; @@ -58,8 +65,11 @@ public class ValueCompletionTest { private Editor editor; @Autowired private PropertyIndexHarness indexHarness; + @Autowired private AdHocPropertyHarness adHocProperties; - @Configuration static class TestConf { + @Configuration + @Import(AdHocPropertyHarnessTestConf.class) + static class TestConf { //Somewhat strange test setup, test provides a specific test project. //The project finder finds this test project, @@ -70,8 +80,8 @@ public class ValueCompletionTest { return ProjectsHarness.INSTANCE.mavenProject("test-annotations"); } - @Bean PropertyIndexHarness indexHarness() { - return new PropertyIndexHarness(); + @Bean PropertyIndexHarness indexHarness(ValueProviderRegistry valueProviders) { + return new PropertyIndexHarness(valueProviders); } @Bean JavaProjectFinder projectFinder(MavenJavaProject testProject) { @@ -82,13 +92,12 @@ public class ValueCompletionTest { return new BootLanguageServerHarness(server, serverParams, indexHarness, projectFinder, LanguageId.JAVA, ".java"); } - @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, JavaProjectFinder projectFinder) { - BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server); + @Bean BootLanguageServerParams serverParams(SimpleLanguageServer server, JavaProjectFinder projectFinder, ValueProviderRegistry valueProviders, PropertyIndexHarness indexHarness) { + BootLanguageServerParams testDefaults = BootLanguageServerParams.createTestDefault(server, valueProviders); return new BootLanguageServerParams( projectFinder, ProjectObserver.NULL, - indexHarness().getIndexProvider(), - indexHarness().getAdHocIndexProvider(), + indexHarness.getIndexProvider(), testDefaults.typeUtilProvider, RunningAppProvider.NULL, null @@ -336,9 +345,9 @@ public class ValueCompletionTest { "${spring.prop1}<*>" ); - indexHarness.adHoc("spring.ad-hoc.thingy"); - indexHarness.adHoc("spring.ad-hoc.other-thingy"); - indexHarness.adHoc("spring.prop1"); //should not suggest this twice! + adHocProperties.add("spring.ad-hoc.thingy"); + adHocProperties.add("spring.ad-hoc.other-thingy"); + adHocProperties.add("spring.prop1"); //should not suggest this twice! editor.assertContextualCompletions( "<*>" , //==> diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/IndexNavigatorTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/IndexNavigatorTest.java index 8c52eb3bb..196f66814 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/IndexNavigatorTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/IndexNavigatorTest.java @@ -18,7 +18,7 @@ import org.springframework.ide.vscode.boot.editor.harness.PropertyIndexHarness; /** * Index Navigation tests. - * + * * @author Kris De Volder * @author Alex Boyko * @@ -27,7 +27,7 @@ public class IndexNavigatorTest { @Test public void testSimple() throws Exception { - PropertyIndexHarness harness = new PropertyIndexHarness(); + PropertyIndexHarness harness = indexHarness(); harness.defaultTestData(); start(harness); @@ -43,9 +43,13 @@ public class IndexNavigatorTest { assertEmpty(); } + private PropertyIndexHarness indexHarness() { + return new PropertyIndexHarness(new ValueProviderRegistry()); + } + @Test public void testPartialName() throws Exception { - PropertyIndexHarness harness = new PropertyIndexHarness(); + PropertyIndexHarness harness = indexHarness(); harness.defaultTestData(); start(harness); @@ -60,7 +64,7 @@ public class IndexNavigatorTest { @Test public void testAmbiguous() throws Exception { - PropertyIndexHarness harness = new PropertyIndexHarness(); + PropertyIndexHarness harness = indexHarness(); harness.defaultTestData(); harness.data("foo.bar", "java.lang.String", null, "Foo dot bar"); @@ -130,7 +134,7 @@ public class IndexNavigatorTest { public void navigate(String propName) { navigator = navigator.selectSubProperty(propName); } - - + + } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProviderTest.java index e3562ee70..f6b2c4a54 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/LoggerNameProviderTest.java @@ -52,7 +52,7 @@ public class LoggerNameProviderTest { "org.springframework.instrument.classloading.jboss.JBossMCTranslatorAdapter", //11 "org.springframework.instrument.classloading.jboss.JBossModulesAdapter" //12 }; - + private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MavenJavaProject project; @@ -69,7 +69,7 @@ public class LoggerNameProviderTest { @Test public void directResults() throws Exception { - LoggerNameProvider p = new LoggerNameProvider(); + LoggerNameProvider p = new LoggerNameProvider(null); String query = "jboss"; List directQueryResults = getResults(p, query); @@ -84,7 +84,7 @@ public class LoggerNameProviderTest { @Test public void cachedResults() throws Exception { - LoggerNameProvider p = new LoggerNameProvider(); + LoggerNameProvider p = new LoggerNameProvider(null); for (int i = 0; i < 10; i++) { long startTime = System.currentTimeMillis(); String query = "jboss"; @@ -105,7 +105,7 @@ public class LoggerNameProviderTest { public void incrementalResults() throws Exception { String fullQuery = "jboss"; - CachingValueProvider p = new LoggerNameProvider(); + CachingValueProvider p = new LoggerNameProvider(null); for (int i = 0; i <= fullQuery.length(); i++) { String query = fullQuery.substring(0, i); List results = getResults(p, query); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/PropertiesIndexTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/PropertiesIndexTest.java index e5e3ee20c..0eb9c237d 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/PropertiesIndexTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metadata/PropertiesIndexTest.java @@ -22,21 +22,21 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** * Sanity test the boot properties index - * + * * @author Alex Boyko * */ public class PropertiesIndexTest { private static final String CUSTOM_PROPERTIES_PROJECT = "custom-properties-boot-project"; - + private ProjectsHarness projects = ProjectsHarness.INSTANCE; private ProgressService progressService = (id, msg) -> { /*ignore*/ }; - + @Test public void springStandardPropertyPresent_Maven() throws Exception { SpringPropertiesIndexManager indexManager = new SpringPropertiesIndexManager( - ValueProviderRegistry.getDefault(), null); + new ValueProviderRegistry(), null); IJavaProject mavenProject = projects.mavenProject(CUSTOM_PROPERTIES_PROJECT); FuzzyMap index = indexManager.get(mavenProject, progressService); PropertyInfo propertyInfo = index.get("server.port"); @@ -48,7 +48,7 @@ public class PropertiesIndexTest { @Test public void customPropertyPresent_Maven() throws Exception { SpringPropertiesIndexManager indexManager = new SpringPropertiesIndexManager( - ValueProviderRegistry.getDefault(), null); + new ValueProviderRegistry(), null); IJavaProject mavenProject = projects.mavenProject(CUSTOM_PROPERTIES_PROJECT); FuzzyMap index = indexManager.get(mavenProject, progressService); PropertyInfo propertyInfo = index.get("demo.settings.user"); @@ -60,7 +60,7 @@ public class PropertiesIndexTest { @Test public void propertyNotPresent_Maven() throws Exception { SpringPropertiesIndexManager indexManager = new SpringPropertiesIndexManager( - ValueProviderRegistry.getDefault(), null); + new ValueProviderRegistry(), null); IJavaProject mavenProject = projects.mavenProject(CUSTOM_PROPERTIES_PROJECT); FuzzyMap index = indexManager.get(mavenProject, progressService); PropertyInfo propertyInfo = index.get("my.server.port");