diff --git a/headless-services/commons/commons-java/pom.xml b/headless-services/commons/commons-java/pom.xml
index 68bb95131..b4dee535b 100644
--- a/headless-services/commons/commons-java/pom.xml
+++ b/headless-services/commons/commons-java/pom.xml
@@ -42,10 +42,5 @@
reactor-core
${reactor-version}
-
- org.json
- json
- 20160810
-
\ No newline at end of file
diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleTextDocumentService.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleTextDocumentService.java
index e814373f9..8f38442d6 100644
--- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleTextDocumentService.java
+++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleTextDocumentService.java
@@ -178,7 +178,7 @@ public class SimpleTextDocumentService implements TextDocumentService {
if (url!=null) {
String text = params.getTextDocument().getText();
TrackedDocument td = createDocument(url, languageId, version, text).open();
- Log.info("Opened "+td.getOpenCount()+" times: "+url);
+ Log.debug("Opened "+td.getOpenCount()+" times: "+url);
TextDocument doc = td.getDocument();
TextDocumentContentChangeEvent change = new TextDocumentContentChangeEvent() {
@Override
diff --git a/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoconf.java b/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoConf.java
similarity index 76%
rename from headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoconf.java
rename to headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoConf.java
index e56acd0b7..cc1b42fef 100644
--- a/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoconf.java
+++ b/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerAutoConf.java
@@ -10,27 +10,17 @@
*******************************************************************************/
package org.springframework.ide.vscode.languageserver.starter;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.ide.vscode.commons.languageserver.LanguageServerRunner;
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerProperties;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
@Configuration
@EnableConfigurationProperties(LanguageServerProperties.class)
-public class LanguageServerAutoconf {
-
- @Bean public LanguageServerRunner serverApp(
- @Qualifier("serverName") String serverName,
- LanguageServerProperties properties,
- SimpleLanguageServer languageServerFactory
- ) {
- return new LanguageServerRunner(serverName, properties, languageServerFactory);
- }
+public class LanguageServerAutoConf {
@ConditionalOnMissingBean
@Bean public SimpleLanguageServer languageServer(LanguageServerProperties props, LanguageServerInitializer initializer) throws Exception {
diff --git a/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerRunnerAutoConf.java b/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerRunnerAutoConf.java
new file mode 100644
index 000000000..8188d5af0
--- /dev/null
+++ b/headless-services/commons/language-server-starter/src/main/java/org/springframework/ide/vscode/languageserver/starter/LanguageServerRunnerAutoConf.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * 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.languageserver.starter;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.ide.vscode.commons.languageserver.LanguageServerRunner;
+import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerProperties;
+import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
+
+@Configuration
+public class LanguageServerRunnerAutoConf {
+
+ @Bean public LanguageServerRunner serverApp(
+ @Qualifier("serverName") String serverName,
+ LanguageServerProperties properties,
+ SimpleLanguageServer languageServerFactory
+ ) {
+ return new LanguageServerRunner(serverName, properties, languageServerFactory);
+ }
+
+}
diff --git a/headless-services/commons/language-server-starter/src/main/resources/META-INF/spring.factories b/headless-services/commons/language-server-starter/src/main/resources/META-INF/spring.factories
index f53335bf4..0c8e65669 100644
--- a/headless-services/commons/language-server-starter/src/main/resources/META-INF/spring.factories
+++ b/headless-services/commons/language-server-starter/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,3 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.springframework.ide.vscode.languageserver.starter.LanguageServerAutoconf
\ No newline at end of file
+org.springframework.ide.vscode.languageserver.starter.LanguageServerAutoConf,\
+org.springframework.ide.vscode.languageserver.starter.LanguageServerRunnerAutoConf
\ No newline at end of file
diff --git a/headless-services/commons/pom.xml b/headless-services/commons/pom.xml
index ef8c8e2cf..377e29abf 100644
--- a/headless-services/commons/pom.xml
+++ b/headless-services/commons/pom.xml
@@ -80,7 +80,7 @@
UTF-8
1.17
- 4.11
+ 4.12
3.5.2
1.7.25
19.0
diff --git a/headless-services/manifest-yaml-language-server/pom.xml b/headless-services/manifest-yaml-language-server/pom.xml
index a8d1c6c34..528ed8cfa 100644
--- a/headless-services/manifest-yaml-language-server/pom.xml
+++ b/headless-services/manifest-yaml-language-server/pom.xml
@@ -71,9 +71,8 @@
- org.mockito
- mockito-all
- ${mockito-version}
+ org.springframework.boot
+ spring-boot-starter-test
test
diff --git a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/DefaultCloudfoundryConfig.java b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/DefaultCloudfoundryConfig.java
new file mode 100644
index 000000000..0aede5f13
--- /dev/null
+++ b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/DefaultCloudfoundryConfig.java
@@ -0,0 +1,22 @@
+package org.springframework.ide.vscode.manifest.yaml;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.CloudFoundryClientFactory;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CfCliParamsProvider;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.ClientParamsProvider;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.DefaultCloudFoundryClientFactoryV2;
+
+@Configuration
+@ConditionalOnMissingClass("org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness")
+public class DefaultCloudfoundryConfig {
+
+ @Bean public CloudFoundryClientFactory cloudfoundryClientFactory() {
+ return DefaultCloudFoundryClientFactoryV2.INSTANCE;
+ }
+
+ @Bean public ClientParamsProvider cloudfoundryClientParamsProvider() {
+ return CfCliParamsProvider.getInstance();
+ }
+}
diff --git a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerInitializer.java b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerInitializer.java
index 8d9538d33..d75fe7319 100644
--- a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerInitializer.java
+++ b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerInitializer.java
@@ -130,16 +130,19 @@ public class ManifestYamlLanguageServerInitializer implements LanguageServerInit
applyCfLoginParameterSettings(info);
}
});
-
}
private final ImmutableSet FALLBACK_YML_IDS = ImmutableSet.of(LanguageId.of("yml"), LanguageId.of("yaml"));
- @Autowired
+ /**
+ * Deprecated: should use the @Autowired constructor instead to inject CF client.
+ */
+ @Deprecated
public ManifestYamlLanguageServerInitializer() {
this(DefaultCloudFoundryClientFactoryV2.INSTANCE, CfCliParamsProvider.getInstance());
}
+ @Autowired
public ManifestYamlLanguageServerInitializer(CloudFoundryClientFactory cfClientFactory, ClientParamsProvider defaultClientParamsProvider) {
this.cfClientFactory = cfClientFactory;
this.defaultClientParamsProvider = defaultClientParamsProvider;
@@ -219,5 +222,4 @@ public class ManifestYamlLanguageServerInitializer implements LanguageServerInit
}
return Collections.emptyList();
}
-
}
diff --git a/headless-services/manifest-yaml-language-server/src/main/resources/application.yml b/headless-services/manifest-yaml-language-server/src/main/resources/application.yml
index 0feee175b..4f1ba5414 100644
--- a/headless-services/manifest-yaml-language-server/src/main/resources/application.yml
+++ b/headless-services/manifest-yaml-language-server/src/main/resources/application.yml
@@ -1,2 +1,5 @@
+#logging:
+# level:
+# org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer: debug
languageserver:
extension-id: vscode-manifest-yaml
\ No newline at end of file
diff --git a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java
index 5607ef14e..1c8bb328d 100644
--- a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java
+++ b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java
@@ -12,7 +12,7 @@ package org.springframework.ide.vscode.manifest.yaml;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.when;
@@ -24,38 +24,73 @@ import java.util.List;
import org.eclipse.lsp4j.CompletionItem;
import org.eclipse.lsp4j.Diagnostic;
import org.eclipse.lsp4j.DiagnosticSeverity;
-import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.context.annotation.Bean;
import org.springframework.ide.vscode.commons.cloudfoundry.client.CFBuildpack;
import org.springframework.ide.vscode.commons.cloudfoundry.client.CFDomain;
import org.springframework.ide.vscode.commons.cloudfoundry.client.CFServiceInstance;
import org.springframework.ide.vscode.commons.cloudfoundry.client.CFStack;
import org.springframework.ide.vscode.commons.cloudfoundry.client.ClientRequests;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.CloudFoundryClientFactory;
+import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.ClientParamsProvider;
import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.NoTargetsException;
+import org.springframework.ide.vscode.commons.languageserver.config.LanguageServerInitializer;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.util.Unicodes;
import org.springframework.ide.vscode.commons.util.text.LanguageId;
import org.springframework.ide.vscode.languageserver.testharness.CodeAction;
import org.springframework.ide.vscode.languageserver.testharness.Editor;
import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness;
+import org.springframework.ide.vscode.manifest.yaml.annotations.ManifestLanguageServerTest;
+import org.springframework.test.context.junit4.SpringRunner;
import com.google.common.collect.ImmutableList;
+@RunWith(SpringRunner.class)
+@ManifestLanguageServerTest
public class ManifestYamlEditorTest {
- LanguageServerHarness harness;
- MockCloudfoundry cloudfoundry = new MockCloudfoundry();
+ @Autowired
+ MockCloudfoundry cloudfoundry;
- @Before public void setup() throws Exception {
- SimpleLanguageServer server = new SimpleLanguageServer("vscode-manifest-yaml");
- new ManifestYamlLanguageServerInitializer(cloudfoundry.factory, cloudfoundry.defaultParamsProvider).initialize(server);
- harness = new LanguageServerHarness<>(
- ()-> server,
- LanguageId.CF_MANIFEST
- );
- harness.intialize(null);
- System.setProperty("lsp.yaml.completions.errors.disable", "false");
+ @Autowired
+ SimpleLanguageServer server;
+
+ @Autowired
+ LanguageServerInitializer serverInit;
+
+ @Autowired
+ LanguageServerHarness harness;
+
+
+ @TestConfiguration
+ public static class MockCloudfoundryConfiguration {
+
+ @Bean public MockCloudfoundry cloudfoundry() {
+ return new MockCloudfoundry();
+ }
+
+ @Bean public CloudFoundryClientFactory cloudfoundryClientFactory(MockCloudfoundry cf) {
+ return cf.factory;
+ }
+
+ @Bean public ClientParamsProvider cloudfoundryParams(MockCloudfoundry cf) {
+ return cf.defaultParamsProvider;
+ }
+
+ @Bean public LanguageServerHarness harness(SimpleLanguageServer server) throws Exception {
+ LanguageServerHarness harness = new LanguageServerHarness<>(
+ ()-> server,
+ LanguageId.CF_MANIFEST
+ );
+ harness.intialize(null);
+ System.setProperty("lsp.yaml.completions.errors.disable", "false");
+ return harness;
+ }
}
@Test public void testReconcileCatchesParseError() throws Exception {
diff --git a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/annotations/ManifestLanguageServerTest.java b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/annotations/ManifestLanguageServerTest.java
new file mode 100644
index 000000000..591d36e51
--- /dev/null
+++ b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/annotations/ManifestLanguageServerTest.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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.manifest.yaml.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.ide.vscode.languageserver.starter.LanguageServerAutoConf;
+import org.springframework.ide.vscode.manifest.yaml.ManifestYamlLanguageServerBootApp;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.annotation.DirtiesContext.ClassMode;
+
+@Retention(RetentionPolicy.RUNTIME)
+@OverrideAutoConfiguration(enabled=false)
+@ImportAutoConfiguration(classes=LanguageServerAutoConf.class)
+@SpringBootTest(classes=ManifestYamlLanguageServerBootApp.class)
+@DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD)
+public @interface ManifestLanguageServerTest {
+}