1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.forgerock.doc.maven.pre;
18
19 import org.apache.maven.plugin.MojoExecutionException;
20 import org.codehaus.plexus.util.DirectoryScanner;
21 import org.codehaus.plexus.util.FileUtils;
22 import org.codehaus.plexus.util.StringUtils;
23 import org.forgerock.doc.maven.AbstractDocbkxMojo;
24
25 import java.io.File;
26 import java.io.IOException;
27 import java.util.Set;
28
29
30
31
32
33 public class CurrentDocId {
34
35
36
37
38 private AbstractDocbkxMojo m;
39
40
41
42
43
44
45 public CurrentDocId(final AbstractDocbkxMojo mojo) {
46 m = mojo;
47 }
48
49 private static final String CURRENT_DOCID = "CURRENT.DOCID#";
50
51
52
53
54
55
56 public void execute() throws MojoExecutionException {
57
58 final Set<String> docNames = m.getDocNames();
59 final String sourceEncoding = m.getProject().getProperties()
60 .getProperty("project.build.sourceEncoding", "UTF-8");
61
62 for (String docName : docNames) {
63
64 File documentDirectory = new File(m.getDocbkxModifiableSourcesDirectory(), docName);
65 DirectoryScanner scanner = new DirectoryScanner();
66 scanner.setBasedir(documentDirectory);
67 scanner.setIncludes(new String[] { "**/*.xml" });
68 scanner.addDefaultExcludes();
69 scanner.scan();
70
71 for (String docFile : scanner.getIncludedFiles()) {
72 try {
73 File documentFile = new File(documentDirectory, docFile);
74 String content = FileUtils.fileRead(documentFile, sourceEncoding);
75 String newContent = StringUtils.replace(content, CURRENT_DOCID, docName + "#");
76 FileUtils.fileWrite(documentFile, sourceEncoding, newContent);
77 } catch (IOException e) {
78 throw new MojoExecutionException(e.getMessage(), e);
79 }
80 }
81 }
82 }
83 }