|
2 | 2 |
|
3 | 3 | import static org.assertj.core.api.Assertions.assertThat; |
4 | 4 |
|
| 5 | +import java.io.StringReader; |
| 6 | +import java.io.StringWriter; |
5 | 7 | import java.net.URISyntaxException; |
6 | 8 | import java.nio.file.Path; |
7 | 9 | import java.nio.file.Paths; |
@@ -117,4 +119,30 @@ void should_keep_target_indent_4() throws URISyntaxException { |
117 | 119 | Approvals.verify(targetFile.toFile()); |
118 | 120 | } |
119 | 121 |
|
| 122 | + @Test |
| 123 | + void should_preserve_packaging() { |
| 124 | + String basePom = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
| 125 | + "<project>\n" + |
| 126 | + " <modelVersion>4.0.0</modelVersion>\n" + |
| 127 | + " <groupId>org.acme</groupId>\n" + |
| 128 | + " <artifactId>my-app</artifactId>\n" + |
| 129 | + " <version>1.0.0-SNAPSHOT</version>\n" + |
| 130 | + " <packaging>quarkus</packaging>\n" + |
| 131 | + "</project>\n"; |
| 132 | + |
| 133 | + String extensionPom = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
| 134 | + "<project>\n" + |
| 135 | + " <properties>\n" + |
| 136 | + " <property-from-extension>value</property-from-extension>\n" + |
| 137 | + " </properties>\n" + |
| 138 | + "</project>\n"; |
| 139 | + |
| 140 | + ModelMerger merger = new SmartModelMerger(); |
| 141 | + final Model source = Maven.readModel(new StringReader(basePom)); |
| 142 | + final Model target = Maven.readModel(new StringReader(extensionPom)); |
| 143 | + merger.merge(target, source, true, null); |
| 144 | + StringWriter writer = new StringWriter(); |
| 145 | + Maven.writeModel(target, writer); |
| 146 | + Approvals.verify(writer.toString()); |
| 147 | + } |
120 | 148 | } |
0 commit comments