No need for a "relativeTo" folder for parsing sources

This commit is contained in:
aboyko
2023-12-21 18:22:30 -05:00
parent 1a90281e65
commit 7a04b3ee28
4 changed files with 13 additions and 14 deletions

View File

@@ -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<WorkspaceEdit> createWorkspaceEdit(Path absoluteProjectDir, SimpleTextDocumentService documents, List<Result> results, ChangeAnnotation changeAnnotation) {
public static Optional<WorkspaceEdit> createWorkspaceEdit(SimpleTextDocumentService documents, List<Result> 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());

View File

@@ -64,19 +64,19 @@ public abstract class ProjectParser {
javaParser.setClasspath(mainClasspath);
List<SourceFile> 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<Input> 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<Parser.Input> resources, Path projectDirectory, List<SourceFile> sourceFiles, List<Marker> projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) {
private void parseResources(List<Parser.Input> resources, Path relativeTo, List<SourceFile> sourceFiles, List<Marker> projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) {
List<Marker> 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)));
}

View File

@@ -104,7 +104,7 @@ public class MavenIJavaProjectParser extends AbstractJavaProjectParser {
@Override
protected List<? extends SourceFile> 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) {

View File

@@ -460,7 +460,7 @@ public class RewriteRecipeRepository {
List<Result> 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<ParseError> parseErrors) {