Skip to content

Commit 33ce95e

Browse files
committed
testing if generated project compiles
Signed-off-by: Attila Mészáros <csviri@gmail.com>
1 parent 10507b9 commit 33ce95e

File tree

3 files changed

+52
-1
lines changed

3 files changed

+52
-1
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration name="TestConfig" status="WARN">
3+
<Appenders>
4+
<Console name="Console" target="SYSTEM_OUT">
5+
<PatternLayout pattern="%d %threadId %-30c{1.} [%-5level] %msg%n%throwable"/>
6+
</Console>
7+
</Appenders>
8+
<Loggers>
9+
<Logger level="debug" name="io.javaoperatorsdk" additivity="false">
10+
<AppenderRef ref="Console"/>
11+
</Logger>
12+
<Root level="info">
13+
<AppenderRef ref="Console"/>
14+
</Root>
15+
</Loggers>
16+
</Configuration>

bootstrapper-maven-plugin/src/main/resources/templates/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<packaging>jar</packaging>
1212

1313
<properties>
14-
<java.version>17</java.version>
14+
<java.version>11</java.version>
1515
<maven.compiler.source>${java.version}</maven.compiler.source>
1616
<maven.compiler.target>${java.version}</maven.compiler.target>
1717
<jib-maven-plugin.version>3.4.0</jib-maven-plugin.version>

bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
package io.javaoperatorsdk.bootstrapper;
22

3+
import java.io.BufferedReader;
34
import java.io.File;
5+
import java.io.IOException;
6+
import java.io.InputStreamReader;
7+
import java.nio.file.Files;
8+
import java.nio.file.Path;
9+
import java.nio.file.attribute.PosixFilePermission;
10+
import java.util.Set;
411

512
import org.junit.jupiter.api.Test;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
615

716
import io.javaoperatorsdk.boostrapper.Bootstrapper;
817

918
import static org.assertj.core.api.Assertions.assertThat;
1019

1120
class BootstrapperTest {
1221

22+
private static final Logger log = LoggerFactory.getLogger(BootstrapperTest.class);
23+
1324
Bootstrapper bootstrapper = new Bootstrapper();
1425

1526
@Test
@@ -18,6 +29,30 @@ void copiesFilesToTarget() {
1829

1930
var targetDir = new File("target", "test-project");
2031
assertThat(targetDir.list()).contains("pom.xml");
32+
assertProjectCompiles();
2133
}
2234

35+
private void assertProjectCompiles() {
36+
try {
37+
var mvnwPath = "./target/test-project/mvnw";
38+
39+
Files.setPosixFilePermissions(Path.of(mvnwPath), Set.of(PosixFilePermission.OWNER_READ,
40+
PosixFilePermission.OWNER_EXECUTE));
41+
var process = Runtime.getRuntime()
42+
.exec(mvnwPath + " clean install -f target/test-project/pom.xml");
43+
44+
BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getInputStream()));
45+
46+
log.info("Maven output:");
47+
String logLine;
48+
while ((logLine = stdError.readLine()) != null) {
49+
System.out.println(logLine);
50+
}
51+
var res = process.waitFor();
52+
log.info("exit code: {}", res);
53+
assertThat(res).isZero();
54+
} catch (IOException | InterruptedException e) {
55+
throw new RuntimeException(e);
56+
}
57+
}
2358
}

0 commit comments

Comments
 (0)