From aa78fe0dcc7d0001ff6001a5199d9850e86a169c Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Wed, 14 Feb 2018 13:04:32 -0800 Subject: [PATCH] Merge BootJavaServerParams into BootLanguageServerParams This also required the removal of duplicated SpringPropertyIndex related classes that existed in both boot properties and boot java language servers before. A single BootLanguageServerParams now contains the same kind of property index that should be able to support both uses. --- .../vscode/boot/BootLanguageServerParams.java | 31 +++- .../boot/java/BootJavaLanguageServer.java | 7 +- .../java/BootJavaLanguageServerParams.java | 105 ------------- .../ide/vscode/boot/java/Main.java | 3 +- .../DefaultSpringPropertyIndexProvider.java | 57 ------- .../boot/java/metadata/PropertiesLoader.java | 147 ------------------ .../SpringPropertiesIndexManager.java | 92 ----------- .../java/metadata/SpringPropertyIndex.java | 38 ----- .../metadata/SpringPropertyIndexProvider.java | 21 --- .../java/value/ValueCompletionProcessor.java | 25 +-- .../test/AutowiredHoverProviderTest.java | 6 +- .../beans/test/SpringIndexerBeansTest.java | 6 +- .../test/SpringIndexerFunctionBeansTest.java | 6 +- .../test/ConditionalsLiveHoverTest.java | 4 +- .../test/ActiveProfilesHoverTest.java | 6 +- .../test/ActuatorWarningHoverTest.java | 6 +- .../BeanInjectedIntoHoverProviderTest.java | 6 +- .../ComponentInjectionsHoverProviderTest.java | 6 +- .../FunctionInjectionsHoverProviderTest.java | 6 +- .../test/RequestMappingLiveHoverTest.java | 4 +- .../RequestMappingSymbolProviderTest.java | 6 +- .../java/scope/test/ScopeCompletionTest.java | 6 +- .../utils/test/CompilationUnitCacheTest.java | 12 +- .../java/utils/test/SpringIndexerTest.java | 4 +- .../utils/test/SpringPropertyIndexTest.java | 6 +- .../java/value/test/ValueCompletionTest.java | 6 +- .../test/ApplicationPropertiesEditorTest.java | 15 +- .../boot/test/ApplicationYamlEditorTest.java | 16 +- ...ava => BootJavaLanguageServerHarness.java} | 23 +-- .../project/harness/PropertyIndexHarness.java | 10 +- .../springframework/ide/vscode/boot/Main.java | 2 - 31 files changed, 136 insertions(+), 552 deletions(-) delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerParams.java delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/DefaultSpringPropertyIndexProvider.java delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/PropertiesLoader.java delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertiesIndexManager.java delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndex.java delete mode 100644 headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndexProvider.java rename headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/{BootLanguageServerHarness.java => BootJavaLanguageServerHarness.java} (80%) diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/BootLanguageServerParams.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/BootLanguageServerParams.java index b88c3437e..cda18d9dc 100644 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/BootLanguageServerParams.java +++ b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/BootLanguageServerParams.java @@ -11,9 +11,12 @@ package org.springframework.ide.vscode.boot; import java.nio.file.Paths; +import java.time.Duration; import java.util.Arrays; import org.eclipse.lsp4j.TextDocumentIdentifier; +import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; +import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider; import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; import org.springframework.ide.vscode.boot.metadata.types.TypeUtil; @@ -38,26 +41,37 @@ import org.springframework.ide.vscode.commons.util.text.IDocument; * Parameters for creating Boot Properties language server * * @author Alex Boyko - * + * @author Kris De Volder */ public class BootLanguageServerParams { + //Shared public final JavaProjectFinder projectFinder; public final ProjectObserver projectObserver; public final SpringPropertyIndexProvider indexProvider; + + //Boot Properies public final TypeUtilProvider typeUtilProvider; + + //Boot Java + public final RunningAppProvider runningAppProvider; + public final Duration watchDogInterval; public BootLanguageServerParams( JavaProjectFinder projectFinder, ProjectObserver projectObserver, SpringPropertyIndexProvider indexProvider, - TypeUtilProvider typeUtilProvider + TypeUtilProvider typeUtilProvider, + RunningAppProvider runningAppProvider, + Duration watchDogInterval ) { super(); this.projectFinder = projectFinder; this.projectObserver = projectObserver; this.indexProvider = indexProvider; this.typeUtilProvider = typeUtilProvider; + this.runningAppProvider = runningAppProvider; + this.watchDogInterval = watchDogInterval; } public static LSFactory createDefault() { @@ -79,7 +93,9 @@ public class BootLanguageServerParams { javaProjectFinder.filter(BootProjectUtil::isBootProject), projectObserver, indexProvider, - (IDocument doc) -> new TypeUtil(javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri()))) + (IDocument doc) -> new TypeUtil(javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri()))), + RunningAppProvider.DEFAULT, + SpringLiveHoverWatchdog.DEFAULT_INTERVAL ); }; } @@ -102,7 +118,9 @@ public class BootLanguageServerParams { javaProjectFinder.filter(BootProjectUtil::isBootProject), projectObserver, indexProvider, - typeUtilProvider + typeUtilProvider, + RunningAppProvider.NULL, + SpringLiveHoverWatchdog.DEFAULT_INTERVAL ); }; } @@ -128,9 +146,10 @@ public class BootLanguageServerParams { javaProjectFinder.filter(BootProjectUtil::isBootProject), projectObserver, indexProvider, - (IDocument doc) -> new TypeUtil(javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri()))) + (IDocument doc) -> new TypeUtil(javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri()))), + RunningAppProvider.NULL, + SpringLiveHoverWatchdog.DEFAULT_INTERVAL ); }; } - } diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java index c1004eed6..9445ba2c4 100644 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java +++ b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java @@ -21,6 +21,7 @@ import org.eclipse.lsp4j.InitializeParams; import org.eclipse.lsp4j.InitializeResult; import org.eclipse.lsp4j.Registration; import org.eclipse.lsp4j.RegistrationParams; +import org.springframework.ide.vscode.boot.BootLanguageServerParams; 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; @@ -41,7 +42,6 @@ import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider; import org.springframework.ide.vscode.boot.java.livehover.ActiveProfilesProvider; import org.springframework.ide.vscode.boot.java.livehover.BeanInjectedIntoHoverProvider; import org.springframework.ide.vscode.boot.java.livehover.ComponentInjectionsHoverProvider; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndexProvider; 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; @@ -55,6 +55,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.SpringPropertyIndexProvider; import org.springframework.ide.vscode.commons.languageserver.HighlightParams; import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine; import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngineAdapter; @@ -93,9 +94,9 @@ public class BootJavaLanguageServer extends SimpleLanguageServer { private JavaProjectFinder projectFinder; - public BootJavaLanguageServer(LSFactory _params) { + public BootJavaLanguageServer(LSFactory _params) { super("boot-java"); - BootJavaLanguageServerParams serverParams = _params.create(this); + BootLanguageServerParams serverParams = _params.create(this); this.config = new BootJavaConfig(); diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerParams.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerParams.java deleted file mode 100644 index 07aba4ebc..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServerParams.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017 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.java; - -import java.nio.file.Paths; -import java.time.Duration; -import java.util.Arrays; - -import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; -import org.springframework.ide.vscode.boot.java.metadata.DefaultSpringPropertyIndexProvider; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndexProvider; -import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; -import org.springframework.ide.vscode.commons.gradle.GradleCore; -import org.springframework.ide.vscode.commons.gradle.GradleProjectCache; -import org.springframework.ide.vscode.commons.gradle.GradleProjectFinder; -import org.springframework.ide.vscode.commons.java.BootProjectUtil; -import org.springframework.ide.vscode.commons.java.IJavaProject; -import org.springframework.ide.vscode.commons.languageserver.java.CompositeJavaProjectFinder; -import org.springframework.ide.vscode.commons.languageserver.java.CompositeProjectOvserver; -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.util.LSFactory; -import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; -import org.springframework.ide.vscode.commons.maven.MavenCore; -import org.springframework.ide.vscode.commons.maven.java.MavenProjectCache; -import org.springframework.ide.vscode.commons.maven.java.MavenProjectFinder; - -public class BootJavaLanguageServerParams { - - public final JavaProjectFinder projectFinder; - public final ProjectObserver projectObserver; - public final SpringPropertyIndexProvider indexProvider; - public final RunningAppProvider runningAppProvider; - public final Duration watchDogInterval; - - public BootJavaLanguageServerParams( - JavaProjectFinder projectFinder, - ProjectObserver projectObserver, - SpringPropertyIndexProvider indexProvider, - RunningAppProvider runningAppProvider, - Duration watchDogInterval - ) { - super(); - this.projectFinder = projectFinder; - this.projectObserver = projectObserver; - this.indexProvider = indexProvider; - this.runningAppProvider = runningAppProvider; - this.watchDogInterval = watchDogInterval; - } - - public static LSFactory createDefault() { - return (SimpleLanguageServer server) -> { - // Initialize project finders, project caches and project observers - CompositeJavaProjectFinder javaProjectFinder = new CompositeJavaProjectFinder(); - MavenProjectCache mavenProjectCache = new MavenProjectCache(server, MavenCore.getDefault(), true, Paths.get(IJavaProject.PROJECT_CACHE_FOLDER)); - javaProjectFinder.addJavaProjectFinder(new MavenProjectFinder(mavenProjectCache)); - - GradleProjectCache gradleProjectCache = new GradleProjectCache(server, GradleCore.getDefault(), true, Paths.get(IJavaProject.PROJECT_CACHE_FOLDER)); - javaProjectFinder.addJavaProjectFinder(new GradleProjectFinder(gradleProjectCache)); - - CompositeProjectOvserver projectObserver = new CompositeProjectOvserver(Arrays.asList(mavenProjectCache, gradleProjectCache)); - - return new BootJavaLanguageServerParams( - javaProjectFinder.filter(BootProjectUtil::isBootProject), - projectObserver, - new DefaultSpringPropertyIndexProvider(javaProjectFinder, projectObserver), - RunningAppProvider.DEFAULT, - SpringLiveHoverWatchdog.DEFAULT_INTERVAL - ); - }; - } - - public static LSFactory createTestDefault() { - return (SimpleLanguageServer server) -> { - // Initialize project finders, project caches and project observers - CompositeJavaProjectFinder javaProjectFinder = new CompositeJavaProjectFinder(); - MavenProjectCache mavenProjectCache = new MavenProjectCache(server, MavenCore.getDefault(), false, null); - mavenProjectCache.setAlwaysFireEventOnFileChanged(true); - javaProjectFinder.addJavaProjectFinder(new MavenProjectFinder(mavenProjectCache)); - - GradleProjectCache gradleProjectCache = new GradleProjectCache(server, GradleCore.getDefault(), false, null); - gradleProjectCache.setAlwaysFireEventOnFileChanged(true); - javaProjectFinder.addJavaProjectFinder(new GradleProjectFinder(gradleProjectCache)); - - CompositeProjectOvserver projectObserver = new CompositeProjectOvserver(Arrays.asList(mavenProjectCache, gradleProjectCache)); - - return new BootJavaLanguageServerParams( - javaProjectFinder.filter(BootProjectUtil::isBootProject), - projectObserver, - new DefaultSpringPropertyIndexProvider(javaProjectFinder, projectObserver), - RunningAppProvider.DEFAULT, - SpringLiveHoverWatchdog.DEFAULT_INTERVAL - ); - }; - } - -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/Main.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/Main.java index 9b1aaf986..15bd557f4 100644 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/Main.java +++ b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/Main.java @@ -12,6 +12,7 @@ package org.springframework.ide.vscode.boot.java; import java.io.IOException; +import org.springframework.ide.vscode.boot.BootLanguageServerParams; import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; import org.springframework.ide.vscode.commons.util.LogRedirect; @@ -30,7 +31,7 @@ public class Main { } LaunguageServerApp.start(serverName, () -> { SimpleLanguageServer server = new BootJavaLanguageServer( - BootJavaLanguageServerParams.createDefault() + BootLanguageServerParams.createDefault() ); return server; }); diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/DefaultSpringPropertyIndexProvider.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/DefaultSpringPropertyIndexProvider.java deleted file mode 100644 index 647dff5d6..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/DefaultSpringPropertyIndexProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2017 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.java.metadata; - -import java.util.Optional; - -import org.eclipse.lsp4j.TextDocumentIdentifier; -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataProperty; -import org.springframework.ide.vscode.commons.java.IJavaProject; -import org.springframework.ide.vscode.commons.languageserver.ProgressService; -import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; -import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver; -import org.springframework.ide.vscode.commons.util.FuzzyMap; -import org.springframework.ide.vscode.commons.util.text.IDocument; - -public class DefaultSpringPropertyIndexProvider implements SpringPropertyIndexProvider { - - private static final FuzzyMap EMPTY_INDEX = new SpringPropertyIndex(null); - - private JavaProjectFinder javaProjectFinder; - private SpringPropertiesIndexManager indexManager; - - private ProgressService progressService = (id, msg) -> { - /* ignore */ }; - - public DefaultSpringPropertyIndexProvider(JavaProjectFinder javaProjectFinder, ProjectObserver projectObserver) { - this.javaProjectFinder = javaProjectFinder; - this.indexManager = new SpringPropertiesIndexManager(projectObserver); - } - - public DefaultSpringPropertyIndexProvider(JavaProjectFinder javaProjectFinder) { - this(javaProjectFinder, null); - } - - @Override - public FuzzyMap getIndex(IDocument doc) { - Optional jp = javaProjectFinder.find(new TextDocumentIdentifier(doc.getUri())); - if (jp.isPresent()) { - return indexManager.get(jp.get(), progressService); - } - return EMPTY_INDEX; - } - - public void setProgressService(ProgressService progressService) { - this.progressService = progressService; - } - -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/PropertiesLoader.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/PropertiesLoader.java deleted file mode 100644 index 6c497064e..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/PropertiesLoader.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2017 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.java.metadata; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Arrays; -import java.util.jar.JarFile; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.zip.ZipEntry; - -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataRepository; -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataRepositoryJsonBuilder; -import org.springframework.ide.vscode.commons.java.IClasspath; - -public class PropertiesLoader { - - private static final String MAIN_SPRING_CONFIGURATION_METADATA_JSON = "META-INF/spring-configuration-metadata.json"; - - public static final String ADDITIONAL_SPRING_CONFIGURATION_METADATA_JSON = "META-INF/additional-spring-configuration-metadata.json"; - - /** - * The default classpath location for config metadata loaded when scanning .jar files on the classpath. - */ - public static final String[] JAR_META_DATA_LOCATIONS = { - MAIN_SPRING_CONFIGURATION_METADATA_JSON - //Not scanning 'additional' metadata because it integrated already in the main data. - }; - - /** - * The default classpath location for config metadata loaded when scanning project output folders. - */ - public static final String[] PROJECT_META_DATA_LOCATIONS = { - MAIN_SPRING_CONFIGURATION_METADATA_JSON, - ADDITIONAL_SPRING_CONFIGURATION_METADATA_JSON - }; - - private static final Logger LOG = Logger.getLogger(PropertiesLoader.class.getName()); - - private ConfigurationMetadataRepositoryJsonBuilder builder = ConfigurationMetadataRepositoryJsonBuilder.create(); - - public ConfigurationMetadataRepository load(IClasspath classPath) { - try { - classPath.getClasspathEntries().forEach(entry -> { - File fileEntry = entry.toFile(); - if (fileEntry.exists()) { - if (fileEntry.isDirectory()) { - loadFromOutputFolder(entry); - } else { - loadFromJar(entry); - } - } - }); - } catch (Exception e) { - LOG.log(Level.SEVERE, "Failed to retrieve classpath", e); - } - ConfigurationMetadataRepository repository = builder.build(); - return repository; - } - - private void loadFromOutputFolder(Path outputFolderPath) { - if (outputFolderPath != null && Files.exists(outputFolderPath)) { - Arrays.stream(PROJECT_META_DATA_LOCATIONS).forEach(mdLoc -> { - loadFromJsonFile(outputFolderPath.resolve(mdLoc)); - }); - } - } - - private void loadFromJsonFile(Path mdf) { - if (Files.exists(mdf)) { - InputStream is = null; - try { - is = Files.newInputStream(mdf); - loadFromInputStream(mdf, is); - } catch (Exception e) { - LOG.log(Level.SEVERE, "Error loading file '" + mdf + "'", e); - } finally { - if (is!=null) { - try { - is.close(); - } catch (IOException e) { - //ignore - } - } - } - } - } - - private void loadFromJar(Path f) { - JarFile jarFile = null; - try { - jarFile = new JarFile(f.toFile()); - //jarDump(jarFile); - for (String loc : JAR_META_DATA_LOCATIONS) { - ZipEntry e = jarFile.getEntry(loc); - if (e!=null) { - loadFrom(jarFile, e); - } - } - } catch (Throwable e) { - LOG.log(Level.SEVERE, "Error loading JAR file", e); - } finally { - if (jarFile!=null) { - try { - jarFile.close(); - } catch (IOException e) { - } - } - } - } - - - private void loadFrom(JarFile jarFile, ZipEntry ze) { - InputStream is = null; - try { - is = jarFile.getInputStream(ze); - loadFromInputStream(jarFile, is); - } catch (Throwable e) { - LOG.log(Level.SEVERE, "Error loading JAR file", e); - } finally { - if (is!=null) { - try { - is.close(); - } catch (IOException e) { - } - } - } - } - - private void loadFromInputStream(Object origin, InputStream is) throws IOException { - builder.withJsonResource(origin, is); - } - -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertiesIndexManager.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertiesIndexManager.java deleted file mode 100644 index 8fa3e1787..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertiesIndexManager.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014, 2017 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.java.metadata; - -import java.util.HashMap; -import java.util.Map; - -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataProperty; -import org.springframework.ide.vscode.commons.java.IJavaProject; -import org.springframework.ide.vscode.commons.languageserver.ProgressService; -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.util.FuzzyMap; - -/** - * Support for Reconciling, Content Assist and Hover Text in spring properties - * file all make use of a per-project index of spring properties metadata extracted - * from project's classpath. This Index manager is responsible for keeping at most - * one index per-project and to keep the index up-to-date. - * - * @author Kris De Volder - */ -public class SpringPropertiesIndexManager { - - private Map indexes = null; - private static int progressIdCt = 0; - - public SpringPropertiesIndexManager(ProjectObserver projectObserver) { - if (projectObserver != null) { - projectObserver.addListener(new Listener() { - - @Override - public void created(IJavaProject project) { - // ignore - } - - @Override - public void changed(IJavaProject project) { - invalidateIndex(project); - } - - @Override - public void deleted(IJavaProject project) { - invalidateIndex(project); - } - - }); - } - } - - public synchronized SpringPropertyIndex invalidateIndex(IJavaProject project) { - if (indexes != null) { - return indexes.remove(project); - } - return null; - } - - public synchronized FuzzyMap get(IJavaProject project, ProgressService progressService) { - if (indexes==null) { - indexes = new HashMap<>(); - } - - SpringPropertyIndex index = indexes.get(project); - if (index==null) { - String progressId = getProgressId(); - if (progressService != null) { - progressService.progressEvent(progressId, "Indexing Spring Boot Properties..."); - } - - index = new SpringPropertyIndex(project.getClasspath()); - indexes.put(project, index); - - if (progressService != null) { - progressService.progressEvent(progressId, null); - } - } - return index; - } - - private static synchronized String getProgressId() { - return DefaultSpringPropertyIndexProvider.class.getName()+ (progressIdCt++); - } - -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndex.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndex.java deleted file mode 100644 index b0d004619..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndex.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015, 2017 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.java.metadata; - -import java.util.Collection; - -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataProperty; -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataRepository; -import org.springframework.ide.vscode.commons.java.IClasspath; -import org.springframework.ide.vscode.commons.util.FuzzyMap; - -public class SpringPropertyIndex extends FuzzyMap { - - public SpringPropertyIndex(IClasspath projectPath) { - if (projectPath!=null) { - PropertiesLoader loader = new PropertiesLoader(); - ConfigurationMetadataRepository metadata = loader.load(projectPath); - Collection allEntries = metadata.getAllProperties().values(); - for (ConfigurationMetadataProperty item : allEntries) { - add(item); - } - } - } - - @Override - protected String getKey(ConfigurationMetadataProperty entry) { - return entry.getId(); - } - -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndexProvider.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndexProvider.java deleted file mode 100644 index f476d5467..000000000 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/metadata/SpringPropertyIndexProvider.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015, 2017 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.java.metadata; - -import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataProperty; -import org.springframework.ide.vscode.commons.util.FuzzyMap; -import org.springframework.ide.vscode.commons.util.text.IDocument; - - -@FunctionalInterface -public interface SpringPropertyIndexProvider { - FuzzyMap getIndex(IDocument doc); -} diff --git a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java index 2ec61f78b..92f9d72ae 100644 --- a/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java +++ b/headless-services/commons/commons-boot/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java @@ -24,7 +24,8 @@ import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.StringLiteral; import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMetadataProperty; import org.springframework.ide.vscode.boot.java.handlers.CompletionProvider; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.PropertyInfo; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits; import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionProposal; import org.springframework.ide.vscode.commons.util.BadLocationException; @@ -50,13 +51,13 @@ public class ValueCompletionProcessor implements CompletionProvider { List result = new ArrayList<>(); try { - FuzzyMap index = indexProvider.getIndex(doc); + FuzzyMap index = indexProvider.getIndex(doc); // case: @Value(<*>) if (node == annotation && doc.get(offset - 1, 2).endsWith("()")) { - List> matches = findMatches("", index); + List> matches = findMatches("", index); - for (Match match : matches) { + for (Match match : matches) { DocumentEdits edits = new DocumentEdits(doc); edits.replace(offset, offset, "\"${" + match.data.getId() + "}\""); @@ -96,7 +97,7 @@ public class ValueCompletionProcessor implements CompletionProvider { } private void computeProposalsForSimpleName(ASTNode node, List completions, int offset, - IDocument doc, FuzzyMap index) { + IDocument doc, FuzzyMap index) { String prefix = identifyPropertyPrefix(node.toString(), offset - node.getStartPosition()); int startOffset = node.getStartPosition(); @@ -105,9 +106,9 @@ public class ValueCompletionProcessor implements CompletionProvider { String proposalPrefix = "\""; String proposalPostfix = "\""; - List> matches = findMatches(prefix, index); + List> matches = findMatches(prefix, index); - for (Match match : matches) { + for (Match match : matches) { DocumentEdits edits = new DocumentEdits(doc); edits.replace(startOffset, endOffset, proposalPrefix + "${" + match.data.getId() + "}" + proposalPostfix); @@ -118,7 +119,7 @@ public class ValueCompletionProcessor implements CompletionProvider { } private void computeProposalsForStringLiteral(ASTNode node, List completions, int offset, - IDocument doc, FuzzyMap index) throws BadLocationException { + IDocument doc, FuzzyMap index) throws BadLocationException { String prefix = identifyPropertyPrefix(doc.get(node.getStartPosition() + 1, offset - (node.getStartPosition() + 1)), offset - (node.getStartPosition() + 1)); int startOffset = offset - prefix.length(); @@ -140,9 +141,9 @@ public class ValueCompletionProcessor implements CompletionProvider { String fullNodeContent = doc.get(node.getStartPosition(), node.getLength()); String postCompletion = isClosingBracketMissing(fullNodeContent + preCompletion) ? "}" : ""; - List> matches = findMatches(prefix, index); + List> matches = findMatches(prefix, index); - for (Match match : matches) { + for (Match match : matches) { DocumentEdits edits = new DocumentEdits(doc); edits.replace(startOffset, endOffset, preCompletion + match.data.getId() + postCompletion); @@ -183,8 +184,8 @@ public class ValueCompletionProcessor implements CompletionProvider { return result; } - private List> findMatches(String prefix, FuzzyMap index) { - List> matches = index.find(camelCaseToHyphens(prefix)); + private List> findMatches(String prefix, FuzzyMap index) { + List> matches = index.find(camelCaseToHyphens(prefix)); return matches; } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/autowired/test/AutowiredHoverProviderTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/autowired/test/AutowiredHoverProviderTest.java index eef2e262b..ccaf6a06b 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/autowired/test/AutowiredHoverProviderTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/autowired/test/AutowiredHoverProviderTest.java @@ -22,7 +22,7 @@ import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansMod import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness.CustomizableProjectContent; @@ -58,7 +58,7 @@ public class AutowiredHoverProviderTest { }; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @@ -66,7 +66,7 @@ public class AutowiredHoverProviderTest { @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java index 60248a5a2..c25e245eb 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java @@ -21,7 +21,7 @@ import org.springframework.ide.vscode.boot.java.beans.ComponentSymbolProvider; import org.springframework.ide.vscode.boot.java.beans.test.SpringIndexerHarness.TestSymbolInfo; import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -30,7 +30,7 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; public class SpringIndexerBeansTest { private AnnotationHierarchyAwareLookup symbolProviders; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private JavaProjectFinder projectFinder; @Before @@ -39,7 +39,7 @@ public class SpringIndexerBeansTest { symbolProviders.put(Annotations.BEAN, new BeansSymbolProvider()); symbolProviders.put(Annotations.COMPONENT, new ComponentSymbolProvider()); - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); projectFinder = harness.getProjectFinder(); harness.intialize(new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI())); } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java index 6dce8ed36..bb7b5e5b8 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java @@ -21,7 +21,7 @@ import org.springframework.ide.vscode.boot.java.beans.ComponentSymbolProvider; import org.springframework.ide.vscode.boot.java.beans.test.SpringIndexerHarness.TestSymbolInfo; import org.springframework.ide.vscode.boot.java.handlers.SymbolProvider; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -30,7 +30,7 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; public class SpringIndexerFunctionBeansTest { private AnnotationHierarchyAwareLookup symbolProviders; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private JavaProjectFinder projectFinder; @Before @@ -39,7 +39,7 @@ public class SpringIndexerFunctionBeansTest { symbolProviders.put(Annotations.BEAN, new BeansSymbolProvider()); symbolProviders.put(Annotations.COMPONENT, new ComponentSymbolProvider()); - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); projectFinder = harness.getProjectFinder(); harness.intialize(new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI())); } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java index db40a7981..643d594f6 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java @@ -23,7 +23,7 @@ import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; @@ -36,7 +36,7 @@ public class ConditionalsLiveHoverTest { public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) .build(); diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActiveProfilesHoverTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActiveProfilesHoverTest.java index f244d3dfe..b3c612214 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActiveProfilesHoverTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActiveProfilesHoverTest.java @@ -16,13 +16,13 @@ import org.junit.Before; import org.junit.Test; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; public class ActiveProfilesHoverTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @@ -30,7 +30,7 @@ public class ActiveProfilesHoverTest { @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActuatorWarningHoverTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActuatorWarningHoverTest.java index eb5f1ebad..8a7018132 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActuatorWarningHoverTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ActuatorWarningHoverTest.java @@ -17,7 +17,7 @@ import org.junit.Test; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; @@ -26,14 +26,14 @@ public class ActuatorWarningHoverTest { private static final String ACTUATOR_PROJECT = "empty-boot-15-web-app"; private static final String NO_ACTUATOR_PROJECT = "no-actuator-boot-15-web-app"; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java index e53f59788..7e9824f03 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java @@ -23,7 +23,7 @@ import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansMod import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness.CustomizableProjectContent; @@ -41,7 +41,7 @@ public class BeanInjectedIntoHoverProviderTest { ); }; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @@ -49,7 +49,7 @@ public class BeanInjectedIntoHoverProviderTest { @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java index 729ff38ba..85937f807 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java @@ -22,7 +22,7 @@ import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansMod import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness.CustomizableProjectContent; @@ -55,7 +55,7 @@ public class ComponentInjectionsHoverProviderTest { }; - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @@ -63,7 +63,7 @@ public class ComponentInjectionsHoverProviderTest { @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/FunctionInjectionsHoverProviderTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/FunctionInjectionsHoverProviderTest.java index 900e3fb79..ec1cc4c5c 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/FunctionInjectionsHoverProviderTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/FunctionInjectionsHoverProviderTest.java @@ -19,13 +19,13 @@ import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansMod import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; public class FunctionInjectionsHoverProviderTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private ProjectsHarness projects = ProjectsHarness.INSTANCE; private MockRunningAppProvider mockAppProvider; @@ -33,7 +33,7 @@ public class FunctionInjectionsHoverProviderTest { @Before public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java index 7ed830c02..2c778210c 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java @@ -21,7 +21,7 @@ import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.MockRunningAppProvider; import org.springframework.ide.vscode.project.harness.ProjectsHarness; @@ -34,7 +34,7 @@ public class RequestMappingLiveHoverTest { public void setup() throws Exception { mockAppProvider = new MockRunningAppProvider(); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .runningAppProvider(mockAppProvider.provider) .watchDogInterval(Duration.ofMillis(100)) .build(); diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java index de0b7f78e..9510c9141 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java @@ -20,7 +20,7 @@ import java.util.List; import org.eclipse.lsp4j.SymbolInformation; import org.junit.Before; import org.junit.Test; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -28,11 +28,11 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; */ public class RequestMappingSymbolProviderTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; @Before public void setup() throws Exception { - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); } @Test diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/scope/test/ScopeCompletionTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/scope/test/ScopeCompletionTest.java index 60ccde49e..3811c84e3 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/scope/test/ScopeCompletionTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/scope/test/ScopeCompletionTest.java @@ -23,7 +23,7 @@ import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; import org.springframework.ide.vscode.languageserver.testharness.TestAsserts; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -31,13 +31,13 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; */ public class ScopeCompletionTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private Editor editor; @Before public void setup() throws Exception { IJavaProject testProject = ProjectsHarness.INSTANCE.mavenProject("test-annotations"); - harness = BootLanguageServerHarness.builder().mockDefaults().build(); + harness = BootJavaLanguageServerHarness.builder().mockDefaults().build(); harness.useProject(testProject); harness.intialize(null); } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java index d54baf387..95d49f3e7 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java @@ -30,7 +30,7 @@ import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.maven.MavenCore; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.commons.util.text.TextDocument; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -41,16 +41,16 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness; */ public class CompilationUnitCacheTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; @Before public void setup() throws Exception { - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); } @Test public void cu_cached() throws Exception { - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults().build(); harness.useProject(new IJavaProject() { @Override @@ -91,7 +91,7 @@ public class CompilationUnitCacheTest { @Test public void cu_cache_invalidated_by_doc_change() throws Exception { - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults().build(); harness.useProject(new IJavaProject() { @Override @@ -122,7 +122,7 @@ public class CompilationUnitCacheTest { @Test public void cu_cache_invalidated_by_doc_close() throws Exception { - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults().build(); harness.useProject(new IJavaProject() { @Override diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java index 2cdb9a650..dae69af98 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java @@ -35,7 +35,7 @@ import org.springframework.ide.vscode.boot.java.requestmapping.RequestMappingSym import org.springframework.ide.vscode.boot.java.utils.SpringIndexer; import org.springframework.ide.vscode.commons.maven.MavenCore; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -55,7 +55,7 @@ public class SpringIndexerTest { public void setup() throws Exception { symbolProviders = new HashMap<>(); symbolProviders.put(Annotations.SPRING_REQUEST_MAPPING, new RequestMappingSymbolProvider()); - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); } @Test diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java index 38fc7f763..14a1aa3f2 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java @@ -21,13 +21,13 @@ import java.io.File; import org.junit.Before; import org.junit.Test; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer; -import org.springframework.ide.vscode.boot.java.metadata.DefaultSpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider; import org.springframework.ide.vscode.commons.languageserver.ProgressService; import org.springframework.ide.vscode.commons.maven.MavenCore; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.commons.util.text.TextDocument; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; /** @@ -44,7 +44,7 @@ public class SpringPropertyIndexTest { @Before public void setup() throws Exception { - harness = BootLanguageServerHarness.builder().build(); + harness = BootJavaLanguageServerHarness.builder().build(); } @Test diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java index c210cd612..2bbce2989 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueCompletionTest.java @@ -25,7 +25,7 @@ import org.springframework.ide.vscode.boot.java.value.ValueCompletionProcessor; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.Editor; -import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness; +import org.springframework.ide.vscode.project.harness.BootJavaLanguageServerHarness; import org.springframework.ide.vscode.project.harness.ProjectsHarness; import org.springframework.ide.vscode.project.harness.PropertyIndexHarness; @@ -34,7 +34,7 @@ import org.springframework.ide.vscode.project.harness.PropertyIndexHarness; */ public class ValueCompletionTest { - private BootLanguageServerHarness harness; + private BootJavaLanguageServerHarness harness; private IJavaProject testProject; private Editor editor; @@ -48,7 +48,7 @@ public class ValueCompletionTest { // But it is not used in the indexProvider. //This is a bit odd... but we preserved the strangeness how it was. testProject = ProjectsHarness.INSTANCE.mavenProject("test-annotations"); - harness = BootLanguageServerHarness.builder() + harness = BootJavaLanguageServerHarness.builder() .mockDefaults() .projectFinder(d -> Optional.ofNullable(getTestProject())) .build(); diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java index b536aeac3..e1ed08b03 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java @@ -28,6 +28,8 @@ import org.springframework.ide.vscode.boot.BootLanguageServer; import org.springframework.ide.vscode.boot.BootLanguageServerParams; import org.springframework.ide.vscode.boot.editor.harness.AbstractPropsEditorTest; import org.springframework.ide.vscode.boot.editor.harness.StyledStringMatcher; +import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; +import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; import org.springframework.ide.vscode.boot.metadata.CachingValueProvider; import org.springframework.ide.vscode.boot.metadata.PropertiesLoader; import org.springframework.ide.vscode.commons.java.IJavaProject; @@ -1587,9 +1589,16 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest { @Override protected SimpleLanguageServer newLanguageServer() { - ComposableLanguageServer server = BootLanguageServer.create( - s -> new BootLanguageServerParams(javaProjectFinder, null, md.getIndexProvider(), - typeUtilProvider)); + ComposableLanguageServer server = BootLanguageServer.create( + s -> new BootLanguageServerParams( + javaProjectFinder, + null, + md.getIndexProvider(), + typeUtilProvider, + RunningAppProvider.NULL, + SpringLiveHoverWatchdog.DEFAULT_INTERVAL + ) + ); server.setMaxCompletionsNumber(-1); return server.getServer(); } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java index 238623f42..31bbd4a0f 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java @@ -25,8 +25,11 @@ import org.springframework.ide.vscode.boot.BootLanguageServer; import org.springframework.ide.vscode.boot.BootLanguageServerParams; import org.springframework.ide.vscode.boot.editor.harness.AbstractPropsEditorTest; import org.springframework.ide.vscode.boot.editor.harness.StyledStringMatcher; +import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; +import org.springframework.ide.vscode.boot.java.utils.SpringLiveHoverWatchdog; import org.springframework.ide.vscode.boot.metadata.CachingValueProvider; import org.springframework.ide.vscode.boot.metadata.PropertyInfo; +import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerComponents; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.composable.ComposableLanguageServer; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; @@ -3706,9 +3709,16 @@ public class ApplicationYamlEditorTest extends AbstractPropsEditorTest { @Override protected SimpleLanguageServer newLanguageServer() { - ComposableLanguageServer server = BootLanguageServer.create( - s -> new BootLanguageServerParams(javaProjectFinder, null, md.getIndexProvider(), - typeUtilProvider)); + ComposableLanguageServer server = BootLanguageServer.create( + s -> new BootLanguageServerParams( + javaProjectFinder, + null, + md.getIndexProvider(), + typeUtilProvider, + RunningAppProvider.NULL, + SpringLiveHoverWatchdog.DEFAULT_INTERVAL + ) + ); server.setMaxCompletionsNumber(-1); return server.getServer(); } diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootJavaLanguageServerHarness.java similarity index 80% rename from headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java rename to headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootJavaLanguageServerHarness.java index 522aa77d2..cc75a9f0e 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/BootJavaLanguageServerHarness.java @@ -14,17 +14,18 @@ import java.nio.file.Path; import java.time.Duration; import org.junit.Assert; +import org.springframework.ide.vscode.boot.BootLanguageServerParams; import org.springframework.ide.vscode.boot.java.BootJavaLanguageServer; -import org.springframework.ide.vscode.boot.java.BootJavaLanguageServerParams; import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.types.TypeUtilProvider; 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; import org.springframework.ide.vscode.commons.languageserver.util.LSFactory; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -public class BootLanguageServerHarness extends LanguageServerHarness { +public class BootJavaLanguageServerHarness extends LanguageServerHarness { private PropertyIndexHarness indexHarness; private final JavaProjectFinder projectFinder = (doc) -> getServerWrapper().getProjectFinder().find(doc); @@ -43,16 +44,17 @@ public class BootLanguageServerHarness extends LanguageServerHarness defaultsFactory = BootJavaLanguageServerParams.createTestDefault(); + LSFactory defaultsFactory = BootLanguageServerParams.createTestDefault(); private JavaProjectFinder projectFinder = null; private ProjectObserver projectObserver = null; private SpringPropertyIndexProvider indexProvider = null; private RunningAppProvider runningAppProvider = null; private PropertyIndexHarness indexHarness = null; private Duration watchDogInterval = null; + private TypeUtilProvider typeUtilProvider = null; - public BootLanguageServerHarness build() throws Exception { - BootLanguageServerHarness harness = new BootLanguageServerHarness(this); + public BootJavaLanguageServerHarness build() throws Exception { + BootJavaLanguageServerHarness harness = new BootJavaLanguageServerHarness(this); return harness; } @@ -89,14 +91,15 @@ public class BootLanguageServerHarness extends LanguageServerHarness { - LSFactory params = (server) -> { - BootJavaLanguageServerParams defaults = BootJavaLanguageServerParams.createTestDefault().create(server); - return new BootJavaLanguageServerParams( + LSFactory params = (server) -> { + BootLanguageServerParams defaults = BootLanguageServerParams.createTestDefault().create(server); + return new BootLanguageServerParams( builder.projectFinder==null?defaults.projectFinder:builder.projectFinder, builder.projectObserver==null?defaults.projectObserver:builder.projectObserver, builder.indexProvider==null?defaults.indexProvider:builder.indexProvider, + builder.typeUtilProvider==null?defaults.typeUtilProvider:builder.typeUtilProvider, builder.runningAppProvider==null?defaults.runningAppProvider:builder.runningAppProvider, builder.watchDogInterval==null?defaults.watchDogInterval:builder.watchDogInterval ); diff --git a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/PropertyIndexHarness.java b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/PropertyIndexHarness.java index 4702f9a97..b3b011417 100644 --- a/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/PropertyIndexHarness.java +++ b/headless-services/commons/commons-boot/src/test/java/org/springframework/ide/vscode/project/harness/PropertyIndexHarness.java @@ -19,8 +19,10 @@ import org.springframework.ide.vscode.boot.configurationmetadata.ConfigurationMe import org.springframework.ide.vscode.boot.configurationmetadata.Deprecation; import org.springframework.ide.vscode.boot.configurationmetadata.ValueHint; import org.springframework.ide.vscode.boot.configurationmetadata.ValueProvider; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndex; -import org.springframework.ide.vscode.boot.java.metadata.SpringPropertyIndexProvider; +import org.springframework.ide.vscode.boot.metadata.PropertyInfo; +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.commons.java.IClasspath; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; @@ -38,11 +40,11 @@ public class PropertyIndexHarness { protected final SpringPropertyIndexProvider indexProvider = new SpringPropertyIndexProvider() { @Override - public FuzzyMap getIndex(IDocument doc) { + public FuzzyMap getIndex(IDocument doc) { synchronized (PropertyIndexHarness.this) { if (index==null) { IClasspath classpath = testProject == null ? null : testProject.getClasspath(); - index = new SpringPropertyIndex(classpath); + index = new SpringPropertyIndex(ValueProviderRegistry.getDefault(), classpath); for (ConfigurationMetadataProperty propertyInfo : datas.values()) { index.add(propertyInfo); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java index c0b05e351..741e23020 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java @@ -12,8 +12,6 @@ package org.springframework.ide.vscode.boot; import java.io.IOException; -import org.springframework.ide.vscode.boot.properties.BootLanguageServer; -import org.springframework.ide.vscode.boot.properties.BootLanguageServerParams; import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp; import org.springframework.ide.vscode.commons.util.LogRedirect;