diff --git a/atom-extensions/atom-bosh/package.json b/atom-extensions/atom-bosh/package.json index 41a2b2446..0b977dfbb 100644 --- a/atom-extensions/atom-bosh/package.json +++ b/atom-extensions/atom-bosh/package.json @@ -1,6 +1,6 @@ { "name": "bosh-yaml", - "version": "0.2.0", + "version": "0.2.1", "description": "Provides validation and content assist for various Bosh configuration files", "repository": "https://github.com/spring-projects/atom-bosh", "icon": "icon.png", diff --git a/atom-extensions/atom-cf-manifest-yaml/package.json b/atom-extensions/atom-cf-manifest-yaml/package.json index 680f317d1..75c3f5660 100644 --- a/atom-extensions/atom-cf-manifest-yaml/package.json +++ b/atom-extensions/atom-cf-manifest-yaml/package.json @@ -1,6 +1,6 @@ { "name": "cf-manifest-yaml", - "version": "0.2.0", + "version": "0.2.1", "description": "Cloud Foundry Deployment Manifest YAML support for Atom", "repository": "https://github.com/spring-projects/atom-cf-manifest-yaml", "icon": "icon.png", diff --git a/atom-extensions/atom-concourse/package.json b/atom-extensions/atom-concourse/package.json index 5295f9203..d8e5ba088 100644 --- a/atom-extensions/atom-concourse/package.json +++ b/atom-extensions/atom-concourse/package.json @@ -1,6 +1,6 @@ { "name": "concourse-pipeline-yaml", - "version": "0.2.0", + "version": "0.2.1", "description": "Provides validation and content assist for Concourse CI pipeline and task configuration yml files", "repository": "https://github.com/spring-projects/atom-concourse", "icon": "icon.png", diff --git a/atom-extensions/atom-spring-boot/package.json b/atom-extensions/atom-spring-boot/package.json index 517d6e198..cbdc4e47f 100644 --- a/atom-extensions/atom-spring-boot/package.json +++ b/atom-extensions/atom-spring-boot/package.json @@ -1,6 +1,6 @@ { "name": "spring-boot", - "version": "0.2.0", + "version": "0.2.1", "description": "Spring Boot support for Atom", "repository": "https://github.com/spring-projects/atom-spring-boot", "icon": "icon.png", diff --git a/concourse/pipeline.yml b/concourse/pipeline.yml index 6172b66a8..3a6f5c490 100644 --- a/concourse/pipeline.yml +++ b/concourse/pipeline.yml @@ -538,6 +538,18 @@ jobs: trigger: true passed: - tag-atom-release + - get: atom-bosh + trigger: true + passed: + - tag-atom-release + - get: atom-cf-manifest-yaml + trigger: true + passed: + - tag-atom-release + - get: atom-spring-boot + trigger: true + passed: + - tag-atom-release - task: publish-atom-releases file: sts4/concourse/tasks/publish-atom-releases.yml params: @@ -555,6 +567,9 @@ jobs: STS 4 Atom Extensions released Releases now available on Atom Marketplace: • + • + • + • - name: build-concourse-rc plan: - aggregate: diff --git a/concourse/tasks/publish-atom-releases.yml b/concourse/tasks/publish-atom-releases.yml index 7d733cc68..902fc24d6 100644 --- a/concourse/tasks/publish-atom-releases.yml +++ b/concourse/tasks/publish-atom-releases.yml @@ -1,6 +1,9 @@ inputs: - name: sts4 - name: atom-concourse +- name: atom-bosh +- name: atom-cf-manifest-yaml +- name: atom-spring-boot params: atom_token: atom_token_must_be_provided!!! platform: linux diff --git a/eclipse-distribution/pom.xml b/eclipse-distribution/pom.xml index 7a640c9a6..207e8961a 100644 --- a/eclipse-distribution/pom.xml +++ b/eclipse-distribution/pom.xml @@ -104,10 +104,10 @@ e47 - e4.7.2 + e4.7.3 e4.7 Oxygen - Oxygen.2 (4.7.2) + Oxygen.3 (4.7.3) oxygen 4.7 e47 @@ -141,7 +141,7 @@ orbit p2 - http://download.eclipse.org/tools/orbit/downloads/drops/R20170919201930/repository/ + http://download.eclipse.org/tools/orbit/downloads/drops/R20180206163158/repository/ latest-buildship-release @@ -222,16 +222,16 @@ p2 http://download.eclipse.org/eclipse/updates/4.8-I-builds/ - - + http://download.eclipse.org/tools/orbit/downloads/drops/S20180302171354/repository/ + + latest-m2e p2 diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF index 47ab66e58..75a4a75f9 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: Spring Boot Language Server Bundle-Vendor: Pivotal, Inc. Bundle-SymbolicName: org.springframework.tooling.boot.ls;singleton:=true -Bundle-Version: 0.1.6.qualifier +Bundle-Version: 0.2.1.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0", org.eclipse.core.runtime;bundle-version="3.12.0", diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml index d4c919431..2c5d1115e 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/pom.xml @@ -12,14 +12,14 @@ org.springframework.tooling.boot.ls - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT eclipse-plugin org.springframework.ide.vscode spring-boot-language-server - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java index 8e2f74812..93456f283 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java @@ -16,7 +16,7 @@ package org.springframework.tooling.boot.ls; public class Constants { public static final String PLUGIN_ID = "org.springframework.tooling.boot.ls"; - public static final String LANGUAGE_SERVER_VERSION = "0.1.6-SNAPSHOT.jar"; + public static final String LANGUAGE_SERVER_VERSION = "0.2.1-SNAPSHOT.jar"; public static final String PREF_BOOT_HINTS = "boot-java.boot-hints.on"; diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF index 6d96420d5..d1e758779 100644 --- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: BOSH Manifest Language Server Bundle-Vendor: Pivotal, Inc. Bundle-SymbolicName: org.springframework.tooling.bosh.ls;singleton:=true -Bundle-Version: 0.1.6.qualifier +Bundle-Version: 0.2.1.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0", org.eclipse.core.runtime;bundle-version="3.12.0", diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml index 8de901cde..ed84e9a14 100644 --- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/pom.xml @@ -12,14 +12,14 @@ org.springframework.tooling.bosh.ls - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT eclipse-plugin org.springframework.ide.vscode bosh-language-server - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT org.springframework.ide.eclipse diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/Constants.java index d4cbb5f66..46ce2eb06 100644 --- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/Constants.java +++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/Constants.java @@ -16,6 +16,6 @@ package org.springframework.tooling.bosh.ls; public class Constants { public static final String PLUGIN_ID = "org.springframework.tooling.bosh.ls"; - public static final String LANGUAGE_SERVER_VERSION = "0.1.6-SNAPSHOT"; + public static final String LANGUAGE_SERVER_VERSION = "0.2.1-SNAPSHOT"; } diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF index e8a9f412a..3facf8892 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: Cloud Foundry Manifest Language Server Bundle-Vendor: Pivotal, Inc. Bundle-SymbolicName: org.springframework.tooling.cloudfoundry.manifest.ls;singleton:=true -Bundle-Version: 0.1.6.qualifier +Bundle-Version: 0.2.1.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.8.0", org.eclipse.core.runtime;bundle-version="3.12.0", diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml index 40e137805..a54ef7983 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/pom.xml @@ -12,14 +12,14 @@ org.springframework.tooling.cloudfoundry.manifest.ls - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT eclipse-plugin org.springframework.ide.vscode manifest-yaml-language-server - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/Constants.java index 6d748db39..857e2cbe8 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/Constants.java +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/Constants.java @@ -16,6 +16,6 @@ package org.springframework.tooling.cloudfoundry.manifest.ls; public class Constants { public static final String PLUGIN_ID = "org.springframework.tooling.cloudfoundry.manifest.ls"; - public static final String LANGUAGE_SERVER_VERSION = "0.1.6-SNAPSHOT.jar"; + public static final String LANGUAGE_SERVER_VERSION = "0.2.1-SNAPSHOT.jar"; } diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF index 1f76e9263..9e9b32425 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: Concourse Pipeline Language Server Bundle-Vendor: Pivotal, Inc. Bundle-SymbolicName: org.springframework.tooling.concourse.ls;singleton:=true -Bundle-Version: 0.1.6.qualifier +Bundle-Version: 0.2.1.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0", org.eclipse.core.runtime;bundle-version="3.12.0", diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml index 56b775c0c..4ad4e0523 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/pom.xml @@ -12,14 +12,14 @@ org.springframework.tooling.concourse.ls - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT eclipse-plugin org.springframework.ide.vscode concourse-language-server - 0.1.6-SNAPSHOT + 0.2.1-SNAPSHOT org.springframework.ide.eclipse diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/Constants.java index 8cc4bd2db..dac556ff7 100644 --- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/Constants.java +++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/Constants.java @@ -16,6 +16,6 @@ package org.springframework.tooling.concourse.ls; public class Constants { public static final String PLUGIN_ID = "org.springframework.tooling.concourse.ls"; - public static final String LANGUAGE_SERVER_VERSION = "0.1.6-SNAPSHOT"; + public static final String LANGUAGE_SERVER_VERSION = "0.2.1-SNAPSHOT"; } diff --git a/headless-services/bosh-language-server/pom.xml b/headless-services/bosh-language-server/pom.xml index 404e35684..6cfe9f00b 100644 --- a/headless-services/bosh-language-server/pom.xml +++ b/headless-services/bosh-language-server/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../commons/pom.xml diff --git a/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshCliConfig.java b/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshCliConfig.java index 55cde5412..624c086bf 100644 --- a/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshCliConfig.java +++ b/headless-services/bosh-language-server/src/main/java/org/springframework/ide/vscode/bosh/BoshCliConfig.java @@ -30,13 +30,13 @@ public class BoshCliConfig { private Settings settings = new Settings(null); public String getCommand() { - return (String) settings.getProperty("bosh", "cli", "command"); + return settings.getString("bosh", "cli", "command"); } public String getTarget() { - return (String) settings.getProperty("bosh", "cli", "target"); + return settings.getString("bosh", "cli", "target"); } public Duration getTimeout() { - Integer seconds = (Integer) settings.getProperty("cli", "timeout"); + Integer seconds = settings.getInt("cli", "timeout"); return seconds == null ? Duration.ofSeconds(3) : Duration.ofSeconds(seconds); } diff --git a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/models/BoshCommandStemcellsProviderTest.java b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/models/BoshCommandStemcellsProviderTest.java index b5e13e2dc..0abb77c72 100644 --- a/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/models/BoshCommandStemcellsProviderTest.java +++ b/headless-services/bosh-language-server/src/test/java/org/springframework/ide/vscode/bosh/models/BoshCommandStemcellsProviderTest.java @@ -30,6 +30,8 @@ import org.springframework.ide.vscode.commons.yaml.schema.DynamicSchemaContext; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.gson.Gson; +import com.google.gson.JsonElement; public class BoshCommandStemcellsProviderTest { @@ -83,12 +85,12 @@ public class BoshCommandStemcellsProviderTest { // } @Test public void obeysCliConfigCommandAndTarget() throws Exception { - Map settings = ImmutableMap.of("bosh", ImmutableMap.of("cli", + JsonElement settings = settings(ImmutableMap.of("bosh", ImmutableMap.of("cli", ImmutableMap.of( "command", "alternate-command", "target", "some-target" ) - )); + ))); cliConfig.handleConfigurationChange(new Settings(settings)); assertEquals(ImmutableList.of( new StemcellData("bosh-vsphere-esxi-centos-7-go_agent", "3421.11", "centos-7"), @@ -100,12 +102,12 @@ public class BoshCommandStemcellsProviderTest { } @Test public void obeysCliConfigTarget() throws Exception { - Map settings = ImmutableMap.of("bosh", ImmutableMap.of("cli", + JsonElement settings = settings(ImmutableMap.of("bosh", ImmutableMap.of("cli", ImmutableMap.of( "command", "alternate-command", "target", "explicit-target" ) - )); + ))); cliConfig.handleConfigurationChange(new Settings(settings)); assertEquals(ImmutableList.of( new StemcellData("bosh-vsphere-esxi-centos-7-go_agent", "3421.11", "centos-7"), @@ -116,4 +118,8 @@ public class BoshCommandStemcellsProviderTest { verify(provider).executeCommand(eq(new ExternalCommand("alternate-command", "-e", "explicit-target", "stemcells", "--json"))); } + private JsonElement settings(Object configObject) { + Gson gson = new Gson(); + return gson.toJsonTree(configObject); + } } diff --git a/headless-services/commons/commons-boot-app-cli/pom.xml b/headless-services/commons/commons-boot-app-cli/pom.xml index 5657f8531..1fc334f77 100644 --- a/headless-services/commons/commons-boot-app-cli/pom.xml +++ b/headless-services/commons/commons-boot-app-cli/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-cf/pom.xml b/headless-services/commons/commons-cf/pom.xml index df65c859e..2bd949424 100644 --- a/headless-services/commons/commons-cf/pom.xml +++ b/headless-services/commons/commons-cf/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-gradle/pom.xml b/headless-services/commons/commons-gradle/pom.xml index 3e01d4820..d3d9b88fe 100644 --- a/headless-services/commons/commons-gradle/pom.xml +++ b/headless-services/commons/commons-gradle/pom.xml @@ -9,7 +9,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-java/pom.xml b/headless-services/commons/commons-java/pom.xml index 4a9bce879..4229a5326 100644 --- a/headless-services/commons/commons-java/pom.xml +++ b/headless-services/commons/commons-java/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-language-server/pom.xml b/headless-services/commons/commons-language-server/pom.xml index e6d143fc6..006eb5a75 100644 --- a/headless-services/commons/commons-language-server/pom.xml +++ b/headless-services/commons/commons-language-server/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/Settings.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/Settings.java index ad72eec18..7cb37eac9 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/Settings.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/Settings.java @@ -10,7 +10,11 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.languageserver.util; -import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; /** * Convenience wrapper around a 'settings' object. Provides some useful accessor methods to @@ -18,31 +22,60 @@ import java.util.Map; */ public class Settings { - private Object settings; + private static final Logger log = LoggerFactory.getLogger(Settings.class); - public Settings(Object settings) { + private JsonElement settings; + + public Settings(JsonElement settings) { this.settings = settings; } public Integer getInt(String... names) { - Object val = getProperty(names); - if (val instanceof Number) { - return ((Number) val).intValue(); + try { + JsonElement val = getRawProperty(names); + if (val != null) { + return val.getAsInt(); + } + } catch (Exception e) { + log.error("", e); } return null; } - public Object getProperty(String... names) { - return getProperty(settings, names, 0); + public String getString(String... names) { + try { + JsonElement val = getRawProperty(names); + if (val != null) { + return val.getAsString(); + } + } catch (Exception e) { + log.error("", e); + } + return null; } - @SuppressWarnings("rawtypes") - private static Object getProperty(Object settings, String[] names, int i) { + public Boolean getBoolean(String... names) { + try { + JsonElement val = getRawProperty(names); + if (val != null) { + return val.getAsBoolean(); + } + } catch (Exception e) { + log.error("", e); + } + return null; + } + + public JsonElement getRawProperty(String... names) { + return getRawProperty(settings, names, 0); + } + + private static JsonElement getRawProperty(JsonElement settings, String[] names, int i) { if (i >= names.length) { return settings; - } else if (settings instanceof Map) { - Object sub = ((Map)settings).get(names[i]); - return getProperty(sub, names, i+1); + } else if (settings instanceof JsonObject) { + JsonElement sub = ((JsonObject)settings).get(names[i]); + return getRawProperty(sub, names, i+1); } else { return null; } @@ -52,4 +85,5 @@ public class Settings { public String toString() { return settings.toString(); } + } diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleWorkspaceService.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleWorkspaceService.java index 401a7744e..9548c6295 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleWorkspaceService.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/SimpleWorkspaceService.java @@ -33,6 +33,7 @@ import org.springframework.ide.vscode.commons.util.FileObserver; import org.springframework.ide.vscode.commons.util.Log; import com.google.common.collect.ImmutableList; +import com.google.gson.JsonElement; public class SimpleWorkspaceService implements WorkspaceService { @@ -71,7 +72,7 @@ public class SimpleWorkspaceService implements WorkspaceService { @Override public void didChangeConfiguration(DidChangeConfigurationParams params) { - configurationListeners.fire(new Settings(params.getSettings())); + configurationListeners.fire(new Settings((JsonElement) params.getSettings())); } @Override diff --git a/headless-services/commons/commons-maven/pom.xml b/headless-services/commons/commons-maven/pom.xml index 3673e4122..030eeb306 100644 --- a/headless-services/commons/commons-maven/pom.xml +++ b/headless-services/commons/commons-maven/pom.xml @@ -10,7 +10,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-util/pom.xml b/headless-services/commons/commons-util/pom.xml index 2ac8e55cb..8ff2aa571 100644 --- a/headless-services/commons/commons-util/pom.xml +++ b/headless-services/commons/commons-util/pom.xml @@ -7,7 +7,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/commons-yaml/pom.xml b/headless-services/commons/commons-yaml/pom.xml index 686258d3d..2a6b8de6f 100644 --- a/headless-services/commons/commons-yaml/pom.xml +++ b/headless-services/commons/commons-yaml/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/java-properties/pom.xml b/headless-services/commons/java-properties/pom.xml index a9b669f9e..b22ca9e43 100644 --- a/headless-services/commons/java-properties/pom.xml +++ b/headless-services/commons/java-properties/pom.xml @@ -7,7 +7,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/language-server-test-harness/pom.xml b/headless-services/commons/language-server-test-harness/pom.xml index 2641e0b80..d4a8aa31d 100644 --- a/headless-services/commons/language-server-test-harness/pom.xml +++ b/headless-services/commons/language-server-test-harness/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../pom.xml diff --git a/headless-services/commons/pom.xml b/headless-services/commons/pom.xml index 9ecba6fb3..189657fa1 100644 --- a/headless-services/commons/pom.xml +++ b/headless-services/commons/pom.xml @@ -6,7 +6,7 @@ org.springframework.ide.vscode commons-parent pom - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT commons-parent diff --git a/headless-services/concourse-language-server/pom.xml b/headless-services/concourse-language-server/pom.xml index ebe4f4c95..4c938a583 100644 --- a/headless-services/concourse-language-server/pom.xml +++ b/headless-services/concourse-language-server/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../commons/pom.xml diff --git a/headless-services/manifest-yaml-language-server/pom.xml b/headless-services/manifest-yaml-language-server/pom.xml index b7513017b..f1dc92b22 100644 --- a/headless-services/manifest-yaml-language-server/pom.xml +++ b/headless-services/manifest-yaml-language-server/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../commons/pom.xml diff --git a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java index c2af0fe90..8fdebae36 100644 --- a/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java +++ b/headless-services/manifest-yaml-language-server/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java @@ -19,6 +19,8 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.commons.cloudfoundry.client.ClientTimeouts; import org.springframework.ide.vscode.commons.cloudfoundry.client.CloudFoundryClientFactory; import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParams; @@ -35,6 +37,7 @@ import org.springframework.ide.vscode.commons.languageserver.hover.HoverInfoProv import org.springframework.ide.vscode.commons.languageserver.hover.VscodeHoverEngineAdapter; import org.springframework.ide.vscode.commons.languageserver.reconcile.IReconcileEngine; import org.springframework.ide.vscode.commons.languageserver.util.HoverHandler; +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.SimpleTextDocumentService; import org.springframework.ide.vscode.commons.languageserver.util.SimpleWorkspaceService; @@ -57,6 +60,9 @@ import org.yaml.snakeyaml.Yaml; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonSyntaxException; public class ManifestYamlLanguageServer extends SimpleLanguageServer { @@ -65,9 +71,11 @@ public class ManifestYamlLanguageServer extends SimpleLanguageServer { private CFTargetCache cfTargetCache; private final CloudFoundryClientFactory cfClientFactory; private final CfClientConfig cfClientConfig; + private final Logger log = LoggerFactory.getLogger(ManifestYamlLanguageServer.class); private final ImmutableSet FALLBACK_YML_IDS = ImmutableSet.of(LanguageId.of("yml"), LanguageId.of("yaml")); final private ClientParamsProvider defaultClientParamsProvider; + private Gson gson = new Gson(); public ManifestYamlLanguageServer() { this(DefaultCloudFoundryClientFactoryV2.INSTANCE, CfCliParamsProvider.getInstance()); @@ -128,9 +136,10 @@ public class ManifestYamlLanguageServer extends SimpleLanguageServer { documents.onHover(hoverEngine); workspace.onDidChangeConfiguraton(settings -> { - Object cfClientParamsObj = settings.getProperty("cfClientParams"); - if (cfClientParamsObj instanceof Map) { - applyCfLoginParameterSettings((Map) cfClientParamsObj); + //TODO code below needs to convert to a "nicer" Java representation of the CF client params, than just a Map with nested structures + Map asMap = getAs(Map.class, settings, "cfClientParams"); + if (asMap != null) { + applyCfLoginParameterSettings(asMap); } }); } @@ -139,6 +148,18 @@ public class ManifestYamlLanguageServer extends SimpleLanguageServer { return cfClientConfig; } + protected T getAs(Class klass, Settings settings, String... names) { + try { + JsonElement data = settings.getRawProperty(names); + if (data != null) { + return gson.fromJson(data, klass); + } + } catch (JsonSyntaxException e) { + log.error("", e); + } + return null; + } + @SuppressWarnings("unchecked") private void applyCfLoginParameterSettings(Map cfClientParamsData) { if (cfClientParamsData.get("parameters") instanceof List) { diff --git a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerTest.java b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerTest.java index 71e6c8d35..607f5ac1c 100644 --- a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerTest.java +++ b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServerTest.java @@ -15,10 +15,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import java.io.File; +import java.io.InputStreamReader; import java.net.URISyntaxException; import java.nio.file.Paths; import java.util.Arrays; -import java.util.Map; import org.eclipse.lsp4j.DidChangeConfigurationParams; import org.eclipse.lsp4j.InitializeResult; @@ -27,7 +27,10 @@ import org.junit.Test; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.languageserver.testharness.LanguageServerHarness; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; public class ManifestYamlLanguageServerTest { @@ -100,7 +103,11 @@ public class ManifestYamlLanguageServerTest { assertEquals(Arrays.asList("test.io"), manifestYamlLanguageServer.getCfTargets()); DidChangeConfigurationParams params = new DidChangeConfigurationParams(); - params.setSettings(new ObjectMapper().readValue(getClass().getResourceAsStream("/cf-targets1.json"), Map.class)); + + JsonParser parser = new JsonParser(); + params.setSettings(parser.parse(new InputStreamReader(getClass().getResourceAsStream("/cf-targets1.json"))) +); + manifestYamlLanguageServer.getWorkspaceService().didChangeConfiguration(params); assertEquals(3, manifestYamlLanguageServer.getCfClientConfig().getClientParamsProvider().getParams().size()); assertEquals(Arrays.asList("test.io", "api.system.demo-gcp.springapps.io", "api.run.pivotal.io"), manifestYamlLanguageServer.getCfTargets()); diff --git a/headless-services/spring-boot-language-server/pom.xml b/headless-services/spring-boot-language-server/pom.xml index 99993157b..dee1cb69e 100644 --- a/headless-services/spring-boot-language-server/pom.xml +++ b/headless-services/spring-boot-language-server/pom.xml @@ -8,7 +8,7 @@ org.springframework.ide.vscode commons-parent - 0.2.0-SNAPSHOT + 0.2.1-SNAPSHOT ../commons/pom.xml @@ -61,6 +61,11 @@ commons-boot-app-cli ${dependencies.version} + + org.eclipse.tycho + org.eclipse.jdt.core + 3.13.102.v20180320-1701_BETA_JAVA10 + org.eclipse.jdt org.eclipse.jdt.core diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaConfig.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaConfig.java index 158bbdf7b..6383624a3 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaConfig.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/BootJavaConfig.java @@ -24,7 +24,7 @@ public class BootJavaConfig { private Settings settings = new Settings(null); public boolean isBootHintsEnabled() { - Boolean enabled = (Boolean) settings.getProperty("boot-java", "boot-hints", "on"); + Boolean enabled = settings.getBoolean("boot-java", "boot-hints", "on"); return enabled == null || enabled.booleanValue(); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReferencesHandler.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReferencesHandler.java index 43c6286f4..7253da5ec 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReferencesHandler.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReferencesHandler.java @@ -13,7 +13,6 @@ package org.springframework.ide.vscode.boot.java.handlers; import java.nio.file.Path; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.stream.Stream; import org.eclipse.jdt.core.JavaCore; @@ -71,9 +70,9 @@ public class BootJavaReferencesHandler implements ReferencesHandler { } private List provideReferences(TextDocument document, int offset) throws Exception { - ASTParser parser = ASTParser.newParser(AST.JLS9); + ASTParser parser = ASTParser.newParser(AST.JLS10); Map options = JavaCore.getOptions(); - JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options); + JavaCore.setComplianceOptions(JavaCore.VERSION_10, options); parser.setCompilerOptions(options); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setStatementsRecovery(true); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java index 90dc7c7f5..2a22b9de0 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java @@ -141,9 +141,9 @@ public final class CompilationUnitCache { } public static CompilationUnit parse(char[] source, String docURI, String unitName, String[] classpathEntries) throws Exception { - ASTParser parser = ASTParser.newParser(AST.JLS9); + ASTParser parser = ASTParser.newParser(AST.JLS10); Map options = JavaCore.getOptions(); - JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options); + JavaCore.setComplianceOptions(JavaCore.VERSION_10, options); parser.setCompilerOptions(options); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setStatementsRecovery(true); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java index a163daab4..8bae8baf9 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java @@ -359,7 +359,7 @@ public class SpringIndexer { private void scanProject(IJavaProject project, String[] files) { try { - ASTParser parser = ASTParser.newParser(AST.JLS9); + ASTParser parser = ASTParser.newParser(AST.JLS10); String[] classpathEntries = getClasspathEntries(project); scanFiles(parser, files, classpathEntries); @@ -370,9 +370,9 @@ public class SpringIndexer { } private void scanFile(String docURI, String content, String[] classpathEntries) throws Exception { - ASTParser parser = ASTParser.newParser(AST.JLS9); + ASTParser parser = ASTParser.newParser(AST.JLS10); Map options = JavaCore.getOptions(); - JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options); + JavaCore.setComplianceOptions(JavaCore.VERSION_10, options); parser.setCompilerOptions(options); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setStatementsRecovery(true); @@ -408,7 +408,7 @@ public class SpringIndexer { private void scanFiles(ASTParser parser, String[] javaFiles, String[] classpathEntries) throws Exception { Map options = JavaCore.getOptions(); - JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options); + JavaCore.setComplianceOptions(JavaCore.VERSION_10, options); parser.setCompilerOptions(options); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setStatementsRecovery(true); diff --git a/vscode-extensions/vscode-bosh/package.json b/vscode-extensions/vscode-bosh/package.json index e250262d5..5ae068b74 100644 --- a/vscode-extensions/vscode-bosh/package.json +++ b/vscode-extensions/vscode-bosh/package.json @@ -3,7 +3,7 @@ "displayName": "Bosh Editor", "description": "Provides validation and content assist for various Bosh configuration files", "icon": "icon.png", - "version": "0.2.0", + "version": "0.2.1", "publisher": "Pivotal", "repository": { "type": "git", diff --git a/vscode-extensions/vscode-concourse/package.json b/vscode-extensions/vscode-concourse/package.json index 4444d212b..ba16df714 100644 --- a/vscode-extensions/vscode-concourse/package.json +++ b/vscode-extensions/vscode-concourse/package.json @@ -3,7 +3,7 @@ "displayName": "Concourse CI Pipeline Editor", "description": "Provides validation and content assist for Concourse CI pipeline and task configuration yml files", "icon": "icon.png", - "version": "0.2.0", + "version": "0.2.1", "publisher": "Pivotal", "repository": { "type": "git", diff --git a/vscode-extensions/vscode-manifest-yaml/package.json b/vscode-extensions/vscode-manifest-yaml/package.json index 2c45af68d..ad2b19869 100644 --- a/vscode-extensions/vscode-manifest-yaml/package.json +++ b/vscode-extensions/vscode-manifest-yaml/package.json @@ -3,7 +3,7 @@ "displayName": "Cloudfoundry Manifest YML Support", "description": "Adds linting, content assist and hoverinfo's for Cloudfoundry Deployment Manifests (a.k.a. `manifest.yml`) files.", "icon": "icon.png", - "version": "0.2.0", + "version": "0.2.1", "publisher": "Pivotal", "repository": { "type": "git", diff --git a/vscode-extensions/vscode-spring-boot/package.json b/vscode-extensions/vscode-spring-boot/package.json index bdd9dcf72..303dd936b 100644 --- a/vscode-extensions/vscode-spring-boot/package.json +++ b/vscode-extensions/vscode-spring-boot/package.json @@ -3,7 +3,7 @@ "displayName": "Spring Boot Tools", "description": "Provides validation and content assist for Spring Boot `application.properties`, `application.yml` properties files. As well as Boot-specific support for `.java` files.", "icon": "spring-boot-logo.png", - "version": "0.2.0", + "version": "0.2.1", "publisher": "Pivotal", "repository": { "type": "git", @@ -58,6 +58,17 @@ "configuration": "./properties-support/language-configuration.json" } ], + "configuration": { + "type": "object", + "title": "Boot-Java Configuration", + "properties": { + "boot-java.boot-hints.on": { + "type": "boolean", + "default": true, + "description": "Enable/Disable Spring running Boot application live hints decorators in the source code" + } + } + }, "grammars": [ { "language": "spring-boot-properties-yaml",