diff --git a/.gitignore b/.gitignore
index 5f213a553..70703bf93 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,12 @@
eclipse-language-servers/**/*.jar
*.war
*.ear
+**/.sts4-cache/*
+**/test-projects/**/*.classpath
+**/test-projects/**/*.vscode
+**/test-projects/**/*.project
+**/test-projects/**/*.settings
+**/test-projects/**/*.springBeans
# Exceptions
!**/.mvn/wrapper/maven-wrapper.jar
diff --git a/README-dev-env.txt b/README-dev-env.md
similarity index 93%
rename from README-dev-env.txt
rename to README-dev-env.md
index b62a6c417..4a2022ee2 100644
--- a/README-dev-env.txt
+++ b/README-dev-env.md
@@ -1,6 +1,6 @@
-STS4 - Dev Environment Setup
+# STS4 - Dev Environment Setup
-# Running the STS4 Boot Java Language Server locally
+## Running the STS4 Boot Java Language Server locally
Import the headless-services modules into your workspace as existing Maven projects.
Startup the boot java language server with:
@@ -30,7 +30,7 @@ Save, then launch by pressing `F5`.
This connects the VSCode extension to the locally running language server.
It also uses port 5007
-# Connect local STS4 Boot Java LS to Eclipse runtime workbench
+## Connect local STS4 Boot Java LS to Eclipse runtime workbench
Startup Eclipse or STS (3). I.e something that support for RCP / plugin development.
@@ -43,7 +43,7 @@ The language server plugin is: org.springframework.tooling.boot.java.ls
Add Vmargs: -Dboot-java-ls-port=5007
This lets the Eclipse language server extension connect to the locally running language server on port 5007
-# Additional Resources:
+## Additional Resources:
- Generic editor source code (used by lsp4e as a dependency): https://github.com/eclipse/eclipse.platform.text
Not sure which version of this you should checkout, it probably depends on your version of Eclipse as this is part
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/META-INF/MANIFEST.MF
index 90f864832..3335ccef7 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/META-INF/MANIFEST.MF
@@ -3,15 +3,15 @@ Bundle-ManifestVersion: 2
Bundle-Name: Spring Boot Java Language Server
Bundle-Vendor: Pivotal, Inc.
Bundle-SymbolicName: org.springframework.tooling.boot.java.ls;singleton:=true
-Bundle-Version: 0.0.10.qualifier
+Bundle-Version: 0.2.0.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",
- org.eclipse.lsp4e;bundle-version="0.1.0",
+ org.eclipse.lsp4e;bundle-version="0.5.0",
org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.jface.text;bundle-version="3.11.100",
org.eclipse.jdt.ui;bundle-version="3.13.0",
- org.eclipse.lsp4j,
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.ui.workbench,
org.eclipse.jface,
org.eclipse.xtext.xbase.lib,
@@ -20,8 +20,8 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.ui
Import-Package: com.google.gson;version="2.7.0",
org.eclipse.jface.preference,
- org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
- org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
+ org.eclipse.lsp4j.jsonrpc.messages;version="0.4.0",
+ org.eclipse.lsp4j.services;version="0.4.0",
org.osgi.framework
Bundle-Activator: org.springframework.tooling.boot.java.ls.BootJavaLanguageServerPlugin
Bundle-ActivationPolicy: lazy
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/pom.xml
index 8ce659067..381ad544b 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/pom.xml
@@ -12,14 +12,14 @@
org.springframework.tooling.boot.java.ls
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
eclipse-plugin
org.springframework.ide.vscode
boot-java-language-server
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
diff --git a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/Constants.java
index 8f398dfe2..2af48b6d2 100644
--- a/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/Constants.java
+++ b/eclipse-language-servers/org.springframework.tooling.boot.java.ls/src/org/springframework/tooling/boot/java/ls/Constants.java
@@ -16,7 +16,7 @@ package org.springframework.tooling.boot.java.ls;
public class Constants {
public static final String PLUGIN_ID = "org.springframework.tooling.boot.java.ls";
- public static final String LANGUAGE_SERVER_VERSION = "0.0.10-SNAPSHOT.jar";
+ public static final String LANGUAGE_SERVER_VERSION = "0.2.0-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 7443c1a53..702c6a372 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,22 +3,22 @@ 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.0.10.qualifier
+Bundle-Version: 0.2.0.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",
- org.eclipse.lsp4e;bundle-version="0.1.0",
+ org.eclipse.lsp4e;bundle-version="0.5.0",
org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.jface.text;bundle-version="3.11.100",
org.eclipse.jdt.ui;bundle-version="3.13.0",
org.eclipse.tm4e.core;bundle-version="0.1.0",
org.eclipse.tm4e.ui;bundle-version="0.1.0",
- org.eclipse.lsp4j,
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.ui.workbench,
org.eclipse.jface,
org.springframework.tooling.ls.eclipse.commons;bundle-version="4.0.0"
Import-Package: com.google.gson;version="2.7.0",
org.eclipse.jface.preference,
- org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
- org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
+ org.eclipse.lsp4j.jsonrpc.messages;version="0.4.0",
+ org.eclipse.lsp4j.services;version="0.4.0",
org.osgi.framework
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 f9d5eabaa..94f5ca384 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.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
eclipse-plugin
org.springframework.ide.vscode
bosh-language-server
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
org.springframework.ide.eclipse
diff --git a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java
index 6058385e1..1718c3dcc 100644
--- a/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java
+++ b/eclipse-language-servers/org.springframework.tooling.bosh.ls/src/org/springframework/tooling/bosh/ls/BoshLanguageServer.java
@@ -48,7 +48,7 @@ public class BoshLanguageServer extends STS4LanguageServerProcessStreamConnector
}
protected String getLanguageServerJARLocation() {
- String languageServer = "bosh-language-server-" + Constants.LANGUAGE_SERVER_VERSION + "-SNAPSHOT.jar";
+ String languageServer = "bosh-language-server-" + Constants.LANGUAGE_SERVER_VERSION + ".jar";
Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID);
File dataFile = bundle.getDataFile(languageServer);
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 acf4bdf0b..1dfacb8b0 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.0.10";
+ public static final String LANGUAGE_SERVER_VERSION = "0.2.0-SNAPSHOT";
}
diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
index 77835433f..200c3c89e 100644
--- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls.integration/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-Version: 4.0.0.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",
- org.eclipse.lsp4e;bundle-version="0.1.0",
+ org.eclipse.lsp4e;bundle-version="0.5.0",
org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.jface.text;bundle-version="3.11.100",
org.eclipse.jdt.ui;bundle-version="3.13.0",
@@ -15,6 +15,6 @@ Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.tm4e.ui;bundle-version="0.1.0",
org.springframework.tooling.cloudfoundry.manifest.ls;bundle-version="0.0.9"
Import-Package: org.eclipse.jface.preference,
- org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
- org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
+ org.eclipse.lsp4j.jsonrpc.messages;version="0.4.0",
+ org.eclipse.lsp4j.services;version="0.4.0",
org.osgi.framework
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 b7ccbf12b..4095eb14b 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.0.10.qualifier
+Bundle-Version: 0.2.0.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 b570d7d53..347c234d3 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.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
eclipse-plugin
org.springframework.ide.vscode
manifest-yaml-language-server
- 0.0.10-SNAPSHOT
+ 0.2.0-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 108f28c8d..505d36fd7 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.0.10-SNAPSHOT.jar";
+ public static final String LANGUAGE_SERVER_VERSION = "0.2.0-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 3beaddaff..8abff5cca 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,22 +3,22 @@ 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.0.10.qualifier
+Bundle-Version: 0.2.0.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",
- org.eclipse.lsp4e;bundle-version="0.1.0",
+ org.eclipse.lsp4e;bundle-version="0.5.0",
org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.jface.text;bundle-version="3.11.100",
org.eclipse.jdt.ui;bundle-version="3.13.0",
org.eclipse.tm4e.core;bundle-version="0.1.0",
org.eclipse.tm4e.ui;bundle-version="0.1.0",
- org.eclipse.lsp4j,
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.ui.workbench,
org.eclipse.jface,
org.springframework.tooling.ls.eclipse.commons;bundle-version="4.0.0"
Import-Package: com.google.gson;version="2.7.0",
org.eclipse.jface.preference,
- org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
- org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
+ org.eclipse.lsp4j.jsonrpc.messages;version="0.4.0",
+ org.eclipse.lsp4j.services;version="0.4.0",
org.osgi.framework
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 3518144f0..40fda3c39 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.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
eclipse-plugin
org.springframework.ide.vscode
concourse-language-server
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
org.springframework.ide.eclipse
diff --git a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java
index 7f8f51834..8b024dfa0 100644
--- a/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java
+++ b/eclipse-language-servers/org.springframework.tooling.concourse.ls/src/org/springframework/tooling/concourse/ls/ConcourseLanguageServer.java
@@ -48,7 +48,7 @@ public class ConcourseLanguageServer extends STS4LanguageServerProcessStreamConn
}
protected String getLanguageServerJARLocation() {
- String languageServer = "concourse-language-server-" + Constants.LANGUAGE_SERVER_VERSION + "-SNAPSHOT.jar";
+ String languageServer = "concourse-language-server-" + Constants.LANGUAGE_SERVER_VERSION + ".jar";
Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID);
File dataFile = bundle.getDataFile(languageServer);
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 f3416dbfe..b65bca6da 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.0.10";
+ public static final String LANGUAGE_SERVER_VERSION = "0.2.0-SNAPSHOT";
}
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
index 9cfeb7391..6a295327a 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/META-INF/MANIFEST.MF
@@ -7,9 +7,9 @@ Bundle-Vendor: Pivotal, Inc.
Require-Bundle: org.eclipse.jdt.launching;bundle-version="3.9.0",
org.eclipse.ui,
org.eclipse.core.runtime,
- org.eclipse.lsp4e;bundle-version="0.3.0",
- org.eclipse.lsp4j.jsonrpc,
- org.eclipse.lsp4j,
+ org.eclipse.lsp4e;bundle-version="0.5.0",
+ org.eclipse.lsp4j.jsonrpc;bundle-version="0.4.0",
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.ui.workbench.texteditor,
org.eclipse.jface.text,
com.google.guava
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
index 9c95dbb31..69945cf29 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Goto Symbol Popup
Bundle-SymbolicName: org.springframework.tooling.ls.eclipse.gotosymbol;singleton:=true
-Bundle-Version: 0.0.10.qualifier
+Bundle-Version: 4.0.0.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.ui.workbench.texteditor,
- org.eclipse.lsp4e,
- org.eclipse.lsp4j,
+ org.eclipse.lsp4e;bundle-version="0.5.0",
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.jface.text;bundle-version="3.12.0",
org.eclipse.core.resources;bundle-version="3.12.0",
org.eclipse.core.filebuffers,
diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
index fcb61be93..81ef373ca 100644
--- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/pom.xml
@@ -11,6 +11,5 @@
org.springframework.tooling.ls.eclipse.gotosymbol
eclipse-plugin
- 0.0.10-SNAPSHOT
diff --git a/eclipse-language-servers/org.springframework.tooling.properties.ls/META-INF/MANIFEST.MF b/eclipse-language-servers/org.springframework.tooling.properties.ls/META-INF/MANIFEST.MF
index ea9911ca8..b3506309f 100644
--- a/eclipse-language-servers/org.springframework.tooling.properties.ls/META-INF/MANIFEST.MF
+++ b/eclipse-language-servers/org.springframework.tooling.properties.ls/META-INF/MANIFEST.MF
@@ -3,22 +3,22 @@ Bundle-ManifestVersion: 2
Bundle-Name: Spring Boot Properties Language Server
Bundle-Vendor: Pivotal, Inc.
Bundle-SymbolicName: org.springframework.tooling.properties.ls;singleton:=true
-Bundle-Version: 0.0.10.qualifier
+Bundle-Version: 0.2.0.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",
- org.eclipse.lsp4e;bundle-version="0.1.0",
+ org.eclipse.lsp4e;bundle-version="0.5.0",
org.eclipse.ui.genericeditor;bundle-version="1.0.0",
org.eclipse.jface.text;bundle-version="3.11.100",
org.eclipse.jdt.ui;bundle-version="3.13.0",
org.eclipse.tm4e.core;bundle-version="0.1.0",
org.eclipse.tm4e.ui;bundle-version="0.1.0",
- org.eclipse.lsp4j,
+ org.eclipse.lsp4j;bundle-version="0.4.0",
org.eclipse.ui.workbench,
org.eclipse.jface,
org.springframework.tooling.ls.eclipse.commons;bundle-version="4.0.0"
Import-Package: com.google.gson;version="2.7.0",
org.eclipse.jface.preference,
- org.eclipse.lsp4j.jsonrpc.messages;version="0.1.0.v20170117-0759",
- org.eclipse.lsp4j.services;version="0.1.0.v20170117-0759",
+ org.eclipse.lsp4j.jsonrpc.messages;version="0.4.0",
+ org.eclipse.lsp4j.services;version="0.4.0",
org.osgi.framework
diff --git a/eclipse-language-servers/org.springframework.tooling.properties.ls/pom.xml b/eclipse-language-servers/org.springframework.tooling.properties.ls/pom.xml
index 578fc78ad..258c7bd1c 100644
--- a/eclipse-language-servers/org.springframework.tooling.properties.ls/pom.xml
+++ b/eclipse-language-servers/org.springframework.tooling.properties.ls/pom.xml
@@ -12,14 +12,14 @@
org.springframework.tooling.properties.ls
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
eclipse-plugin
org.springframework.ide.vscode
boot-properties-language-server
- 0.0.10-SNAPSHOT
+ 0.2.0-SNAPSHOT
org.springframework.ide.eclipse
diff --git a/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/Constants.java b/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/Constants.java
index 05c4fd58b..e7dc6cf21 100644
--- a/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/Constants.java
+++ b/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/Constants.java
@@ -16,6 +16,6 @@ package org.springframework.tooling.properties.ls;
public class Constants {
public static final String PLUGIN_ID = "org.springframework.tooling.properties.ls";
- public static final String LANGUAGE_SERVER_VERSION = "0.0.10";
+ public static final String LANGUAGE_SERVER_VERSION = "0.2.0-SNAPSHOT";
}
diff --git a/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/SpringBootPropertiesLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/SpringBootPropertiesLanguageServer.java
index ca259d382..af060b9b7 100644
--- a/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/SpringBootPropertiesLanguageServer.java
+++ b/eclipse-language-servers/org.springframework.tooling.properties.ls/src/org/springframework/tooling/properties/ls/SpringBootPropertiesLanguageServer.java
@@ -48,7 +48,7 @@ public class SpringBootPropertiesLanguageServer extends STS4LanguageServerProces
}
protected String getLanguageServerJARLocation() {
- String languageServer = "boot-properties-language-server-" + Constants.LANGUAGE_SERVER_VERSION + "-SNAPSHOT.jar";
+ String languageServer = "boot-properties-language-server-" + Constants.LANGUAGE_SERVER_VERSION + ".jar";
Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID);
File dataFile = bundle.getDataFile(languageServer);
diff --git a/headless-services/boot-java-language-server/pom.xml b/headless-services/boot-java-language-server/pom.xml
index 5de5e9c82..edb013d84 100644
--- a/headless-services/boot-java-language-server/pom.xml
+++ b/headless-services/boot-java-language-server/pom.xml
@@ -8,7 +8,7 @@
org.springframework.ide.vscode
commons-parent
- 0.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../commons/pom.xml
diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ComponentInjectionsHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ComponentInjectionsHoverProvider.java
index 531ab8251..e9a3ed9d7 100644
--- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ComponentInjectionsHoverProvider.java
+++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ComponentInjectionsHoverProvider.java
@@ -92,6 +92,13 @@ public class ComponentInjectionsHoverProvider extends AbstractInjectedIntoHoverP
return ASTUtils.getAttribute(annotation, "value").flatMap(ASTUtils::getFirstString)
.orElseGet(() -> {
String typeName = beanType.getName();
+
+ ITypeBinding declaringClass = beanType.getDeclaringClass();
+ while (declaringClass != null) {
+ typeName = declaringClass.getName() + "." + typeName;
+ declaringClass = declaringClass.getDeclaringClass();
+ }
+
if (StringUtil.hasText(typeName)) {
return Character.toLowerCase(typeName.charAt(0)) + typeName.substring(1);
}
diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/LiveHoverUtils.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/LiveHoverUtils.java
index 7a681a967..72b27adc2 100644
--- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/LiveHoverUtils.java
+++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/LiveHoverUtils.java
@@ -23,9 +23,9 @@ public class LiveHoverUtils {
public static String showBean(LiveBean bean) {
StringBuilder buf = new StringBuilder("Bean [id: " + bean.getId());
- String type = bean.getType();
- if (type!=null) {
- buf.append(", type: `"+type+"`");
+ String type = bean.getType(true);
+ if (type != null) {
+ buf.append(", type: `" + type + "`");
}
buf.append(']');
return buf.toString();
@@ -35,10 +35,10 @@ public class LiveHoverUtils {
String newline = " \n"+indentStr; //Note: the double space before newline makes markdown see it as a real line break
StringBuilder buf = new StringBuilder("Bean: ");
buf.append(bean.getId());
- String type = bean.getType();
- if (type!=null) {
+ String type = bean.getType(true);
+ if (type != null) {
buf.append(newline);
- buf.append("Type: `"+type+"`");
+ buf.append("Type: `" + type + "`");
}
String resource = bean.getResource();
if (StringUtil.hasText(resource)) {
diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java
index 372404e6b..1726a4cab 100644
--- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java
+++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java
@@ -119,19 +119,28 @@ public class RequestMappingHoverProvider implements HoverProvider {
private boolean methodMatchesAnnotation(Annotation annotation, RequestMapping rm) {
String rqClassName = rm.getFullyQualifiedClassName();
- ASTNode parent = annotation.getParent();
- if (parent instanceof MethodDeclaration) {
- MethodDeclaration methodDec = (MethodDeclaration) parent;
- IMethodBinding binding = methodDec.resolveBinding();
- return binding.getDeclaringClass().getQualifiedName().equals(rqClassName)
- && binding.getName().equals(rm.getMethodName())
- && Arrays.equals(Arrays.stream(binding.getParameterTypes())
- .map(t -> t.getTypeDeclaration().getQualifiedName())
- .toArray(String[]::new),
- rm.getMethodParameters());
-// } else if (parent instanceof TypeDeclaration) {
-// TypeDeclaration typeDec = (TypeDeclaration) parent;
-// return typeDec.resolveBinding().getQualifiedName().equals(rqClassName);
+ if (rqClassName != null) {
+ int chop = rqClassName.indexOf("$$EnhancerBySpringCGLIB$$");
+ if (chop >= 0) {
+ rqClassName = rqClassName.substring(0, chop);
+ }
+
+ rqClassName = rqClassName.replace('$', '.');
+
+ ASTNode parent = annotation.getParent();
+ if (parent instanceof MethodDeclaration) {
+ MethodDeclaration methodDec = (MethodDeclaration) parent;
+ IMethodBinding binding = methodDec.resolveBinding();
+ return binding.getDeclaringClass().getQualifiedName().equals(rqClassName)
+ && binding.getName().equals(rm.getMethodName())
+ && Arrays.equals(Arrays.stream(binding.getParameterTypes())
+ .map(t -> t.getTypeDeclaration().getQualifiedName())
+ .toArray(String[]::new),
+ rm.getMethodParameters());
+ // } else if (parent instanceof TypeDeclaration) {
+ // TypeDeclaration typeDec = (TypeDeclaration) parent;
+ // return typeDec.resolveBinding().getQualifiedName().equals(rqClassName);
+ }
}
return false;
}
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java
index d5cc4b757..e4b736a1f 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/BeanInjectedIntoHoverProviderTest.java
@@ -219,6 +219,66 @@ public class BeanInjectedIntoHoverProviderTest {
);
}
+ @Test
+ public void beanFromInnerClassWithOneInjection() throws Exception {
+ LiveBeansModel beans = LiveBeansModel.builder()
+ .add(LiveBean.builder()
+ .id("fooImplementation")
+ .type("hello.FooImplementation")
+ .build()
+ )
+ .add(LiveBean.builder()
+ .id("myController")
+ .type("hello.MyController")
+ .dependencies("fooImplementation")
+ .build()
+ )
+ .add(LiveBean.builder()
+ .id("irrelevantBean")
+ .type("com.example.IrrelevantBean")
+ .dependencies("myController")
+ .build()
+ )
+ .build();
+ mockAppProvider.builder()
+ .isSpringBootApp(true)
+ .processId("111")
+ .processName("the-app")
+ .beans(beans)
+ .build();
+
+ Editor editor = harness.newEditor(LanguageId.JAVA,
+ "package hello;\n" +
+ "\n" +
+ "import org.springframework.context.annotation.Bean;\n" +
+ "import org.springframework.context.annotation.Configuration;\n" +
+ "import org.springframework.context.annotation.Profile;\n" +
+ "\n" +
+ "public class OuterClass {\n" +
+ " \n" +
+ " @Configuration\n" +
+ " public static class InnerClass {\n" +
+ " \n" +
+ " @Bean(\"fooImplementation\")\n" +
+ " Foo someFoo() {\n" +
+ " return new FooImplementation();\n" +
+ " }\n" +
+ " }\n" +
+ "}"
+ );
+ editor.assertHighlights("@Bean");
+ editor.assertTrimmedHover("@Bean",
+ "**Injection report for Bean [id: fooImplementation]**\n" +
+ "\n" +
+ "Process [PID=111, name=`the-app`]:\n" +
+ "\n" +
+ "Bean [id: fooImplementation, type: `hello.FooImplementation`] injected into:\n" +
+ "\n" +
+ "- Bean: myController \n" +
+ " Type: `hello.MyController`\n"
+ );
+ }
+
@Test
public void beanWithFileResource() throws Exception {
Path of = harness.getOutputFolder();
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java
index 04367e536..b64f9e6e7 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/livehover/test/ComponentInjectionsHoverProviderTest.java
@@ -585,7 +585,8 @@ public class ComponentInjectionsHoverProviderTest {
);
}
- @Test public void bug_153072942_SpringBootApplication__withCGLib_is_a_Component() throws Exception {
+ @Test
+ public void bug_153072942_SpringBootApplication__withCGLib_is_a_Component() throws Exception {
LiveBeansModel beans = LiveBeansModel.builder()
.add(LiveBean.builder()
.id("demoApplication")
@@ -623,4 +624,88 @@ public class ComponentInjectionsHoverProviderTest {
);
}
+ @Test
+ public void componentFromInnerClass() throws Exception {
+ LiveBeansModel beans = LiveBeansModel.builder()
+ .add(LiveBean.builder()
+ .id("demoApplication.InnerClass")
+ .type("com.example.DemoApplication$InnerClass")
+ .build()
+ )
+ .build();
+ mockAppProvider.builder()
+ .isSpringBootApp(true)
+ .processId("111")
+ .processName("the-app")
+ .beans(beans)
+ .build();
+
+ Editor editor = harness.newEditor(LanguageId.JAVA,
+ "package com.example;\n" +
+ "\n" +
+ "import org.springframework.boot.SpringApplication;\n" +
+ "import org.springframework.boot.autoconfigure.SpringBootApplication;\n" +
+ "import org.springframework.context.annotation.Bean;\n" +
+ "import org.springframework.web.client.RestTemplate;\n" +
+ "\n" +
+ "public class DemoApplication {\n" +
+ " \n" +
+ " @SpringBootApplication\n" +
+ " public static class InnerClass {\n" +
+ " \n" +
+ " public static void main(String[] args) {\n" +
+ " SpringApplication.run(DemoApplication.InnerClass.class, args);\n" +
+ " }\n" +
+ " }\n" +
+ "}\n"
+ );
+ editor.assertHighlights("@SpringBootApplication");
+ editor.assertHoverContains("@SpringBootApplication",
+ "**Injection report for Bean [id: demoApplication.InnerClass, type: `com.example.DemoApplication.InnerClass`]**"
+ );
+ }
+
+ @Test
+ public void componentFromInnerInnerClass() throws Exception {
+ LiveBeansModel beans = LiveBeansModel.builder()
+ .add(LiveBean.builder()
+ .id("demoApplication.InnerClass.InnerInnerClass")
+ .type("com.example.DemoApplication$InnerClass$InnerInnerClass")
+ .build()
+ )
+ .build();
+ mockAppProvider.builder()
+ .isSpringBootApp(true)
+ .processId("111")
+ .processName("the-app")
+ .beans(beans)
+ .build();
+
+ Editor editor = harness.newEditor(LanguageId.JAVA,
+ "package com.example;\n" +
+ "\n" +
+ "import org.springframework.boot.SpringApplication;\n" +
+ "import org.springframework.boot.autoconfigure.SpringBootApplication;\n" +
+ "import org.springframework.context.annotation.Bean;\n" +
+ "import org.springframework.web.client.RestTemplate;\n" +
+ "\n" +
+ "public class DemoApplication {\n" +
+ " \n" +
+ " public static class InnerClass {\n" +
+ " \n" +
+ " @SpringBootApplication\n" +
+ " public static class InnerInnerClass {\n" +
+ " \n" +
+ " public static void main(String[] args) {\n" +
+ " SpringApplication.run(DemoApplication.InnerClass.InnerInnerClass.class, args);\n" +
+ " }\n" +
+ " }\n" +
+ " }\n" +
+ "}\n"
+ );
+ editor.assertHighlights("@SpringBootApplication");
+ editor.assertHoverContains("@SpringBootApplication",
+ "**Injection report for Bean [id: demoApplication.InnerClass.InnerInnerClass, type: `com.example.DemoApplication.InnerClass.InnerInnerClass`]**"
+ );
+ }
}
diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java
index 602c2ab5b..6260b002c 100644
--- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java
+++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/requestmapping/test/RequestMappingLiveHoverTest.java
@@ -64,6 +64,7 @@ public class RequestMappingLiveHoverTest {
harness.intialize(directory);
Editor editor = harness.newEditorFromFileUri(docUri, LanguageId.JAVA);
+ editor.assertHighlights("@RequestMapping(method=RequestMethod.GET)");
editor.assertHoverContains("@RequestMapping(method=RequestMethod.GET)", "[http://cfapps.io:1111/hello-world](http://cfapps.io:1111/hello-world)\n" +
"\n" +
"Process [PID=22022, name=`test-request-mapping-live-hover`]");
@@ -94,6 +95,8 @@ public class RequestMappingLiveHoverTest {
harness.intialize(directory);
Editor editor = harness.newEditorFromFileUri(docUri, LanguageId.JAVA);
+ editor.assertHighlights("@RequestMapping(\"/hello\")", "@RequestMapping(\"/goodbye\")");
+
editor.assertHoverContains("@RequestMapping(\"/hello\")", "[http://cfapps.io:999/hello](http://cfapps.io:999/hello)\n" +
"\n" +
"Process [PID=76543, name=`test-request-mapping-live-hover`]");
@@ -214,12 +217,8 @@ public class RequestMappingLiveHoverTest {
docUri);
editor.assertNoHover("@DeleteMapping(\"/greetings\")");
-
}
-
-
-
@Test
public void testNoHoverHintMethod() throws Exception {
@@ -261,7 +260,6 @@ public class RequestMappingLiveHoverTest {
docUri);
editor.assertNoHover("@PutMapping(\"/greetings\")");
-
}
@Test
@@ -756,4 +754,39 @@ public class RequestMappingLiveHoverTest {
}
+ @Test
+ public void testMappingHoversInInnerClasses() throws Exception {
+
+ File directory = new File(
+ ProjectsHarness.class.getResource("/test-projects/test-request-mapping-live-hover/").toURI());
+ String docUri = "file://" +directory.getAbsolutePath() + "/src/main/java/example/InnerClassController.java";
+
+
+ // Build a mock running boot app
+ mockAppProvider.builder()
+ .isSpringBootApp(true)
+ .port("1111")
+ .processId("22022")
+ .host("cfapps.io")
+ .processName("test-request-mapping-live-hover")
+ // Ugly, but this is real JSON copied from a real live running app. We want the
+ // mock app to return realistic results if possible
+ .requestMappings(
+ "{\"/webjars/**\":{\"bean\":\"resourceHandlerMapping\"},\"/**\":{\"bean\":\"resourceHandlerMapping\"},\"/**/favicon.ico\":{\"bean\":\"faviconHandlerMapping\"},\"{[/hello-world],methods=[GET]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public example.Greeting example.HelloWorldController.sayHello(java.lang.String)\"},\"{[/inner-inner-class]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.InnerClassController$InnerController$InnerInnerController.saySomethingSuperInnerClass()\"},\"{[/inner-class]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.InnerClassController$InnerController.saySomething()\"},\"{[/person/{name}],methods=[GET]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.getMapping(java.lang.String)\"},\"{[/delete/{id}],methods=[DELETE]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.removeMe(int)\"},\"{[/goodbye]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.goodbye()\"},\"{[/hello]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.hello()\"},\"{[/postHello],methods=[POST]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.postMethod(java.lang.String)\"},\"{[/put/{id}],methods=[PUT]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public java.lang.String example.RestApi.putMethod(int,java.lang.String)\"},\"{[/error]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)\"},\"{[/error],produces=[text/html]}\":{\"bean\":\"requestMappingHandlerMapping\",\"method\":\"public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)\"}}")
+ .build();
+
+ harness.intialize(directory);
+
+ Editor editor = harness.newEditorFromFileUri(docUri, LanguageId.JAVA);
+ editor.assertHighlights("@RequestMapping(\"/inner-class\")", "@RequestMapping(\"/inner-inner-class\")");
+
+ editor.assertHoverContains("@RequestMapping(\"/inner-class\")", "[http://cfapps.io:1111/inner-class](http://cfapps.io:1111/inner-class)\n" +
+ "\n" +
+ "Process [PID=22022, name=`test-request-mapping-live-hover`]");
+
+ editor.assertHoverContains("@RequestMapping(\"/inner-inner-class\")", "[http://cfapps.io:1111/inner-inner-class](http://cfapps.io:1111/inner-inner-class)\n" +
+ "\n" +
+ "Process [PID=22022, name=`test-request-mapping-live-hover`]");
+ }
+
}
diff --git a/headless-services/boot-java-language-server/src/test/resources/test-projects/test-request-mapping-live-hover/src/main/java/example/InnerClassController.java b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-request-mapping-live-hover/src/main/java/example/InnerClassController.java
new file mode 100644
index 000000000..5401c345a
--- /dev/null
+++ b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-request-mapping-live-hover/src/main/java/example/InnerClassController.java
@@ -0,0 +1,28 @@
+package example;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+public class InnerClassController {
+
+ @RestController
+ public static class InnerController {
+
+ @RequestMapping("/inner-class")
+ public String saySomething() {
+ return "Hello from Inner-Class";
+ }
+
+ @RestController
+ public static class InnerInnerController {
+
+ @RequestMapping("/inner-inner-class")
+ public String saySomethingSuperInnerClass() {
+ return "Hello from Inner-Inner-Class";
+ }
+
+ }
+
+ }
+
+}
diff --git a/headless-services/boot-properties-language-server/pom.xml b/headless-services/boot-properties-language-server/pom.xml
index 240c50853..a4560f70e 100644
--- a/headless-services/boot-properties-language-server/pom.xml
+++ b/headless-services/boot-properties-language-server/pom.xml
@@ -8,7 +8,7 @@
org.springframework.ide.vscode
commons-parent
- 0.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../commons/pom.xml
diff --git a/headless-services/bosh-language-server/pom.xml b/headless-services/bosh-language-server/pom.xml
index 78d5b7017..404e35684 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../commons/pom.xml
diff --git a/headless-services/commons/commons-boot-app-cli/pom.xml b/headless-services/commons/commons-boot-app-cli/pom.xml
index 9fa6ac59c..9a179faf9 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/livebean/LiveBean.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/livebean/LiveBean.java
index d006a8497..e21badb98 100644
--- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/livebean/LiveBean.java
+++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/livebean/LiveBean.java
@@ -95,12 +95,19 @@ public class LiveBean {
public String getType(boolean stripCGLib) {
String type = this.type;
- if (stripCGLib) {
- int chop = type.indexOf("$$EnhancerBySpringCGLIB$$");
- if (chop>=0) {
- type = type.substring(0, chop);
+
+ if (type != null) {
+ if (stripCGLib) {
+ int chop = type.indexOf("$$EnhancerBySpringCGLIB$$");
+ if (chop >= 0) {
+ type = type.substring(0, chop);
+ }
}
+
+ // convert inner classes from $ to . notation
+ type = type.replace('$', '.');
}
+
return type;
}
diff --git a/headless-services/commons/commons-cf/pom.xml b/headless-services/commons/commons-cf/pom.xml
index 20b358672..df65c859e 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-gradle/pom.xml b/headless-services/commons/commons-gradle/pom.xml
index d6ed8d26f..3e01d4820 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-java/pom.xml b/headless-services/commons/commons-java/pom.xml
index 9384b8176..afcca3809 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-language-server/pom.xml b/headless-services/commons/commons-language-server/pom.xml
index 034308718..e6d143fc6 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-maven/pom.xml b/headless-services/commons/commons-maven/pom.xml
index 75bfba018..3673e4122 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-util/pom.xml b/headless-services/commons/commons-util/pom.xml
index 37c7ee4b7..2ac8e55cb 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/commons-yaml/pom.xml b/headless-services/commons/commons-yaml/pom.xml
index 3361d9bfa..686258d3d 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/java-properties/pom.xml b/headless-services/commons/java-properties/pom.xml
index c4c4b595d..a9b669f9e 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.1.0-SNAPSHOT
+ 0.2.0-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 e5f0dffef..2641e0b80 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../pom.xml
diff --git a/headless-services/commons/pom.xml b/headless-services/commons/pom.xml
index 43978d7c9..8f71b72ad 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
commons-parent
diff --git a/headless-services/concourse-language-server/pom.xml b/headless-services/concourse-language-server/pom.xml
index 3a540bdbd..9d0332b54 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.1.0-SNAPSHOT
+ 0.2.0-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 1408603ce..b7513017b 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.1.0-SNAPSHOT
+ 0.2.0-SNAPSHOT
../commons/pom.xml
diff --git a/headless-services/pom.xml b/headless-services/pom.xml
index ab8fca3a1..f62163d43 100644
--- a/headless-services/pom.xml
+++ b/headless-services/pom.xml
@@ -6,7 +6,7 @@
org.springframework.ide.vscode
headless-services-aggregator
pom
- 0.0.1-SNAPSHOT
+ 0.2.0-SNAPSHOT
aggregator
diff --git a/vscode-extensions/vscode-boot-properties/README.md b/vscode-extensions/vscode-boot-properties/README.md
index c55dde47f..169f5a8c6 100644
--- a/vscode-extensions/vscode-boot-properties/README.md
+++ b/vscode-extensions/vscode-boot-properties/README.md
@@ -8,7 +8,7 @@ VSCode extension and Language Server providing support for working with Spring B
The extension will automatically activate when you edit files with the following
name patterns:
- - `application*.java` => activates support for Spring Boot properties in `.properties`format.
+ - `application*.properties` => activates support for Spring Boot properties in `.properties`format.
- `application*.yml` => activates support for Spring Boot properties in `.yml` format.
You can also define your own patterns and map them to the language-ids