1 package org.apache.archiva.transaction;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.checksum.ChecksumAlgorithm;
23
24 import java.io.IOException;
25 import java.nio.file.Files;
26 import java.nio.file.Path;
27 import java.util.List;
28
29
30
31
32
33
34 public class CreateFileEvent
35 extends AbstractTransactionEvent
36 {
37 private final Path destination;
38
39 private final String content;
40
41
42
43
44
45
46
47 public CreateFileEvent( String content, Path destination, List<ChecksumAlgorithm> checksumAlgorithms )
48 {
49 super( checksumAlgorithms );
50 this.content = content;
51 this.destination = destination;
52 }
53
54 @Override
55 public void commit()
56 throws IOException
57 {
58 createBackup( destination );
59
60 mkDirs( destination.getParent() );
61
62 if ( !Files.exists(destination))
63 {
64 Files.createFile(destination);
65 }
66
67 writeStringToFile( destination, content );
68
69 createChecksums( destination, true );
70 }
71
72 @Override
73 public void rollback()
74 throws IOException
75 {
76 Files.deleteIfExists(destination);
77
78 revertFilesCreated();
79
80 revertMkDirs();
81
82 restoreBackups();
83 }
84 }