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