-
Notifications
You must be signed in to change notification settings - Fork 516
Closed
Labels
Description
What version of OpenRewrite are you using?
I am using
- rewrite-recipe-bom: 3.9.0
- rewrite-maven: 8.55.0 (bom overrided)
What is the smallest, simplest way to reproduce the problem?
Recipe:
type: specs.openrewrite.org/v1beta/recipe
name: com.socgen.digital.xbl.recipes.RemoveLog4JBom
description: >-
Remove log4j-bom dependency because it's already defined un SB's BOM.
recipeList:
- org.openrewrite.maven.RemoveManagedDependency:
groupId: org.apache.logging.log4j
artifactId: log4j-bom
- org.openrewrite.maven.RemoveDependency:
groupId: org.apache.logging.log4j
artifactId: log4j-bom
- org.openrewrite.maven.RemoveProperty:
propertyName: log4j2.versionUnit test (multi module project):
class RemoveLog4JBomTest implements RewriteTest {
@Override
public void defaults(RecipeSpec spec) {
Recipe recipe = Environment.builder()
.scanYamlResources()
.build()
.activateRecipes("com.socgen.digital.xbl.recipes.RemoveLog4JBom");
spec.recipe(recipe);
}
@Test
void removeLog4JBom() {
rewriteRun(
mavenProject("",
srcMainResources(
pomXml(
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>dummyGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
<modules>
<module>child-module</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j2.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
</project>
""",
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>dummyGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>child-module</module>
</modules>
</project>
""",
s -> s.path("pom.xml")
),
pomXml(
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>dummyGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>child-artifact</artifactId>
<packaging>jar</packaging>
<name>child-module</name>
</project>
""",
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>dummyGroupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>child-artifact</artifactId>
<packaging>jar</packaging>
<name>child-module</name>
</project>
""",
s -> s.path("child-module/pom.xml")
)
)
)
//language=properties
);
}
}What did you expect to see?
Unit test successfull
What did you see instead?
An exception:
java.lang.AssertionError: Failed to run recipe at Cursor{Document->root}
at org.openrewrite.test.RewriteTest.lambda$defaultExecutionContext$14(RewriteTest.java:640)
at org.openrewrite.scheduling.RecipeRunCycle.handleError(RecipeRunCycle.java:291)
at org.openrewrite.scheduling.RecipeRunCycle.lambda$editSources$8(RecipeRunCycle.java:230)
at org.openrewrite.scheduling.RecipeStack.reduce(RecipeStack.java:60)
at org.openrewrite.scheduling.RecipeRunCycle.lambda$editSources$9(RecipeRunCycle.java:179)
at org.openrewrite.internal.InMemoryLargeSourceSet.lambda$edit$0(InMemoryLargeSourceSet.java:83)
at org.openrewrite.internal.ListUtils.map(ListUtils.java:244)
at org.openrewrite.internal.ListUtils.map(ListUtils.java:267)
at org.openrewrite.internal.InMemoryLargeSourceSet.edit(InMemoryLargeSourceSet.java:82)
at org.openrewrite.scheduling.RecipeRunCycle.editSources(RecipeRunCycle.java:177)
at org.openrewrite.RecipeScheduler.runRecipeCycles(RecipeScheduler.java:84)
at org.openrewrite.RecipeScheduler.scheduleRun(RecipeScheduler.java:41)
at org.openrewrite.Recipe.run(Recipe.java:441)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:377)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:130)
at org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:125)
at com.socgen.digital.xbl.recipes.RemoveLog4JBomTest.removeLog4JBom(RemoveLog4JBomTest.java:26)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: org.openrewrite.internal.RecipeRunException: java.lang.IllegalArgumentException: Illegal character in path at index 76: file:///C:/Users/.m2/repository/org/apache/logging/log4j/log4j-bom/${log4j2.version}/log4j-bom-${log4j2.version}.pom
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:281)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:268)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:154)
at org.openrewrite.scheduling.RecipeRunCycle.lambda$editSources$7(RecipeRunCycle.java:210)
at io.micrometer.core.instrument.AbstractTimer.recordCallable(AbstractTimer.java:178)
at org.openrewrite.table.RecipeRunStats.recordEdit(RecipeRunStats.java:74)
at org.openrewrite.scheduling.RecipeRunCycle.lambda$editSources$8(RecipeRunCycle.java:206)
... 17 more
Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 76: file:///C:/Users/.m2/repository/org/apache/logging/log4j/log4j-bom/${log4j2.version}/log4j-bom-${log4j2.version}.pom
at java.base/java.net.URI.create(URI.java:906)
at org.openrewrite.maven.internal.MavenPomDownloader.download(MavenPomDownloader.java:562)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.mergeDependencyManagement(ResolvedPom.java:900)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentDependenciesRecursively(ResolvedPom.java:480)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentDependenciesRecursively(ResolvedPom.java:498)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentDependenciesRecursively(ResolvedPom.java:462)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolveParentsRecursively(ResolvedPom.java:414)
at org.openrewrite.maven.tree.ResolvedPom$Resolver.resolve(ResolvedPom.java:385)
at org.openrewrite.maven.tree.ResolvedPom.resolve(ResolvedPom.java:193)
at org.openrewrite.maven.UpdateMavenModel.updateResult(UpdateMavenModel.java:167)
at org.openrewrite.maven.UpdateMavenModel.lambda$updateResult$8(UpdateMavenModel.java:172)
at org.openrewrite.internal.ListUtils.map(ListUtils.java:244)
at org.openrewrite.internal.ListUtils.map(ListUtils.java:267)
at org.openrewrite.maven.UpdateMavenModel.updateResult(UpdateMavenModel.java:170)
at org.openrewrite.maven.UpdateMavenModel.visitDocument(UpdateMavenModel.java:136)
at org.openrewrite.xml.tree.Xml$Document.acceptXml(Xml.java:149)
at org.openrewrite.xml.tree.Xml.accept(Xml.java:53)
at org.openrewrite.TreeVisitor.visit(TreeVisitor.java:245)
... 23 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 76: file:///C:/Users/.m2/repository/org/apache/logging/log4j/log4j-bom/${log4j2.version}/log4j-bom-${log4j2.version}.pom
at java.base/java.net.URI$Parser.fail(URI.java:2976)
at java.base/java.net.URI$Parser.checkChars(URI.java:3147)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3229)
at java.base/java.net.URI$Parser.parse(URI.java:3177)
at java.base/java.net.URI.<init>(URI.java:623)
at java.base/java.net.URI.create(URI.java:904)
... 40 more
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done