Skip to content

Commit fde4cb9

Browse files
committed
Apply update for testcontainers-advanced-imagebuilder to 2.2.0
1 parent aa63a27 commit fde4cb9

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

advanced-demo/integration-tests/tci-webapp/src/main/java/software/xdev/tci/demo/tci/webapp/containers/WebAppContainerBuilder.java

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
package software.xdev.tci.demo.tci.webapp.containers;
22

3+
import java.io.IOException;
4+
import java.nio.file.Path;
35
import java.nio.file.Paths;
6+
import java.util.List;
47
import java.util.concurrent.TimeUnit;
58
import java.util.concurrent.TimeoutException;
69

10+
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
711
import org.slf4j.Logger;
812
import org.slf4j.LoggerFactory;
913

1014
import software.xdev.testcontainers.imagebuilder.AdvancedImageFromDockerFile;
1115
import software.xdev.testcontainers.imagebuilder.compat.DockerfileCOPYParentsEmulator;
16+
import software.xdev.testcontainers.imagebuilder.transfer.fcm.FileLinesContentModifier;
1217

1318

1419
@SuppressWarnings("PMD.MoreThanOneLogger")
@@ -60,7 +65,40 @@ public static synchronized String getBuiltImageName()
6065
.withBaseDir(Paths.get("../../"))
6166
// File is in root directory - we can't access it
6267
.withBaseDirRelativeIgnoreFile(null)
63-
.withDockerFileLinesModifier(new DockerfileCOPYParentsEmulator());
68+
.withDockerFileLinesModifier(new DockerfileCOPYParentsEmulator())
69+
.withTransferArchiveTARCompressorCustomizer(c -> c
70+
// Rewrite parent pom to exclude integration tests
71+
// This way changes in test pom's cause no redownload of dependencies
72+
.withContentModifier(new FileLinesContentModifier()
73+
{
74+
@Override
75+
public boolean shouldApply(
76+
final Path sourcePath,
77+
final String targetPath,
78+
final TarArchiveEntry tarArchiveEntry)
79+
{
80+
return "pom.xml".equals(targetPath);
81+
}
82+
83+
@Override
84+
public List<String> modify(
85+
final List<String> lines,
86+
final Path sourcePath,
87+
final String targetPath,
88+
final TarArchiveEntry tarArchiveEntry) throws IOException
89+
{
90+
return lines.stream()
91+
// Remove integration tests module
92+
.filter(s -> !s.contains("<module>integration-tests"))
93+
.toList();
94+
}
95+
96+
@Override
97+
public boolean isIdentical(final List<String> original, final List<String> created)
98+
{
99+
return original.size() == created.size();
100+
}
101+
}));
64102

65103
try
66104
{

0 commit comments

Comments
 (0)