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