From 6f2b8be8021a28b5507da3f401b1f358b068124f Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Mon, 16 Apr 2018 14:24:42 -0700 Subject: [PATCH] Split jdt ls extension into two parts One pugin to contain the bulk of the code, which is independent of jdt.ls, lsp4e and lsp4j. Second plugin to contain the jdt.ls specific DelegateCommandHandler implementation. This should allow us to somehow re-use the bulk of the code in STS4 eclipse, i.e. when we have access to JDT from eclipse directly, and there is no jdt.ls process around. --- .../languageserver/STS4LanguageClient.java | 3 - .../testharness/LanguageServerHarness.java | 5 -- headless-services/jdt-ls-extension/.project | 11 +++ .../.classpath | 0 .../.project | 28 +++++++ .../.settings/org.eclipse.jdt.core.prefs | 0 .../META-INF/MANIFEST.MF | 13 +++ .../build.properties | 4 + .../pom.xml | 18 +++++ .../tooling/jdt/ls/commons}/Logger.java | 8 +- .../jdt/ls/commons/classpath}/Classpath.java | 2 +- .../classpath}/ClasspathListenerManager.java | 5 +- .../ls/commons/classpath}/ClasspathUtil.java | 19 ++++- .../ls/commons/resources}/ResourceUtils.java | 4 +- .../.classpath | 7 ++ .../.project | 0 .../.settings/org.eclipse.jdt.core.prefs | 7 ++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../META-INF/MANIFEST.MF | 3 +- .../build.properties | 0 .../plugin.xml | 5 -- .../pom.xml | 18 +++++ .../extension/ClasspathListenerHandler.java | 12 ++- .../target-platform.target | 0 headless-services/jdt-ls-extension/pom.xml | 45 +++++++++++ .../pom.xml | 36 --------- .../ls/extension/ResolveProjectHandler.java | 81 ------------------- vscode-extensions/vscode-spring-boot/build.sh | 10 ++- .../vscode-spring-boot/package.json | 3 +- .../vscode-spring-boot/scripts/preinstall.sh | 8 +- 30 files changed, 206 insertions(+), 153 deletions(-) create mode 100644 headless-services/jdt-ls-extension/.project rename headless-services/{org.springframework.tooling.jdt.ls.extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons}/.classpath (100%) create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.project rename headless-services/{org.springframework.tooling.jdt.ls.extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons}/.settings/org.eclipse.jdt.core.prefs (100%) create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/META-INF/MANIFEST.MF create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/build.properties create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/pom.xml rename headless-services/{org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons}/Logger.java (84%) rename headless-services/{org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath}/Classpath.java (95%) rename headless-services/{org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath}/ClasspathListenerManager.java (95%) rename headless-services/{org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath}/ClasspathUtil.java (54%) rename headless-services/{org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension => jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/resources}/ResourceUtils.java (95%) create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.classpath rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/.project (100%) create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.m2e.core.prefs rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF (84%) rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/build.properties (100%) rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/plugin.xml (60%) create mode 100644 headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/pom.xml rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java (91%) rename headless-services/{ => jdt-ls-extension}/org.springframework.tooling.jdt.ls.extension/target-platform.target (100%) create mode 100644 headless-services/jdt-ls-extension/pom.xml delete mode 100644 headless-services/org.springframework.tooling.jdt.ls.extension/pom.xml delete mode 100644 headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResolveProjectHandler.java diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/STS4LanguageClient.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/STS4LanguageClient.java index ab042ad07..92056a7ad 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/STS4LanguageClient.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/STS4LanguageClient.java @@ -35,9 +35,6 @@ public interface STS4LanguageClient extends LanguageClient { @JsonRequest("sts/moveCursor") CompletableFuture moveCursor(CursorMovement cursorMovement); - @JsonRequest("sts/project") - CompletableFuture project(String uri); - @JsonRequest("sts/addClasspathListener") CompletableFuture addClasspathListener(ClasspathListenerParams params); diff --git a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java index 01432f5e3..2e7f2dddb 100644 --- a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java +++ b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java @@ -294,11 +294,6 @@ public class LanguageServerHarness { return CompletableFuture.completedFuture(new ApplyWorkspaceEditResponse(false)); } - @Override - public CompletableFuture project(String uri) { - return CompletableFuture.completedFuture(null); - } - @Override public CompletableFuture addClasspathListener( ClasspathListenerParams params) { diff --git a/headless-services/jdt-ls-extension/.project b/headless-services/jdt-ls-extension/.project new file mode 100644 index 000000000..c44650705 --- /dev/null +++ b/headless-services/jdt-ls-extension/.project @@ -0,0 +1,11 @@ + + + jdt-ls-extension-parent + + + + + + + + diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/.classpath b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.classpath similarity index 100% rename from headless-services/org.springframework.tooling.jdt.ls.extension/.classpath rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.classpath diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.project b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.project new file mode 100644 index 000000000..2f8d26d73 --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.project @@ -0,0 +1,28 @@ + + + org.springframework.tooling.jdt.ls.commons + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from headless-services/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/.settings/org.eclipse.jdt.core.prefs diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/META-INF/MANIFEST.MF b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/META-INF/MANIFEST.MF new file mode 100644 index 000000000..de71fc161 --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Commons +Bundle-SymbolicName: org.springframework.tooling.jdt.ls.commons +Bundle-Version: 1.0.0.qualifier +Automatic-Module-Name: org.springframework.tooling.jdt.ls.commons +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.jdt.ls.core, + org.eclipse.core.runtime, + org.eclipse.jdt.core, + org.eclipse.core.resources +Export-Package: org.springframework.tooling.jdt.ls.commons, + org.springframework.tooling.jdt.ls.commons.classpath diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/build.properties b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/build.properties new file mode 100644 index 000000000..34d2e4d2d --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/pom.xml b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/pom.xml new file mode 100644 index 000000000..a1bfa4d2c --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + eclipse-plugin + org.springframework.ide.vscode + org.springframework.tooling.jdt.ls.commons + 1.0.0-SNAPSHOT + org.springframework.tooling.jdt.ls.commons + + + org.springframework.tooling + jdt-ls-extension-parent + 0.0.1-SNAPSHOT + ../pom.xml + + + \ No newline at end of file diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Logger.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/Logger.java similarity index 84% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Logger.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/Logger.java index 2a47882e8..e2a2bdc9d 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Logger.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/Logger.java @@ -8,13 +8,17 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.tooling.jdt.ls.extension; +package org.springframework.tooling.jdt.ls.commons; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; +import java.util.Date; +/** + * Poor man's logger which writes log output for jdt.ls extension into a predictable location. + */ public class Logger { private static PrintWriter printwriter; @@ -24,7 +28,7 @@ public class Logger { file = new File(file, "stsjdt.log"); try { printwriter = new PrintWriter(new FileOutputStream(file), true); - log("====================================="); + log("======== "+new Date()+" ======="); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Classpath.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/Classpath.java similarity index 95% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Classpath.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/Classpath.java index ff3f345ce..7ef921e2c 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/Classpath.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/Classpath.java @@ -1,4 +1,4 @@ -package org.springframework.tooling.jdt.ls.extension; +package org.springframework.tooling.jdt.ls.commons.classpath; import java.util.List; diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerManager.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathListenerManager.java similarity index 95% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerManager.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathListenerManager.java index 0b0459030..e510b22e3 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerManager.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathListenerManager.java @@ -8,7 +8,7 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.tooling.jdt.ls.extension; +package org.springframework.tooling.jdt.ls.commons.classpath; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; @@ -19,8 +19,9 @@ import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaElementDelta; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; +import org.springframework.tooling.jdt.ls.commons.Logger; -import static org.springframework.tooling.jdt.ls.extension.Logger.log; +import static org.springframework.tooling.jdt.ls.commons.Logger.*; /** * An instance of this class provides a means to register diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathUtil.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathUtil.java similarity index 54% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathUtil.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathUtil.java index b527327cd..d2c44d6d6 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathUtil.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathUtil.java @@ -1,6 +1,18 @@ -package org.springframework.tooling.jdt.ls.extension; +/******************************************************************************* + * 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.tooling.jdt.ls.commons.classpath; -import static org.springframework.tooling.jdt.ls.extension.Logger.log; +import static org.springframework.tooling.jdt.ls.commons.classpath.Classpath.ENTRY_KIND_BINARY; +import static org.springframework.tooling.jdt.ls.commons.classpath.Classpath.ENTRY_KIND_SOURCE; +import static org.springframework.tooling.jdt.ls.commons.Logger.*; import java.util.ArrayList; import java.util.List; @@ -8,8 +20,7 @@ import java.util.List; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.springframework.tooling.jdt.ls.extension.Classpath.CPE; -import static org.springframework.tooling.jdt.ls.extension.Classpath.*; +import org.springframework.tooling.jdt.ls.commons.classpath.Classpath.CPE; public class ClasspathUtil { diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResourceUtils.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/resources/ResourceUtils.java similarity index 95% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResourceUtils.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/resources/ResourceUtils.java index 587faaf11..1dc2e1206 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResourceUtils.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/resources/ResourceUtils.java @@ -8,9 +8,9 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.tooling.jdt.ls.extension; +package org.springframework.tooling.jdt.ls.commons.resources; -import static org.springframework.tooling.jdt.ls.extension.Logger.log; +import static org.springframework.tooling.jdt.ls.commons.Logger.*; import java.io.File; import java.net.URI; diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.classpath b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.classpath new file mode 100644 index 000000000..43b986286 --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/.project b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.project similarity index 100% rename from headless-services/org.springframework.tooling.jdt.ls.extension/.project rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.project diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..0c68a61dc --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.m2e.core.prefs b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..f897a7f1c --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF similarity index 84% rename from headless-services/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF index a0b861284..69cf6e212 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/META-INF/MANIFEST.MF @@ -8,4 +8,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.jdt.ls.core, org.eclipse.core.runtime, org.eclipse.jdt.core, - org.eclipse.core.resources + org.eclipse.core.resources, + org.springframework.tooling.jdt.ls.commons diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/build.properties b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/build.properties similarity index 100% rename from headless-services/org.springframework.tooling.jdt.ls.extension/build.properties rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/build.properties diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/plugin.xml b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/plugin.xml similarity index 60% rename from headless-services/org.springframework.tooling.jdt.ls.extension/plugin.xml rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/plugin.xml index 72a9130a8..ba904cbf3 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/plugin.xml +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/plugin.xml @@ -1,11 +1,6 @@ - - - - - diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/pom.xml b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/pom.xml new file mode 100644 index 000000000..6dbebe6f0 --- /dev/null +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + eclipse-plugin + org.springframework.tooling + org.springframework.tooling.jdt.ls.extension + 1.0.0-SNAPSHOT + org.springframework.tooling.jdt.ls.extension + + + org.springframework.tooling + jdt-ls-extension-parent + 0.0.1-SNAPSHOT + ../pom.xml + + \ No newline at end of file diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java similarity index 91% rename from headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java index 320b908ef..62d0e63eb 100644 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ClasspathListenerHandler.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.springframework.tooling.jdt.ls.extension; -import static org.springframework.tooling.jdt.ls.extension.Logger.log; +import static org.springframework.tooling.jdt.ls.commons.Logger.log; import java.util.HashMap; import java.util.List; @@ -24,11 +24,19 @@ import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.ls.core.internal.IDelegateCommandHandler; import org.eclipse.jdt.ls.core.internal.JavaClientConnection; import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin; -import org.springframework.tooling.jdt.ls.extension.ClasspathListenerManager.ClasspathListener; +import org.springframework.tooling.jdt.ls.commons.Logger; +import org.springframework.tooling.jdt.ls.commons.classpath.Classpath; +import org.springframework.tooling.jdt.ls.commons.classpath.ClasspathListenerManager; +import org.springframework.tooling.jdt.ls.commons.classpath.ClasspathListenerManager.ClasspathListener; +import org.springframework.tooling.jdt.ls.commons.classpath.ClasspathUtil; @SuppressWarnings("restriction") public class ClasspathListenerHandler implements IDelegateCommandHandler { + static { + Logger.log("THIS IS NEW!"); + } + static final boolean isSupported = checkSupported(); private static boolean checkSupported() { try { diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/target-platform.target b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/target-platform.target similarity index 100% rename from headless-services/org.springframework.tooling.jdt.ls.extension/target-platform.target rename to headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/target-platform.target diff --git a/headless-services/jdt-ls-extension/pom.xml b/headless-services/jdt-ls-extension/pom.xml new file mode 100644 index 000000000..4ca5c3dda --- /dev/null +++ b/headless-services/jdt-ls-extension/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + + org.springframework.tooling + jdt-ls-extension-parent + pom + 0.0.1-SNAPSHOT + jdt-ls-extension-parent + + + org.springframework.tooling.jdt.ls.extension + org.springframework.tooling.jdt.ls.commons + + + + 1.1.0 + + + + eclipse-oxygen + p2 + http://download.eclipse.org/releases/oxygen + + + JDT.LS + p2 + + http://download.eclipse.org/jdtls/snapshots/repository/latest/ + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + + + diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/pom.xml b/headless-services/org.springframework.tooling.jdt.ls.extension/pom.xml deleted file mode 100644 index aecd3471a..000000000 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - 4.0.0 - eclipse-plugin - org.springframework.ide.vscode - org.springframework.tooling.jdt.ls.extension - 1.0.0-SNAPSHOT - org.springframework.tooling.jdt.ls.extension - - 1.1.0 - - - - eclipse-oxygen - p2 - http://download.eclipse.org/releases/oxygen - - - JDT.LS - p2 - - http://download.eclipse.org/jdtls/snapshots/repository/latest/ - - - - - - org.eclipse.tycho - tycho-maven-plugin - ${tycho-version} - true - - - - \ No newline at end of file diff --git a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResolveProjectHandler.java b/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResolveProjectHandler.java deleted file mode 100644 index a7b03400e..000000000 --- a/headless-services/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/ResolveProjectHandler.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * 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.tooling.jdt.ls.extension; - -import static org.springframework.tooling.jdt.ls.extension.Logger.log; - -import java.net.URI; -import java.util.List; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.ls.core.internal.IDelegateCommandHandler; - -@SuppressWarnings("restriction") -public class ResolveProjectHandler implements IDelegateCommandHandler { - - @Override - public Object executeCommand(String commandId, List arguments, IProgressMonitor monitor) throws Exception { - - log("ResolveProjectHandler=" + commandId); - try { - URI resourceUri = ResourceUtils.getResourceUri(arguments); - - log("resourceUri=" + resourceUri); - - IJavaProject javaProject = ResourceUtils.getJavaProject(resourceUri); - - ProjectResponse projectResponse = new ProjectResponse(javaProject.getElementName(), javaProject.getProject().getLocationURI().toString()); - - log("projectResponse="+projectResponse); - - return projectResponse; - } catch (Exception e) { - log(e); - throw e; - } - } - - public class ProjectResponse { - - private String name; - private String uri; - - public ProjectResponse(String name, String uri) { - super(); - this.name = name; - this.uri = uri; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - @Override - public String toString() { - return "ProjectResponse [name=" + name + ", uri=" + uri + "]"; - } - - } - -} diff --git a/vscode-extensions/vscode-spring-boot/build.sh b/vscode-extensions/vscode-spring-boot/build.sh index c823c40b5..d69d8b015 100755 --- a/vscode-extensions/vscode-spring-boot/build.sh +++ b/vscode-extensions/vscode-spring-boot/build.sh @@ -4,9 +4,9 @@ set -e -x workdir=$(pwd) # Build jdt.ls -cd ${HOME}/git/eclipse.jdt.ls -jdt_ls_repo=$(pwd) -./mvnw -Pserver-distro -Pupdate-site clean package +# cd ${HOME}/git/eclipse.jdt.ls +# jdt_ls_repo=$(pwd) +# ./mvnw -Pserver-distro -Pupdate-site clean package # Section below disabled for now. So we can work on the 'fallbacks' with missing or old vscode-java # Build vscode-java @@ -21,10 +21,12 @@ jdt_ls_repo=$(pwd) #code --uninstall-extension redhat.java || echo "Not installed redhat.java" #code --install-extension *.vsix +code --install-extension redhat.java + # Build spring boot ls cd $workdir npm install rm -fr *.vsix npm run vsce-package -code --uninstall-extension Pivotal.vscode-spring-boot || echo "Not installed Pivotal.vscode-spring-boot" +rm -fr ${home}/.vscode/extensions/Pivotal.vscode-spring-boot-* code --install-extension *.vsix diff --git a/vscode-extensions/vscode-spring-boot/package.json b/vscode-extensions/vscode-spring-boot/package.json index 530807396..939d6204e 100644 --- a/vscode-extensions/vscode-spring-boot/package.json +++ b/vscode-extensions/vscode-spring-boot/package.json @@ -32,6 +32,7 @@ ], "contributes": { "javaExtensions": [ + "./jars/jdt-ls-commons.jar", "./jars/jdt-ls-extension.jar" ], "languages": [ @@ -93,7 +94,7 @@ "vsce-package": "vsce package" }, "dependencies": { - "@pivotal-tools/commons-vscode": "^0.2.0", + "@pivotal-tools/commons-vscode": "file:../commons-vscode/pivotal-tools-commons-vscode-0.2.1.tgz", "vscode-languageclient": "^4.0.0" }, "devDependencies": { diff --git a/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh b/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh index 21af126dc..7e1e832b3 100755 --- a/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh +++ b/vscode-extensions/vscode-spring-boot/scripts/preinstall.sh @@ -16,10 +16,10 @@ rm -fr ${workdir}/jars mkdir -p ${workdir}/jars # Use maven to build jdt ls extension -cd ../../headless-services/org.springframework.tooling.jdt.ls.extension -../mvnw \ - clean package -cp target/*.jar ${workdir}/jars/jdt-ls-extension.jar +cd ../../headless-services/jdt-ls-extension +../mvnw clean package +cp org.springframework.tooling.jdt.ls.extension/target/*.jar ${workdir}/jars/jdt-ls-extension.jar +cp org.springframework.tooling.jdt.ls.commons/target/*.jar ${workdir}/jars/jdt-ls-commons.jar # Use maven to build fat jar of the language server cd ../../headless-services/spring-boot-language-server