Exclude POM from Spring XML reconciling

This commit is contained in:
aboyko
2022-12-02 19:33:50 -05:00
parent ae3c6193af
commit 040da34ea1
3 changed files with 14 additions and 9 deletions

View File

@@ -49,7 +49,7 @@ public class SpringXMLLanguageServerComponents implements LanguageServerComponen
server.doOnInitialized(this::initialized);
server.onShutdown(this::shutdown);
this.reconcileEngine = new SpringXMLReconcileEngine(projectFinder);
this.reconcileEngine = new SpringXMLReconcileEngine(projectFinder, config);
config.addListener(ignore -> {
reconcileEngine.setSpelExpressionSyntaxValidationEnabled(config.isSpelExpressionValidationEnabled() && config.isSpringXMLSupportEnabled());

View File

@@ -12,17 +12,17 @@ package org.springframework.ide.vscode.boot.xml;
import static org.springframework.ide.vscode.boot.xml.XmlConfigConstants.BEANS_NAMESPACE;
import static org.springframework.ide.vscode.boot.xml.XmlConfigConstants.BEAN_ELEMENT;
import static org.springframework.ide.vscode.boot.xml.XmlConfigConstants.VALUE_ATTRIBUTE;
import static org.springframework.ide.vscode.boot.xml.XmlConfigConstants.PROPERTY_ELEMENT;
import static org.springframework.ide.vscode.boot.xml.XmlConfigConstants.VALUE_ATTRIBUTE;
import java.net.URI;
import java.nio.file.Paths;
import org.eclipse.lemminx.dom.DOMDocument;
import org.eclipse.lemminx.dom.DOMNode;
import org.eclipse.lemminx.dom.DOMParser;
import org.eclipse.lsp4j.TextDocumentIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ide.vscode.boot.app.BootJavaConfig;
import org.springframework.ide.vscode.boot.java.handlers.SpelExpressionReconciler;
import org.springframework.ide.vscode.commons.java.IJavaProject;
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
@@ -35,14 +35,14 @@ import org.springframework.ide.vscode.commons.util.text.IDocument;
*/
public class SpringXMLReconcileEngine implements IReconcileEngine {
private static final Logger log = LoggerFactory.getLogger(SpringXMLReconcileEngine.class);
private final JavaProjectFinder projectFinder;
private final SpelExpressionReconciler spelExpressionReconciler;
private final XMLElementReconciler[] reconcilers;
private final BootJavaConfig config;
public SpringXMLReconcileEngine(JavaProjectFinder projectFinder) {
public SpringXMLReconcileEngine(JavaProjectFinder projectFinder, BootJavaConfig config) {
this.projectFinder = projectFinder;
this.config = config;
this.spelExpressionReconciler = new SpelExpressionReconciler();
@@ -61,7 +61,10 @@ public class SpringXMLReconcileEngine implements IReconcileEngine {
public void reconcile(final IDocument doc, final IProblemCollector problemCollector) {
IJavaProject project = projectFinder.find(new TextDocumentIdentifier(doc.getUri())).orElse(null);
URI uri = URI.create(doc.getUri());
if (!config.isSpringXMLSupportEnabled() || "pom.xml".equals(Paths.get(uri).getFileName().toString())) {
return;
}
if (project != null) {
try {

View File

@@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import org.springframework.ide.vscode.boot.app.BootJavaConfig;
import org.springframework.ide.vscode.boot.app.BootLanguageServerBootApp;
import org.springframework.ide.vscode.boot.bootiful.XmlBeansTestConf;
import org.springframework.ide.vscode.boot.xml.SpringXMLReconcileEngine;
@@ -69,6 +70,7 @@ public class XMLSpelExpressionValidationTest {
@Autowired private BootLanguageServerHarness harness;
@Autowired private SimpleLanguageServer server;
@Autowired private JavaProjectFinder projectFinder;
@Autowired private BootJavaConfig config;
private ProjectsHarness projects = ProjectsHarness.INSTANCE;
private MavenJavaProject project;
@@ -99,7 +101,7 @@ public class XMLSpelExpressionValidationTest {
docUri = directory.toPath().resolve("src/main/webapp/WEB-INF/spring/root-context.xml").toUri().toString();
problemCollector = new TestProblemCollector();
reconcileEngine = new SpringXMLReconcileEngine(projectFinder);
reconcileEngine = new SpringXMLReconcileEngine(projectFinder, config);
}
@After