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