1
2
3
4
5
6 package org.apache.maven.plugins.assembly.model.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.plugins.assembly.model.Component;
16 import org.apache.maven.plugins.assembly.model.ContainerDescriptorHandlerConfig;
17 import org.apache.maven.plugins.assembly.model.DependencySet;
18 import org.apache.maven.plugins.assembly.model.FileItem;
19 import org.apache.maven.plugins.assembly.model.FileSet;
20 import org.apache.maven.plugins.assembly.model.GroupVersionAlignment;
21 import org.apache.maven.plugins.assembly.model.ModuleBinaries;
22 import org.apache.maven.plugins.assembly.model.ModuleSet;
23 import org.apache.maven.plugins.assembly.model.ModuleSources;
24 import org.apache.maven.plugins.assembly.model.Repository;
25 import org.apache.maven.plugins.assembly.model.UnpackOptions;
26 import org.codehaus.plexus.util.xml.Xpp3Dom;
27 import org.codehaus.plexus.util.xml.pull.MXSerializer;
28 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
29
30
31
32
33
34
35 @SuppressWarnings( "all" )
36 public class ComponentXpp3Writer
37 {
38
39
40
41
42
43
44
45
46 private static final String NAMESPACE = null;
47
48
49
50
51 private String fileComment = null;
52
53
54
55
56
57
58
59
60
61
62
63 public void setFileComment( String fileComment )
64 {
65 this.fileComment = fileComment;
66 }
67
68
69
70
71
72
73
74
75 public void write( Writer writer, Component component )
76 throws java.io.IOException
77 {
78 XmlSerializer serializer = new MXSerializer();
79 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
80 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
81 serializer.setOutput( writer );
82 serializer.startDocument( component.getModelEncoding(), null );
83 writeComponent( component, "component", serializer );
84 serializer.endDocument();
85 }
86
87
88
89
90
91
92
93
94 public void write( OutputStream stream, Component component )
95 throws java.io.IOException
96 {
97 XmlSerializer serializer = new MXSerializer();
98 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
99 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
100 serializer.setOutput( stream, component.getModelEncoding() );
101 serializer.startDocument( component.getModelEncoding(), null );
102 writeComponent( component, "component", serializer );
103 serializer.endDocument();
104 }
105
106
107
108
109
110
111
112
113
114 private void writeComponent( Component component, String tagName, XmlSerializer serializer )
115 throws java.io.IOException
116 {
117 if ( this.fileComment != null )
118 {
119 serializer.comment(this.fileComment);
120 }
121 serializer.setPrefix( "", "http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.1" );
122 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
123 serializer.startTag( NAMESPACE, tagName );
124 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.1 http://maven.apache.org/xsd/assembly-component-2.1.1.xsd" );
125 if ( ( component.getModuleSets() != null ) && ( component.getModuleSets().size() > 0 ) )
126 {
127 serializer.startTag( NAMESPACE, "moduleSets" );
128 for ( Iterator iter = component.getModuleSets().iterator(); iter.hasNext(); )
129 {
130 ModuleSet o = (ModuleSet) iter.next();
131 writeModuleSet( o, "moduleSet", serializer );
132 }
133 serializer.endTag( NAMESPACE, "moduleSets" );
134 }
135 if ( ( component.getFileSets() != null ) && ( component.getFileSets().size() > 0 ) )
136 {
137 serializer.startTag( NAMESPACE, "fileSets" );
138 for ( Iterator iter = component.getFileSets().iterator(); iter.hasNext(); )
139 {
140 FileSet o = (FileSet) iter.next();
141 writeFileSet( o, "fileSet", serializer );
142 }
143 serializer.endTag( NAMESPACE, "fileSets" );
144 }
145 if ( ( component.getFiles() != null ) && ( component.getFiles().size() > 0 ) )
146 {
147 serializer.startTag( NAMESPACE, "files" );
148 for ( Iterator iter = component.getFiles().iterator(); iter.hasNext(); )
149 {
150 FileItem o = (FileItem) iter.next();
151 writeFileItem( o, "file", serializer );
152 }
153 serializer.endTag( NAMESPACE, "files" );
154 }
155 if ( ( component.getDependencySets() != null ) && ( component.getDependencySets().size() > 0 ) )
156 {
157 serializer.startTag( NAMESPACE, "dependencySets" );
158 for ( Iterator iter = component.getDependencySets().iterator(); iter.hasNext(); )
159 {
160 DependencySet o = (DependencySet) iter.next();
161 writeDependencySet( o, "dependencySet", serializer );
162 }
163 serializer.endTag( NAMESPACE, "dependencySets" );
164 }
165 if ( ( component.getRepositories() != null ) && ( component.getRepositories().size() > 0 ) )
166 {
167 serializer.startTag( NAMESPACE, "repositories" );
168 for ( Iterator iter = component.getRepositories().iterator(); iter.hasNext(); )
169 {
170 Repository o = (Repository) iter.next();
171 writeRepository( o, "repository", serializer );
172 }
173 serializer.endTag( NAMESPACE, "repositories" );
174 }
175 if ( ( component.getContainerDescriptorHandlers() != null ) && ( component.getContainerDescriptorHandlers().size() > 0 ) )
176 {
177 serializer.startTag( NAMESPACE, "containerDescriptorHandlers" );
178 for ( Iterator iter = component.getContainerDescriptorHandlers().iterator(); iter.hasNext(); )
179 {
180 ContainerDescriptorHandlerConfig o = (ContainerDescriptorHandlerConfig) iter.next();
181 writeContainerDescriptorHandlerConfig( o, "containerDescriptorHandler", serializer );
182 }
183 serializer.endTag( NAMESPACE, "containerDescriptorHandlers" );
184 }
185 serializer.endTag( NAMESPACE, tagName );
186 }
187
188
189
190
191
192
193
194
195
196
197 private void writeContainerDescriptorHandlerConfig( ContainerDescriptorHandlerConfig containerDescriptorHandlerConfig, String tagName, XmlSerializer serializer )
198 throws java.io.IOException
199 {
200 serializer.startTag( NAMESPACE, tagName );
201 if ( containerDescriptorHandlerConfig.getHandlerName() != null )
202 {
203 serializer.startTag( NAMESPACE, "handlerName" ).text( containerDescriptorHandlerConfig.getHandlerName() ).endTag( NAMESPACE, "handlerName" );
204 }
205 if ( containerDescriptorHandlerConfig.getConfiguration() != null )
206 {
207 ((Xpp3Dom) containerDescriptorHandlerConfig.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
208 }
209 serializer.endTag( NAMESPACE, tagName );
210 }
211
212
213
214
215
216
217
218
219
220 private void writeDependencySet( DependencySet dependencySet, String tagName, XmlSerializer serializer )
221 throws java.io.IOException
222 {
223 serializer.startTag( NAMESPACE, tagName );
224 if ( dependencySet.getOutputDirectory() != null )
225 {
226 serializer.startTag( NAMESPACE, "outputDirectory" ).text( dependencySet.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
227 }
228 if ( ( dependencySet.getIncludes() != null ) && ( dependencySet.getIncludes().size() > 0 ) )
229 {
230 serializer.startTag( NAMESPACE, "includes" );
231 for ( Iterator iter = dependencySet.getIncludes().iterator(); iter.hasNext(); )
232 {
233 String include = (String) iter.next();
234 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
235 }
236 serializer.endTag( NAMESPACE, "includes" );
237 }
238 if ( ( dependencySet.getExcludes() != null ) && ( dependencySet.getExcludes().size() > 0 ) )
239 {
240 serializer.startTag( NAMESPACE, "excludes" );
241 for ( Iterator iter = dependencySet.getExcludes().iterator(); iter.hasNext(); )
242 {
243 String exclude = (String) iter.next();
244 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
245 }
246 serializer.endTag( NAMESPACE, "excludes" );
247 }
248 if ( dependencySet.getFileMode() != null )
249 {
250 serializer.startTag( NAMESPACE, "fileMode" ).text( dependencySet.getFileMode() ).endTag( NAMESPACE, "fileMode" );
251 }
252 if ( dependencySet.getDirectoryMode() != null )
253 {
254 serializer.startTag( NAMESPACE, "directoryMode" ).text( dependencySet.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
255 }
256 if ( dependencySet.isUseStrictFiltering() != false )
257 {
258 serializer.startTag( NAMESPACE, "useStrictFiltering" ).text( String.valueOf( dependencySet.isUseStrictFiltering() ) ).endTag( NAMESPACE, "useStrictFiltering" );
259 }
260 if ( ( dependencySet.getOutputFileNameMapping() != null ) && !dependencySet.getOutputFileNameMapping().equals( "${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}" ) )
261 {
262 serializer.startTag( NAMESPACE, "outputFileNameMapping" ).text( dependencySet.getOutputFileNameMapping() ).endTag( NAMESPACE, "outputFileNameMapping" );
263 }
264 if ( dependencySet.isUnpack() != false )
265 {
266 serializer.startTag( NAMESPACE, "unpack" ).text( String.valueOf( dependencySet.isUnpack() ) ).endTag( NAMESPACE, "unpack" );
267 }
268 if ( dependencySet.getUnpackOptions() != null )
269 {
270 writeUnpackOptions( (UnpackOptions) dependencySet.getUnpackOptions(), "unpackOptions", serializer );
271 }
272 if ( ( dependencySet.getScope() != null ) && !dependencySet.getScope().equals( "runtime" ) )
273 {
274 serializer.startTag( NAMESPACE, "scope" ).text( dependencySet.getScope() ).endTag( NAMESPACE, "scope" );
275 }
276 if ( dependencySet.isUseProjectArtifact() != true )
277 {
278 serializer.startTag( NAMESPACE, "useProjectArtifact" ).text( String.valueOf( dependencySet.isUseProjectArtifact() ) ).endTag( NAMESPACE, "useProjectArtifact" );
279 }
280 if ( dependencySet.isUseProjectAttachments() != false )
281 {
282 serializer.startTag( NAMESPACE, "useProjectAttachments" ).text( String.valueOf( dependencySet.isUseProjectAttachments() ) ).endTag( NAMESPACE, "useProjectAttachments" );
283 }
284 if ( dependencySet.isUseTransitiveDependencies() != true )
285 {
286 serializer.startTag( NAMESPACE, "useTransitiveDependencies" ).text( String.valueOf( dependencySet.isUseTransitiveDependencies() ) ).endTag( NAMESPACE, "useTransitiveDependencies" );
287 }
288 if ( dependencySet.isUseTransitiveFiltering() != false )
289 {
290 serializer.startTag( NAMESPACE, "useTransitiveFiltering" ).text( String.valueOf( dependencySet.isUseTransitiveFiltering() ) ).endTag( NAMESPACE, "useTransitiveFiltering" );
291 }
292 serializer.endTag( NAMESPACE, tagName );
293 }
294
295
296
297
298
299
300
301
302
303 private void writeFileItem( FileItem fileItem, String tagName, XmlSerializer serializer )
304 throws java.io.IOException
305 {
306 serializer.startTag( NAMESPACE, tagName );
307 if ( fileItem.getSource() != null )
308 {
309 serializer.startTag( NAMESPACE, "source" ).text( fileItem.getSource() ).endTag( NAMESPACE, "source" );
310 }
311 if ( ( fileItem.getSources() != null ) && ( fileItem.getSources().size() > 0 ) )
312 {
313 serializer.startTag( NAMESPACE, "sources" );
314 for ( Iterator iter = fileItem.getSources().iterator(); iter.hasNext(); )
315 {
316 String source = (String) iter.next();
317 serializer.startTag( NAMESPACE, "source" ).text( source ).endTag( NAMESPACE, "source" );
318 }
319 serializer.endTag( NAMESPACE, "sources" );
320 }
321 if ( fileItem.getOutputDirectory() != null )
322 {
323 serializer.startTag( NAMESPACE, "outputDirectory" ).text( fileItem.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
324 }
325 if ( fileItem.getDestName() != null )
326 {
327 serializer.startTag( NAMESPACE, "destName" ).text( fileItem.getDestName() ).endTag( NAMESPACE, "destName" );
328 }
329 if ( fileItem.getFileMode() != null )
330 {
331 serializer.startTag( NAMESPACE, "fileMode" ).text( fileItem.getFileMode() ).endTag( NAMESPACE, "fileMode" );
332 }
333 if ( fileItem.getLineEnding() != null )
334 {
335 serializer.startTag( NAMESPACE, "lineEnding" ).text( fileItem.getLineEnding() ).endTag( NAMESPACE, "lineEnding" );
336 }
337 if ( fileItem.isFiltered() != false )
338 {
339 serializer.startTag( NAMESPACE, "filtered" ).text( String.valueOf( fileItem.isFiltered() ) ).endTag( NAMESPACE, "filtered" );
340 }
341 serializer.endTag( NAMESPACE, tagName );
342 }
343
344
345
346
347
348
349
350
351
352 private void writeFileSet( FileSet fileSet, String tagName, XmlSerializer serializer )
353 throws java.io.IOException
354 {
355 serializer.startTag( NAMESPACE, tagName );
356 if ( fileSet.isUseDefaultExcludes() != true )
357 {
358 serializer.startTag( NAMESPACE, "useDefaultExcludes" ).text( String.valueOf( fileSet.isUseDefaultExcludes() ) ).endTag( NAMESPACE, "useDefaultExcludes" );
359 }
360 if ( fileSet.getOutputDirectory() != null )
361 {
362 serializer.startTag( NAMESPACE, "outputDirectory" ).text( fileSet.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
363 }
364 if ( ( fileSet.getIncludes() != null ) && ( fileSet.getIncludes().size() > 0 ) )
365 {
366 serializer.startTag( NAMESPACE, "includes" );
367 for ( Iterator iter = fileSet.getIncludes().iterator(); iter.hasNext(); )
368 {
369 String include = (String) iter.next();
370 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
371 }
372 serializer.endTag( NAMESPACE, "includes" );
373 }
374 if ( ( fileSet.getExcludes() != null ) && ( fileSet.getExcludes().size() > 0 ) )
375 {
376 serializer.startTag( NAMESPACE, "excludes" );
377 for ( Iterator iter = fileSet.getExcludes().iterator(); iter.hasNext(); )
378 {
379 String exclude = (String) iter.next();
380 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
381 }
382 serializer.endTag( NAMESPACE, "excludes" );
383 }
384 if ( fileSet.getFileMode() != null )
385 {
386 serializer.startTag( NAMESPACE, "fileMode" ).text( fileSet.getFileMode() ).endTag( NAMESPACE, "fileMode" );
387 }
388 if ( fileSet.getDirectoryMode() != null )
389 {
390 serializer.startTag( NAMESPACE, "directoryMode" ).text( fileSet.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
391 }
392 if ( fileSet.getDirectory() != null )
393 {
394 serializer.startTag( NAMESPACE, "directory" ).text( fileSet.getDirectory() ).endTag( NAMESPACE, "directory" );
395 }
396 if ( fileSet.getLineEnding() != null )
397 {
398 serializer.startTag( NAMESPACE, "lineEnding" ).text( fileSet.getLineEnding() ).endTag( NAMESPACE, "lineEnding" );
399 }
400 if ( fileSet.isFiltered() != false )
401 {
402 serializer.startTag( NAMESPACE, "filtered" ).text( String.valueOf( fileSet.isFiltered() ) ).endTag( NAMESPACE, "filtered" );
403 }
404 if ( ( fileSet.getNonFilteredFileExtensions() != null ) && ( fileSet.getNonFilteredFileExtensions().size() > 0 ) )
405 {
406 serializer.startTag( NAMESPACE, "nonFilteredFileExtensions" );
407 for ( Iterator iter = fileSet.getNonFilteredFileExtensions().iterator(); iter.hasNext(); )
408 {
409 String nonFilteredFileExtension = (String) iter.next();
410 serializer.startTag( NAMESPACE, "nonFilteredFileExtension" ).text( nonFilteredFileExtension ).endTag( NAMESPACE, "nonFilteredFileExtension" );
411 }
412 serializer.endTag( NAMESPACE, "nonFilteredFileExtensions" );
413 }
414 serializer.endTag( NAMESPACE, tagName );
415 }
416
417
418
419
420
421
422
423
424
425 private void writeGroupVersionAlignment( GroupVersionAlignment groupVersionAlignment, String tagName, XmlSerializer serializer )
426 throws java.io.IOException
427 {
428 serializer.startTag( NAMESPACE, tagName );
429 if ( groupVersionAlignment.getId() != null )
430 {
431 serializer.startTag( NAMESPACE, "id" ).text( groupVersionAlignment.getId() ).endTag( NAMESPACE, "id" );
432 }
433 if ( groupVersionAlignment.getVersion() != null )
434 {
435 serializer.startTag( NAMESPACE, "version" ).text( groupVersionAlignment.getVersion() ).endTag( NAMESPACE, "version" );
436 }
437 if ( ( groupVersionAlignment.getExcludes() != null ) && ( groupVersionAlignment.getExcludes().size() > 0 ) )
438 {
439 serializer.startTag( NAMESPACE, "excludes" );
440 for ( Iterator iter = groupVersionAlignment.getExcludes().iterator(); iter.hasNext(); )
441 {
442 String exclude = (String) iter.next();
443 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
444 }
445 serializer.endTag( NAMESPACE, "excludes" );
446 }
447 serializer.endTag( NAMESPACE, tagName );
448 }
449
450
451
452
453
454
455
456
457
458 private void writeModuleBinaries( ModuleBinaries moduleBinaries, String tagName, XmlSerializer serializer )
459 throws java.io.IOException
460 {
461 serializer.startTag( NAMESPACE, tagName );
462 if ( moduleBinaries.getOutputDirectory() != null )
463 {
464 serializer.startTag( NAMESPACE, "outputDirectory" ).text( moduleBinaries.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
465 }
466 if ( ( moduleBinaries.getIncludes() != null ) && ( moduleBinaries.getIncludes().size() > 0 ) )
467 {
468 serializer.startTag( NAMESPACE, "includes" );
469 for ( Iterator iter = moduleBinaries.getIncludes().iterator(); iter.hasNext(); )
470 {
471 String include = (String) iter.next();
472 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
473 }
474 serializer.endTag( NAMESPACE, "includes" );
475 }
476 if ( ( moduleBinaries.getExcludes() != null ) && ( moduleBinaries.getExcludes().size() > 0 ) )
477 {
478 serializer.startTag( NAMESPACE, "excludes" );
479 for ( Iterator iter = moduleBinaries.getExcludes().iterator(); iter.hasNext(); )
480 {
481 String exclude = (String) iter.next();
482 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
483 }
484 serializer.endTag( NAMESPACE, "excludes" );
485 }
486 if ( moduleBinaries.getFileMode() != null )
487 {
488 serializer.startTag( NAMESPACE, "fileMode" ).text( moduleBinaries.getFileMode() ).endTag( NAMESPACE, "fileMode" );
489 }
490 if ( moduleBinaries.getDirectoryMode() != null )
491 {
492 serializer.startTag( NAMESPACE, "directoryMode" ).text( moduleBinaries.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
493 }
494 if ( moduleBinaries.getAttachmentClassifier() != null )
495 {
496 serializer.startTag( NAMESPACE, "attachmentClassifier" ).text( moduleBinaries.getAttachmentClassifier() ).endTag( NAMESPACE, "attachmentClassifier" );
497 }
498 if ( moduleBinaries.isIncludeDependencies() != true )
499 {
500 serializer.startTag( NAMESPACE, "includeDependencies" ).text( String.valueOf( moduleBinaries.isIncludeDependencies() ) ).endTag( NAMESPACE, "includeDependencies" );
501 }
502 if ( ( moduleBinaries.getDependencySets() != null ) && ( moduleBinaries.getDependencySets().size() > 0 ) )
503 {
504 serializer.startTag( NAMESPACE, "dependencySets" );
505 for ( Iterator iter = moduleBinaries.getDependencySets().iterator(); iter.hasNext(); )
506 {
507 DependencySet o = (DependencySet) iter.next();
508 writeDependencySet( o, "dependencySet", serializer );
509 }
510 serializer.endTag( NAMESPACE, "dependencySets" );
511 }
512 if ( moduleBinaries.isUnpack() != true )
513 {
514 serializer.startTag( NAMESPACE, "unpack" ).text( String.valueOf( moduleBinaries.isUnpack() ) ).endTag( NAMESPACE, "unpack" );
515 }
516 if ( moduleBinaries.getUnpackOptions() != null )
517 {
518 writeUnpackOptions( (UnpackOptions) moduleBinaries.getUnpackOptions(), "unpackOptions", serializer );
519 }
520 if ( ( moduleBinaries.getOutputFileNameMapping() != null ) && !moduleBinaries.getOutputFileNameMapping().equals( "${module.artifactId}-${module.version}${dashClassifier?}.${module.extension}" ) )
521 {
522 serializer.startTag( NAMESPACE, "outputFileNameMapping" ).text( moduleBinaries.getOutputFileNameMapping() ).endTag( NAMESPACE, "outputFileNameMapping" );
523 }
524 serializer.endTag( NAMESPACE, tagName );
525 }
526
527
528
529
530
531
532
533
534
535 private void writeModuleSet( ModuleSet moduleSet, String tagName, XmlSerializer serializer )
536 throws java.io.IOException
537 {
538 serializer.startTag( NAMESPACE, tagName );
539 if ( moduleSet.isUseAllReactorProjects() != false )
540 {
541 serializer.startTag( NAMESPACE, "useAllReactorProjects" ).text( String.valueOf( moduleSet.isUseAllReactorProjects() ) ).endTag( NAMESPACE, "useAllReactorProjects" );
542 }
543 if ( moduleSet.isIncludeSubModules() != true )
544 {
545 serializer.startTag( NAMESPACE, "includeSubModules" ).text( String.valueOf( moduleSet.isIncludeSubModules() ) ).endTag( NAMESPACE, "includeSubModules" );
546 }
547 if ( ( moduleSet.getIncludes() != null ) && ( moduleSet.getIncludes().size() > 0 ) )
548 {
549 serializer.startTag( NAMESPACE, "includes" );
550 for ( Iterator iter = moduleSet.getIncludes().iterator(); iter.hasNext(); )
551 {
552 String include = (String) iter.next();
553 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
554 }
555 serializer.endTag( NAMESPACE, "includes" );
556 }
557 if ( ( moduleSet.getExcludes() != null ) && ( moduleSet.getExcludes().size() > 0 ) )
558 {
559 serializer.startTag( NAMESPACE, "excludes" );
560 for ( Iterator iter = moduleSet.getExcludes().iterator(); iter.hasNext(); )
561 {
562 String exclude = (String) iter.next();
563 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
564 }
565 serializer.endTag( NAMESPACE, "excludes" );
566 }
567 if ( moduleSet.getSources() != null )
568 {
569 writeModuleSources( (ModuleSources) moduleSet.getSources(), "sources", serializer );
570 }
571 if ( moduleSet.getBinaries() != null )
572 {
573 writeModuleBinaries( (ModuleBinaries) moduleSet.getBinaries(), "binaries", serializer );
574 }
575 serializer.endTag( NAMESPACE, tagName );
576 }
577
578
579
580
581
582
583
584
585
586 private void writeModuleSources( ModuleSources moduleSources, String tagName, XmlSerializer serializer )
587 throws java.io.IOException
588 {
589 serializer.startTag( NAMESPACE, tagName );
590 if ( moduleSources.isUseDefaultExcludes() != true )
591 {
592 serializer.startTag( NAMESPACE, "useDefaultExcludes" ).text( String.valueOf( moduleSources.isUseDefaultExcludes() ) ).endTag( NAMESPACE, "useDefaultExcludes" );
593 }
594 if ( moduleSources.getOutputDirectory() != null )
595 {
596 serializer.startTag( NAMESPACE, "outputDirectory" ).text( moduleSources.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
597 }
598 if ( ( moduleSources.getIncludes() != null ) && ( moduleSources.getIncludes().size() > 0 ) )
599 {
600 serializer.startTag( NAMESPACE, "includes" );
601 for ( Iterator iter = moduleSources.getIncludes().iterator(); iter.hasNext(); )
602 {
603 String include = (String) iter.next();
604 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
605 }
606 serializer.endTag( NAMESPACE, "includes" );
607 }
608 if ( ( moduleSources.getExcludes() != null ) && ( moduleSources.getExcludes().size() > 0 ) )
609 {
610 serializer.startTag( NAMESPACE, "excludes" );
611 for ( Iterator iter = moduleSources.getExcludes().iterator(); iter.hasNext(); )
612 {
613 String exclude = (String) iter.next();
614 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
615 }
616 serializer.endTag( NAMESPACE, "excludes" );
617 }
618 if ( moduleSources.getFileMode() != null )
619 {
620 serializer.startTag( NAMESPACE, "fileMode" ).text( moduleSources.getFileMode() ).endTag( NAMESPACE, "fileMode" );
621 }
622 if ( moduleSources.getDirectoryMode() != null )
623 {
624 serializer.startTag( NAMESPACE, "directoryMode" ).text( moduleSources.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
625 }
626 if ( ( moduleSources.getFileSets() != null ) && ( moduleSources.getFileSets().size() > 0 ) )
627 {
628 serializer.startTag( NAMESPACE, "fileSets" );
629 for ( Iterator iter = moduleSources.getFileSets().iterator(); iter.hasNext(); )
630 {
631 FileSet o = (FileSet) iter.next();
632 writeFileSet( o, "fileSet", serializer );
633 }
634 serializer.endTag( NAMESPACE, "fileSets" );
635 }
636 if ( moduleSources.isIncludeModuleDirectory() != true )
637 {
638 serializer.startTag( NAMESPACE, "includeModuleDirectory" ).text( String.valueOf( moduleSources.isIncludeModuleDirectory() ) ).endTag( NAMESPACE, "includeModuleDirectory" );
639 }
640 if ( moduleSources.isExcludeSubModuleDirectories() != true )
641 {
642 serializer.startTag( NAMESPACE, "excludeSubModuleDirectories" ).text( String.valueOf( moduleSources.isExcludeSubModuleDirectories() ) ).endTag( NAMESPACE, "excludeSubModuleDirectories" );
643 }
644 if ( ( moduleSources.getOutputDirectoryMapping() != null ) && !moduleSources.getOutputDirectoryMapping().equals( "${module.artifactId}" ) )
645 {
646 serializer.startTag( NAMESPACE, "outputDirectoryMapping" ).text( moduleSources.getOutputDirectoryMapping() ).endTag( NAMESPACE, "outputDirectoryMapping" );
647 }
648 serializer.endTag( NAMESPACE, tagName );
649 }
650
651
652
653
654
655
656
657
658
659 private void writeRepository( Repository repository, String tagName, XmlSerializer serializer )
660 throws java.io.IOException
661 {
662 serializer.startTag( NAMESPACE, tagName );
663 if ( repository.getOutputDirectory() != null )
664 {
665 serializer.startTag( NAMESPACE, "outputDirectory" ).text( repository.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
666 }
667 if ( ( repository.getIncludes() != null ) && ( repository.getIncludes().size() > 0 ) )
668 {
669 serializer.startTag( NAMESPACE, "includes" );
670 for ( Iterator iter = repository.getIncludes().iterator(); iter.hasNext(); )
671 {
672 String include = (String) iter.next();
673 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
674 }
675 serializer.endTag( NAMESPACE, "includes" );
676 }
677 if ( ( repository.getExcludes() != null ) && ( repository.getExcludes().size() > 0 ) )
678 {
679 serializer.startTag( NAMESPACE, "excludes" );
680 for ( Iterator iter = repository.getExcludes().iterator(); iter.hasNext(); )
681 {
682 String exclude = (String) iter.next();
683 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
684 }
685 serializer.endTag( NAMESPACE, "excludes" );
686 }
687 if ( repository.getFileMode() != null )
688 {
689 serializer.startTag( NAMESPACE, "fileMode" ).text( repository.getFileMode() ).endTag( NAMESPACE, "fileMode" );
690 }
691 if ( repository.getDirectoryMode() != null )
692 {
693 serializer.startTag( NAMESPACE, "directoryMode" ).text( repository.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
694 }
695 if ( repository.isIncludeMetadata() != false )
696 {
697 serializer.startTag( NAMESPACE, "includeMetadata" ).text( String.valueOf( repository.isIncludeMetadata() ) ).endTag( NAMESPACE, "includeMetadata" );
698 }
699 if ( ( repository.getGroupVersionAlignments() != null ) && ( repository.getGroupVersionAlignments().size() > 0 ) )
700 {
701 serializer.startTag( NAMESPACE, "groupVersionAlignments" );
702 for ( Iterator iter = repository.getGroupVersionAlignments().iterator(); iter.hasNext(); )
703 {
704 GroupVersionAlignment o = (GroupVersionAlignment) iter.next();
705 writeGroupVersionAlignment( o, "groupVersionAlignment", serializer );
706 }
707 serializer.endTag( NAMESPACE, "groupVersionAlignments" );
708 }
709 if ( ( repository.getScope() != null ) && !repository.getScope().equals( "runtime" ) )
710 {
711 serializer.startTag( NAMESPACE, "scope" ).text( repository.getScope() ).endTag( NAMESPACE, "scope" );
712 }
713 serializer.endTag( NAMESPACE, tagName );
714 }
715
716
717
718
719
720
721
722
723
724 private void writeUnpackOptions( UnpackOptions unpackOptions, String tagName, XmlSerializer serializer )
725 throws java.io.IOException
726 {
727 serializer.startTag( NAMESPACE, tagName );
728 if ( ( unpackOptions.getIncludes() != null ) && ( unpackOptions.getIncludes().size() > 0 ) )
729 {
730 serializer.startTag( NAMESPACE, "includes" );
731 for ( Iterator iter = unpackOptions.getIncludes().iterator(); iter.hasNext(); )
732 {
733 String include = (String) iter.next();
734 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
735 }
736 serializer.endTag( NAMESPACE, "includes" );
737 }
738 if ( ( unpackOptions.getExcludes() != null ) && ( unpackOptions.getExcludes().size() > 0 ) )
739 {
740 serializer.startTag( NAMESPACE, "excludes" );
741 for ( Iterator iter = unpackOptions.getExcludes().iterator(); iter.hasNext(); )
742 {
743 String exclude = (String) iter.next();
744 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
745 }
746 serializer.endTag( NAMESPACE, "excludes" );
747 }
748 if ( unpackOptions.isFiltered() != false )
749 {
750 serializer.startTag( NAMESPACE, "filtered" ).text( String.valueOf( unpackOptions.isFiltered() ) ).endTag( NAMESPACE, "filtered" );
751 }
752 if ( ( unpackOptions.getNonFilteredFileExtensions() != null ) && ( unpackOptions.getNonFilteredFileExtensions().size() > 0 ) )
753 {
754 serializer.startTag( NAMESPACE, "nonFilteredFileExtensions" );
755 for ( Iterator iter = unpackOptions.getNonFilteredFileExtensions().iterator(); iter.hasNext(); )
756 {
757 String nonFilteredFileExtension = (String) iter.next();
758 serializer.startTag( NAMESPACE, "nonFilteredFileExtension" ).text( nonFilteredFileExtension ).endTag( NAMESPACE, "nonFilteredFileExtension" );
759 }
760 serializer.endTag( NAMESPACE, "nonFilteredFileExtensions" );
761 }
762 if ( unpackOptions.getLineEnding() != null )
763 {
764 serializer.startTag( NAMESPACE, "lineEnding" ).text( unpackOptions.getLineEnding() ).endTag( NAMESPACE, "lineEnding" );
765 }
766 if ( unpackOptions.isUseDefaultExcludes() != true )
767 {
768 serializer.startTag( NAMESPACE, "useDefaultExcludes" ).text( String.valueOf( unpackOptions.isUseDefaultExcludes() ) ).endTag( NAMESPACE, "useDefaultExcludes" );
769 }
770 if ( unpackOptions.getEncoding() != null )
771 {
772 serializer.startTag( NAMESPACE, "encoding" ).text( unpackOptions.getEncoding() ).endTag( NAMESPACE, "encoding" );
773 }
774 serializer.endTag( NAMESPACE, tagName );
775 }
776
777 }