From 8db31656a9c2026ff17402605a615b19841b33f6 Mon Sep 17 00:00:00 2001 From: aboyko Date: Thu, 12 Jan 2023 16:31:50 -0500 Subject: [PATCH] Switch to URI#toASCIIString() --- .../tooling/boot/ls/ResourceListener.java | 4 ++-- .../ls/commands/RewriteRefactoringsHandler.java | 4 ++-- .../commons/HighlightsCodeLensProvider.java | 4 ++-- .../eclipse/commons/STS4LanguageClientImpl.java | 8 ++++---- .../tooling/ls/eclipse/commons/Utils.java | 4 ++-- .../dialogs/InFileSymbolsProvider.java | 4 ++-- .../dialogs/InProjectSymbolsProvider.java | 4 ++-- .../vscode/commons/gradle/GradleProjectTest.java | 8 ++++---- .../ide/vscode/commons/java/JavaProject.java | 2 +- .../commons/javadoc/JdtLsJavadocProvider.java | 7 ++++--- .../ide/vscode/commons/jdtls/JdtLsIndex.java | 16 ++++++++-------- .../languageserver/java/FutureProjectFinder.java | 8 ++++---- .../languageserver/java/JavadocService.java | 4 +++- .../commons/jandex/JandexClasspathTest.java | 6 +++--- .../commons/maven/MavenProjectCacheTest.java | 10 +++++----- .../test/HelloMethodRenameProblemDescriptor.java | 4 ++-- .../ide/vscode/commons/rewrite/ORDocUtils.java | 8 ++++---- .../vscode/commons/rewrite/java/ORAstUtils.java | 2 +- .../ide/vscode/commons/util/UriUtil.java | 4 ++-- .../ide/vscode/commons/util/UriUtilTest.java | 6 +++--- .../testharness/LanguageServerHarness.java | 10 +++++----- .../jdt/ls/commons/classpath/ClasspathUtil.java | 6 +++--- .../classpath/SendClasspathNotificationsJob.java | 6 +++--- .../boot/app/BootLanguageServerInitializer.java | 4 ++-- .../vscode/boot/app/BootVersionValidator.java | 2 +- .../ide/vscode/boot/app/SpringSymbolIndex.java | 4 ++-- .../java/handlers/BootJavaReconcileEngine.java | 8 ++++---- .../DefaultJavaElementLocationProvider.java | 2 +- .../EclipseJavaElementLocationProvider.java | 2 +- .../boot/java/links/EclipseSourceLinks.java | 4 ++-- .../links/JavaServerElementLocationProvider.java | 2 +- .../boot/java/links/JavaServerSourceLinks.java | 4 ++-- .../ide/vscode/boot/java/links/SourceLinks.java | 2 +- .../boot/java/links/VSCodeSourceLinks.java | 4 ++-- .../rewrite/RewriteCompilationUnitCache.java | 10 +++++----- .../java/rewrite/RewriteRecipeRepository.java | 2 +- .../boot/java/rewrite/RewriteRefactorings.java | 6 +++--- ...dFieldIntoConstructorParameterCodeAction.java | 2 +- .../reconcile/BeanMethodNotPublicProblem.java | 2 +- .../BeanPostProcessingIgnoreInAotProblem.java | 2 +- .../NoAutowiredOnConstructorProblem.java | 2 +- .../reconcile/NoRepoAnnotationProblem.java | 2 +- .../NoRequestMappingAnnotationCodeAction.java | 2 +- .../reconcile/NotRegisteredBeansProblem.java | 2 +- .../reconcile/PreciseBeanTypeProblem.java | 2 +- .../UnnecessarySpringExtensionProblem.java | 2 +- .../boot/java/utils/CompilationUnitCache.java | 8 ++++---- .../boot/java/utils/SpringFactoriesIndexer.java | 11 +++++++---- .../boot/java/utils/SpringIndexerJava.java | 10 +++++----- .../vscode/boot/java/utils/SpringIndexerXML.java | 4 ++-- .../boot/java/utils/SymbolCacheOnDisc.java | 6 +++--- .../value/ValuePropertyReferencesProvider.java | 8 ++++---- .../vscode/boot/jdt/ls/JdtLsProjectCache.java | 2 +- .../properties/quickfix/CommonQuickfixes.java | 8 ++++---- .../ProjectVersionDiagnosticProvider.java | 2 +- .../generations/VersionValidators.java | 6 +++--- .../TypeCompletionProposalProvider.java | 2 +- .../xml/hyperlinks/BeanRefHyperlinkProvider.java | 2 +- .../ide/vscode/boot/bootiful/JavaTestConf.java | 3 ++- .../boot/java/utils/test/AstParserTest.java | 2 +- .../test/SpringIndexerTestSpecialCharacters.java | 2 +- .../java/utils/test/SymbolCacheOnDiscTest.java | 4 ++-- .../AdHocSpringPropertyIndexProviderTest.java | 4 ++-- .../boot/java/value/test/MockProjects.java | 4 ++-- .../test/ValueSpelExpressionValidationTest.java | 2 +- .../test/XMLSpelExpressionValidationTest.java | 2 +- .../vscode/boot/test/DefinitionLinkAsserts.java | 6 +++--- .../boot/test/SpringPropertiesIndexTest.java | 6 +++--- .../java/org/test/ClassWithSpécialCharacter.java | 1 + .../ProjectClasspathUriResolverExtension.java | 2 +- .../classpath/FilteringURLResourceLoader.java | 2 +- .../classpath/ProjectResourceLoaderCache.java | 2 +- 72 files changed, 166 insertions(+), 158 deletions(-) diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/ResourceListener.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/ResourceListener.java index 022d42738..0ba3e5982 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/ResourceListener.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/ResourceListener.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2019 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -119,6 +119,6 @@ public class ResourceListener implements IResourceChangeListener { throw new IllegalStateException("Unsupported resource delta kind: " + delta.getKind()); //$NON-NLS-1$ } - return new FileEvent(locationURI.toString(), changeType); + return new FileEvent(locationURI.toASCIIString(), changeType); } } diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java index 9f7f91ead..c313f03fe 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/commands/RewriteRefactoringsHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 VMware, Inc. + * Copyright (c) 2022, 2023 VMware, 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 @@ -109,7 +109,7 @@ public class RewriteRefactoringsHandler extends AbstractHandler { Assert.isLegal(def != null, "No definition found for Boot Language Server"); LanguageServerWrapper wrapper = LanguageServiceAccessor.getLSWrapper(project, def); - final String uri = project.getLocationURI().toString(); + final String uri = project.getLocationURI().toASCIIString(); ExecuteCommandParams commandParams = new ExecuteCommandParams(); commandParams.setCommand(REWRITE_REFACTORINGS_LIST); commandParams.setArguments(List.of(uri, recipeFilter.toString())); diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java index 488f6df7f..fda4ce168 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/HighlightsCodeLensProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2019 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -79,7 +79,7 @@ public class HighlightsCodeLensProvider extends AbstractCodeMiningProvider { List docInfos = LanguageServiceAccessor.getLSPDocumentInfosFor(document, (x) -> true); if (!docInfos.isEmpty()) { LSPDocumentInfo info = docInfos.get(0); - HighlightParams highlights = STS4LanguageClientImpl.currentHighlights.get(info.getFileUri().toString()); + HighlightParams highlights = STS4LanguageClientImpl.currentHighlights.get(info.getFileUri().toASCIIString()); if (highlights != null) { return highlights.getCodeLenses().stream() .filter(codeLens -> codeLens.getCommand() != null) diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java index 8cf118980..daa90694c 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/STS4LanguageClientImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2022 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -213,7 +213,7 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La } else { URI uri = Utils.findDocUri(doc); if (uri != null) { - updateHighlightAnnotations(editor, sourceViewer, annotationModel, uri.toString(), updateCodeMinings); + updateHighlightAnnotations(editor, sourceViewer, annotationModel, uri.toASCIIString(), updateCodeMinings); } } } @@ -472,7 +472,7 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La IDocument doc = editor.getDocumentProvider().getDocument(editor.getEditorInput()); if (doc!=null) { URI uri = Utils.findDocUri(doc); - if (cursorMovement.getUri().equals(uri.toString())) { + if (cursorMovement.getUri().equals(uri.toASCIIString())) { org.eclipse.lsp4j.Position pos = cursorMovement.getPosition(); int offset = LSPEclipseUtils.toOffset(pos, doc); Display.getDefault().asyncExec(() -> { @@ -520,7 +520,7 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La if (project != null) { Location location = new Location(); String label = javaLabelProvider.getText(element); - location.setUri(Utils.eclipseIntroUri(project.getElementName(), params.getBindingKey(), label).toString()); + location.setUri(Utils.eclipseIntroUri(project.getElementName(), params.getBindingKey(), label).toASCIIString()); // Set the range because LocationLink needs it to be non-null. The target range // would highlighted by the eclipse intro URL navigation anyway location.setRange(new Range()); diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/Utils.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/Utils.java index 852c9e393..13c025ab9 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/Utils.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/Utils.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2020 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -78,7 +78,7 @@ public class Utils { for (LSPDocumentInfo info : LanguageServiceAccessor.getLSPDocumentInfosFor(doc, (x) -> true)) { if (info.getVersion() == id.getVersion()) { URI uri = info.getFileUri(); - if (uri != null && uri.toString().equals(id.getUri())) { + if (uri != null && uri.toASCIIString().equals(id.getUri())) { return true; } } diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InFileSymbolsProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InFileSymbolsProvider.java index 10564446d..3eae8eff9 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InFileSymbolsProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InFileSymbolsProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2022 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -74,7 +74,7 @@ public class InFileSymbolsProvider implements SymbolsProvider { if (this.info != null) { LSPDocumentInfo info = this.info.get(); if (info != null) { - return info.getFileUri().toString(); + return info.getFileUri().toASCIIString(); } } return null; diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java index 9f1baf539..c00d13756 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2022 Pivotal, Inc. + * Copyright (c) 2019, 2023 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 @@ -88,7 +88,7 @@ public class InProjectSymbolsProvider implements SymbolsProvider { IProject project = this.project.get(); if (project != null) { - String projectLocationPrefix = LSPEclipseUtils.toUri(project).toString(); + String projectLocationPrefix = LSPEclipseUtils.toUri(project).toASCIIString(); query = "locationPrefix:" + projectLocationPrefix + "?" + query; WorkspaceSymbolParams params = new WorkspaceSymbolParams(query); diff --git a/headless-services/commons/commons-gradle/src/test/java/org/springframework/ide/vscode/commons/gradle/GradleProjectTest.java b/headless-services/commons/commons-gradle/src/test/java/org/springframework/ide/vscode/commons/gradle/GradleProjectTest.java index 657e2ecad..d22e3b1e9 100644 --- a/headless-services/commons/commons-gradle/src/test/java/org/springframework/ide/vscode/commons/gradle/GradleProjectTest.java +++ b/headless-services/commons/commons-gradle/src/test/java/org/springframework/ide/vscode/commons/gradle/GradleProjectTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2022 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -124,18 +124,18 @@ public class GradleProjectTest { List nonSystemClasspathEntries = IClasspathUtil.getBinaryRoots(cachedProject.getClasspath(), (cpe) -> !cpe.isSystem()); assertEquals(69, nonSystemClasspathEntries.size()); - fileObserver.notifyFileChanged(gradleFile.toURI().toString()); + fileObserver.notifyFileChanged(gradleFile.toURI().toASCIIString()); assertNull(projectChanged[0]); writeContent(gradleFile, Files.contentOf(testProjectPath.resolve("build.newgradle").toFile(), Charset.defaultCharset())); - fileObserver.notifyFileChanged(gradleFile.toURI().toString()); + fileObserver.notifyFileChanged(gradleFile.toURI().toASCIIString()); assertNotNull(projectChanged[0]); assertEquals(cachedProject, projectChanged[0]); nonSystemClasspathEntries = IClasspathUtil.getBinaryRoots(cachedProject.getClasspath(), (cpe) -> !cpe.isSystem()); assertEquals(70, nonSystemClasspathEntries.size()); - fileObserver.notifyFileDeleted(gradleFile.toURI().toString()); + fileObserver.notifyFileDeleted(gradleFile.toURI().toASCIIString()); assertEquals(cachedProject, projectDeleted[0]); } finally { writeContent(gradleFile, gradelFileContents); diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/JavaProject.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/JavaProject.java index 24bdd293b..ce8589df5 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/JavaProject.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/JavaProject.java @@ -28,7 +28,7 @@ public class JavaProject extends AbstractJavaProject { this.fileObserver = fileObserver; this.javadocProviderFactory = (classpathResource) -> { CPE cpe = IClasspathUtil.findEntryForBinaryRoot(classpath, classpathResource); - return javadocService.javadocProvider(uri.toString(), cpe); + return javadocService.javadocProvider(uri, cpe); }; } diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/javadoc/JdtLsJavadocProvider.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/javadoc/JdtLsJavadocProvider.java index 454463255..29f816fbc 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/javadoc/JdtLsJavadocProvider.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/javadoc/JdtLsJavadocProvider.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.javadoc; +import java.net.URI; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -33,9 +34,9 @@ public class JdtLsJavadocProvider implements IJavadocProvider { private static final Logger log = LoggerFactory.getLogger(JdtLsJavadocProvider.class); private STS4LanguageClient client; - private String projectUri; + private URI projectUri; - public JdtLsJavadocProvider(STS4LanguageClient client, String projectUri) { + public JdtLsJavadocProvider(STS4LanguageClient client, URI projectUri) { super(); this.client = client; this.projectUri = projectUri; @@ -60,7 +61,7 @@ public class JdtLsJavadocProvider implements IJavadocProvider { long start = System.currentTimeMillis(); try { log.info("Fetching javadoc {}", element.getBindingKey()); - MarkupContent md = client.javadoc(new JavaDataParams(projectUri, element.getBindingKey(), false)).get(10, TimeUnit.SECONDS); + MarkupContent md = client.javadoc(new JavaDataParams(projectUri.toASCIIString(), element.getBindingKey(), false)).get(10, TimeUnit.SECONDS); log.info("Fetching javadoc {} took {} ms", element.getBindingKey(), System.currentTimeMillis()-start); return produceJavadocFromMd(md == null ? null : md.getValue()); } catch (InterruptedException | ExecutionException | TimeoutException e) { diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/JdtLsIndex.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/JdtLsIndex.java index c9008c9d0..72d50e067 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/JdtLsIndex.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/jdtls/JdtLsIndex.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2020 Pivotal, Inc. + * Copyright (c) 2019, 2023 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 @@ -71,7 +71,7 @@ public class JdtLsIndex implements ClasspathIndex { this.client = client; this.projectUri = projectUri; this.projectObserver = projectObserver; - this.javadocProvider = new JdtLsJavadocProvider(client, projectUri.toString()); + this.javadocProvider = new JdtLsJavadocProvider(client, projectUri); this.projectListener = ProjectObserver.onAny(project -> { if (Objects.equals(project.getLocationUri(), projectUri)) { @@ -103,7 +103,7 @@ public class JdtLsIndex implements ClasspathIndex { } private TypeData findTypeData(String fqName) throws InterruptedException, ExecutionException { - JavaDataParams params = new JavaDataParams(projectUri.toString(), "L" + fqName.replace('.', '/') + ";", false); + JavaDataParams params = new JavaDataParams(projectUri.toASCIIString(), "L" + fqName.replace('.', '/') + ";", false); return client.javaType(params).get(); } @@ -138,7 +138,7 @@ public class JdtLsIndex implements ClasspathIndex { @Override public Flux> fuzzySearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) { - JavaSearchParams searchParams = new JavaSearchParams(projectUri.toString(), searchTerm, SearchType.FUZZY, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); + JavaSearchParams searchParams = new JavaSearchParams(projectUri.toASCIIString(), searchTerm, SearchType.FUZZY, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); return Mono.fromFuture(client.javaSearchTypes(searchParams)) .flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel())) .filter(Objects::nonNull) @@ -148,7 +148,7 @@ public class JdtLsIndex implements ClasspathIndex { @Override public Flux> fuzzySearchPackages(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) { - JavaSearchParams searchParams = new JavaSearchParams(projectUri.toString(), searchTerm, SearchType.FUZZY, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); + JavaSearchParams searchParams = new JavaSearchParams(projectUri.toASCIIString(), searchTerm, SearchType.FUZZY, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); return Mono.fromFuture(client.javaSearchPackages(searchParams)) .flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel())) .filter(Objects::nonNull) @@ -159,7 +159,7 @@ public class JdtLsIndex implements ClasspathIndex { @Override public Flux> camelcaseSearchTypes(String searchTerm, boolean includeBinaries, boolean includeSystemLibs) { - JavaSearchParams searchParams = new JavaSearchParams(projectUri.toString(), searchTerm, SearchType.CAMELCASE, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); + JavaSearchParams searchParams = new JavaSearchParams(projectUri.toASCIIString(), searchTerm, SearchType.CAMELCASE, includeBinaries, includeSystemLibs, SEARCH_TIMEOUT); return Mono.fromFuture(client.javaSearchTypes(searchParams)) .flatMapMany(results -> Flux.fromIterable(results).publishOn(Schedulers.parallel())) .filter(Objects::nonNull) @@ -169,7 +169,7 @@ public class JdtLsIndex implements ClasspathIndex { @Override public Flux allSubtypesOf(String fqName, boolean includeFocusType, boolean detailed) { - JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toString(), fqName, includeFocusType, detailed); + JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toASCIIString(), fqName, includeFocusType, detailed); try { CompletableFuture> future = subtypesCache.get(searchParams, () -> client .javaSubTypes(searchParams) @@ -184,7 +184,7 @@ public class JdtLsIndex implements ClasspathIndex { @Override public Flux allSuperTypesOf(String fqName, boolean includeFocusType, boolean detailed) { - JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toString(), fqName, includeFocusType, detailed); + JavaTypeHierarchyParams searchParams = new JavaTypeHierarchyParams(projectUri.toASCIIString(), fqName, includeFocusType, detailed); try { CompletableFuture> future = supertypesCache.get(searchParams, () -> client .javaSuperTypes(searchParams) diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/FutureProjectFinder.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/FutureProjectFinder.java index abcd52bf7..3f9d76985 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/FutureProjectFinder.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/FutureProjectFinder.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2021, 2022 VMware, Inc. + * Copyright (c) 2021, 2023 VMware, 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 @@ -65,7 +65,7 @@ public class FutureProjectFinder implements DisposableBean { private void resolveAllPendingRquests() { synchronized(LOCK) { for (Map.Entry> e : pendingFindProjectRequests.entrySet()) { - Optional jp = projectFinder.find(new TextDocumentIdentifier(e.getKey().toString())); + Optional jp = projectFinder.find(new TextDocumentIdentifier(e.getKey().toASCIIString())); e.getValue().complete(jp.orElse(null)); pendingFindProjectRequests.remove(e.getKey()); } @@ -75,7 +75,7 @@ public class FutureProjectFinder implements DisposableBean { private void resolvePendingRequests(IJavaProject project) { synchronized(LOCK) { for (Map.Entry> e : pendingFindProjectRequests.entrySet()) { - Optional jp = projectFinder.find(new TextDocumentIdentifier(e.getKey().toString())); + Optional jp = projectFinder.find(new TextDocumentIdentifier(e.getKey().toASCIIString())); if (jp.isPresent()) { e.getValue().complete(jp.get()); pendingFindProjectRequests.remove(e.getKey()); @@ -92,7 +92,7 @@ public class FutureProjectFinder implements DisposableBean { } public CompletableFuture findFuture(URI uri) { - TextDocumentIdentifier id = new TextDocumentIdentifier(uri.toString()); + TextDocumentIdentifier id = new TextDocumentIdentifier(uri.toASCIIString()); Optional jp = projectFinder.find(id); if (jp.isPresent()) { return CompletableFuture.completedFuture(jp.get()); diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/JavadocService.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/JavadocService.java index ff4ad892f..1bfb1a2bd 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/JavadocService.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/languageserver/java/JavadocService.java @@ -10,11 +10,13 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.languageserver.java; +import java.net.URI; + import org.springframework.ide.vscode.commons.java.IJavadocProvider; import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE; public interface JavadocService { - IJavadocProvider javadocProvider(String projectUri, CPE classpathEntry); + IJavadocProvider javadocProvider(URI projectUri, CPE classpathEntry); } diff --git a/headless-services/commons/commons-java/src/test/java/org/springframework/ide/vscode/commons/jandex/JandexClasspathTest.java b/headless-services/commons/commons-java/src/test/java/org/springframework/ide/vscode/commons/jandex/JandexClasspathTest.java index d7cb41c11..98472f8ba 100644 --- a/headless-services/commons/commons-java/src/test/java/org/springframework/ide/vscode/commons/jandex/JandexClasspathTest.java +++ b/headless-services/commons/commons-java/src/test/java/org/springframework/ide/vscode/commons/jandex/JandexClasspathTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2019 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -57,7 +57,7 @@ public class JandexClasspathTest { File target = new File(outputFolder, relativePath); target.getParentFile().mkdirs(); Files.copy(classFile, target); - fileObserver.notifyFileCreated(target.toURI().toString()); + fileObserver.notifyFileCreated(target.toURI().toASCIIString()); } ClasspathData getClasspath() { @@ -74,7 +74,7 @@ public class JandexClasspathTest { String relativePath = fqName.replace('.', '/')+".class"; File classFile = new File(outputFolder, relativePath); classFile.delete(); - eventNoficator.accept(fileObserver, classFile.toURI().toString()); + eventNoficator.accept(fileObserver, classFile.toURI().toASCIIString()); } public void deleteClass(String fqName) { diff --git a/headless-services/commons/commons-maven/src/test/java/org/springframework/ide/vscode/commons/maven/MavenProjectCacheTest.java b/headless-services/commons/commons-maven/src/test/java/org/springframework/ide/vscode/commons/maven/MavenProjectCacheTest.java index 3aae09b0a..1d255c5d9 100644 --- a/headless-services/commons/commons-maven/src/test/java/org/springframework/ide/vscode/commons/maven/MavenProjectCacheTest.java +++ b/headless-services/commons/commons-maven/src/test/java/org/springframework/ide/vscode/commons/maven/MavenProjectCacheTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2022 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -139,18 +139,18 @@ public class MavenProjectCacheTest { ImmutableList calculatedClassPath = cachedProject.getClasspath().getClasspathEntries(); assertEquals(51, calculatedClassPath.stream().filter(cpe -> !cpe.isSystem()).count()); - fileObserver.notifyFileChanged(pomFile.toURI().toString()); + fileObserver.notifyFileChanged(pomFile.toURI().toASCIIString()); assertNull(projectChanged[0]); writeContent(pomFile, new String(Files.readAllBytes(testProjectPath.resolve("pom.newxml")), Charset.defaultCharset())); - fileObserver.notifyFileChanged(pomFile.toURI().toString()); + fileObserver.notifyFileChanged(pomFile.toURI().toASCIIString()); assertNotNull(projectChanged[0]); assertEquals(cachedProject, projectChanged[0]); calculatedClassPath = cachedProject.getClasspath().getClasspathEntries(); assertEquals(52, calculatedClassPath.stream().filter(cpe -> !cpe.isSystem()).count()); - fileObserver.notifyFileDeleted(pomFile.toURI().toString()); + fileObserver.notifyFileDeleted(pomFile.toURI().toASCIIString()); assertEquals(cachedProject, projectDeleted[0]); } @@ -246,7 +246,7 @@ public class MavenProjectCacheTest { verify(diagnosticService, never()).diagnosticEvent(any(ShowMessageException.class)); writeContent(pomFile, ""); - fileObserver.notifyFileChanged(pomFile.toURI().toString()); + fileObserver.notifyFileChanged(pomFile.toURI().toASCIIString()); CompletableFuture.runAsync(() -> { while (!progressDone.get()) { try { diff --git a/headless-services/commons/commons-rewrite-test/src/main/java/org/springframework/rewrite/test/HelloMethodRenameProblemDescriptor.java b/headless-services/commons/commons-rewrite-test/src/main/java/org/springframework/rewrite/test/HelloMethodRenameProblemDescriptor.java index 65436c53e..1e9e3cec9 100644 --- a/headless-services/commons/commons-rewrite-test/src/main/java/org/springframework/rewrite/test/HelloMethodRenameProblemDescriptor.java +++ b/headless-services/commons/commons-rewrite-test/src/main/java/org/springframework/rewrite/test/HelloMethodRenameProblemDescriptor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 VMware, Inc. + * Copyright (c) 2022, 2023 VMware, 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 @@ -43,7 +43,7 @@ public class HelloMethodRenameProblemDescriptor implements RecipeCodeActionDescr public MethodDeclaration visitMethodDeclaration(MethodDeclaration method, ExecutionContext p) { MethodDeclaration m = super.visitMethodDeclaration(method, p); if ("hello".equals(method.getSimpleName())) { - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker marker = new FixAssistMarker(Tree.randomId(), getId()) .withFixes( new FixDescriptor(RECIPE_ID, List.of(uri), RecipeCodeActionDescriptor.buildLabel(LABEL, RecipeScope.NODE)) diff --git a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/ORDocUtils.java b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/ORDocUtils.java index 18653fe3b..432584d45 100644 --- a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/ORDocUtils.java +++ b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/ORDocUtils.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 VMware, Inc. + * Copyright (c) 2023 VMware, 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 @@ -159,7 +159,7 @@ public class ORDocUtils { we.setDocumentChanges(new ArrayList<>()); for (Result result : results) { if (result.getBefore() == null) { - String docUri = absoluteProjectDir.resolve(result.getAfter().getSourcePath()).toUri().toString(); + String docUri = absoluteProjectDir.resolve(result.getAfter().getSourcePath()).toUri().toASCIIString(); CreateFile ro = new CreateFile(); ro.setUri(docUri); we.getDocumentChanges().add(Either.forRight(ro)); @@ -170,10 +170,10 @@ public class ORDocUtils { te.setEdits(List.of(new TextEdit(new Range(cursor, cursor), result.getAfter().printAll()))); we.getDocumentChanges().add(Either.forLeft(te)); } else if (result.getAfter() == null) { - String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toString(); + String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString(); we.getDocumentChanges().add(Either.forRight(new DeleteFile(docUri))); } else { - String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toString(); + String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString(); TextDocument doc = documents.getLatestSnapshot(docUri); if (doc == null) { doc = new TextDocument(docUri, null, 0, result.getBefore().printAll()); diff --git a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java index 7f770b394..5c7c39117 100644 --- a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java +++ b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ORAstUtils.java @@ -256,7 +256,7 @@ public class ORAstUtils { } return Stream.empty(); }).filter(Files::isRegularFile).filter(p -> p.getFileName().toString().endsWith(".java")).map(p -> { - TextDocument doc = documents.getLatestSnapshot(p.toUri().toString()); + TextDocument doc = documents.getLatestSnapshot(p.toUri().toASCIIString()); if (doc == null) { return new Parser.Input(p, () -> { try { diff --git a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/UriUtil.java b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/UriUtil.java index 0da4be4d2..a92dd5692 100644 --- a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/UriUtil.java +++ b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/UriUtil.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2018 Pivotal, Inc. + * Copyright (c) 2016, 2023 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 @@ -29,7 +29,7 @@ public class UriUtil { try { if (uriVal != null && uriVal.startsWith("file:")) { File file = new File(URI.create(uriVal)).getCanonicalFile(); - uriVal = file.toURI().toString(); + uriVal = file.toURI().toASCIIString(); //Careful!!! If the project uri points to a existing project... then it will be //a directory and then the uri we computed will get a slash at the end. //If, on the other hand, it doesn't exist because it got deleted. Then it will not get a slash diff --git a/headless-services/commons/commons-util/src/test/java/org/springframework/ide/vscode/commons/util/UriUtilTest.java b/headless-services/commons/commons-util/src/test/java/org/springframework/ide/vscode/commons/util/UriUtilTest.java index 01cd6555b..c88f8f277 100644 --- a/headless-services/commons/commons-util/src/test/java/org/springframework/ide/vscode/commons/util/UriUtilTest.java +++ b/headless-services/commons/commons-util/src/test/java/org/springframework/ide/vscode/commons/util/UriUtilTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -29,13 +29,13 @@ public class UriUtilTest { File folder = temp; assertTrue(folder.exists()); - String folderUri = folder.toURI().toString(); + String folderUri = folder.toURI().toASCIIString(); assertTrue(folderUri.endsWith("/")); folderUri = UriUtil.normalize(folderUri); folder.delete(); assertFalse(folder.exists()); - String deletedFolderUri = folder.toURI().toString(); + String deletedFolderUri = folder.toURI().toASCIIString(); assertFalse(deletedFolderUri.endsWith("/")); deletedFolderUri = UriUtil.normalize(deletedFolderUri); 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 7ee791136..5e809eeee 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2022 Pivotal, Inc. + * Copyright (c) 2016, 2023 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 @@ -181,7 +181,7 @@ public class LanguageServerHarness { // } public synchronized TextDocumentInfo getOrReadFile(File file, String languageId) throws Exception { - String uri = file.toURI().toString(); + String uri = file.toURI().toASCIIString(); TextDocumentInfo d = documents.get(uri); if (d==null) { documents.put(uri, d = readFile(file, languageId)); @@ -194,7 +194,7 @@ public class LanguageServerHarness { String content = new String(encoded, getEncoding()); TextDocumentItem document = new TextDocumentItem(); document.setText(content); - document.setUri(file.toURI().toString()); + document.setUri(file.toURI().toASCIIString()); document.setVersion(getFirstVersion()); document.setLanguageId(languageId); return new TextDocumentInfo(document); @@ -254,7 +254,7 @@ public class LanguageServerHarness { InitializeParams initParams = new InitializeParams(); if (workspaceRoot!=null) { initParams.setRootPath(workspaceRoot.toString()); - initParams.setRootUri(UriUtil.toUri(workspaceRoot).toString()); + initParams.setRootUri(UriUtil.toUri(workspaceRoot).toASCIIString()); } initParams.setProcessId(parentPid); ClientCapabilities clientCap = new ClientCapabilities(); @@ -690,7 +690,7 @@ public class LanguageServerHarness { if (extension == null) { extension = getFileExtension(); } - return File.createTempFile("workingcopy", extension).toURI().toString(); + return File.createTempFile("workingcopy", extension).toURI().toASCIIString(); } public void assertCompletion(String textBefore, String expectTextAfter) throws Exception { diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathUtil.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/ClasspathUtil.java index 8e627be08..080dae23b 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/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,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2022 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -224,13 +224,13 @@ public class ClasspathUtil { switch (e.getPath().segment(0)) { case MAVEN_CONTAINER_ID: IFile f = jp.getProject().getFile("pom.xml"); - return new ProjectBuild(ProjectBuild.MAVEN_PROJECT_TYPE, f.exists() ? f.getLocationURI().toString() : null); + return new ProjectBuild(ProjectBuild.MAVEN_PROJECT_TYPE, f.exists() ? f.getLocationURI().toASCIIString() : null); case GRADLE_CONTAINER_ID: IFile g = jp.getProject().getFile("build.gradle"); if (!g.exists()) { g = jp.getProject().getFile("build.gradle.kts"); } - return new ProjectBuild(ProjectBuild.GRADLE_PROJECT_TYPE, g.exists() ? g.getLocationURI().toString() : null); + return new ProjectBuild(ProjectBuild.GRADLE_PROJECT_TYPE, g.exists() ? g.getLocationURI().toASCIIString() : null); } } } catch (JavaModelException e) { diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/SendClasspathNotificationsJob.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/SendClasspathNotificationsJob.java index b990b75c4..f3f485fb4 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/SendClasspathNotificationsJob.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.commons/src/org/springframework/tooling/jdt/ls/commons/classpath/SendClasspathNotificationsJob.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2022 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -157,11 +157,11 @@ public class SendClasspathNotificationsJob extends Job { protected void bufferMessage(URI projectLoc, boolean deleted, String projectName, Classpath classpath, ProjectBuild projectBuild) { if (buffer!=null) { logger.debug("buffering callback "+callbackCommandId+" "+projectName+" "+deleted+" "+ classpath.getEntries().size()); - buffer.add(ImmutableList.of(projectLoc.toString(), projectName, deleted, classpath, projectBuild)); + buffer.add(ImmutableList.of(projectLoc.toASCIIString(), projectName, deleted, classpath, projectBuild)); } else { try { logger.debug("executing callback "+callbackCommandId+" "+projectName+" "+deleted+" "+ classpath.getEntries().size()); - Object r = conn.executeClientCommand(callbackCommandId, projectLoc.toString(), projectName, deleted, classpath, projectBuild); + Object r = conn.executeClientCommand(callbackCommandId, projectLoc.toASCIIString(), projectName, deleted, classpath, projectBuild); notificationsSentForProjects = ImmutableList.of(projectName); logger.debug("executing callback "+callbackCommandId+" SUCCESS ["+r+"]"); } catch (Exception e) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java index 652813a0a..c78cc08ff 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootLanguageServerInitializer.java @@ -225,7 +225,7 @@ public class BootLanguageServerInitializer implements InitializingBean { .publishOn(projectReconcileScheduler) .doOnSuccess(l -> { if (projectReconcileRequests.remove(uri) != null) { - projectFinder.find(new TextDocumentIdentifier(uri.toString())).ifPresent(p -> { + projectFinder.find(new TextDocumentIdentifier(uri.toASCIIString())).ifPresent(p -> { projectReconciler.reconcile(p, doc -> server.createProblemCollector(doc)); }); } @@ -265,7 +265,7 @@ public class BootLanguageServerInitializer implements InitializingBean { components.getReconcileEngine().ifPresent(reconcileEngine -> { for (String f : files) { URI uri = URI.create(f); - TextDocumentIdentifier docId = new TextDocumentIdentifier(uri.toString()); + TextDocumentIdentifier docId = new TextDocumentIdentifier(uri.toASCIIString()); TextDocument doc = server.getTextDocumentService().getLatestSnapshot(docId.getUri()); if (doc == null) { projectFinder.find(docId).ifPresent(project -> { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java index 9fe482211..de0c8c2c5 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/BootVersionValidator.java @@ -55,7 +55,7 @@ public class BootVersionValidator { DiagnosticResult result = diagnosticProvider.getDiagnostics(project); if (result != null && !result.getDiagnostics().isEmpty()) { server.getTextDocumentService().publishDiagnostics( - new TextDocumentIdentifier(result.getDocumentUri().toString()), + new TextDocumentIdentifier(result.getDocumentUri().toASCIIString()), result.getDiagnostics()); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java index 7321699a6..dba7f3fa0 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/SpringSymbolIndex.java @@ -484,7 +484,7 @@ public class SpringSymbolIndex implements InitializingBean { try { File file = new File(new URI(docURI)); long lastModified = file.lastModified(); - return new DocumentDescriptor(UriUtil.toUri(file).toString(), lastModified); + return new DocumentDescriptor(UriUtil.toUri(file).toASCIIString(), lastModified); } catch (URISyntaxException e) { throw new RuntimeException(e); } @@ -589,7 +589,7 @@ public class SpringSymbolIndex implements InitializingBean { } } else { // Take symbols from the index if there is no opened document. - List docSymbols = this.symbolsByDoc.get(uri.toString()); + List docSymbols = this.symbolsByDoc.get(uri.toASCIIString()); if (docSymbols != null) { synchronized (docSymbols) { for (EnhancedSymbolInformation enhanced : docSymbols) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReconcileEngine.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReconcileEngine.java index a1060b09d..43178d8a1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReconcileEngine.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaReconcileEngine.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2022 Pivotal, Inc. + * Copyright (c) 2016, 2023 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 @@ -132,7 +132,7 @@ public class BootJavaReconcileEngine implements IReconcileEngine, IJavaProjectRe Stream docIds = files .filter(f -> f.getFileName().toString().endsWith(".java")) - .map(f -> new TextDocumentIdentifier(f.toUri().toString())); + .map(f -> new TextDocumentIdentifier(f.toUri().toASCIIString())); List docs = docIds.filter(docId -> documents.getLatestSnapshot(docId.getUri()) == null) .map(docId -> new LazyTextDocument(docId.getUri(), LanguageId.JAVA)).collect(Collectors.toList()); @@ -163,7 +163,7 @@ public class BootJavaReconcileEngine implements IReconcileEngine, IJavaProjectRe public void clear(IJavaProject project) { // Build file if (project.getProjectBuild() != null && project.getProjectBuild().getBuildFile() != null) { - documents.publishDiagnostics(new TextDocumentIdentifier(project.getProjectBuild().getBuildFile().toString()), Collections.emptyList()); + documents.publishDiagnostics(new TextDocumentIdentifier(project.getProjectBuild().getBuildFile().toASCIIString()), Collections.emptyList()); } // Rest of the files IClasspathUtil.getProjectJavaSourceFolders(project.getClasspath()).flatMap(folder -> { @@ -174,7 +174,7 @@ public class BootJavaReconcileEngine implements IReconcileEngine, IJavaProjectRe } }) .filter(f -> f.getFileName().toString().endsWith(".java")) - .forEach(p -> documents.publishDiagnostics(new TextDocumentIdentifier(p.toUri().toString()), Collections.emptyList())); + .forEach(p -> documents.publishDiagnostics(new TextDocumentIdentifier(p.toUri().toASCIIString()), Collections.emptyList())); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/DefaultJavaElementLocationProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/DefaultJavaElementLocationProvider.java index cd8e7ca93..7855545ae 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/DefaultJavaElementLocationProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/DefaultJavaElementLocationProvider.java @@ -53,7 +53,7 @@ public class DefaultJavaElementLocationProvider implements JavaElementLocationPr String fqName = member.getDeclaringType().getFullyQualifiedName(); URI docUri = javaDocUriProvider.docUri(project, fqName); if (docUri != null) { - loc.setUri(docUri.toString()); + loc.setUri(docUri.toASCIIString()); Optional url = SourceLinks.source(project, fqName); if (url.isPresent()) { String memberBindingKey = member.getBindingKey(); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseJavaElementLocationProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseJavaElementLocationProvider.java index 7b0cbfc04..e98461ac0 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseJavaElementLocationProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseJavaElementLocationProvider.java @@ -26,7 +26,7 @@ public class EclipseJavaElementLocationProvider implements JavaElementLocationPr return null; } else { Location location = new Location(); - location.setUri(uri.toString()); + location.setUri(uri.toASCIIString()); location.setRange(new Range()); return location; } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseSourceLinks.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseSourceLinks.java index eb83225d3..f91f40b57 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseSourceLinks.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/EclipseSourceLinks.java @@ -54,7 +54,7 @@ public class EclipseSourceLinks implements SourceLinks { @Override public Optional sourceLinkUrlForFQName(IJavaProject project, String fqName) { - return findProjectForFQName(project, fqName).map(p -> eclipseIntroUri(p, fqName)).map(uri -> uri.toString()); + return findProjectForFQName(project, fqName).map(p -> eclipseIntroUri(p, fqName)).map(uri -> uri.toASCIIString()); } private Optional findProjectForFQName(IJavaProject project, String fqName) { @@ -79,7 +79,7 @@ public class EclipseSourceLinks implements SourceLinks { @Override public Optional sourceLinkForResourcePath(Path path) { - return Optional.ofNullable(eclipseIntroUri(path)).map(uri -> uri.toString()); + return Optional.ofNullable(eclipseIntroUri(path)).map(uri -> uri.toASCIIString()); } public static URI eclipseIntroUri(Path path) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerElementLocationProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerElementLocationProvider.java index 28674cfd3..074ec301a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerElementLocationProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerElementLocationProvider.java @@ -34,7 +34,7 @@ public class JavaServerElementLocationProvider implements JavaElementLocationPro @Override public Location findLocation(IJavaProject project, IMember member) { - String projectUri = project == null ? null : project.getLocationUri().toString(); + String projectUri = project == null ? null : project.getLocationUri().toASCIIString(); String bindingKey = member.getBindingKey(); try { Location location = server.getClient().javaLocation(new JavaDataParams(projectUri, bindingKey, true)).get(500, TimeUnit.MILLISECONDS); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java index 9e031fcb1..82bce577a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java @@ -38,7 +38,7 @@ public class JavaServerSourceLinks implements SourceLinks { bindingKey.append('L'); bindingKey.append(fqName.replace('.', '/')); bindingKey.append(';'); - String projectUri = project == null ? null : project.getLocationUri().toString(); + String projectUri = project == null ? null : project.getLocationUri().toASCIIString(); CompletableFuture> link = server.getClient().javadocHoverLink(new JavaDataParams(projectUri, bindingKey.toString(), true)) .thenApply(l -> Optional.ofNullable(l)); try { @@ -56,7 +56,7 @@ public class JavaServerSourceLinks implements SourceLinks { @Override public Optional sourceLinkForResourcePath(Path path) { - return Optional.ofNullable(path).map(p -> p.toUri().toString()); + return Optional.ofNullable(path).map(p -> p.toUri().toASCIIString()); } } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/SourceLinks.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/SourceLinks.java index ebfcc9a86..21f0b7d2e 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/SourceLinks.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/SourceLinks.java @@ -130,7 +130,7 @@ public interface SourceLinks { return sourceLinkUrlForClasspathResourceOnTomcat(sourceLinks, projectFinder, path); } Path filePath = Paths.get(path.substring(0, idx)); - IJavaProject project = projectFinder.find(new TextDocumentIdentifier(filePath.toUri().toString())).orElse(null); + IJavaProject project = projectFinder.find(new TextDocumentIdentifier(filePath.toUri().toASCIIString())).orElse(null); if (project == null) { try { // URL for CF resources looks like jar:file:/home/vcap/app/lib/gs-rest-service-complete.jar!/hello/MyService.class diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/VSCodeSourceLinks.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/VSCodeSourceLinks.java index 4711c6e03..ef1dbede7 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/VSCodeSourceLinks.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/VSCodeSourceLinks.java @@ -34,7 +34,7 @@ public class VSCodeSourceLinks extends AbstractSourceLinks { @Override public Optional sourceLinkForResourcePath(Path path) { - return Optional.of(path.toUri().toString()); + return Optional.of(path.toUri().toASCIIString()); } @Override @@ -57,7 +57,7 @@ public class VSCodeSourceLinks extends AbstractSourceLinks { @Override protected Optional jarLinkUrl(IJavaProject project, String fqName, IJavaModuleData jarModuleData) { - return Optional.ofNullable(JdtJavaDocumentUriProvider.uri(project, fqName)).map(uri -> uri.toString()); + return Optional.ofNullable(JdtJavaDocumentUriProvider.uri(project, fqName)).map(uri -> uri.toASCIIString()); } } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java index 265aa34c3..6df6d8568 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteCompilationUnitCache.java @@ -84,7 +84,7 @@ public class RewriteCompilationUnitCache implements DocumentContentProvider, Dis if (!future.isCancelled()) { future.cancel(true); } - Optional project = projectFinder.find(new TextDocumentIdentifier(uri.toString())); + Optional project = projectFinder.find(new TextDocumentIdentifier(uri.toASCIIString())); if (project.isPresent()) { JavaParser parser = javaParsers.getIfPresent(project.get().getLocationUri()); @@ -180,7 +180,7 @@ public class RewriteCompilationUnitCache implements DocumentContentProvider, Dis @Override public String fetchContent(URI uri) throws Exception { if (documentService != null) { - TextDocument document = documentService.getLatestSnapshot(uri.toString()); + TextDocument document = documentService.getLatestSnapshot(uri.toASCIIString()); if (document != null) { return document.get(); } @@ -256,18 +256,18 @@ public class RewriteCompilationUnitCache implements DocumentContentProvider, Dis * Does not need to be via callback - kept the same in order to keep the same API to replace JDT with Rewrite in distant future */ public T withCompilationUnit(IJavaProject project, URI uri, Function requestor) { - logger.info("CU Cache: work item submitted for doc {}", uri.toString()); + logger.info("CU Cache: work item submitted for doc {}", uri.toASCIIString()); CompilationUnit cu = getCU(project, uri); if (cu != null) { try { - logger.info("CU Cache: start work on AST for {}", uri.toString()); + logger.info("CU Cache: start work on AST for {}", uri.toASCIIString()); return requestor.apply(cu); } catch (CancellationException e) { throw e; } catch (Exception e) { logger.error("", e); } finally { - logger.info("CU Cache: end work on AST for {}", uri.toString()); + logger.info("CU Cache: end work on AST for {}", uri.toASCIIString()); } } return requestor.apply(null); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java index 6cf73b2b8..574bda774 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRecipeRepository.java @@ -416,7 +416,7 @@ public class RewriteRecipeRepository implements ApplicationContextAware { server.getProgressService().progressEvent(progressToken, "Parsing files..."); MavenProjectParser projectParser = createRewriteMavenParser(absoluteProjectDir, new InMemoryExecutionContext(), p -> { - TextDocument doc = server.getTextDocumentService().getLatestSnapshot(p.toUri().toString()); + TextDocument doc = server.getTextDocumentService().getLatestSnapshot(p.toUri().toASCIIString()); if (doc != null) { return new Parser.Input(p, () -> new ByteArrayInputStream(doc.get().getBytes())); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRefactorings.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRefactorings.java index dc78f6adb..150513227 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRefactorings.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/RewriteRefactorings.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 VMware, Inc. + * Copyright (c) 2022, 2023 VMware, 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 @@ -120,9 +120,9 @@ public class RewriteRefactorings implements CodeActionResolver, QuickfixHandler List results = reciperun.getResults(); List> edits = results.stream().filter(res -> res.getAfter() != null).map(res -> { URI docUri = res.getAfter().getSourcePath().isAbsolute() ? res.getAfter().getSourcePath().toUri() : project.getLocationUri().resolve(res.getAfter().getSourcePath().toString()); - TextDocument doc = documents.getLatestSnapshot(docUri.toString()); + TextDocument doc = documents.getLatestSnapshot(docUri.toASCIIString()); if (doc == null) { - doc = new TextDocument(docUri.toString(), LanguageId.JAVA, 0, res.getBefore() == null ? "" : res.getBefore().printAll()); + doc = new TextDocument(docUri.toASCIIString(), LanguageId.JAVA, 0, res.getBefore() == null ? "" : res.getBefore().printAll()); } return ORDocUtils.computeTextDocEdit(doc, res); }).filter(e -> e.isPresent()).map(e -> e.get()).map(e -> Either.forLeft(e)).collect(Collectors.toList()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/AutowiredFieldIntoConstructorParameterCodeAction.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/AutowiredFieldIntoConstructorParameterCodeAction.java index d95a532ef..0aaafdab1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/AutowiredFieldIntoConstructorParameterCodeAction.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/AutowiredFieldIntoConstructorParameterCodeAction.java @@ -77,7 +77,7 @@ public class AutowiredFieldIntoConstructorParameterCodeAction implements RecipeC if (fqType != null && isApplicableType(fqType)) { List constructors = ORAstUtils.getMethods(classDeclaration).stream().filter(c -> c.isConstructor()).limit(2).collect(Collectors.toList()); String fieldName = multiVariable.getVariables().get(0).getSimpleName(); - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker marker = new FixAssistMarker(Tree.randomId(), getId()) .withFix( new FixDescriptor(ID, List.of(uri), LABEL) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanMethodNotPublicProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanMethodNotPublicProblem.java index 479fc5a68..b466624e4 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanMethodNotPublicProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanMethodNotPublicProblem.java @@ -50,7 +50,7 @@ public class BeanMethodNotPublicProblem implements RecipeCodeActionDescriptor { if (m.getAllAnnotations().stream().anyMatch(BEAN_ANNOTATION_MATCHER::matches) && Boolean.FALSE.equals(TypeUtils.isOverride(method.getMethodType()))) { // mark public modifier - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker fixAssistMarker = new FixAssistMarker(Tree.randomId(), getId()) .withFixes( new FixDescriptor(ID, List.of(uri), LABEL) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanPostProcessingIgnoreInAotProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanPostProcessingIgnoreInAotProblem.java index dd2207972..e605de67f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanPostProcessingIgnoreInAotProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/BeanPostProcessingIgnoreInAotProblem.java @@ -50,7 +50,7 @@ public class BeanPostProcessingIgnoreInAotProblem implements RecipeCodeActionDes .filter(MethodDeclaration.class::isInstance).map(MethodDeclaration.class::cast) .filter(BeanPostProcessingIgnoreInAot::isApplicableMethod) .collect(Collectors.toList()); - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker marker = new FixAssistMarker(Tree.randomId(), getId()) .withFixes( new FixDescriptor(RECIPE_ID, List.of(uri), RecipeCodeActionDescriptor.buildLabel(LABEL, RecipeScope.NODE)) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoAutowiredOnConstructorProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoAutowiredOnConstructorProblem.java index db2b98a48..f657b9ef4 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoAutowiredOnConstructorProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoAutowiredOnConstructorProblem.java @@ -66,7 +66,7 @@ public class NoAutowiredOnConstructorProblem implements RecipeCodeActionDescript return s; } MethodDeclaration constructor = (MethodDeclaration) s; - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker fixAssistMarker = new FixAssistMarker(Tree.randomId(), getId()) .withFix( new FixDescriptor(ID, List.of(uri), LABEL) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRepoAnnotationProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRepoAnnotationProblem.java index 36c0a09d2..e269fdf82 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRepoAnnotationProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRepoAnnotationProblem.java @@ -62,7 +62,7 @@ public class NoRepoAnnotationProblem implements RecipeCodeActionDescriptor { c = c.withLeadingAnnotations(ListUtils.map(c.getLeadingAnnotations(), a -> { if (a == repoAnnotation) { String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri() - .toString(); + .toASCIIString(); FixAssistMarker fixAssistMarker = new FixAssistMarker(Tree.randomId(), getId()).withFixes( new FixDescriptor(ID, List.of(uri), LABEL) .withRangeScope(classDecl.getMarkers().findFirst(Range.class).get()) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRequestMappingAnnotationCodeAction.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRequestMappingAnnotationCodeAction.java index 207a0dddc..166447521 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRequestMappingAnnotationCodeAction.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NoRequestMappingAnnotationCodeAction.java @@ -44,7 +44,7 @@ public class NoRequestMappingAnnotationCodeAction implements RecipeCodeActionDes public J.Annotation visitAnnotation(J.Annotation annotation, ExecutionContext ctx) { J.Annotation a = super.visitAnnotation(annotation, ctx); if (REQUEST_MAPPING_ANNOTATION_MATCHER.matches(a) && getCursor().getParentOrThrow().getValue() instanceof J.MethodDeclaration) { - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker fixAssistMarker = new FixAssistMarker(Tree.randomId(), getId()) .withFixes( new FixDescriptor(ID, List.of(uri), RecipeCodeActionDescriptor.buildLabel(LABEL, RecipeScope.NODE)) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NotRegisteredBeansProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NotRegisteredBeansProblem.java index 8b2521bd0..60820ee01 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NotRegisteredBeansProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/NotRegisteredBeansProblem.java @@ -87,7 +87,7 @@ public class NotRegisteredBeansProblem implements RecipeCodeActionDescriptor { List constructors = c.getType().getMethods().stream().filter(m -> m.isConstructor()).collect(Collectors.toList()); if (beanSymbols.isEmpty()) { SourceFile source = getCursor().firstEnclosing(SourceFile.class); - String uri = source.getSourcePath().toUri().toString(); + String uri = source.getSourcePath().toUri().toASCIIString(); FixAssistMarker marker = new FixAssistMarker(Tree.randomId(), getId()); JavaProjectFinder projectFinder = applicationContext.getBean(JavaProjectFinder.class); if (projectFinder != null) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/PreciseBeanTypeProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/PreciseBeanTypeProblem.java index eba340f8e..940b4e014 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/PreciseBeanTypeProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/PreciseBeanTypeProblem.java @@ -53,7 +53,7 @@ public class PreciseBeanTypeProblem implements RecipeCodeActionDescriptor { if ((o instanceof JavaType.FullyQualified && m.getReturnTypeExpression().getType() instanceof JavaType.FullyQualified) || (o instanceof JavaType.Array && m.getReturnTypeExpression().getType() instanceof JavaType.Array)) { - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker marker = new FixAssistMarker(Tree.randomId(), getId()) .withFixes( new FixDescriptor(RECIPE_ID, List.of(uri), RecipeCodeActionDescriptor.buildLabel(LABEL, RecipeScope.NODE)) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/UnnecessarySpringExtensionProblem.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/UnnecessarySpringExtensionProblem.java index 07b8e96ab..55af6bb6d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/UnnecessarySpringExtensionProblem.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/rewrite/reconcile/UnnecessarySpringExtensionProblem.java @@ -70,7 +70,7 @@ public class UnnecessarySpringExtensionProblem implements RecipeCodeActionDescri })) { c = c.withLeadingAnnotations(ListUtils.map(c.getLeadingAnnotations(), a -> { if (SPRING_EXTENSION_ANNOTATIN_MATCHER.matches(a)) { - String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toString(); + String uri = getCursor().firstEnclosing(SourceFile.class).getSourcePath().toUri().toASCIIString(); FixAssistMarker fixMarker = new FixAssistMarker(Tree.randomId(), getId()) .withFix(new FixDescriptor(ID, List.of(uri), RecipeCodeActionDescriptor.buildLabel(LABEL, RecipeScope.PROJECT))); return a.withMarkers(a.getMarkers().add(fixMarker)); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java index 290bb05b0..8165daffb 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java @@ -184,7 +184,7 @@ public final class CompilationUnitCache implements DocumentContentProvider { * for later use. The JDT ASTs are not thread safe! */ public T withCompilationUnit(IJavaProject project, URI uri, Function requestor) { - logger.info("CU Cache: work item submitted for doc {}", uri.toString()); + logger.info("CU Cache: work item submitted for doc {}", uri.toASCIIString()); if (project != null) { @@ -196,11 +196,11 @@ public final class CompilationUnitCache implements DocumentContentProvider { try { Tuple2, INameEnvironmentWithProgress> lookupEnvTuple = loadLookupEnvTuple(project); - String utiStr = uri.toString(); + String utiStr = uri.toASCIIString(); String unitName = utiStr.substring(utiStr.lastIndexOf("/")); CompilationUnit cUnit = parse2(fetchContent(uri).toCharArray(), utiStr, unitName, lookupEnvTuple.getT1(), lookupEnvTuple.getT2()); - logger.debug("CU Cache: created new AST for {}", uri.toString()); + logger.debug("CU Cache: created new AST for {}", uri.toASCIIString()); return cUnit; } catch (Exception e) { @@ -331,7 +331,7 @@ public final class CompilationUnitCache implements DocumentContentProvider { @Override public String fetchContent(URI uri) throws Exception { if (documentService != null) { - TextDocument document = documentService.getLatestSnapshot(uri.toString()); + TextDocument document = documentService.getLatestSnapshot(uri.toASCIIString()); if (document != null) { return document.get(); } 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 40b50d128..d01fb2b44 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 @@ -84,8 +84,11 @@ public class SpringFactoriesIndexer implements SpringIndexer { @Override public boolean isInterestedIn(String docURI) { - Path path = Paths.get(URI.create(docURI)); - return FILE_GLOB_PATTERN.matches(path); + if (docURI.endsWith(".factories")) { + Path path = Paths.get(URI.create(docURI)); + return FILE_GLOB_PATTERN.matches(path); + } + return false; } @Override @@ -197,8 +200,8 @@ public class SpringFactoriesIndexer implements SpringIndexer { String content = Files.readString(file); ImmutableList.Builder builder = ImmutableList.builder(); long lastModified = Files.getLastModifiedTime(file).toMillis(); - String docUri = file.toUri().toString(); - for (EnhancedSymbolInformation s : computeSymbols(file.toUri().toString(), content)) { + String docUri = file.toUri().toASCIIString(); + for (EnhancedSymbolInformation s : computeSymbols(docUri, content)) { builder.add(new CachedSymbol(docUri, lastModified, s)); } return builder.build(); 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 2f90f3776..36412226e 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 @@ -287,7 +287,7 @@ public class SpringIndexerJava implements SpringIndexer { @Override public void acceptAST(String sourceFilePath, CompilationUnit cu) { File file = new File(sourceFilePath); - String docURI = UriUtil.toUri(file).toString(); + String docURI = UriUtil.toUri(file).toASCIIString(); DocumentDescriptor updatedDoc = updatedDocs.get(docURI); long lastModified = updatedDoc.getLastModified(); @@ -335,7 +335,7 @@ public class SpringIndexerJava implements SpringIndexer { DocumentDescriptor[] docsToScan = filesToScan.stream().map(file -> { File realFile = new File(file); - String docURI = UriUtil.toUri(realFile).toString(); + String docURI = UriUtil.toUri(realFile).toASCIIString(); long lastModified = realFile.lastModified(); return new DocumentDescriptor(docURI, lastModified); }).toArray(DocumentDescriptor[]::new); @@ -398,7 +398,7 @@ public class SpringIndexerJava implements SpringIndexer { @Override public void acceptAST(String sourceFilePath, CompilationUnit cu) { File file = new File(sourceFilePath); - String docURI = UriUtil.toUri(file).toString(); + String docURI = UriUtil.toUri(file).toASCIIString(); long lastModified = file.lastModified(); AtomicReference docRef = new AtomicReference<>(); @@ -640,7 +640,7 @@ public class SpringIndexerJava implements SpringIndexer { try { for (Path path : testJavaFiles) { URI docUri = UriUtil.toUri(path.toFile()); - symbolHandler.removeSymbols(project, docUri.toString()); + symbolHandler.removeSymbols(project, docUri.toASCIIString()); } } catch (Exception e) { log.error("{}", e); @@ -666,7 +666,7 @@ public class SpringIndexerJava implements SpringIndexer { File file = path.toFile(); URI docUri = UriUtil.toUri(file); String content = FileUtils.readFileToString(file); - scanFile(project, new DocumentDescriptor(docUri.toString(), file.lastModified()), content); + scanFile(project, new DocumentDescriptor(docUri.toASCIIString(), file.lastModified()), content); } } catch (Exception e) { log.error("{}", e); 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 1ec15e599..af9bc52bc 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 @@ -199,7 +199,7 @@ public class SpringIndexerXML implements SpringIndexer { File file = new File(fileName); long lastModified = file.lastModified(); - String docURI = UriUtil.toUri(file).toString(); + String docURI = UriUtil.toUri(file).toASCIIString(); String fileContent = FileUtils.readFileToString(file); scanFile(project, fileContent, docURI, lastModified, generatedSymbols); @@ -288,7 +288,7 @@ public class SpringIndexerXML implements SpringIndexer { String[] docURIs = new String[files.length]; for (int i = 0; i < files.length; i++) { - String docURI = UriUtil.toUri(new File(files[i])).toString(); + String docURI = UriUtil.toUri(new File(files[i])).toASCIIString(); symbolHandler.removeSymbols(project, docURI); docURIs[i] = docURI; } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java index 73981129a..3afab636d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SymbolCacheOnDisc.java @@ -142,7 +142,7 @@ public class SymbolCacheOnDisc implements SymbolCache { public void removeFile(SymbolCacheKey cacheKey, String file) { CacheStore cacheStore = this.stores.get(cacheKey); if (cacheStore != null) { - String docURI = UriUtil.toUri(new File(file)).toString(); + String docURI = UriUtil.toUri(new File(file)).toASCIIString(); SortedMap timestampedFiles = new TreeMap<>(cacheStore.getTimestampedFiles()); timestampedFiles.remove(file); @@ -174,7 +174,7 @@ public class SymbolCacheOnDisc implements SymbolCache { CacheStore cacheStore = this.stores.get(cacheKey); if (cacheStore != null) { - String docURI = UriUtil.toUri(new File(file)).toString(); + String docURI = UriUtil.toUri(new File(file)).toASCIIString(); SortedMap timestampedFiles = new TreeMap<>(cacheStore.getTimestampedFiles()); timestampedFiles.put(file, lastModified); @@ -212,7 +212,7 @@ public class SymbolCacheOnDisc implements SymbolCache { for (int i = 0; i < files.length; i++) { // update cache internal map of timestamps per file - String docURI = UriUtil.toUri(new File(files[i])).toString(); + String docURI = UriUtil.toUri(new File(files[i])).toASCIIString(); allDocURIs.add(docURI); timestampedFiles.put(files[i], lastModified[i]); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValuePropertyReferencesProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValuePropertyReferencesProvider.java index d71c3222d..04572dff1 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValuePropertyReferencesProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValuePropertyReferencesProvider.java @@ -171,7 +171,7 @@ public class ValuePropertyReferencesProvider implements ReferenceProvider { YamlASTProvider parser = new YamlParser(); URI docURI = Paths.get(filePath).toUri(); - TextDocument doc = new TextDocument(docURI.toString(), null); + TextDocument doc = new TextDocument(docURI.toASCIIString(), null); doc.setText(fileContent); YamlFileAST ast = parser.getAST(doc); @@ -193,7 +193,7 @@ public class ValuePropertyReferencesProvider implements ReferenceProvider { range.setStart(start); range.setEnd(end); - Location location = new Location(docURI.toString(), range); + Location location = new Location(docURI.toASCIIString(), range); foundLocations.add(location); } } @@ -243,7 +243,7 @@ public class ValuePropertyReferencesProvider implements ReferenceProvider { parseResults.ast.getNodes(KeyValuePair.class).forEach(pair -> { if (pair.getKey() != null && pair.getKey().decode().equals(propertyKey)) { URI docURI = Paths.get(filePath).toUri(); - TextDocument doc = new TextDocument(docURI.toString(), null); + TextDocument doc = new TextDocument(docURI.toASCIIString(), null); doc.setText(fileContent); try { @@ -263,7 +263,7 @@ public class ValuePropertyReferencesProvider implements ReferenceProvider { range.setStart(start); range.setEnd(end); - Location location = new Location(docURI.toString(), range); + Location location = new Location(docURI.toASCIIString(), range); foundLocations.add(location); } catch (BadLocationException e) { diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java index 6812cdca6..e19fce5a6 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/jdt/ls/JdtLsProjectCache.java @@ -247,7 +247,7 @@ public class JdtLsProjectCache implements InitializableJavaProjectsService, Serv } @Override - public IJavadocProvider javadocProvider(String projectUri, CPE classpathEntry) { + public IJavadocProvider javadocProvider(URI projectUri, CPE classpathEntry) { return new JdtLsJavadocProvider(server.getClient(), projectUri); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/quickfix/CommonQuickfixes.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/quickfix/CommonQuickfixes.java index 5f95a5255..053da7a38 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/quickfix/CommonQuickfixes.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/properties/quickfix/CommonQuickfixes.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 Pivotal, Inc. + * Copyright (c) 2019, 2023 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 @@ -109,7 +109,7 @@ public class CommonQuickfixes { Path metadataFilePath = sourceFolders.stream().map(f -> f.toPath()).map(path -> path.resolve(METADATA_PATH)).filter(path -> Files.exists(path)).findFirst().orElse(null); if (metadataFilePath == null) { metadataFilePath = preferredSourceFolder.toPath().resolve(METADATA_PATH); - we.getDocumentChanges().add(Either.forRight(new CreateFile(metadataFilePath.toUri().toString()))); + we.getDocumentChanges().add(Either.forRight(new CreateFile(metadataFilePath.toUri().toASCIIString()))); } if (metadataFilePath != null) { String content = Files.exists(metadataFilePath) ? IOUtil.toString(Files.newInputStream(metadataFilePath)) : ""; @@ -120,10 +120,10 @@ public class CommonQuickfixes { } else { metadata.addDefaultInfo(params.getProperty()); TextDocumentEdit edit = new TextDocumentEdit(); - edit.setTextDocument(new VersionedTextDocumentIdentifier(metadataFilePath.toUri().toString(), null)); + edit.setTextDocument(new VersionedTextDocumentIdentifier(metadataFilePath.toUri().toASCIIString(), null)); TextEdit textEdit = new TextEdit(); textEdit.setNewText(metadata.getTextContent()); - TextDocument doc = new TextDocument(metadataFilePath.toUri().toString(), null); + TextDocument doc = new TextDocument(metadataFilePath.toUri().toASCIIString(), null); doc.setText(content); textEdit.setRange(doc.toRange(new Region(0, content.length()))); edit.setEdits(ImmutableList.of(textEdit)); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java index 2e5ef5fa1..65c0c2961 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/ProjectVersionDiagnosticProvider.java @@ -44,7 +44,7 @@ public class ProjectVersionDiagnosticProvider { Version javaProjectVersion = SpringProjectUtil.getSpringBootVersion(javaProject); if (javaProjectVersion == null) { - log.warn("Unable to resolve version for project: " + javaProject.getLocationUri().toString()); + log.warn("Unable to resolve version for project: " + javaProject.getLocationUri().toASCIIString()); return new DiagnosticResult(buildFileUri, Collections.emptyList()); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/VersionValidators.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/VersionValidators.java index 2eddd8999..ce0de1d27 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/VersionValidators.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/validation/generations/VersionValidators.java @@ -202,7 +202,7 @@ public class VersionValidators { ca.setTitle("Upgrade to Spring Boot " + latest.toString() + " (Maven dependency version changes only)"); String commandId = SpringBootUpgrade.CMD_UPGRADE_SPRING_BOOT; ca.setCommand(new Command("Upgrade to Version " + latest.toString(), commandId, - ImmutableList.of(javaProject.getLocationUri().toString(), latest.toString()))); + ImmutableList.of(javaProject.getLocationUri().toASCIIString(), latest.toString()))); return createDiagnostic(ca, problemType, message.toString()); @@ -233,7 +233,7 @@ public class VersionValidators { ca.setTitle("Upgrade to Spring Boot " + latest.toString() + " (executes the full project conversion recipe from OpenRewrite)"); String commandId = SpringBootUpgrade.CMD_UPGRADE_SPRING_BOOT; ca.setCommand(new Command("Upgrade to Version " + latest.toString(), commandId, - ImmutableList.of(javaProject.getLocationUri().toString(), latest.toString()))); + ImmutableList.of(javaProject.getLocationUri().toASCIIString(), latest.toString()))); return createDiagnostic(ca, problemType, message.toString()); @@ -264,7 +264,7 @@ public class VersionValidators { ca.setTitle("Upgrade to Spring Boot " + latest.toString() + " (executes the full project conversion recipe from OpenRewrite)"); String commandId = SpringBootUpgrade.CMD_UPGRADE_SPRING_BOOT; ca.setCommand(new Command("Upgrade to Version " + latest.toString(), commandId, - ImmutableList.of(javaProject.getLocationUri().toString(), latest.toString()))); + ImmutableList.of(javaProject.getLocationUri().toASCIIString(), latest.toString()))); return createDiagnostic(ca, problemType, message.toString()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java index df4185213..5f6908b39 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java @@ -85,7 +85,7 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { log.info("Prefix is '{}'", prefix); - JavaCodeCompleteParams params = new JavaCodeCompleteParams(project.getLocationUri().toString(), prefix, true, true); + JavaCodeCompleteParams params = new JavaCodeCompleteParams(project.getLocationUri().toASCIIString(), prefix, true, true); CompletableFuture> completions = server.getClient().javaCodeComplete(params); final String finalPrefix = prefix; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/hyperlinks/BeanRefHyperlinkProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/hyperlinks/BeanRefHyperlinkProvider.java index 7476806f9..bc4bdb1ec 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/hyperlinks/BeanRefHyperlinkProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/hyperlinks/BeanRefHyperlinkProvider.java @@ -44,7 +44,7 @@ public class BeanRefHyperlinkProvider implements XMLHyperlinkProvider { Optional foundProject = this.projectFinder.find(doc.getId()); if (foundProject.isPresent()) { final IJavaProject project = foundProject.get(); - String projectLocation = project.getLocationUri() != null ? project.getLocationUri().toString() : ""; + String projectLocation = project.getLocationUri() != null ? project.getLocationUri().toASCIIString() : ""; // make sure the project and the symbol location share the same prefix "file:///" // looks like project locations are containing a "file:/" only diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/JavaTestConf.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/JavaTestConf.java index f35c3c95c..693b2b7f7 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/JavaTestConf.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/JavaTestConf.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.springframework.ide.vscode.boot.bootiful; +import java.net.URI; import java.nio.file.Paths; import java.util.Arrays; import java.util.Collection; @@ -68,7 +69,7 @@ public class JavaTestConf { } @Override - public IJavadocProvider javadocProvider(String projectUri, CPE cpe) { + public IJavadocProvider javadocProvider(URI projectUri, CPE cpe) { return javadocService.javadocProvider(projectUri, cpe); } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AstParserTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AstParserTest.java index d24ff13b4..6c1f94c8e 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AstParserTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/AstParserTest.java @@ -58,7 +58,7 @@ public class AstParserTest { char[] content = IOUtils.toString(uri).toCharArray(); - CompilationUnit cu = CompilationUnitCache.parse2(content, uri.toString(), unitName, jp); + CompilationUnit cu = CompilationUnitCache.parse2(content, uri.toASCIIString(), unitName, jp); assertNotNull(cu); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTestSpecialCharacters.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTestSpecialCharacters.java index 55a50130b..66ced4a02 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTestSpecialCharacters.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SpringIndexerTestSpecialCharacters.java @@ -76,7 +76,7 @@ public class SpringIndexerTestSpecialCharacters { // TODO: the direct path to URI conversion changes the é into an %-encoded character, so maybe we should switch to that entirely // String docUri = directory.toPath().resolve("src/main/java/org/test/ClassWithSpécialCharacter.java").toUri().toString(); - String docUri = UriUtil.toUri(directory.toPath().resolve("src/main/java/org/test/ClassWithSpécialCharacter.java").toFile()).toString(); + String docUri = UriUtil.toUri(directory.toPath().resolve("src/main/java/org/test/ClassWithSpécialCharacter.java").toFile()).toASCIIString(); assertTrue(SpringIndexerTest.containsSymbol(allSymbols, "@Configurable", docUri, 4, 0, 4, 13)); } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SymbolCacheOnDiscTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SymbolCacheOnDiscTest.java index e7146f7f7..395483d1b 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SymbolCacheOnDiscTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/utils/test/SymbolCacheOnDiscTest.java @@ -539,8 +539,8 @@ public class SymbolCacheOnDiscTest { FileTime timeFile2 = Files.getLastModifiedTime(file2); String[] files = {file1.toAbsolutePath().toString(), file2.toAbsolutePath().toString()}; - String doc1URI = UriUtil.toUri(file1.toFile()).toString(); - String doc2URI = UriUtil.toUri(file2.toFile()).toString(); + String doc1URI = UriUtil.toUri(file1.toFile()).toASCIIString(); + String doc2URI = UriUtil.toUri(file2.toFile()).toASCIIString(); List generatedSymbols = new ArrayList<>(); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/AdHocSpringPropertyIndexProviderTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/AdHocSpringPropertyIndexProviderTest.java index 43b796bef..4a1f317ac 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/AdHocSpringPropertyIndexProviderTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/AdHocSpringPropertyIndexProviderTest.java @@ -148,7 +148,7 @@ public class AdHocSpringPropertyIndexProviderTest { assertProperties(indexer.getIndex(project), "initial-property" //not changed yet because didn't fire change events. ); - documents.fire(new TextDocumentSaveChange(new TextDocument(propsFile.toURI().toString(), LanguageId.BOOT_PROPERTIES))); + documents.fire(new TextDocumentSaveChange(new TextDocument(propsFile.toURI().toASCIIString(), LanguageId.BOOT_PROPERTIES))); assertProperties(indexer.getIndex(project), "from-properties" ); @@ -157,7 +157,7 @@ public class AdHocSpringPropertyIndexProviderTest { assertProperties(indexer.getIndex(project), "from-properties" ); - documents.fire(new TextDocumentSaveChange(new TextDocument(propsFile.toURI().toString(), LanguageId.BOOT_PROPERTIES_YAML))); + documents.fire(new TextDocumentSaveChange(new TextDocument(propsFile.toURI().toASCIIString(), LanguageId.BOOT_PROPERTIES_YAML))); assertProperties(indexer.getIndex(project), "from-properties", "from-yaml" diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/MockProjects.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/MockProjects.java index ee3a8c18b..180e0a4ca 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/MockProjects.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/MockProjects.java @@ -187,7 +187,7 @@ public class MockProjects { } public String uri(String projectRelativePath) { - return new File(root, projectRelativePath).toURI().toString(); + return new File(root, projectRelativePath).toURI().toASCIIString(); } @Override @@ -274,7 +274,7 @@ public class MockProjects { synchronized (listeners) { for (FileListener l : listeners.values()) { if (l.matcher.matches(path)) { - l.handler.accept(new String[] {target.toURI().toString()}); + l.handler.accept(new String[] {target.toURI().toASCIIString()}); } } } diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueSpelExpressionValidationTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueSpelExpressionValidationTest.java index 0f04b15e3..aaa1a9746 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueSpelExpressionValidationTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/ValueSpelExpressionValidationTest.java @@ -144,7 +144,7 @@ public class ValueSpelExpressionValidationTest { harness.intialize(null); directory = new File(ProjectsHarness.class.getResource("/test-projects/test-annotations/").toURI()); - docUri = directory.toPath().resolve("src/main/java/org/test/TestValueCompletion.java").toUri().toString(); + docUri = directory.toPath().resolve("src/main/java/org/test/TestValueCompletion.java").toUri().toASCIIString(); problemCollector = new TestProblemCollector(); reconcileEngine = new BootJavaReconcileEngine(projectFinder, new JavaReconciler[] { diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/XMLSpelExpressionValidationTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/XMLSpelExpressionValidationTest.java index ed85ba7c7..2f00b892f 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/XMLSpelExpressionValidationTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/value/test/XMLSpelExpressionValidationTest.java @@ -94,7 +94,7 @@ public class XMLSpelExpressionValidationTest { harness.useProject(project); directory = new File(ProjectsHarness.class.getResource("/test-projects/test-xml-validations/").toURI()); - docUri = directory.toPath().resolve("src/main/webapp/WEB-INF/spring/root-context.xml").toUri().toString(); + docUri = directory.toPath().resolve("src/main/webapp/WEB-INF/spring/root-context.xml").toUri().toASCIIString(); problemCollector = new TestProblemCollector(); reconcileEngine = new SpringXMLReconcileEngine(projectFinder, config); diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/DefinitionLinkAsserts.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/DefinitionLinkAsserts.java index b2982839a..2d6ede4b5 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/DefinitionLinkAsserts.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/DefinitionLinkAsserts.java @@ -124,7 +124,7 @@ public class DefinitionLinkAsserts { if (sourceUrl.isPresent()) { URI docUri = javaDocumentUriProvider.docUri(project, fqName); - loc.setUri(docUri.toString()); + loc.setUri(docUri.toASCIIString()); String typeName = fqName.substring(fqName.lastIndexOf('.') + 1); URI sourceUri = sourceUrl.get().toURI(); @@ -179,7 +179,7 @@ public class DefinitionLinkAsserts { if (sourceUrl.isPresent()) { URI docUri = javaDocumentUriProvider.docUri(project, method.fqName); - loc.setUri(docUri.toString()); + loc.setUri(docUri.toASCIIString()); URI sourceUri = sourceUrl.get().toURI(); Range r = cuCache.withCompilationUnit(project, sourceUri, (cu) -> { @@ -240,7 +240,7 @@ public class DefinitionLinkAsserts { URI sourceUri = sourceUrl.get().toURI(); URI docUri = javaDocumentUriProvider.docUri(project, field.fqName); - loc.setUri(docUri.toString()); + loc.setUri(docUri.toASCIIString()); Range r = cuCache.withCompilationUnit(project, sourceUri, (cu) -> { try { diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java index c6e423e6c..52eb12a44 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/test/SpringPropertiesIndexTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2022 Pivotal, Inc. + * Copyright (c) 2017, 2023 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 @@ -58,7 +58,7 @@ public class SpringPropertiesIndexTest { File javaFile = new File(directory, "/src/main/java/demo/Application.java"); - TextDocument doc = new TextDocument(javaFile.toURI().toString(), LanguageId.JAVA); + TextDocument doc = new TextDocument(javaFile.toURI().toASCIIString(), LanguageId.JAVA); // Not cached yet, hence progress service invoked ProgressService progressService = mock(ProgressService.class); @@ -73,7 +73,7 @@ public class SpringPropertiesIndexTest { verify(progressService, never()).progressBegin(any(), any(), any()); // Change POM file for the project - harness.changeFile(new File(directory, MavenCore.POM_XML).toURI().toString()); + harness.changeFile(new File(directory, MavenCore.POM_XML).toURI().toASCIIString()); // POM has changed, hence project needs to be reloaded, cached value is cleared progressService = mock(ProgressService.class); diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing with space/src/main/java/org/test/ClassWithSpécialCharacter.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing with space/src/main/java/org/test/ClassWithSpécialCharacter.java index a7a40bf7d..b8444e31a 100644 --- a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing with space/src/main/java/org/test/ClassWithSpécialCharacter.java +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-parent/test-annotation-indexing with space/src/main/java/org/test/ClassWithSpécialCharacter.java @@ -4,4 +4,5 @@ import org.springframework.beans.factory.annotation.Configurable; @Configurable public class ClassWithSpécialCharacter { + } diff --git a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/ProjectClasspathUriResolverExtension.java b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/ProjectClasspathUriResolverExtension.java index ebed4d81e..faf2fc4a6 100644 --- a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/ProjectClasspathUriResolverExtension.java +++ b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/ProjectClasspathUriResolverExtension.java @@ -182,7 +182,7 @@ public class ProjectClasspathUriResolverExtension implements URIResolverExtensio private IJavaProjectData getBestMatchingProject(String file) { try { - String fileUri = new URL(file).toURI().toString(); + String fileUri = new URL(file).toURI().toASCIIString(); return javaProjectProvider.findProject(fileUri); } catch (MalformedURLException | URISyntaxException e) { throw new IllegalStateException(e); diff --git a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/FilteringURLResourceLoader.java b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/FilteringURLResourceLoader.java index 848db6add..0fc74ace3 100644 --- a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/FilteringURLResourceLoader.java +++ b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/FilteringURLResourceLoader.java @@ -184,7 +184,7 @@ public class FilteringURLResourceLoader extends ResourceLoader { if (attrs.isRegularFile()) { String name = rootDir.relativize(file).toString(); if (interesttingResourceNames.test(name)) { - resources.put(name, file.toUri().toString()); + resources.put(name, file.toUri().toASCIIString()); } } return fvr; diff --git a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/ProjectResourceLoaderCache.java b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/ProjectResourceLoaderCache.java index 7157b2a66..1db5e6401 100644 --- a/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/ProjectResourceLoaderCache.java +++ b/headless-services/xml-ls-extension/src/main/java/org/springframework/ide/vscode/xml/namespaces/classpath/ProjectResourceLoaderCache.java @@ -105,7 +105,7 @@ public class ProjectResourceLoaderCache { private static void addFile(List paths, File file) throws MalformedURLException { if (file.exists()) { if (file.isDirectory()) { - paths.add(new URL(file.toURI().toString() + File.separator)); + paths.add(new URL(file.toURI().toASCIIString() + File.separator)); } else { paths.add(file.toURI().toURL());