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