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 d8fcf2644..45b1d6273 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 @@ -10,7 +10,6 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.rewrite; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -158,7 +157,7 @@ public class ORDocUtils { return 0; } - public static Optional createWorkspaceEdit(Path absoluteProjectDir, SimpleTextDocumentService documents, List results, ChangeAnnotation changeAnnotation) { + public static Optional createWorkspaceEdit(SimpleTextDocumentService documents, List results, ChangeAnnotation changeAnnotation) { if (results.isEmpty()) { return Optional.empty(); } @@ -168,7 +167,7 @@ public class ORDocUtils { we.setChangeAnnotations(Map.of(changeAnnotationId, changeAnnotation)); for (Result result : results) { if (result.getBefore() == null) { - String docUri = absoluteProjectDir.resolve(result.getAfter().getSourcePath()).toUri().toASCIIString(); + String docUri = result.getAfter().getSourcePath().toUri().toASCIIString(); CreateFile ro = new CreateFile(); ro.setUri(docUri); we.getDocumentChanges().add(Either.forRight(ro)); @@ -179,10 +178,10 @@ public class ORDocUtils { te.setEdits(List.of(new AnnotatedTextEdit(new Range(cursor, cursor), result.getAfter().printAll(), changeAnnotationId))); we.getDocumentChanges().add(Either.forLeft(te)); } else if (result.getAfter() == null) { - String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString(); + String docUri = result.getBefore().getSourcePath().toUri().toASCIIString(); we.getDocumentChanges().add(Either.forRight(new DeleteFile(docUri))); } else { - String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString(); + String docUri = 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/ProjectParser.java b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ProjectParser.java index 2e3c4421c..f3b12c456 100644 --- a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ProjectParser.java +++ b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/java/ProjectParser.java @@ -64,19 +64,19 @@ public abstract class ProjectParser { javaParser.setClasspath(mainClasspath); List javaSources = ListUtils.map(javaParser.parseInputs( - () -> getInputs(ss.javaSources.stream()).iterator(), projectDir, ctx).collect(Collectors.toList()), addProvenance(projectProvenance)); + () -> getInputs(ss.javaSources.stream()).iterator(), null, ctx).collect(Collectors.toList()), addProvenance(projectProvenance)); JavaSourceSet javaSourceSet = ORAstUtils.addJavaSourceSet(javaSources, ss.name(), mainClasspath); sources.addAll(javaSources); List resources = getInputs(ss.resources().stream()).collect(Collectors.toList()); - parseResources(resources, projectDir, sources, projectProvenance, javaSourceSet, ctx); + parseResources(resources, null, sources, projectProvenance, javaSourceSet, ctx); } return sources; } - private void parseResources(List resources, Path projectDirectory, List sourceFiles, List projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) { + private void parseResources(List resources, Path relativeTo, List sourceFiles, List projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) { List provenance = new ArrayList<>(projectProvenance); provenance.add(sourceSet); @@ -89,7 +89,7 @@ public abstract class ProjectParser { p.getPath().getFileName().toString().endsWith(".xsl") || p.getPath().getFileName().toString().endsWith(".xslt")) .collect(Collectors.toList()), - projectDirectory, + relativeTo, ctx ).collect(Collectors.toList()), addProvenance(provenance))); @@ -97,7 +97,7 @@ public abstract class ProjectParser { resources.stream() .filter(p -> p.getPath().getFileName().toString().endsWith(".yml") || p.getPath().getFileName().toString().endsWith(".yaml")) .collect(Collectors.toList()), - projectDirectory, + relativeTo, ctx ).collect(Collectors.toList()), addProvenance(provenance))); @@ -105,7 +105,7 @@ public abstract class ProjectParser { resources.stream() .filter(p -> p.getPath().getFileName().toString().endsWith(".properties")) .collect(Collectors.toList()), - projectDirectory, + relativeTo, ctx ).collect(Collectors.toList()), addProvenance(provenance))); @@ -113,7 +113,7 @@ public abstract class ProjectParser { resources.stream() .filter(p -> p.getPath().getFileName().toString().endsWith(".factories")) .collect(Collectors.toList()), - projectDirectory, + relativeTo, ctx ).collect(Collectors.toList()), addProvenance(provenance))); } diff --git a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/maven/MavenIJavaProjectParser.java b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/maven/MavenIJavaProjectParser.java index 333657abf..46a8ae118 100644 --- a/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/maven/MavenIJavaProjectParser.java +++ b/headless-services/commons/commons-rewrite/src/main/java/org/springframework/ide/vscode/commons/rewrite/maven/MavenIJavaProjectParser.java @@ -104,7 +104,7 @@ public class MavenIJavaProjectParser extends AbstractJavaProjectParser { @Override protected List parseBuildFiles(Path projectDir, ExecutionContext ctx) { MavenParser mavenParser = mavenParserBuilder.build(); - return mavenParser.parseInputs(() -> getInputs(Stream.of(Paths.get(jp.getProjectBuild().getBuildFile()))).iterator(), projectDir, ctx).collect(Collectors.toList()); + return mavenParser.parseInputs(() -> getInputs(Stream.of(Paths.get(jp.getProjectBuild().getBuildFile()))).iterator(), null, ctx).collect(Collectors.toList()); } private static ResolvedPom getModel(Xml.Document maven) { 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 23621ee15..75cb6b76e 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 @@ -460,7 +460,7 @@ public class RewriteRecipeRepository { List results = reciperun.getChangeset().getAllResults(); ChangeAnnotation changeAnnotation = new ChangeAnnotation("Apply Recipe '" + r.getDisplayName() + "'"); changeAnnotation.setNeedsConfirmation(needsConfirmation); - return ORDocUtils.createWorkspaceEdit(absoluteProjectDir, server.getTextDocumentService(), results, changeAnnotation); + return ORDocUtils.createWorkspaceEdit(server.getTextDocumentService(), results, changeAnnotation); } private void reportParseErrors(List parseErrors) {