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