1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.apache.maven.plugin.lifecycle.io.xpp3;
25
26
27
28
29
30 import java.io.OutputStream;
31 import java.io.Writer;
32 import java.util.Iterator;
33 import org.apache.maven.plugin.lifecycle.Execution;
34 import org.apache.maven.plugin.lifecycle.Lifecycle;
35 import org.apache.maven.plugin.lifecycle.LifecycleConfiguration;
36 import org.apache.maven.plugin.lifecycle.Phase;
37 import org.codehaus.plexus.util.xml.Xpp3Dom;
38 import org.codehaus.plexus.util.xml.pull.MXSerializer;
39 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
40
41
42
43
44
45
46 @SuppressWarnings( "all" )
47 public class LifecycleMappingsXpp3Writer
48 {
49
50
51
52
53
54
55
56
57 private static final String NAMESPACE = null;
58
59
60
61
62 private String fileComment = null;
63
64
65
66
67
68
69
70
71
72
73
74 public void setFileComment( String fileComment )
75 {
76 this.fileComment = fileComment;
77 }
78
79
80
81
82
83
84
85
86
87 public void write( Writer writer, LifecycleConfiguration lifecycleConfiguration )
88 throws java.io.IOException
89 {
90 XmlSerializer serializer = new MXSerializer();
91 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
92 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
93 serializer.setOutput( writer );
94 serializer.startDocument( lifecycleConfiguration.getModelEncoding(), null );
95 writeLifecycleConfiguration( lifecycleConfiguration, "lifecycles", serializer );
96 serializer.endDocument();
97 }
98
99
100
101
102
103
104
105
106
107 public void write( OutputStream stream, LifecycleConfiguration lifecycleConfiguration )
108 throws java.io.IOException
109 {
110 XmlSerializer serializer = new MXSerializer();
111 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
112 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
113 serializer.setOutput( stream, lifecycleConfiguration.getModelEncoding() );
114 serializer.startDocument( lifecycleConfiguration.getModelEncoding(), null );
115 writeLifecycleConfiguration( lifecycleConfiguration, "lifecycles", serializer );
116 serializer.endDocument();
117 }
118
119
120
121
122
123
124
125
126
127 private void writeExecution( Execution execution, String tagName, XmlSerializer serializer )
128 throws java.io.IOException
129 {
130 serializer.startTag( NAMESPACE, tagName );
131 if ( execution.getConfiguration() != null )
132 {
133 ((Xpp3Dom) execution.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
134 }
135 if ( ( execution.getGoals() != null ) && ( execution.getGoals().size() > 0 ) )
136 {
137 serializer.startTag( NAMESPACE, "goals" );
138 for ( Iterator iter = execution.getGoals().iterator(); iter.hasNext(); )
139 {
140 String goal = (String) iter.next();
141 serializer.startTag( NAMESPACE, "goal" ).text( goal ).endTag( NAMESPACE, "goal" );
142 }
143 serializer.endTag( NAMESPACE, "goals" );
144 }
145 serializer.endTag( NAMESPACE, tagName );
146 }
147
148
149
150
151
152
153
154
155
156 private void writeLifecycle( Lifecycle lifecycle, String tagName, XmlSerializer serializer )
157 throws java.io.IOException
158 {
159 serializer.startTag( NAMESPACE, tagName );
160 if ( lifecycle.getId() != null )
161 {
162 serializer.startTag( NAMESPACE, "id" ).text( lifecycle.getId() ).endTag( NAMESPACE, "id" );
163 }
164 if ( ( lifecycle.getPhases() != null ) && ( lifecycle.getPhases().size() > 0 ) )
165 {
166 serializer.startTag( NAMESPACE, "phases" );
167 for ( Iterator iter = lifecycle.getPhases().iterator(); iter.hasNext(); )
168 {
169 Phase o = (Phase) iter.next();
170 writePhase( o, "phase", serializer );
171 }
172 serializer.endTag( NAMESPACE, "phases" );
173 }
174 serializer.endTag( NAMESPACE, tagName );
175 }
176
177
178
179
180
181
182
183
184
185
186 private void writeLifecycleConfiguration( LifecycleConfiguration lifecycleConfiguration, String tagName, XmlSerializer serializer )
187 throws java.io.IOException
188 {
189 if ( this.fileComment != null )
190 {
191 serializer.comment(this.fileComment);
192 }
193 serializer.setPrefix( "", "http://maven.apache.org/LIFECYCLE/1.0.0" );
194 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
195 serializer.startTag( NAMESPACE, tagName );
196 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/LIFECYCLE/1.0.0 https://maven.apache.org/xsd/lifecycle-1.0.0.xsd" );
197 if ( ( lifecycleConfiguration.getLifecycles() != null ) && ( lifecycleConfiguration.getLifecycles().size() > 0 ) )
198 {
199 for ( Iterator iter = lifecycleConfiguration.getLifecycles().iterator(); iter.hasNext(); )
200 {
201 Lifecycle o = (Lifecycle) iter.next();
202 writeLifecycle( o, "lifecycle", serializer );
203 }
204 }
205 serializer.endTag( NAMESPACE, tagName );
206 }
207
208
209
210
211
212
213
214
215
216 private void writePhase( Phase phase, String tagName, XmlSerializer serializer )
217 throws java.io.IOException
218 {
219 serializer.startTag( NAMESPACE, tagName );
220 if ( phase.getId() != null )
221 {
222 serializer.startTag( NAMESPACE, "id" ).text( phase.getId() ).endTag( NAMESPACE, "id" );
223 }
224 if ( ( phase.getExecutions() != null ) && ( phase.getExecutions().size() > 0 ) )
225 {
226 serializer.startTag( NAMESPACE, "executions" );
227 for ( Iterator iter = phase.getExecutions().iterator(); iter.hasNext(); )
228 {
229 Execution o = (Execution) iter.next();
230 writeExecution( o, "execution", serializer );
231 }
232 serializer.endTag( NAMESPACE, "executions" );
233 }
234 if ( phase.getConfiguration() != null )
235 {
236 ((Xpp3Dom) phase.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
237 }
238 serializer.endTag( NAMESPACE, tagName );
239 }
240
241 }