1 package org.apache.maven.plugin.coreit;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.AbstractMojo;
23 import org.apache.maven.plugin.MojoExecutionException;
24
25 import java.io.File;
26 import java.io.FileWriter;
27 import java.io.IOException;
28
29
30
31
32
33
34 public class CoreItMojoWithSetters
35 extends AbstractMojo
36 {
37
38
39
40
41
42
43 private String outputDirectoryValue;
44
45
46
47
48 private String fooValue;
49
50
51
52
53 private String bar;
54
55
56
57
58
59 public void setOutputDirectory( String outputDirectory )
60 {
61 this.outputDirectoryValue = outputDirectory;
62 }
63
64 boolean setFooSetterExecuted;
65
66 public void setFoo( String fooValue )
67 {
68 this.fooValue = fooValue;
69
70 setFooSetterExecuted = true;
71 }
72
73 boolean setBarSetterExecuted;
74
75 public void setBar( String barValue )
76 {
77 this.bar = barValue + ".baz";
78
79 setBarSetterExecuted = true;
80 }
81
82
83
84
85
86
87 public void execute()
88 throws MojoExecutionException
89 {
90 touch( new File( outputDirectoryValue ), "touch.txt" );
91
92 File outDir = new File( outputDirectoryValue );
93
94
95 if ( fooValue != null && setFooSetterExecuted )
96 {
97 touch( outDir, fooValue );
98 }
99
100 if ( bar != null && setBarSetterExecuted )
101 {
102 touch( outDir, bar );
103 }
104 }
105
106 private static void touch( File dir, String file )
107 throws MojoExecutionException
108 {
109 try
110 {
111 if ( !dir.exists() )
112 {
113 dir.mkdirs();
114 }
115
116 File touch = new File( dir, file );
117
118 FileWriter w = new FileWriter( touch );
119
120 w.write( file );
121
122 w.close();
123 }
124 catch ( IOException e )
125 {
126 throw new MojoExecutionException( "Error touching file", e );
127 }
128 }
129 }