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