1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.utils.io;
20
21 import java.io.File;
22 import java.io.IOException;
23 import java.nio.charset.StandardCharsets;
24
25 import static org.apache.commons.io.FileUtils.write;
26
27 public class SymlinkTestSetup {
28
29
30
31 public static File createStandardSymlinkTestDir(File root) throws IOException {
32 File srcDir = new File(root, "/src");
33 srcDir.mkdirs();
34 File target = new File(srcDir, "targetDir");
35 target.mkdirs();
36 write(new File(target, "targetFile.txt"), "a regular File payload", StandardCharsets.UTF_8);
37 File aRegularDir = new File(srcDir, "aRegularDir");
38 aRegularDir.mkdirs();
39 write(new File(aRegularDir, "aRegularFile.txt"), "a regular File payload", StandardCharsets.UTF_8);
40
41 File dirOnTheOutside = new File(root, "dirOnTheOutside");
42 dirOnTheOutside.mkdirs();
43 write(
44 new File(dirOnTheOutside, "FileInDirOnTheOutside.txt"),
45 "a file in dir on the outside",
46 StandardCharsets.UTF_8);
47 write(new File(root, "onTheOutside.txt"), "A file on the outside", StandardCharsets.UTF_8);
48 write(new File(srcDir, "fileR.txt"), "FileR payload", StandardCharsets.UTF_8);
49 write(new File(srcDir, "fileW.txt"), "FileW payload", StandardCharsets.UTF_8);
50 write(new File(srcDir, "fileX.txt"), "FileX payload", StandardCharsets.UTF_8);
51
52
53 FileUtils.createSymbolicLink(new File(srcDir, "symDir"), new File("targetDir"));
54 FileUtils.createSymbolicLink(new File(srcDir, "symLinkToDirOnTheOutside"), new File("../dirOnTheOutside"));
55 FileUtils.createSymbolicLink(new File(srcDir, "symLinkToFileOnTheOutside"), new File("../onTheOutside.txt"));
56 FileUtils.createSymbolicLink(new File(srcDir, "symR"), new File("fileR.txt"));
57 FileUtils.createSymbolicLink(new File(srcDir, "symW"), new File("fileW.txt"));
58 FileUtils.createSymbolicLink(new File(srcDir, "symX"), new File("fileX.txt"));
59 return srcDir;
60 }
61 }