From 783bb4b32d710b9f13b056cc379d9f020080dc0c Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Tue, 10 Dec 2024 08:21:17 +0100 Subject: [PATCH] do not index package-info.java files Fixes GH-1426 --- .../ide/vscode/boot/java/utils/SpringFactoriesIndexer.java | 6 +++--- .../ide/vscode/boot/java/utils/SpringIndexer.java | 4 ++-- .../ide/vscode/boot/java/utils/SpringIndexerJava.java | 6 +++--- .../ide/vscode/boot/java/utils/SpringIndexerXML.java | 4 ++-- .../src/main/java/org/test/package-info.java | 2 ++ 5 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing/src/main/java/org/test/package-info.java diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java index 9fcbfdf96..aeaae1d7e 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringFactoriesIndexer.java @@ -90,9 +90,9 @@ public class SpringFactoriesIndexer implements SpringIndexer { } @Override - public boolean isInterestedIn(String docURI) { - if (docURI.endsWith(".factories")) { - Path path = Paths.get(URI.create(docURI)); + public boolean isInterestedIn(String resource) { + if (resource.endsWith(".factories")) { + Path path = Paths.get(URI.create(resource)); return FILE_GLOB_PATTERN.matches(path); } return false; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java index 38b09b927..4cfc905fd 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2022 Pivotal, Inc. + * Copyright (c) 2019, 2024 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 @@ -21,7 +21,7 @@ import org.springframework.ide.vscode.commons.java.IJavaProject; public interface SpringIndexer { String[] getFileWatchPatterns(); - boolean isInterestedIn(String docURI); + boolean isInterestedIn(String resource); // note that this might be a document URI or a standard file path on the system List computeSymbols(IJavaProject project, String docURI, String content) throws Exception; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java index b84bd7c4a..fcf175100 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java @@ -148,8 +148,8 @@ public class SpringIndexerJava implements SpringIndexer { } @Override - public boolean isInterestedIn(String docURI) { - return docURI.endsWith(".java"); + public boolean isInterestedIn(String resource) { + return resource.endsWith(".java") && !resource.endsWith("package-info.java"); } @Override @@ -841,7 +841,7 @@ public class SpringIndexerJava implements SpringIndexer { return Stream.empty(); } }) - .filter(path -> path.getFileName().toString().endsWith(".java")) + .filter(path -> isInterestedIn(path.getFileName().toString())) .filter(Files::isRegularFile) .map(path -> path.toAbsolutePath().toString()) .toArray(String[]::new); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java index 94d716336..10a4428c6 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerXML.java @@ -105,8 +105,8 @@ public class SpringIndexerXML implements SpringIndexer { } @Override - public boolean isInterestedIn(String docURI) { - return docURI.endsWith(".xml"); + public boolean isInterestedIn(String resource) { + return resource.endsWith(".xml"); } @Override diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing/src/main/java/org/test/package-info.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing/src/main/java/org/test/package-info.java new file mode 100644 index 000000000..78d72b8e3 --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing/src/main/java/org/test/package-info.java @@ -0,0 +1,2 @@ +@org.springframework.lang.NonNullApi +package org.test; \ No newline at end of file