diff --git a/headless-services/boot-java-language-server/.classpath b/headless-services/boot-java-language-server/.classpath
index d46faf10e..8131be0e5 100644
--- a/headless-services/boot-java-language-server/.classpath
+++ b/headless-services/boot-java-language-server/.classpath
@@ -10,11 +10,13 @@
+
+
diff --git a/headless-services/boot-java-language-server/pom.xml b/headless-services/boot-java-language-server/pom.xml
index d2568be29..7fd5a00ca 100644
--- a/headless-services/boot-java-language-server/pom.xml
+++ b/headless-services/boot-java-language-server/pom.xml
@@ -114,7 +114,7 @@
1.8
-
+
org.apache.maven.plugins
diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java
index a0f2e33ef..212573206 100644
--- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java
+++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaLanguageServer.java
@@ -64,6 +64,7 @@ import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcil
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
import org.springframework.ide.vscode.commons.languageserver.util.ReferencesHandler;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
+import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServerWrapper;
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.text.TextDocument;
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java
index 46156164e..60248a5a2 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java
@@ -46,7 +46,7 @@ public class SpringIndexerBeansTest {
@Test
public void testScanSimpleConfigurationClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -58,7 +58,7 @@ public class SpringIndexerBeansTest {
}
@Test public void testScanSpecialConfigurationClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -87,7 +87,7 @@ public class SpringIndexerBeansTest {
@Test
public void testScanSimpleComponentClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -98,7 +98,7 @@ public class SpringIndexerBeansTest {
}
@Test public void testScanSimpleControllerClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -109,7 +109,7 @@ public class SpringIndexerBeansTest {
}
@Test public void testScanRestControllerClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java
index 32866b260..6dce8ed36 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerFunctionBeansTest.java
@@ -46,7 +46,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testScanSimpleFunctionBean() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -59,7 +59,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testScanSimpleFunctionClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -71,7 +71,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testScanSpecializedFunctionClass() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -83,7 +83,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testScanSpecializedFunctionInterface() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -95,7 +95,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testNoSymbolForAbstractClasses() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -105,7 +105,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testNoSymbolForSubInterfaces() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
@@ -115,7 +115,7 @@ public class SpringIndexerFunctionBeansTest {
@Test
public void testScanInconsistentInterfaceHierarchy() throws Exception {
- SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServer(), projectFinder, symbolProviders);
+ SpringIndexerHarness indexer = new SpringIndexerHarness(harness.getServerWrapper(), projectFinder, symbolProviders);
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-beans/").toURI());
indexer.initialize(indexer.wsFolder(directory));
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java
index 8e5bd89de..de0b7f78e 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingSymbolProviderTest.java
@@ -42,7 +42,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/SimpleMappingClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertEquals(1, symbols.size());
assertTrue(containsSymbol(symbols, "@/greeting", docUri, 6, 1, 6, 29));
}
@@ -54,7 +54,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/ParentMappingClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertEquals(1, symbols.size());
assertTrue(containsSymbol(symbols, "@/parent/greeting -- GET", docUri, 8, 1, 8, 47));
}
@@ -66,7 +66,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/ParentMappingClass2.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertEquals(1, symbols.size());
assertTrue(containsSymbol(symbols, "@/parent2 -- GET,POST,DELETE", docUri, 8, 1, 8, 16));
}
@@ -78,7 +78,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/MultiRequestMappingClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertEquals(2, symbols.size());
assertTrue(containsSymbol(symbols, "@/hello1", docUri, 6, 1, 6, 44));
assertTrue(containsSymbol(symbols, "@/hello2", docUri, 6, 1, 6, 44));
@@ -91,7 +91,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/getData -- GET", docUri, 12, 1, 12, 24));
}
@@ -102,7 +102,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/deleteData -- DELETE",docUri, 20, 1, 20, 30));
}
@@ -113,7 +113,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/postData -- POST", docUri, 24, 1, 24, 26));
}
@@ -124,7 +124,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/putData -- PUT", docUri, 16, 1, 16, 24));
}
@@ -135,7 +135,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/patchData -- PATCH", docUri, 28, 1, 28, 28));
}
@@ -146,7 +146,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/getHello -- GET", docUri, 32, 1, 32, 61));
}
@@ -157,7 +157,7 @@ public class RequestMappingSymbolProviderTest {
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-request-mapping-symbols/").toURI());
String docUri = directory.toPath().resolve("src/main/java/org/test/RequestMethodClass.java").toUri().toString();
- List extends SymbolInformation> symbols = harness.getServer().getSpringIndexer().getSymbols(docUri);
+ List extends SymbolInformation> symbols = harness.getServerWrapper().getSpringIndexer().getSymbols(docUri);
assertTrue(containsSymbol(symbols, "@/postAndPutHello -- POST,PUT", docUri, 36, 1, 36, 76));
}
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java
index 23fb84e64..d54baf387 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/CompilationUnitCacheTest.java
@@ -86,7 +86,7 @@ public class CompilationUnitCacheTest {
}
private CompilationUnit getCompilationUnit(TextDocument doc) {
- return harness.getServer().getCompilationUnitCache().withCompilationUnit(doc, cu -> cu);
+ return harness.getServerWrapper().getCompilationUnitCache().withCompilationUnit(doc, cu -> cu);
}
@Test
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java
index d70cf9a27..2cdb9a650 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTest.java
@@ -47,7 +47,7 @@ public class SpringIndexerTest {
private LanguageServerHarness harness;
private SpringIndexer indexer() {
- return harness.getServer().getSpringIndexer();
+ return harness.getServerWrapper().getSpringIndexer();
}
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java
index c97423fce..38fc7f763 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringPropertyIndexTest.java
@@ -50,7 +50,7 @@ public class SpringPropertyIndexTest {
@Test
public void testPropertiesIndexRefreshOnProjectChange() throws Exception {
harness.intialize(new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-parent/test-annotation-indexing/").toURI()));
- propertyIndexProvider = (DefaultSpringPropertyIndexProvider) harness.getServer().getSpringPropertyIndexProvider();
+ propertyIndexProvider = (DefaultSpringPropertyIndexProvider) harness.getServerWrapper().getSpringPropertyIndexProvider();
File directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotation-indexing-parent/test-annotation-indexing/").toURI());
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java
index 484eae35b..522aa77d2 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/project/harness/BootLanguageServerHarness.java
@@ -27,7 +27,7 @@ import org.springframework.ide.vscode.languageserver.testharness.LanguageServerH
public class BootLanguageServerHarness extends LanguageServerHarness {
private PropertyIndexHarness indexHarness;
- private final JavaProjectFinder projectFinder = (doc) -> getServer().getProjectFinder().find(doc);
+ private final JavaProjectFinder projectFinder = (doc) -> getServerWrapper().getProjectFinder().find(doc);
/**
* Creates a builder and initializes it so that it sets up a test harness with
diff --git a/headless-services/boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java b/headless-services/boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java
index 9f3332e93..4e876b461 100644
--- a/headless-services/boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java
+++ b/headless-services/boot-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java
@@ -12,6 +12,8 @@ package org.springframework.ide.vscode.boot;
import java.io.IOException;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServer;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.util.LogRedirect;
@@ -29,7 +31,8 @@ public class Main {
LogRedirect.redirectToFile(serverName);
//TODO: wrap both BootProperties and BootJavaLanguageServers into a composite of some kind.
LaunguageServerApp.start(serverName,
- () -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()));
+ () -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()).getServer()
+ );
}
}
diff --git a/headless-services/boot-properties-language-server/.classpath b/headless-services/boot-properties-language-server/.classpath
index d46faf10e..8131be0e5 100644
--- a/headless-services/boot-properties-language-server/.classpath
+++ b/headless-services/boot-properties-language-server/.classpath
@@ -10,11 +10,13 @@
+
+
diff --git a/headless-services/boot-properties-language-server/pom.xml b/headless-services/boot-properties-language-server/pom.xml
index 2956f2068..4fcfb6319 100644
--- a/headless-services/boot-properties-language-server/pom.xml
+++ b/headless-services/boot-properties-language-server/pom.xml
@@ -101,7 +101,7 @@
1.8
-
+
org.apache.maven.plugins
diff --git a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/CachingValueProvider.java b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/CachingValueProvider.java
index 2b009422b..f2c494bdf 100644
--- a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/CachingValueProvider.java
+++ b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/CachingValueProvider.java
@@ -117,7 +117,7 @@ public abstract class CachingValueProvider implements ValueProviderStrategy {
// Log.log(e);
}
if (cached!=null) {
- System.out.println("cached "+subquery+": "+cached);
+// debug("cached "+subquery+": "+cached);
if (cached.isComplete) {
return cached.values
// .doOnNext((hint) -> debug("filter["+query+"]: "+hint.getValue()))
diff --git a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/PropertiesLoader.java b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/PropertiesLoader.java
index 40dc5fa0c..97a08a6f6 100644
--- a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/PropertiesLoader.java
+++ b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/metadata/PropertiesLoader.java
@@ -28,11 +28,11 @@ import org.springframework.ide.vscode.commons.java.IClasspath;
import org.springframework.ide.vscode.commons.util.Log;
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.
*/
@@ -48,15 +48,15 @@ public class PropertiesLoader {
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 -> {
- Log.info("Indexing "+entry);
+ //Log.info("Indexing "+entry);
File fileEntry = entry.toFile();
if (fileEntry.exists()) {
if (fileEntry.isDirectory()) {
@@ -72,7 +72,7 @@ public class PropertiesLoader {
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 -> {
@@ -100,7 +100,7 @@ public class PropertiesLoader {
}
}
}
-
+
private void loadFromJar(Path f) {
JarFile jarFile = null;
try {
@@ -145,5 +145,5 @@ public class PropertiesLoader {
private void loadFromInputStream(Object origin, InputStream is) throws IOException {
builder.withJsonResource(origin, is);
}
-
+
}
diff --git a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServer.java b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServer.java
similarity index 91%
rename from headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServer.java
rename to headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServer.java
index 2c8c2c831..8d5f4d114 100644
--- a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServer.java
+++ b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServer.java
@@ -8,7 +8,7 @@
* Contributors:
* Pivotal, Inc. - initial API and implementation
*******************************************************************************/
-package org.springframework.ide.vscode.boot;
+package org.springframework.ide.vscode.boot.properties;
import org.springframework.ide.vscode.boot.common.PropertyCompletionFactory;
import org.springframework.ide.vscode.boot.common.RelaxedNameConfig;
@@ -30,6 +30,7 @@ import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserve
import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine;
import org.springframework.ide.vscode.commons.languageserver.util.LSFactory;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
+import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServerWrapper;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleTextDocumentService;
import org.springframework.ide.vscode.commons.util.FuzzyMap;
import org.springframework.ide.vscode.commons.util.text.IDocument;
@@ -53,7 +54,7 @@ import com.google.common.collect.ImmutableList;
* @author Alex Boyko
*
*/
-public class BootPropertiesLanguageServer extends SimpleLanguageServer {
+public class BootPropertiesLanguageServer implements SimpleLanguageServerWrapper {
private static final String YML = ".yml";
private static final String PROPERTIES = ".properties";
@@ -78,11 +79,11 @@ public class BootPropertiesLanguageServer extends SimpleLanguageServer {
private final YamlASTProvider parser = new YamlParser(yaml);
private final YamlStructureProvider yamlStructureProvider= YamlStructureProvider.DEFAULT;
private YamlAssistContextProvider yamlAssistContextProvider;
+ private final SimpleLanguageServer server;
public BootPropertiesLanguageServer(LSFactory _params) {
- super("vscode-boot-properties");
-
- BootPropertiesLanguageServerParams serverParams = _params.create(this);
+ this.server = new SimpleLanguageServer("vscode-boot-properties");
+ BootPropertiesLanguageServerParams serverParams = _params.create(server);
this.indexProvider = serverParams.indexProvider;
this.typeUtilProvider = serverParams.typeUtilProvider;
@@ -99,22 +100,22 @@ public class BootPropertiesLanguageServer extends SimpleLanguageServer {
}
};
- SimpleTextDocumentService documents = getTextDocumentService();
+ SimpleTextDocumentService documents = server.getTextDocumentService();
IReconcileEngine reconcileEngine = getReconcileEngine();
documents.onDidChangeContent(params -> {
TextDocument doc = params.getDocument();
- validateWith(doc.getId(), reconcileEngine);
+ server.validateWith(doc.getId(), reconcileEngine);
});
ICompletionEngine propertiesCompletionEngine = getCompletionEngine();
- completionEngine = createCompletionEngineAdapter(this, propertiesCompletionEngine);
+ completionEngine = server.createCompletionEngineAdapter(server, propertiesCompletionEngine);
completionEngine.setMaxCompletions(100);
documents.onCompletion(completionEngine::getCompletions);
documents.onCompletionResolve(completionEngine::resolveCompletion);
HoverInfoProvider hoverInfoProvider = getHoverProvider();
- hoverEngine = new VscodeHoverEngineAdapter(this, hoverInfoProvider);
+ hoverEngine = new VscodeHoverEngineAdapter(server, hoverInfoProvider);
documents.onHover(hoverEngine::getHover);
}
@@ -187,4 +188,9 @@ public class BootPropertiesLanguageServer extends SimpleLanguageServer {
public SpringPropertyIndexProvider getPropertiesIndexProvider() {
return indexProvider;
}
+
+ @Override
+ public SimpleLanguageServer getServer() {
+ return this.server;
+ }
}
diff --git a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServerParams.java b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServerParams.java
similarity index 99%
rename from headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServerParams.java
rename to headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServerParams.java
index 57645d6a4..bfa5b7511 100644
--- a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/BootPropertiesLanguageServerParams.java
+++ b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/BootPropertiesLanguageServerParams.java
@@ -8,7 +8,7 @@
* Contributors:
* Pivotal, Inc. - initial API and implementation
*******************************************************************************/
-package org.springframework.ide.vscode.boot;
+package org.springframework.ide.vscode.boot.properties;
import java.nio.file.Paths;
import java.util.Arrays;
diff --git a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/Main.java
similarity index 91%
rename from headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java
rename to headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/Main.java
index e67c52158..7b978efa0 100644
--- a/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/Main.java
+++ b/headless-services/boot-properties-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/Main.java
@@ -8,7 +8,7 @@
* Contributors:
* Pivotal, Inc. - initial API and implementation
*******************************************************************************/
-package org.springframework.ide.vscode.boot;
+package org.springframework.ide.vscode.boot.properties;
import java.io.IOException;
@@ -17,18 +17,19 @@ import org.springframework.ide.vscode.commons.util.LogRedirect;
/**
* Starts up Language Server process
- *
+ *
* @author Alex Boyko
* @author Kris De Volder
*
*/
public class Main {
-
+
public static void main(String[] args) throws IOException, InterruptedException {
String serverName = "boot-properties-language-server";
LogRedirect.redirectToFile(serverName);
LaunguageServerApp.start(serverName,
- () -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()));
+ () -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()).getServer()
+ );
}
}
diff --git a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java
index 3fc4f10fc..1374fd210 100644
--- a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java
+++ b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationPropertiesEditorTest.java
@@ -24,12 +24,12 @@ import org.eclipse.lsp4j.CompletionItem;
import org.eclipse.lsp4j.Diagnostic;
import org.junit.Ignore;
import org.junit.Test;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServer;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.boot.editor.harness.AbstractPropsEditorTest;
import org.springframework.ide.vscode.boot.editor.harness.StyledStringMatcher;
import org.springframework.ide.vscode.boot.metadata.CachingValueProvider;
import org.springframework.ide.vscode.boot.metadata.PropertiesLoader;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServer;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.commons.java.IJavaProject;
import org.springframework.ide.vscode.commons.java.IType;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
@@ -1590,7 +1590,7 @@ public class ApplicationPropertiesEditorTest extends AbstractPropsEditorTest {
s -> new BootPropertiesLanguageServerParams(javaProjectFinder, null, md.getIndexProvider(),
typeUtilProvider));
server.setMaxCompletionsNumber(-1);
- return server;
+ return server.getServer();
}
/**
diff --git a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java
index 5206da3d0..a479d6ca1 100644
--- a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java
+++ b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/ApplicationYamlEditorTest.java
@@ -20,12 +20,12 @@ import org.eclipse.lsp4j.CompletionItem;
import org.eclipse.lsp4j.Diagnostic;
import org.junit.Ignore;
import org.junit.Test;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServer;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.boot.editor.harness.AbstractPropsEditorTest;
import org.springframework.ide.vscode.boot.editor.harness.StyledStringMatcher;
import org.springframework.ide.vscode.boot.metadata.CachingValueProvider;
import org.springframework.ide.vscode.boot.metadata.PropertyInfo;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServer;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.commons.java.IJavaProject;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.util.StringUtil;
@@ -3710,7 +3710,7 @@ public class ApplicationYamlEditorTest extends AbstractPropsEditorTest {
s -> new BootPropertiesLanguageServerParams(javaProjectFinder, null, md.getIndexProvider(),
typeUtilProvider));
server.setMaxCompletionsNumber(-1);
- return server;
+ return server.getServer();
}
@Override
diff --git a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/BootPropertiesLanguageServerTest.java b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/BootPropertiesLanguageServerTest.java
deleted file mode 100644
index 624205caf..000000000
--- a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/BootPropertiesLanguageServerTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 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.test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.File;
-import java.net.URISyntaxException;
-import java.nio.file.Paths;
-import java.util.concurrent.Callable;
-
-import org.eclipse.lsp4j.InitializeResult;
-import org.eclipse.lsp4j.TextDocumentSyncKind;
-import org.junit.Test;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServer;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServerParams;
-import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
-import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
-
-/**
- * Boot app properties file language server tests
- *
- * @author Alex Boyko
- *
- */
-public class BootPropertiesLanguageServerTest {
-
- public static File getTestResource(String name) throws URISyntaxException {
- return Paths.get(BootPropertiesLanguageServer.class.getResource(name).toURI()).toFile();
- }
-
- private LanguageServerHarness newHarness() throws Exception {
- Callable extends SimpleLanguageServer> f = () -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createTestDefault());
- return new LanguageServerHarness(f);
- }
-
- @Test
- public void createAndInitializeServerWithWorkspace() throws Exception {
- LanguageServerHarness harness = newHarness();
- File workspaceRoot = getTestResource("/workspace/");
- assertExpectedInitResult(harness.intialize(workspaceRoot));
- }
-
- @Test
- public void createAndInitializeServerWithoutWorkspace() throws Exception {
- File workspaceRoot = null;
- LanguageServerHarness harness = newHarness();
- assertExpectedInitResult(harness.intialize(workspaceRoot));
- }
-
- private void assertExpectedInitResult(InitializeResult initResult) {
- assertThat(initResult.getCapabilities().getTextDocumentSync().getLeft()).isEqualTo(TextDocumentSyncKind.Incremental);
- }
-
-}
diff --git a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java
index 28198f3ac..ccc4eea67 100644
--- a/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java
+++ b/headless-services/boot-properties-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java
@@ -20,9 +20,9 @@ import java.io.File;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServer;
-import org.springframework.ide.vscode.boot.BootPropertiesLanguageServerParams;
import org.springframework.ide.vscode.boot.metadata.DefaultSpringPropertyIndexProvider;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServer;
+import org.springframework.ide.vscode.boot.properties.BootPropertiesLanguageServerParams;
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;
@@ -32,12 +32,12 @@ import org.springframework.ide.vscode.project.harness.ProjectsHarness;
/**
* Tests for Boot properties index
- *
+ *
* @author Alex Boyko
*
*/
public class SpringPropertiesIndexTest {
-
+
private LanguageServerHarness harness;
private DefaultSpringPropertyIndexProvider propertyIndexProvider;
@@ -50,7 +50,7 @@ public class SpringPropertiesIndexTest {
@Test
public void testPropertiesIndexRefreshOnProjectChange() throws Exception {
harness.intialize(new File(ProjectsHarness.class.getResource("/test-projects/boot-1.2.0-properties-live-metadta/").toURI()));
- propertyIndexProvider = (DefaultSpringPropertyIndexProvider) harness.getServer().getPropertiesIndexProvider();
+ propertyIndexProvider = (DefaultSpringPropertyIndexProvider) harness.getServerWrapper().getPropertiesIndexProvider();
File directory = new File(ProjectsHarness.class.getResource("/test-projects/boot-1.2.0-properties-live-metadta/").toURI());
diff --git a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java
index 207898cac..0e41a7872 100644
--- a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java
+++ b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/BoshEditorTest.java
@@ -276,7 +276,7 @@ public class BoshEditorTest {
}
@Test public void releasesBlockCompletions() throws Exception {
- harness.getServer().enableSnippets(false);
+ harness.getServerWrapper().enableSnippets(false);
Editor editor = harness.newEditor(
"releases:\n" +
"- <*>"
@@ -359,7 +359,7 @@ public class BoshEditorTest {
}
@Test public void instanceGroupsCompletions() throws Exception {
- harness.getServer().enableSnippets(false);
+ harness.getServerWrapper().enableSnippets(false);
Editor editor = harness.newEditor(
"instance_groups:\n" +
"- <*>"
@@ -543,7 +543,7 @@ public class BoshEditorTest {
}
@Test public void updateBlockCompletions() throws Exception {
- harness.getServer().enableSnippets(false);
+ harness.getServerWrapper().enableSnippets(false);
Editor editor = harness.newEditor(
"update:\n" +
" <*>"
@@ -583,7 +583,7 @@ public class BoshEditorTest {
}
@Test public void variablesBlockCompletions() throws Exception {
- harness.getServer().enableSnippets(false);
+ harness.getServerWrapper().enableSnippets(false);
Editor editor = harness.newEditor(
"variables:\n" +
"- <*>"
diff --git a/headless-services/commons/commons-boot-app-cli/.classpath b/headless-services/commons/commons-boot-app-cli/.classpath
index 950e0aca6..4f8e155a9 100644
--- a/headless-services/commons/commons-boot-app-cli/.classpath
+++ b/headless-services/commons/commons-boot-app-cli/.classpath
@@ -10,6 +10,7 @@
+
@@ -25,6 +26,7 @@
+
diff --git a/headless-services/commons/commons-cf/.classpath b/headless-services/commons/commons-cf/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/commons-cf/.classpath
+++ b/headless-services/commons/commons-cf/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/commons-gradle/.classpath b/headless-services/commons/commons-gradle/.classpath
index d46faf10e..8131be0e5 100644
--- a/headless-services/commons/commons-gradle/.classpath
+++ b/headless-services/commons/commons-gradle/.classpath
@@ -10,11 +10,13 @@
+
+
diff --git a/headless-services/commons/commons-java/.classpath b/headless-services/commons/commons-java/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/commons-java/.classpath
+++ b/headless-services/commons/commons-java/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/commons-language-server/.classpath b/headless-services/commons/commons-language-server/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/commons-language-server/.classpath
+++ b/headless-services/commons/commons-language-server/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java
index ad214e7c7..1e7a7a98e 100644
--- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServer.java
@@ -76,7 +76,7 @@ import reactor.core.scheduler.Schedulers;
* here so we can try to keep the subclass itself more 'clutter free' and focus on
* what its really doing and not the 'wiring and plumbing'.
*/
-public abstract class SimpleLanguageServer implements Sts4LanguageServer, LanguageClientAware, ServiceNotificationsClient, WorkspaceFoldersProposedService {
+public class SimpleLanguageServer implements Sts4LanguageServer, LanguageClientAware, ServiceNotificationsClient, WorkspaceFoldersProposedService, SimpleLanguageServerWrapper {
private static final Scheduler RECONCILER_SCHEDULER = Schedulers.newSingle("Reconciler");
@@ -116,7 +116,7 @@ public abstract class SimpleLanguageServer implements Sts4LanguageServer, Langua
this.client = (STS4LanguageClient) _client;
}
- protected VscodeCompletionEngineAdapter createCompletionEngineAdapter(SimpleLanguageServer server, ICompletionEngine engine) {
+ public VscodeCompletionEngineAdapter createCompletionEngineAdapter(SimpleLanguageServer server, ICompletionEngine engine) {
return new VscodeCompletionEngineAdapter(server, engine, completionResolver);
}
@@ -406,7 +406,7 @@ public abstract class SimpleLanguageServer implements Sts4LanguageServer, Langua
* Convenience method. Subclasses can call this to use a {@link IReconcileEngine} ported
* from old STS codebase to validate a given {@link TextDocument} and publish Diagnostics.
*/
- protected void validateWith(TextDocumentIdentifier docId, IReconcileEngine engine) {
+ public void validateWith(TextDocumentIdentifier docId, IReconcileEngine engine) {
CompletableFuture reconcileSession = this.busyReconcile = new CompletableFuture();
// Log.debug("Reconciling BUSY");
@@ -547,4 +547,9 @@ public abstract class SimpleLanguageServer implements Sts4LanguageServer, Langua
return diagnosticService;
}
+ @Override
+ public SimpleLanguageServer getServer() {
+ return this;
+ }
+
}
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServerWrapper.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServerWrapper.java
new file mode 100644
index 000000000..e11ecda24
--- /dev/null
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleLanguageServerWrapper.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Pivotal, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Pivotal, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.springframework.ide.vscode.commons.languageserver.util;
+
+public interface SimpleLanguageServerWrapper {
+
+ SimpleLanguageServer getServer();
+
+}
diff --git a/headless-services/commons/commons-maven/.classpath b/headless-services/commons/commons-maven/.classpath
index d46faf10e..8131be0e5 100644
--- a/headless-services/commons/commons-maven/.classpath
+++ b/headless-services/commons/commons-maven/.classpath
@@ -10,11 +10,13 @@
+
+
diff --git a/headless-services/commons/commons-util/.classpath b/headless-services/commons/commons-util/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/commons-util/.classpath
+++ b/headless-services/commons/commons-util/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/commons-yaml/.classpath b/headless-services/commons/commons-yaml/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/commons-yaml/.classpath
+++ b/headless-services/commons/commons-yaml/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/java-properties/.classpath b/headless-services/commons/java-properties/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/java-properties/.classpath
+++ b/headless-services/commons/java-properties/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/language-server-test-harness/.classpath b/headless-services/commons/language-server-test-harness/.classpath
index af1430be1..5e8a55fef 100644
--- a/headless-services/commons/language-server-test-harness/.classpath
+++ b/headless-services/commons/language-server-test-harness/.classpath
@@ -10,6 +10,7 @@
+
diff --git a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java
index 065ea9f91..28b89f472 100644
--- a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java
+++ b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java
@@ -97,6 +97,7 @@ import org.springframework.ide.vscode.commons.languageserver.quickfix.QuickfixEd
import org.springframework.ide.vscode.commons.languageserver.util.LanguageServerTestListener;
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
+import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServerWrapper;
import org.springframework.ide.vscode.commons.util.Assert;
import org.springframework.ide.vscode.commons.util.ExceptionUtil;
import org.springframework.ide.vscode.commons.util.IOUtil;
@@ -111,7 +112,7 @@ import com.google.common.collect.MultimapBuilder;
import reactor.core.publisher.Mono;
-public class LanguageServerHarness {
+public class LanguageServerHarness {
//Warning this 'harness' is incomplete. Growing it as needed.
@@ -709,10 +710,14 @@ public class LanguageServerHarness {
}
public void changeConfiguration(Settings settings) {
- server.getWorkspaceService().didChangeConfiguration(new DidChangeConfigurationParams(settings));
+ getServer().getWorkspaceService().didChangeConfiguration(new DidChangeConfigurationParams(settings));
}
- public S getServer() {
+ public SimpleLanguageServer getServer() {
+ return server==null ? null : server.getServer();
+ }
+
+ public S getServerWrapper() {
return server;
}
diff --git a/headless-services/manifest-yaml-language-server/.classpath b/headless-services/manifest-yaml-language-server/.classpath
index fae1a2b37..002ad570e 100644
--- a/headless-services/manifest-yaml-language-server/.classpath
+++ b/headless-services/manifest-yaml-language-server/.classpath
@@ -15,11 +15,13 @@
+
+