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 888e043f5..9b43b707b 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 @@ -49,6 +49,7 @@ public class BootLanguageServerInitializer implements InitializingBean { @Autowired YamlAssistContextProvider yamlAssistContextProvider; @Autowired SymbolCache symbolCache; @Autowired BootJavaConfig config; + @Autowired SpringSymbolIndex springIndexer; @Qualifier("adHocProperties") @Autowired ProjectBasedPropertyIndexProvider adHocProperties; @@ -74,7 +75,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, sourceLinks)); - builder.add(new BootJavaLanguageServerComponents(server, params, sourceLinks, cuCache, adHocProperties, symbolCache, config)); + builder.add(new BootJavaLanguageServerComponents(server, params, sourceLinks, cuCache, adHocProperties, symbolCache, config, springIndexer)); 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/java/utils/SpringSymbolIndex.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java similarity index 87% rename from headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringSymbolIndex.java rename to headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java index 7247f7294..54e65821f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringSymbolIndex.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java @@ -8,7 +8,7 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.boot.java.utils; +package org.springframework.ide.vscode.boot.app; import java.io.File; import java.net.URI; @@ -34,45 +34,60 @@ import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.TextDocumentIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; import org.springframework.ide.vscode.boot.java.annotations.AnnotationHierarchyAwareLookup; import org.springframework.ide.vscode.boot.java.handlers.EnhancedSymbolInformation; import org.springframework.ide.vscode.boot.java.handlers.SymbolAddOnInformation; import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider; +import org.springframework.ide.vscode.boot.java.utils.SpringIndexer; +import org.springframework.ide.vscode.boot.java.utils.SpringIndexerJava; +import org.springframework.ide.vscode.boot.java.utils.SpringIndexerXML; +import org.springframework.ide.vscode.boot.java.utils.SpringIndexerXMLNamespaceHandler; +import org.springframework.ide.vscode.boot.java.utils.SpringIndexerXMLNamespaceHandlerBeans; +import org.springframework.ide.vscode.boot.java.utils.SymbolCache; +import org.springframework.ide.vscode.boot.java.utils.SymbolHandler; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.java.SpringProjectUtil; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver; import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver.Listener; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; +import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService; import org.springframework.ide.vscode.commons.languageserver.util.SimpleWorkspaceService; import org.springframework.ide.vscode.commons.util.Futures; import org.springframework.ide.vscode.commons.util.StringUtil; +import org.springframework.ide.vscode.commons.util.text.TextDocument; +import org.springframework.stereotype.Component; /** * @author Martin Lippert */ -public class SpringSymbolIndex { +@Component +public class SpringSymbolIndex implements InitializingBean { + + @Autowired SimpleLanguageServer server; + @Autowired BootJavaConfig config; + @Autowired BootLanguageServerParams params; + @Autowired AnnotationHierarchyAwareLookup specificProviders; + @Autowired SymbolCache cache; private static final String QUERY_PARAM_LOCATION_PREFIX = "locationPrefix:"; private static final int MAX_NUMBER_OF_SYMBOLS_IN_RESPONSE = 50; - private final SimpleLanguageServer server; - private final BootLanguageServerParams params; - private final JavaProjectFinder projectFinder; + private final List symbols = new ArrayList<>(); + private final List addonInformation = new ArrayList<>(); - private final List symbols; - private final List addonInformation; + private final ConcurrentMap> symbolsByDoc = new ConcurrentHashMap<>(); + private final ConcurrentMap> addonInformationByDoc = new ConcurrentHashMap<>(); - private final ConcurrentMap> symbolsByDoc; - private final ConcurrentMap> addonInformationByDoc; + private final ConcurrentMap> symbolsByProject = new ConcurrentHashMap<>(); + private final ConcurrentMap> addonInformationByProject = new ConcurrentHashMap<>(); - private final ConcurrentMap> symbolsByProject; - private final ConcurrentMap> addonInformationByProject; - - private final ExecutorService updateQueue; + private final ExecutorService updateQueue = Executors.newSingleThreadExecutor(); private SpringIndexer[] indexer; - private final SymbolCache cache; + private static final Logger log = LoggerFactory.getLogger(SpringSymbolIndex.class); @@ -103,6 +118,7 @@ public class SpringSymbolIndex { private String watchXMLCreatedRegistration; private String watchXMLChangedRegistration; + private SimpleWorkspaceService getWorkspaceService() { return server.getServer().getWorkspaceService(); } @@ -111,21 +127,9 @@ public class SpringSymbolIndex { return params.projectObserver; } - public SpringSymbolIndex(SimpleLanguageServer server, BootLanguageServerParams params, - AnnotationHierarchyAwareLookup specificProviders, SymbolCache cache) { - log.debug("Creating {}", this); - this.server = server; - this.params = params; - this.projectFinder = params.projectFinder; - - this.symbols = new ArrayList<>(); - this.symbolsByDoc = new ConcurrentHashMap<>(); - this.symbolsByProject = new ConcurrentHashMap<>(); - this.addonInformation = new ArrayList<>(); - this.addonInformationByDoc = new ConcurrentHashMap<>(); - this.addonInformationByProject = new ConcurrentHashMap<>(); - - this.cache = cache; + @Override + public void afterPropertiesSet() throws Exception { + log.debug("Setting up {}", this); SymbolHandler handler = new SymbolHandler() { @Override @@ -141,7 +145,6 @@ public class SpringSymbolIndex { this.indexer = new SpringIndexer[] {springIndexerJava}; - this.updateQueue = Executors.newSingleThreadExecutor(); getWorkspaceService().onDidChangeWorkspaceFolders(evt -> { log.debug("workspace roots have changed event arrived - added: " + evt.getEvent().getAdded() + " - removed: " + evt.getEvent().getRemoved()); @@ -151,6 +154,22 @@ public class SpringSymbolIndex { getProjectObserver().addListener(projectListener); log.info("project listener registered"); } + + SimpleTextDocumentService documents = server.getTextDocumentService(); + documents.onDidSave(params -> { + TextDocument document = params.getDocument(); + // Spring Boot LS get events from boot properties files as well, so filter them out + if (BootJavaLanguageServerComponents.LANGUAGES.contains(document.getLanguageId())) { + String docURI = document.getId().getUri(); + String content = document.get(); + this.updateDocument(docURI, content); + } + }); + config.addListener(evt -> { + this.configureIndexer(config.isSpringXMLSupportEnabled()); + }); + server.doOnInitialized(this::serverInitialized); + server.onShutdown(this::shutdown); } public void serverInitialized() { @@ -266,7 +285,7 @@ public class SpringSymbolIndex { for (SpringIndexer indexer : this.indexer) { if (indexer.isInterestedIn(docURI)) { - Optional maybeProject = projectFinder.find(new TextDocumentIdentifier(docURI)); + Optional maybeProject = projectFinder().find(new TextDocumentIdentifier(docURI)); if (maybeProject.isPresent()) { try { @@ -289,13 +308,17 @@ public class SpringSymbolIndex { } } + private JavaProjectFinder projectFinder() { + return params.projectFinder; + } + public CompletableFuture updateDocument(String docURI, String content) { synchronized(this) { List> futures = new ArrayList<>(); for (SpringIndexer indexer : this.indexer) { if (indexer.isInterestedIn(docURI)) { - Optional maybeProject = projectFinder.find(new TextDocumentIdentifier(docURI)); + Optional maybeProject = projectFinder().find(new TextDocumentIdentifier(docURI)); if (maybeProject.isPresent()) { try { File file = new File(new URI(docURI)); @@ -321,7 +344,7 @@ public class SpringSymbolIndex { public CompletableFuture deleteDocument(String deletedDocURI) { synchronized(this) { try { - Optional maybeProject = projectFinder.find(new TextDocumentIdentifier(deletedDocURI)); + Optional maybeProject = projectFinder().find(new TextDocumentIdentifier(deletedDocURI)); if (maybeProject.isPresent()) { DeleteItem deleteItem = new DeleteItem(maybeProject.get(), deletedDocURI, this.indexer); return CompletableFuture.runAsync(deleteItem, this.updateQueue); @@ -674,7 +697,5 @@ public class SpringSymbolIndex { } } } - } - } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndexerConfig.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndexerConfig.java new file mode 100644 index 000000000..0ec5c7a7f --- /dev/null +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndexerConfig.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * 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 + * https://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.ide.vscode.boot.app; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.ide.vscode.boot.java.Annotations; +import org.springframework.ide.vscode.boot.java.annotations.AnnotationHierarchyAwareLookup; +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.data.DataRepositorySymbolProvider; +import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider; +import org.springframework.ide.vscode.boot.java.requestmapping.RequestMappingSymbolProvider; +import org.springframework.ide.vscode.boot.java.requestmapping.WebfluxRouterSymbolProvider; +import org.springframework.ide.vscode.boot.java.utils.RestrictedDefaultSymbolProvider; +import org.springframework.ide.vscode.boot.java.utils.SymbolCache; + +@Configuration +public class SpringSymbolIndexerConfig { + + @Bean + AnnotationHierarchyAwareLookup symbolProviders(SymbolCache cache) { + AnnotationHierarchyAwareLookup providers = new AnnotationHierarchyAwareLookup<>(); + RequestMappingSymbolProvider requestMappingSymbolProvider = new RequestMappingSymbolProvider(); + BeansSymbolProvider beansSymbolProvider = new BeansSymbolProvider(); + ComponentSymbolProvider componentSymbolProvider = new ComponentSymbolProvider(); + RestrictedDefaultSymbolProvider restrictedDefaultSymbolProvider = new RestrictedDefaultSymbolProvider(); + DataRepositorySymbolProvider dataRepositorySymbolProvider = new DataRepositorySymbolProvider(); + WebfluxRouterSymbolProvider webfluxRouterSymbolProvider = new WebfluxRouterSymbolProvider(); + + providers.put(Annotations.SPRING_REQUEST_MAPPING, requestMappingSymbolProvider); + providers.put(Annotations.SPRING_GET_MAPPING, requestMappingSymbolProvider); + providers.put(Annotations.SPRING_POST_MAPPING, requestMappingSymbolProvider); + providers.put(Annotations.SPRING_PUT_MAPPING, requestMappingSymbolProvider); + providers.put(Annotations.SPRING_DELETE_MAPPING, requestMappingSymbolProvider); + providers.put(Annotations.SPRING_PATCH_MAPPING, requestMappingSymbolProvider); + + providers.put(Annotations.BEAN, beansSymbolProvider); + providers.put(Annotations.COMPONENT, componentSymbolProvider); + + providers.put(Annotations.PROFILE, restrictedDefaultSymbolProvider); + + providers.put(Annotations.CONDITIONAL, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_BEAN, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_MISSING_BEAN, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_PROPERTY, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_RESOURCE, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_CLASS, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_MISSING_CLASS, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_CLOUD_PLATFORM, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_WEB_APPLICATION, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_NOT_WEB_APPLICATION, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_ENABLED_INFO_CONTRIBUTOR, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_ENABLED_RESOURCE_CHAIN, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_ENABLED_ENDPOINT, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_ENABLED_HEALTH_INDICATOR, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_EXPRESSION, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_JAVA, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_JNDI, restrictedDefaultSymbolProvider); + providers.put(Annotations.CONDITIONAL_ON_SINGLE_CANDIDATE, restrictedDefaultSymbolProvider); + + providers.put(Annotations.REPOSITORY, dataRepositorySymbolProvider); + providers.put("", webfluxRouterSymbolProvider); + + return providers; + } +} 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 b8b74e54f..3e4de37cb 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 @@ -17,18 +17,15 @@ import java.util.Map; import java.util.Set; import org.eclipse.lsp4j.CompletionItemKind; -import org.eclipse.lsp4j.InitializeParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.boot.app.BootJavaConfig; import org.springframework.ide.vscode.boot.app.BootLanguageServerParams; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.annotations.AnnotationHierarchyAwareLookup; 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.ComponentSymbolProvider; import org.springframework.ide.vscode.boot.java.conditionals.ConditionalsLiveHoverProvider; import org.springframework.ide.vscode.boot.java.data.DataRepositoryCompletionProcessor; -import org.springframework.ide.vscode.boot.java.data.DataRepositorySymbolProvider; import org.springframework.ide.vscode.boot.java.handlers.BootJavaCodeLensEngine; import org.springframework.ide.vscode.boot.java.handlers.BootJavaCompletionEngine; import org.springframework.ide.vscode.boot.java.handlers.BootJavaDocumentHighlightEngine; @@ -42,26 +39,21 @@ import org.springframework.ide.vscode.boot.java.handlers.HighlightProvider; import org.springframework.ide.vscode.boot.java.handlers.HoverProvider; 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.links.SourceLinks; import org.springframework.ide.vscode.boot.java.livehover.ActiveProfilesProvider; import org.springframework.ide.vscode.boot.java.livehover.BeanInjectedIntoHoverProvider; import org.springframework.ide.vscode.boot.java.livehover.ComponentInjectionsHoverProvider; 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; import org.springframework.ide.vscode.boot.java.requestmapping.WebfluxHandlerCodeLensProvider; import org.springframework.ide.vscode.boot.java.requestmapping.WebfluxRouteHighlightProdivder; -import org.springframework.ide.vscode.boot.java.requestmapping.WebfluxRouterSymbolProvider; import org.springframework.ide.vscode.boot.java.scope.ScopeCompletionProcessor; import org.springframework.ide.vscode.boot.java.snippets.JavaSnippet; import org.springframework.ide.vscode.boot.java.snippets.JavaSnippetContext; import org.springframework.ide.vscode.boot.java.snippets.JavaSnippetManager; import org.springframework.ide.vscode.boot.java.utils.CompilationUnitCache; -import org.springframework.ide.vscode.boot.java.utils.RestrictedDefaultSymbolProvider; import org.springframework.ide.vscode.boot.java.utils.SpringLiveChangeDetectionWatchdog; import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.utils.SymbolCache; import org.springframework.ide.vscode.boot.java.value.ValueCompletionProcessor; import org.springframework.ide.vscode.boot.java.value.ValueHoverProvider; @@ -100,13 +92,13 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent // Do not add more components here. You should instead just make your new // components into separate beans. - private static final Set LANGUAGES = ImmutableSet.of(LanguageId.JAVA, LanguageId.XML); + public static final Set LANGUAGES = ImmutableSet.of(LanguageId.JAVA, LanguageId.XML); private static final Logger log = LoggerFactory.getLogger(BootJavaLanguageServerComponents.class); private final SimpleLanguageServer server; private final BootLanguageServerParams serverParams; - private final SpringSymbolIndex indexer; +// private final SpringSymbolIndex indexer; private final SpringPropertyIndexProvider propertyIndexProvider; private final ProjectBasedPropertyIndexProvider adHocPropertyIndexProvider; private final SpringLiveHoverWatchdog liveHoverWatchdog; @@ -126,7 +118,8 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent CompilationUnitCache cuCache, ProjectBasedPropertyIndexProvider adHocIndexProvider, SymbolCache symbolCache, - BootJavaConfig config + BootJavaConfig config, + SpringSymbolIndex indexer ) { this.server = server; this.serverParams = serverParams; @@ -144,17 +137,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent ReferencesHandler referencesHandler = createReferenceHandler(server, projectFinder); documents.onReferences(referencesHandler); - this.indexer = createAnnotationIndexer(server, serverParams, symbolCache); - - documents.onDidSave(params -> { - TextDocument document = params.getDocument(); - // Spring Boot LS get events from boot properties files as well, so filter them out - if (getInterestingLanguages().contains(document.getLanguageId())) { - String docURI = document.getId().getUri(); - String content = document.get(); - indexer.updateDocument(docURI, content); - } - }); documents.onDocumentSymbol(new BootJavaDocumentSymbolHandler(indexer)); workspaceService.onWorkspaceSymbol(new BootJavaWorkspaceSymbolHandler(indexer, @@ -201,10 +183,10 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent serverParams.watchDogInterval, sourceLinks); - codeLensHandler = createCodeLensEngine(); + codeLensHandler = createCodeLensEngine(indexer); documents.onCodeLens(codeLensHandler); - highlightsEngine = createDocumentHighlightEngine(); + highlightsEngine = createDocumentHighlightEngine(indexer); documents.onDocumentHighlight(highlightsEngine); config.addListener(ignore -> { @@ -215,8 +197,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent liveHoverWatchdog.disableHighlights(); } - indexer.configureIndexer(config.isSpringXMLSupportEnabled()); - // live change detection watchdog if (config.isChangeDetectionEnabled()) { liveChangeDetectionWatchdog.enableHighlights(); @@ -226,7 +206,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent } }); - server.onInitialize(this::initialize); server.doOnInitialized(this::initialized); server.onShutdown(this::shutdown); } @@ -253,26 +232,13 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent return highlightsEngine; } - private void initialize(InitializeParams params) { -// this.indexer.initialize(server.getWorkspaceRoots()); - } - private void initialized() { - this.indexer.serverInitialized(); this.liveChangeDetectionWatchdog.start(); - - // TODO: due to a missing message from lsp4e this "initialized" is not called in - // the LSP4E case - // if this gets fixed, the code should move here (from "initialize" above) - - // this.indexer.initialize(this.getWorkspaceRoot()); - // this.liveHoverWatchdog.start(); } private void shutdown() { this.liveHoverWatchdog.shutdown(); this.liveChangeDetectionWatchdog.shutdown(); - this.indexer.shutdown(); this.cuCache.dispose(); } @@ -382,52 +348,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent return new BootJavaHoverProvider(this, javaProjectFinder, providers, runningAppProvider); } - public SpringSymbolIndex createAnnotationIndexer(SimpleLanguageServer server, BootLanguageServerParams params, SymbolCache cache) { - AnnotationHierarchyAwareLookup providers = new AnnotationHierarchyAwareLookup<>(); - RequestMappingSymbolProvider requestMappingSymbolProvider = new RequestMappingSymbolProvider(); - BeansSymbolProvider beansSymbolProvider = new BeansSymbolProvider(); - ComponentSymbolProvider componentSymbolProvider = new ComponentSymbolProvider(); - RestrictedDefaultSymbolProvider restrictedDefaultSymbolProvider = new RestrictedDefaultSymbolProvider(); - DataRepositorySymbolProvider dataRepositorySymbolProvider = new DataRepositorySymbolProvider(); - WebfluxRouterSymbolProvider webfluxRouterSymbolProvider = new WebfluxRouterSymbolProvider(); - - providers.put(Annotations.SPRING_REQUEST_MAPPING, requestMappingSymbolProvider); - providers.put(Annotations.SPRING_GET_MAPPING, requestMappingSymbolProvider); - providers.put(Annotations.SPRING_POST_MAPPING, requestMappingSymbolProvider); - providers.put(Annotations.SPRING_PUT_MAPPING, requestMappingSymbolProvider); - providers.put(Annotations.SPRING_DELETE_MAPPING, requestMappingSymbolProvider); - providers.put(Annotations.SPRING_PATCH_MAPPING, requestMappingSymbolProvider); - - providers.put(Annotations.BEAN, beansSymbolProvider); - providers.put(Annotations.COMPONENT, componentSymbolProvider); - - providers.put(Annotations.PROFILE, restrictedDefaultSymbolProvider); - - providers.put(Annotations.CONDITIONAL, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_BEAN, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_MISSING_BEAN, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_PROPERTY, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_RESOURCE, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_CLASS, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_MISSING_CLASS, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_CLOUD_PLATFORM, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_WEB_APPLICATION, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_NOT_WEB_APPLICATION, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_ENABLED_INFO_CONTRIBUTOR, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_ENABLED_RESOURCE_CHAIN, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_ENABLED_ENDPOINT, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_ENABLED_HEALTH_INDICATOR, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_EXPRESSION, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_JAVA, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_JNDI, restrictedDefaultSymbolProvider); - providers.put(Annotations.CONDITIONAL_ON_SINGLE_CANDIDATE, restrictedDefaultSymbolProvider); - - providers.put(Annotations.REPOSITORY, dataRepositorySymbolProvider); - providers.put("", webfluxRouterSymbolProvider); - - return new SpringSymbolIndex(server, params, providers, cache); - } - protected ReferencesHandler createReferenceHandler(SimpleLanguageServer server, JavaProjectFinder projectFinder) { Map providers = new HashMap<>(); providers.put(org.springframework.ide.vscode.boot.java.value.Constants.SPRING_VALUE, @@ -436,16 +356,16 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent return new BootJavaReferencesHandler(this, projectFinder, providers); } - protected BootJavaCodeLensEngine createCodeLensEngine() { + protected BootJavaCodeLensEngine createCodeLensEngine(SpringSymbolIndex index) { Collection codeLensProvider = new ArrayList<>(); - codeLensProvider.add(new WebfluxHandlerCodeLensProvider(this)); + codeLensProvider.add(new WebfluxHandlerCodeLensProvider(index)); return new BootJavaCodeLensEngine(this, codeLensProvider); } - protected BootJavaDocumentHighlightEngine createDocumentHighlightEngine() { + protected BootJavaDocumentHighlightEngine createDocumentHighlightEngine(SpringSymbolIndex indexer) { Collection highlightProvider = new ArrayList<>(); - highlightProvider.add(new WebfluxRouteHighlightProdivder(this)); + highlightProvider.add(new WebfluxRouteHighlightProdivder(indexer)); return new BootJavaDocumentHighlightEngine(this, highlightProvider); } @@ -458,10 +378,6 @@ public class BootJavaLanguageServerComponents implements LanguageServerComponent return projectFinder; } - public SpringSymbolIndex getSpringSymbolIndex() { - return indexer; - } - public SpringPropertyIndexProvider getSpringPropertyIndexProvider() { return propertyIndexProvider; } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaDocumentSymbolHandler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaDocumentSymbolHandler.java index 0877ce293..16c9f861b 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaDocumentSymbolHandler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaDocumentSymbolHandler.java @@ -14,7 +14,7 @@ import java.util.List; import org.eclipse.lsp4j.DocumentSymbolParams; import org.eclipse.lsp4j.SymbolInformation; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.util.DocumentSymbolHandler; /** diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaWorkspaceSymbolHandler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaWorkspaceSymbolHandler.java index 966ce987a..1c4c89c3d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaWorkspaceSymbolHandler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaWorkspaceSymbolHandler.java @@ -14,8 +14,8 @@ import java.util.List; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.WorkspaceSymbolParams; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.requestmapping.LiveAppURLSymbolProvider; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.util.WorkspaceSymbolHandler; /** diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxHandlerCodeLensProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxHandlerCodeLensProvider.java index 07eafb0e4..9b1c75d76 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxHandlerCodeLensProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxHandlerCodeLensProvider.java @@ -18,10 +18,10 @@ import org.eclipse.jdt.core.dom.IMethodBinding; import org.eclipse.jdt.core.dom.MethodDeclaration; import org.eclipse.lsp4j.CodeLens; import org.eclipse.lsp4j.Command; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; import org.springframework.ide.vscode.boot.java.handlers.CodeLensProvider; import org.springframework.ide.vscode.boot.java.handlers.SymbolAddOnInformation; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.util.BadLocationException; import org.springframework.ide.vscode.commons.util.text.TextDocument; @@ -32,8 +32,8 @@ public class WebfluxHandlerCodeLensProvider implements CodeLensProvider { private final SpringSymbolIndex springIndexer; - public WebfluxHandlerCodeLensProvider(BootJavaLanguageServerComponents bootJavaLanguageServerComponents) { - this.springIndexer = bootJavaLanguageServerComponents.getSpringSymbolIndex(); + public WebfluxHandlerCodeLensProvider(SpringSymbolIndex springIndexer) { + this.springIndexer = springIndexer; } @Override diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxRouteHighlightProdivder.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxRouteHighlightProdivder.java index bace27fc2..0d1462ab1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxRouteHighlightProdivder.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/WebfluxRouteHighlightProdivder.java @@ -17,9 +17,8 @@ import org.eclipse.lsp4j.DocumentHighlight; import org.eclipse.lsp4j.Position; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerComponents; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.handlers.HighlightProvider; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.util.text.TextDocument; /** @@ -31,8 +30,8 @@ public class WebfluxRouteHighlightProdivder implements HighlightProvider { private final SpringSymbolIndex springIndexer; - public WebfluxRouteHighlightProdivder(BootJavaLanguageServerComponents bootJavaLanguageServerComponents) { - this.springIndexer = bootJavaLanguageServerComponents.getSpringSymbolIndex(); + public WebfluxRouteHighlightProdivder(SpringSymbolIndex indexer) { + this.springIndexer = indexer; } @Override 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 6fe740b15..6483789b5 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 @@ -15,11 +15,11 @@ 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.app.SpringSymbolIndex; 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.SpringSymbolIndex; import org.springframework.ide.vscode.boot.java.utils.SymbolCache; import org.springframework.ide.vscode.boot.java.utils.SymbolCacheVoid; import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider; @@ -53,10 +53,6 @@ public class SymbolProviderTestConf { return BootLanguageServerParams.createTestDefault(server, valueProviders); } - @Bean SpringSymbolIndex springSymbolIndex(BootLanguageServerInitializer serverInit) { - return serverInit.getComponents().get(BootJavaLanguageServerComponents.class).getSpringSymbolIndex(); - } - @Bean DefaultSpringPropertyIndexProvider indexProvider(BootLanguageServerParams serverParams) { return (DefaultSpringPropertyIndexProvider) serverParams.indexProvider; } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java index 65cb4b2e9..0424f68bb 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java @@ -21,9 +21,9 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; import org.springframework.ide.vscode.boot.app.BootLanguageServerInitializer; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java index f543c4874..fc5a93cf4 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java @@ -20,9 +20,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerHarness.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerHarness.java index 259838f42..f51fd8997 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerHarness.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerHarness.java @@ -22,7 +22,7 @@ import java.util.List; import org.apache.commons.io.IOUtils; import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.SymbolInformation; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; 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.Editor; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/test/DataRepositorySymbolProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/test/DataRepositorySymbolProviderTest.java index 2a5fd4d34..e6dbdc724 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/test/DataRepositorySymbolProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/test/DataRepositorySymbolProviderTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java index 68bb7a0ad..e14d7aa8d 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxCodeLensProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxCodeLensProviderTest.java index 6b8309f8b..6b1f71351 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxCodeLensProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxCodeLensProviderTest.java @@ -29,9 +29,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.TextDocumentInfo; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxMappingSymbolProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxMappingSymbolProviderTest.java index 555b50cac..9957f445e 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxMappingSymbolProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/WebFluxMappingSymbolProviderTest.java @@ -28,11 +28,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; import org.springframework.ide.vscode.boot.java.handlers.SymbolAddOnInformation; import org.springframework.ide.vscode.boot.java.requestmapping.WebfluxHandlerInformation; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.util.Assert; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerMultiProjectTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerMultiProjectTest.java index 43c2a1e15..8a2ff83ea 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerMultiProjectTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerMultiProjectTest.java @@ -25,9 +25,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.util.UriUtil; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerNonBootProjectTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerNonBootProjectTest.java index 1f9bab974..930fb18ed 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerNonBootProjectTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerNonBootProjectTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java index 94ea5ad0f..fb623ef65 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java @@ -30,9 +30,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.util.Assert; diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerXMLProjectTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerXMLProjectTest.java index 99a0fb550..13d0515b0 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerXMLProjectTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerXMLProjectTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Import; +import org.springframework.ide.vscode.boot.app.SpringSymbolIndex; import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest; import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf; -import org.springframework.ide.vscode.boot.java.utils.SpringSymbolIndex; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;