From cc68ced9ea9eed697cd1935969d5979a24f8efae Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Thu, 18 Apr 2019 13:22:19 -0700 Subject: [PATCH] Remove LANGUAGE_SERVER_VERSION constants... ... instead assume that language server version matches Eclipse bundle version. Also streamline code for finding server jar locations so it is no longer duplicated across every language server bundle. --- .../tooling/boot/ls/Constants.java | 1 - .../boot/ls/SpringBootLanguageServer.java | 56 ++------------ .../tooling/bosh/ls/BoshLanguageServer.java | 38 ++-------- .../tooling/bosh/ls/Constants.java | 1 - .../CloudFoundryManifestLanguageServer.java | 61 +++------------ .../cloudfoundry/manifest/ls/Constants.java | 1 - .../concourse/ls/ConcourseLanguageServer.java | 47 ++---------- .../tooling/concourse/ls/Constants.java | 1 - ...4LanguageServerProcessStreamConnector.java | 76 ++++++++++++++++++- .../commons-language-server/.factorypath | 16 ++-- .../commons/commons-maven/.factorypath | 20 ++--- .../concourse-language-server/.factorypath | 38 +++++----- .../spring-boot-language-server/.factorypath | 36 ++++----- 13 files changed, 160 insertions(+), 232 deletions(-) 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 4a74d43e9..cff602de6 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,6 @@ 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 = "1.7.0-SNAPSHOT.jar"; public static final String PREF_BOOT_HINTS = "boot-java.boot-hints.on"; public static final String PREF_SUPPORT_SPRING_XML_CONFIGS = "boot-java.support-spring-xml-config.on"; diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java index 59875cd34..233728f57 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java @@ -12,17 +12,9 @@ package org.springframework.tooling.boot.ls; import static org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants.SPRING_BOOT_SERVER; -import java.io.File; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.List; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.osgi.framework.Bundle; import org.springframework.tooling.ls.eclipse.commons.JRE; import org.springframework.tooling.ls.eclipse.commons.JRE.MissingJDKException; import org.springframework.tooling.ls.eclipse.commons.STS4LanguageServerProcessStreamConnector; @@ -75,47 +67,13 @@ public class SpringBootLanguageServer extends STS4LanguageServerProcessStreamCon } } - protected String getLanguageServerJARLocation() { - String languageServer = "spring-boot-language-server-" + Constants.LANGUAGE_SERVER_VERSION; - - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - String bundleVersion = bundle.getVersion().toString(); - - String languageServerLocalCopy = bundleVersion + "-" + languageServer; - - File dataFile = bundle.getDataFile(languageServerLocalCopy); - - Exception error = null; - if (!dataFile.exists() || bundleVersion.endsWith("qualifier")) { // qualifier check to get the language server always copied in dev mode - try { - copyLanguageServerJAR(languageServer, languageServerLocalCopy); - } - catch (Exception e) { - error = e; - } - } - - if (bundleVersion.endsWith("qualifier")) { - File userHome = new File(System.getProperty("user.home")); - File locallyBuiltJar = new File( - userHome, - "git/sts4/headless-services/spring-boot-language-server/target/spring-boot-language-server-" + Constants.LANGUAGE_SERVER_VERSION - ); - if (locallyBuiltJar.exists()) { - return locallyBuiltJar.getAbsolutePath(); - } - if (error!=null) { - error.printStackTrace(); - } - } - return dataFile.getAbsolutePath(); + @Override + protected String getLanguageServerArtifactId() { + return "spring-boot-language-server"; } - - protected void copyLanguageServerJAR(String languageServerJarName, String languageServerLocalCopy) throws Exception { - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - InputStream stream = FileLocator.openStream( bundle, new Path("servers/" + languageServerJarName), false ); - - File dataFile = bundle.getDataFile(languageServerLocalCopy); - Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + + @Override + protected String getPluginId() { + return Constants.PLUGIN_ID; } } 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 25776f3f1..e25ad6a22 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 @@ -12,15 +12,6 @@ package org.springframework.tooling.bosh.ls; import static org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants.BOSH_SERVER; -import java.io.File; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.osgi.framework.Bundle; import org.springframework.tooling.ls.eclipse.commons.JRE; import org.springframework.tooling.ls.eclipse.commons.STS4LanguageServerProcessStreamConnector; @@ -42,29 +33,14 @@ public class BoshLanguageServer extends STS4LanguageServerProcessStreamConnector setWorkingDirectory(getWorkingDirLocation()); } - protected String getLanguageServerJARLocation() { - String languageServer = "bosh-language-server-" + Constants.LANGUAGE_SERVER_VERSION + ".jar"; - - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - File dataFile = bundle.getDataFile(languageServer); -// if (!dataFile.exists()) { - try { - copyLanguageServerJAR(languageServer); - } - catch (Exception e) { - e.printStackTrace(); - } -// } - - return dataFile.getAbsolutePath(); + @Override + protected String getLanguageServerArtifactId() { + return "bosh-language-server"; } - - protected void copyLanguageServerJAR(String languageServerJarName) throws Exception { - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - InputStream stream = FileLocator.openStream( bundle, new Path("servers/" + languageServerJarName), false ); - - File dataFile = bundle.getDataFile(languageServerJarName); - Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + + @Override + protected String getPluginId() { + return Constants.PLUGIN_ID; } } 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 1fee91d94..519cc1669 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,5 @@ 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 = "1.7.0-SNAPSHOT"; } diff --git a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java index 24efb7c93..2201261bb 100644 --- a/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java +++ b/eclipse-language-servers/org.springframework.tooling.cloudfoundry.manifest.ls/src/org/springframework/tooling/cloudfoundry/manifest/ls/CloudFoundryManifestLanguageServer.java @@ -12,23 +12,15 @@ package org.springframework.tooling.cloudfoundry.manifest.ls; import static org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants.CLOUDFOUNDRY_SERVER; -import java.io.File; -import java.io.InputStream; import java.net.URI; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; import org.eclipse.lsp4j.DidChangeConfigurationParams; import org.eclipse.lsp4j.InitializeResult; import org.eclipse.lsp4j.jsonrpc.messages.Message; import org.eclipse.lsp4j.jsonrpc.messages.ResponseMessage; import org.eclipse.lsp4j.services.LanguageServer; -import org.osgi.framework.Bundle; import org.springframework.tooling.ls.eclipse.commons.JRE; import org.springframework.tooling.ls.eclipse.commons.STS4LanguageServerProcessStreamConnector; @@ -89,50 +81,6 @@ public class CloudFoundryManifestLanguageServer extends STS4LanguageServerProces return cfTargetOptionSettings; } - protected String getLanguageServerJARLocation() { - String languageServer = "manifest-yaml-language-server-" + Constants.LANGUAGE_SERVER_VERSION; - - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - String bundleVersion = bundle.getVersion().toString(); - - String languageServerLocalCopy = bundleVersion + "-" + languageServer; - - File dataFile = bundle.getDataFile(languageServerLocalCopy); - - Exception error = null; - if (!dataFile.exists() || bundleVersion.endsWith("qualifier")) { // qualifier check to get the language server always copied in dev mode - try { - copyLanguageServerJAR(languageServer, languageServerLocalCopy); - } - catch (Exception e) { - error = e; - } - } - - if (bundleVersion.endsWith("qualifier")) { - File userHome = new File(System.getProperty("user.home")); - File locallyBuiltJar = new File( - userHome, - "git/sts4/headless-services/manifest-yaml-language-server/target/manifest-yaml-language-server-" + Constants.LANGUAGE_SERVER_VERSION - ); - if (locallyBuiltJar.exists()) { - return locallyBuiltJar.getAbsolutePath(); - } - if (error != null) { - error.printStackTrace(); - } - } - return dataFile.getAbsolutePath(); - } - - protected void copyLanguageServerJAR(String languageServerJarName, String languageServerLocalCopy) throws Exception { - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - InputStream stream = FileLocator.openStream( bundle, new Path("servers/" + languageServerJarName), false ); - - File dataFile = bundle.getDataFile(languageServerLocalCopy); - Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); - } - protected void updateLanguageServer() { DidChangeConfigurationParams params = new DidChangeConfigurationParams(getInitializationOptions(rootPath)); languageServer.getWorkspaceService().didChangeConfiguration(params); @@ -146,4 +94,13 @@ public class CloudFoundryManifestLanguageServer extends STS4LanguageServerProces servers.remove(server); } + @Override + protected String getLanguageServerArtifactId() { + return "manifest-yaml-language-server"; + } + + @Override + protected String getPluginId() { + return Constants.PLUGIN_ID; + } } 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 bb0b7ec89..81f7294b5 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,5 @@ 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 = "1.7.0-SNAPSHOT.jar"; } 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 158bd4269..e2a01b15e 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 @@ -12,17 +12,7 @@ package org.springframework.tooling.concourse.ls; import static org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants.CONCOURSE_SERVER; -import java.io.File; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.osgi.framework.Bundle; import org.springframework.tooling.ls.eclipse.commons.JRE; -import org.springframework.tooling.ls.eclipse.commons.LanguageServerCommonsActivator; import org.springframework.tooling.ls.eclipse.commons.STS4LanguageServerProcessStreamConnector; import com.google.common.collect.ImmutableList; @@ -43,36 +33,13 @@ public class ConcourseLanguageServer extends STS4LanguageServerProcessStreamConn setWorkingDirectory(getWorkingDirLocation()); } - protected String getLanguageServerJARLocation() { - String languageServer = "concourse-language-server-" + Constants.LANGUAGE_SERVER_VERSION + ".jar"; - - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - File dataFile = bundle.getDataFile(languageServer); -// if (!dataFile.exists()) { - try { - copyLanguageServerJAR(languageServer); - } - catch (Exception e) { - if (bundle.getVersion().getQualifier().equals("qualifier")) { - dataFile = new File(System.getProperty("user.home")+"/git/sts4/headless-services/concourse-language-server/target/concourse-language-server-"+Constants.LANGUAGE_SERVER_VERSION+".jar"); - if (!dataFile.exists()) { - LanguageServerCommonsActivator.logError(e, "Problem locating Concourse language server jar"); - } - } else { - LanguageServerCommonsActivator.logError(e, "Problem locating Concourse language server jar"); - } - } -// } - - return dataFile.getAbsolutePath(); - } - - protected void copyLanguageServerJAR(String languageServerJarName) throws Exception { - Bundle bundle = Platform.getBundle(Constants.PLUGIN_ID); - InputStream stream = FileLocator.openStream( bundle, new Path("servers/" + languageServerJarName), false ); - - File dataFile = bundle.getDataFile(languageServerJarName); - Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + @Override + protected String getLanguageServerArtifactId() { + return "concourse-language-server"; } + @Override + protected String getPluginId() { + return Constants.PLUGIN_ID; + } } 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 d536fad3e..b8dca1fff 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,5 @@ 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 = "1.7.0-SNAPSHOT"; } diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java index 6368429ee..8b6275e74 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageServerProcessStreamConnector.java @@ -14,12 +14,19 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider; +import org.osgi.framework.Bundle; +import org.osgi.framework.Version; import org.springframework.tooling.ls.eclipse.commons.console.ConsoleUtil.Console; import org.springframework.tooling.ls.eclipse.commons.console.LanguageServerConsoles; import org.springframework.tooling.ls.eclipse.commons.preferences.LanguageServerConsolePreferenceConstants.ServerInfo; @@ -28,12 +35,14 @@ import org.springsource.ide.eclipse.commons.core.util.IOUtil; import com.google.common.base.Charsets; import com.google.common.base.Supplier; -public class STS4LanguageServerProcessStreamConnector extends ProcessStreamConnectionProvider { +public abstract class STS4LanguageServerProcessStreamConnector extends ProcessStreamConnectionProvider { private static LanguageServerProcessReaper processReaper = new LanguageServerProcessReaper(); private Supplier consoles = null; + private Bundle bundle; + public STS4LanguageServerProcessStreamConnector(ServerInfo server) { this.consoles = LanguageServerConsoles.getConsoleFactory(server); } @@ -132,4 +141,69 @@ public class STS4LanguageServerProcessStreamConnector extends ProcessStreamConne return System.getProperty("user.dir"); } + final protected String getLanguageServerJARLocation() { + String languageServer = getLanguageServerArtifactId() +"-" + getLanguageServerArtifactVersion() +".jar"; + Bundle bundle = getBundle(); + String bundleVersion = bundle.getVersion().toString(); + String languageServerLocalCopy = bundleVersion + "-" + languageServer; + File dataFile = bundle.getDataFile(languageServerLocalCopy); + + Exception error = null; + if (!dataFile.exists() || bundleVersion.endsWith("qualifier")) { // qualifier check to get the language server always copied in dev mode + try { + copyLanguageServerJAR(languageServer, languageServerLocalCopy); + } + catch (Exception e) { + error = e; + } + } + + if (bundleVersion.endsWith("qualifier")) { + File userHome = new File(System.getProperty("user.home")); + File locallyBuiltJar = new File( + userHome + , + "git/sts4/headless-services/" + + getLanguageServerArtifactId() + + "/target/" + + getLanguageServerArtifactId() + + "-" + + getLanguageServerArtifactVersion() + ); + if (locallyBuiltJar.exists()) { + return locallyBuiltJar.getAbsolutePath(); + } + if (error!=null) { + error.printStackTrace(); + } + } + return dataFile.getAbsolutePath(); + } + + protected String getLanguageServerArtifactVersion() { + Version bv = getBundle().getVersion(); + //Example of what it should look like: + // "1.6.0-SNAPSHOT" + return bv.getMajor()+"."+bv.getMinor()+"."+bv.getMicro()+"-SNAPSHOT"; + } + + protected Bundle getBundle() { + if (bundle==null) { + this.bundle = Platform.getBundle(getPluginId()); + } + return bundle; + } + + protected abstract String getLanguageServerArtifactId(); + + protected final void copyLanguageServerJAR(String languageServerJarName, String languageServerLocalCopy) throws Exception { + Bundle bundle = Platform.getBundle(getPluginId()); + InputStream stream = FileLocator.openStream( bundle, new Path("servers/" + languageServerJarName), false ); + + File dataFile = bundle.getDataFile(languageServerLocalCopy); + Files.copy(stream, dataFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } + + protected abstract String getPluginId(); + } diff --git a/headless-services/commons/commons-language-server/.factorypath b/headless-services/commons/commons-language-server/.factorypath index e911c6f53..23ecd34ae 100644 --- a/headless-services/commons/commons-language-server/.factorypath +++ b/headless-services/commons/commons-language-server/.factorypath @@ -1,11 +1,11 @@ - - - - - - - + + + + + + + @@ -25,6 +25,6 @@ - + diff --git a/headless-services/commons/commons-maven/.factorypath b/headless-services/commons/commons-maven/.factorypath index 12ca87d9e..58ef76da6 100644 --- a/headless-services/commons/commons-maven/.factorypath +++ b/headless-services/commons/commons-maven/.factorypath @@ -37,8 +37,8 @@ - - + + @@ -49,16 +49,16 @@ - - - - - - - + + + + + + + - + diff --git a/headless-services/concourse-language-server/.factorypath b/headless-services/concourse-language-server/.factorypath index 2e54bffdf..859fe7680 100644 --- a/headless-services/concourse-language-server/.factorypath +++ b/headless-services/concourse-language-server/.factorypath @@ -1,26 +1,26 @@ - - - - - + + + + + - - - - - - - - + + + + + + + + - + - + @@ -30,20 +30,20 @@ - + - + - - + + diff --git a/headless-services/spring-boot-language-server/.factorypath b/headless-services/spring-boot-language-server/.factorypath index 6ca460b1c..9fa3745cd 100644 --- a/headless-services/spring-boot-language-server/.factorypath +++ b/headless-services/spring-boot-language-server/.factorypath @@ -1,14 +1,14 @@ - - - + + + - - - + + + @@ -52,7 +52,7 @@ - + @@ -60,17 +60,17 @@ - - - - - - + + + + + + - + - + @@ -88,13 +88,13 @@ - + - - + +