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 public class CoreItMojoWithSetters
34 extends AbstractMojo
35 {
36
37
38
39
40 private String outputDirectoryValue;
41
42
43
44
45 private String fooValue;
46
47
48
49
50 private String bar;
51
52
53
54
55
56 public void setOutputDirectory( String outputDirectory )
57 {
58 this.outputDirectoryValue = outputDirectory;
59 }
60
61 boolean setFooSetterExecuted;
62
63 public void setFoo( String fooValue )
64 {
65
66 getLog().info( "setFoo: " + fooValue );
67
68 this.fooValue = fooValue;
69
70 setFooSetterExecuted = true;
71 }
72
73 boolean setBarSetterExecuted;
74
75 public void setBar( String barValue )
76 {
77
78 getLog().info( "setBar: " + barValue );
79
80 this.bar = barValue + ".baz";
81
82 setBarSetterExecuted = true;
83 }
84
85
86
87
88
89
90 public void execute()
91 throws MojoExecutionException
92 {
93 touch( new File( outputDirectoryValue ), "touch.txt" );
94
95 File outDir = new File( outputDirectoryValue );
96
97
98 if ( fooValue != null && setFooSetterExecuted )
99 {
100
101 getLog().info( "fooValue != null && setFooSetterExecuted" );
102
103 touch( outDir, fooValue );
104 }
105
106 if ( bar != null && setBarSetterExecuted )
107 {
108
109 getLog().info( "bar != null && setBarSetterExecuted" );
110
111 touch( outDir, bar );
112 }
113 }
114
115 private void touch( File dir, String file )
116 throws MojoExecutionException
117 {
118
119 getLog().info( "touch: " + dir.getPath() + ":" + file );
120
121 try
122 {
123 if ( !dir.exists() )
124 {
125 dir.mkdirs();
126 }
127
128 File touch = new File( dir, file );
129
130 FileWriter w = new FileWriter( touch );
131
132 w.write( file );
133
134 w.close();
135 }
136 catch ( IOException e )
137 {
138 throw new MojoExecutionException( "Error touching file", e );
139 }
140 }
141 }