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