1
2
3
4
5
6
7
8 package org.apache.maven.continuum.model.project.v1_0_9.io.stax;
9
10
11
12
13
14 import java.io.IOException;
15 import java.io.InputStream;
16 import java.io.StringWriter;
17 import java.io.Writer;
18 import java.text.DateFormat;
19 import java.util.Iterator;
20 import java.util.Locale;
21 import java.util.jar.Manifest;
22 import javanet.staxutils.IndentingXMLStreamWriter;
23 import javax.xml.stream.*;
24 import org.apache.maven.continuum.model.project.v1_0_9.BuildDefinition;
25 import org.apache.maven.continuum.model.project.v1_0_9.BuildResult;
26 import org.apache.maven.continuum.model.project.v1_0_9.ContinuumDatabase;
27 import org.apache.maven.continuum.model.project.v1_0_9.Project;
28 import org.apache.maven.continuum.model.project.v1_0_9.ProjectDependency;
29 import org.apache.maven.continuum.model.project.v1_0_9.ProjectDeveloper;
30 import org.apache.maven.continuum.model.project.v1_0_9.ProjectGroup;
31 import org.apache.maven.continuum.model.project.v1_0_9.ProjectNotifier;
32 import org.apache.maven.continuum.model.project.v1_0_9.Schedule;
33 import org.apache.maven.continuum.model.scm.v1_0_9.ChangeFile;
34 import org.apache.maven.continuum.model.scm.v1_0_9.ChangeSet;
35 import org.apache.maven.continuum.model.scm.v1_0_9.ScmResult;
36 import org.apache.maven.continuum.model.scm.v1_0_9.SuiteResult;
37 import org.apache.maven.continuum.model.scm.v1_0_9.TestCaseFailure;
38 import org.apache.maven.continuum.model.scm.v1_0_9.TestResult;
39 import org.apache.maven.continuum.model.system.v1_0_9.NotificationAddress;
40 import org.apache.maven.continuum.model.system.v1_0_9.SystemConfiguration;
41 import org.codehaus.plexus.util.xml.Xpp3Dom;
42
43
44
45
46
47
48 @SuppressWarnings( "all" )
49 public class ContinuumStaxWriter
50 {
51
52
53
54
55
56
57
58
59 private int curId;
60
61
62
63
64 private java.util.Map idMap;
65
66
67
68
69
70
71 public ContinuumStaxWriter()
72 {
73 idMap = new java.util.HashMap();
74 }
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 public void write( Writer writer, ContinuumDatabase continuumDatabase )
90 throws java.io.IOException, XMLStreamException
91 {
92 XMLOutputFactory factory = XMLOutputFactory.newInstance();
93 boolean supportWindowsLineEndings = false;
94 if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
95 {
96 factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
97 supportWindowsLineEndings = true;
98 }
99 if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
100 {
101 factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
102 }
103 IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
104 if ( supportWindowsLineEndings )
105 {
106 serializer.setNewLine( serializer.getLineSeparator() );
107 }
108 serializer.writeStartDocument( continuumDatabase.getModelEncoding(), "1.0" );
109 writeContinuumDatabase( continuumDatabase, "continuumDatabase", serializer );
110 serializer.writeEndDocument();
111 }
112
113
114
115
116
117
118
119
120
121
122 private void writeBuildDefinition( BuildDefinition buildDefinition, String tagName, XMLStreamWriter serializer )
123 throws java.io.IOException, XMLStreamException
124 {
125 if ( buildDefinition != null )
126 {
127 serializer.writeStartElement( tagName );
128 if ( buildDefinition.getId() != 0 )
129 {
130 serializer.writeStartElement( "id" );
131 serializer.writeCharacters( String.valueOf( buildDefinition.getId() ) );
132 serializer.writeEndElement();
133 }
134 if ( buildDefinition.isDefaultForProject() != false )
135 {
136 serializer.writeStartElement( "defaultForProject" );
137 serializer.writeCharacters( String.valueOf( buildDefinition.isDefaultForProject() ) );
138 serializer.writeEndElement();
139 }
140 if ( buildDefinition.getGoals() != null )
141 {
142 serializer.writeStartElement( "goals" );
143 serializer.writeCharacters( buildDefinition.getGoals() );
144 serializer.writeEndElement();
145 }
146 if ( buildDefinition.getArguments() != null )
147 {
148 serializer.writeStartElement( "arguments" );
149 serializer.writeCharacters( buildDefinition.getArguments() );
150 serializer.writeEndElement();
151 }
152 if ( buildDefinition.getBuildFile() != null )
153 {
154 serializer.writeStartElement( "buildFile" );
155 serializer.writeCharacters( buildDefinition.getBuildFile() );
156 serializer.writeEndElement();
157 }
158 if ( buildDefinition.getSchedule() != null )
159 {
160 serializer.writeStartElement( "schedule" );
161 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getSchedule().getId() ) );
162 serializer.writeEndElement();
163 }
164 if ( buildDefinition.getLatestBuildId() != 0 )
165 {
166 serializer.writeStartElement( "latestBuildId" );
167 serializer.writeCharacters( String.valueOf( buildDefinition.getLatestBuildId() ) );
168 serializer.writeEndElement();
169 }
170 serializer.writeEndElement();
171 }
172 }
173
174
175
176
177
178
179
180
181
182
183 private void writeBuildResult( BuildResult buildResult, String tagName, XMLStreamWriter serializer )
184 throws java.io.IOException, XMLStreamException
185 {
186 if ( buildResult != null )
187 {
188 serializer.writeStartElement( tagName );
189 if ( buildResult.getProject() != null )
190 {
191 serializer.writeStartElement( "project" );
192 serializer.writeAttribute( "id", String.valueOf( buildResult.getProject().getId() ) );
193 serializer.writeEndElement();
194 }
195 if ( buildResult.getId() != 0 )
196 {
197 serializer.writeStartElement( "id" );
198 serializer.writeCharacters( String.valueOf( buildResult.getId() ) );
199 serializer.writeEndElement();
200 }
201 if ( buildResult.getBuildNumber() != 0 )
202 {
203 serializer.writeStartElement( "buildNumber" );
204 serializer.writeCharacters( String.valueOf( buildResult.getBuildNumber() ) );
205 serializer.writeEndElement();
206 }
207 if ( buildResult.getState() != 0 )
208 {
209 serializer.writeStartElement( "state" );
210 serializer.writeCharacters( String.valueOf( buildResult.getState() ) );
211 serializer.writeEndElement();
212 }
213 if ( buildResult.getTrigger() != 0 )
214 {
215 serializer.writeStartElement( "trigger" );
216 serializer.writeCharacters( String.valueOf( buildResult.getTrigger() ) );
217 serializer.writeEndElement();
218 }
219 if ( buildResult.getUsername() != null )
220 {
221 serializer.writeStartElement( "username" );
222 serializer.writeCharacters( buildResult.getUsername() );
223 serializer.writeEndElement();
224 }
225 if ( buildResult.getStartTime() != 0L )
226 {
227 serializer.writeStartElement( "startTime" );
228 serializer.writeCharacters( String.valueOf( buildResult.getStartTime() ) );
229 serializer.writeEndElement();
230 }
231 if ( buildResult.getEndTime() != 0L )
232 {
233 serializer.writeStartElement( "endTime" );
234 serializer.writeCharacters( String.valueOf( buildResult.getEndTime() ) );
235 serializer.writeEndElement();
236 }
237 if ( buildResult.getError() != null )
238 {
239 serializer.writeStartElement( "error" );
240 serializer.writeCharacters( buildResult.getError() );
241 serializer.writeEndElement();
242 }
243 if ( buildResult.isSuccess() != false )
244 {
245 serializer.writeStartElement( "success" );
246 serializer.writeCharacters( String.valueOf( buildResult.isSuccess() ) );
247 serializer.writeEndElement();
248 }
249 if ( buildResult.getExitCode() != 0 )
250 {
251 serializer.writeStartElement( "exitCode" );
252 serializer.writeCharacters( String.valueOf( buildResult.getExitCode() ) );
253 serializer.writeEndElement();
254 }
255 if ( buildResult.getScmResult() != null )
256 {
257 writeScmResult( (ScmResult) buildResult.getScmResult(), "scmResult", serializer );
258 }
259 if ( buildResult.getTestResult() != null )
260 {
261 writeTestResult( (TestResult) buildResult.getTestResult(), "testResult", serializer );
262 }
263 serializer.writeEndElement();
264 }
265 }
266
267
268
269
270
271
272
273
274
275
276 private void writeChangeFile( ChangeFile changeFile, String tagName, XMLStreamWriter serializer )
277 throws java.io.IOException, XMLStreamException
278 {
279 if ( changeFile != null )
280 {
281 serializer.writeStartElement( tagName );
282 if ( changeFile.getName() != null )
283 {
284 serializer.writeStartElement( "name" );
285 serializer.writeCharacters( changeFile.getName() );
286 serializer.writeEndElement();
287 }
288 if ( changeFile.getRevision() != null )
289 {
290 serializer.writeStartElement( "revision" );
291 serializer.writeCharacters( changeFile.getRevision() );
292 serializer.writeEndElement();
293 }
294 if ( changeFile.getStatus() != null )
295 {
296 serializer.writeStartElement( "status" );
297 serializer.writeCharacters( changeFile.getStatus() );
298 serializer.writeEndElement();
299 }
300 serializer.writeEndElement();
301 }
302 }
303
304
305
306
307
308
309
310
311
312
313 private void writeChangeSet( ChangeSet changeSet, String tagName, XMLStreamWriter serializer )
314 throws java.io.IOException, XMLStreamException
315 {
316 if ( changeSet != null )
317 {
318 serializer.writeStartElement( tagName );
319 if ( changeSet.getAuthor() != null )
320 {
321 serializer.writeStartElement( "author" );
322 serializer.writeCharacters( changeSet.getAuthor() );
323 serializer.writeEndElement();
324 }
325 if ( changeSet.getComment() != null )
326 {
327 serializer.writeStartElement( "comment" );
328 serializer.writeCharacters( changeSet.getComment() );
329 serializer.writeEndElement();
330 }
331 if ( changeSet.getDate() != 0L )
332 {
333 serializer.writeStartElement( "date" );
334 serializer.writeCharacters( String.valueOf( changeSet.getDate() ) );
335 serializer.writeEndElement();
336 }
337 if ( ( changeSet.getFiles() != null ) && ( changeSet.getFiles().size() > 0 ) )
338 {
339 serializer.writeStartElement( "files" );
340 for ( Iterator iter = changeSet.getFiles().iterator(); iter.hasNext(); )
341 {
342 ChangeFile o = (ChangeFile) iter.next();
343 writeChangeFile( o, "file", serializer );
344 }
345 serializer.writeEndElement();
346 }
347 serializer.writeEndElement();
348 }
349 }
350
351
352
353
354
355
356
357
358
359
360 private void writeContinuumDatabase( ContinuumDatabase continuumDatabase, String tagName, XMLStreamWriter serializer )
361 throws java.io.IOException, XMLStreamException
362 {
363 if ( continuumDatabase != null )
364 {
365 serializer.writeStartElement( tagName );
366 if ( ( continuumDatabase.getProjectGroups() != null ) && ( continuumDatabase.getProjectGroups().size() > 0 ) )
367 {
368 serializer.writeStartElement( "projectGroups" );
369 for ( Iterator iter = continuumDatabase.getProjectGroups().iterator(); iter.hasNext(); )
370 {
371 ProjectGroup o = (ProjectGroup) iter.next();
372 writeProjectGroup( o, "projectGroup", serializer );
373 }
374 serializer.writeEndElement();
375 }
376 if ( continuumDatabase.getSystemConfiguration() != null )
377 {
378 writeSystemConfiguration( (SystemConfiguration) continuumDatabase.getSystemConfiguration(), "systemConfiguration", serializer );
379 }
380 if ( ( continuumDatabase.getSchedules() != null ) && ( continuumDatabase.getSchedules().size() > 0 ) )
381 {
382 serializer.writeStartElement( "schedules" );
383 for ( Iterator iter = continuumDatabase.getSchedules().iterator(); iter.hasNext(); )
384 {
385 Schedule o = (Schedule) iter.next();
386 writeSchedule( o, "schedule", serializer );
387 }
388 serializer.writeEndElement();
389 }
390 serializer.writeEndElement();
391 }
392 }
393
394
395
396
397
398
399
400
401 private void writeDom( Xpp3Dom dom, XMLStreamWriter serializer )
402 throws XMLStreamException
403 {
404 serializer.writeStartElement( dom.getName() );
405 String[] attributeNames = dom.getAttributeNames();
406 for ( int i = 0; i < attributeNames.length; i++ )
407 {
408 String attributeName = attributeNames[i];
409 serializer.writeAttribute( attributeName, dom.getAttribute( attributeName ) );
410 }
411 Xpp3Dom[] children = dom.getChildren();
412 for ( int i = 0; i < children.length; i++ )
413 {
414 writeDom( children[i], serializer );
415 }
416 String value = dom.getValue();
417 if ( value != null )
418 {
419 serializer.writeCharacters( value );
420 }
421 serializer.writeEndElement();
422 }
423
424
425
426
427
428
429
430
431
432
433 private void writeNotificationAddress( NotificationAddress notificationAddress, String tagName, XMLStreamWriter serializer )
434 throws java.io.IOException, XMLStreamException
435 {
436 if ( notificationAddress != null )
437 {
438 serializer.writeStartElement( tagName );
439 if ( ( notificationAddress.getType() != null ) && !notificationAddress.getType().equals( "mail" ) )
440 {
441 serializer.writeStartElement( "type" );
442 serializer.writeCharacters( notificationAddress.getType() );
443 serializer.writeEndElement();
444 }
445 if ( notificationAddress.getAddress() != null )
446 {
447 serializer.writeStartElement( "address" );
448 serializer.writeCharacters( notificationAddress.getAddress() );
449 serializer.writeEndElement();
450 }
451 if ( ( notificationAddress.getConfiguration() != null ) && ( notificationAddress.getConfiguration().size() > 0 ) )
452 {
453 serializer.writeStartElement( "configuration" );
454 for ( Iterator iter = notificationAddress.getConfiguration().keySet().iterator(); iter.hasNext(); )
455 {
456 String key = (String) iter.next();
457 String value = (String) notificationAddress.getConfiguration().get( key );
458 serializer.writeStartElement( "" + key + "" );
459 serializer.writeCharacters( value );
460 serializer.writeEndElement();
461 }
462 serializer.writeEndElement();
463 }
464 serializer.writeEndElement();
465 }
466 }
467
468
469
470
471
472
473
474
475
476
477 private void writeProject( Project project, String tagName, XMLStreamWriter serializer )
478 throws java.io.IOException, XMLStreamException
479 {
480 if ( project != null )
481 {
482 serializer.writeStartElement( tagName );
483 if ( project.getId() != 0 )
484 {
485 serializer.writeStartElement( "id" );
486 serializer.writeCharacters( String.valueOf( project.getId() ) );
487 serializer.writeEndElement();
488 }
489 if ( project.getGroupId() != null )
490 {
491 serializer.writeStartElement( "groupId" );
492 serializer.writeCharacters( project.getGroupId() );
493 serializer.writeEndElement();
494 }
495 if ( project.getArtifactId() != null )
496 {
497 serializer.writeStartElement( "artifactId" );
498 serializer.writeCharacters( project.getArtifactId() );
499 serializer.writeEndElement();
500 }
501 if ( project.getExecutorId() != null )
502 {
503 serializer.writeStartElement( "executorId" );
504 serializer.writeCharacters( project.getExecutorId() );
505 serializer.writeEndElement();
506 }
507 if ( project.getName() != null )
508 {
509 serializer.writeStartElement( "name" );
510 serializer.writeCharacters( project.getName() );
511 serializer.writeEndElement();
512 }
513 if ( project.getDescription() != null )
514 {
515 serializer.writeStartElement( "description" );
516 serializer.writeCharacters( project.getDescription() );
517 serializer.writeEndElement();
518 }
519 if ( project.getUrl() != null )
520 {
521 serializer.writeStartElement( "url" );
522 serializer.writeCharacters( project.getUrl() );
523 serializer.writeEndElement();
524 }
525 if ( project.getScmUrl() != null )
526 {
527 serializer.writeStartElement( "scmUrl" );
528 serializer.writeCharacters( project.getScmUrl() );
529 serializer.writeEndElement();
530 }
531 if ( project.getScmTag() != null )
532 {
533 serializer.writeStartElement( "scmTag" );
534 serializer.writeCharacters( project.getScmTag() );
535 serializer.writeEndElement();
536 }
537 if ( project.getScmUsername() != null )
538 {
539 serializer.writeStartElement( "scmUsername" );
540 serializer.writeCharacters( project.getScmUsername() );
541 serializer.writeEndElement();
542 }
543 if ( project.getScmPassword() != null )
544 {
545 serializer.writeStartElement( "scmPassword" );
546 serializer.writeCharacters( project.getScmPassword() );
547 serializer.writeEndElement();
548 }
549 if ( project.getVersion() != null )
550 {
551 serializer.writeStartElement( "version" );
552 serializer.writeCharacters( project.getVersion() );
553 serializer.writeEndElement();
554 }
555 if ( project.getState() != 1 )
556 {
557 serializer.writeStartElement( "state" );
558 serializer.writeCharacters( String.valueOf( project.getState() ) );
559 serializer.writeEndElement();
560 }
561 if ( project.getOldState() != 0 )
562 {
563 serializer.writeStartElement( "oldState" );
564 serializer.writeCharacters( String.valueOf( project.getOldState() ) );
565 serializer.writeEndElement();
566 }
567 if ( project.getLatestBuildId() != 0 )
568 {
569 serializer.writeStartElement( "latestBuildId" );
570 serializer.writeCharacters( String.valueOf( project.getLatestBuildId() ) );
571 serializer.writeEndElement();
572 }
573 if ( project.getBuildNumber() != 0 )
574 {
575 serializer.writeStartElement( "buildNumber" );
576 serializer.writeCharacters( String.valueOf( project.getBuildNumber() ) );
577 serializer.writeEndElement();
578 }
579 if ( project.getWorkingDirectory() != null )
580 {
581 serializer.writeStartElement( "workingDirectory" );
582 serializer.writeCharacters( project.getWorkingDirectory() );
583 serializer.writeEndElement();
584 }
585 if ( ( project.getBuildResults() != null ) && ( project.getBuildResults().size() > 0 ) )
586 {
587 serializer.writeStartElement( "buildResults" );
588 for ( Iterator iter = project.getBuildResults().iterator(); iter.hasNext(); )
589 {
590 BuildResult o = (BuildResult) iter.next();
591 writeBuildResult( o, "buildResult", serializer );
592 }
593 serializer.writeEndElement();
594 }
595 if ( project.getCheckoutResult() != null )
596 {
597 writeScmResult( (ScmResult) project.getCheckoutResult(), "checkoutResult", serializer );
598 }
599 if ( ( project.getDevelopers() != null ) && ( project.getDevelopers().size() > 0 ) )
600 {
601 serializer.writeStartElement( "developers" );
602 for ( Iterator iter = project.getDevelopers().iterator(); iter.hasNext(); )
603 {
604 ProjectDeveloper o = (ProjectDeveloper) iter.next();
605 writeProjectDeveloper( o, "developer", serializer );
606 }
607 serializer.writeEndElement();
608 }
609 if ( project.getParent() != null )
610 {
611 writeProjectDependency( (ProjectDependency) project.getParent(), "parent", serializer );
612 }
613 if ( ( project.getDependencies() != null ) && ( project.getDependencies().size() > 0 ) )
614 {
615 serializer.writeStartElement( "dependencies" );
616 for ( Iterator iter = project.getDependencies().iterator(); iter.hasNext(); )
617 {
618 ProjectDependency o = (ProjectDependency) iter.next();
619 writeProjectDependency( o, "dependency", serializer );
620 }
621 serializer.writeEndElement();
622 }
623 if ( project.getProjectGroup() != null )
624 {
625 serializer.writeStartElement( "projectGroup" );
626 serializer.writeAttribute( "id", String.valueOf( project.getProjectGroup().getId() ) );
627 serializer.writeEndElement();
628 }
629 if ( ( project.getNotifiers() != null ) && ( project.getNotifiers().size() > 0 ) )
630 {
631 serializer.writeStartElement( "notifiers" );
632 for ( Iterator iter = project.getNotifiers().iterator(); iter.hasNext(); )
633 {
634 ProjectNotifier o = (ProjectNotifier) iter.next();
635 writeProjectNotifier( o, "notifier", serializer );
636 }
637 serializer.writeEndElement();
638 }
639 if ( ( project.getBuildDefinitions() != null ) && ( project.getBuildDefinitions().size() > 0 ) )
640 {
641 serializer.writeStartElement( "buildDefinitions" );
642 for ( Iterator iter = project.getBuildDefinitions().iterator(); iter.hasNext(); )
643 {
644 BuildDefinition o = (BuildDefinition) iter.next();
645 writeBuildDefinition( o, "buildDefinition", serializer );
646 }
647 serializer.writeEndElement();
648 }
649 serializer.writeEndElement();
650 }
651 }
652
653
654
655
656
657
658
659
660
661
662 private void writeProjectDependency( ProjectDependency projectDependency, String tagName, XMLStreamWriter serializer )
663 throws java.io.IOException, XMLStreamException
664 {
665 if ( projectDependency != null )
666 {
667 serializer.writeStartElement( tagName );
668 if ( projectDependency.getGroupId() != null )
669 {
670 serializer.writeStartElement( "groupId" );
671 serializer.writeCharacters( projectDependency.getGroupId() );
672 serializer.writeEndElement();
673 }
674 if ( projectDependency.getArtifactId() != null )
675 {
676 serializer.writeStartElement( "artifactId" );
677 serializer.writeCharacters( projectDependency.getArtifactId() );
678 serializer.writeEndElement();
679 }
680 if ( projectDependency.getVersion() != null )
681 {
682 serializer.writeStartElement( "version" );
683 serializer.writeCharacters( projectDependency.getVersion() );
684 serializer.writeEndElement();
685 }
686 serializer.writeEndElement();
687 }
688 }
689
690
691
692
693
694
695
696
697
698
699 private void writeProjectDeveloper( ProjectDeveloper projectDeveloper, String tagName, XMLStreamWriter serializer )
700 throws java.io.IOException, XMLStreamException
701 {
702 if ( projectDeveloper != null )
703 {
704 serializer.writeStartElement( tagName );
705 if ( projectDeveloper.getScmId() != null )
706 {
707 serializer.writeStartElement( "scmId" );
708 serializer.writeCharacters( projectDeveloper.getScmId() );
709 serializer.writeEndElement();
710 }
711 if ( projectDeveloper.getName() != null )
712 {
713 serializer.writeStartElement( "name" );
714 serializer.writeCharacters( projectDeveloper.getName() );
715 serializer.writeEndElement();
716 }
717 if ( projectDeveloper.getEmail() != null )
718 {
719 serializer.writeStartElement( "email" );
720 serializer.writeCharacters( projectDeveloper.getEmail() );
721 serializer.writeEndElement();
722 }
723 if ( projectDeveloper.getContinuumId() != 0 )
724 {
725 serializer.writeStartElement( "continuumId" );
726 serializer.writeCharacters( String.valueOf( projectDeveloper.getContinuumId() ) );
727 serializer.writeEndElement();
728 }
729 serializer.writeEndElement();
730 }
731 }
732
733
734
735
736
737
738
739
740
741
742 private void writeProjectGroup( ProjectGroup projectGroup, String tagName, XMLStreamWriter serializer )
743 throws java.io.IOException, XMLStreamException
744 {
745 if ( projectGroup != null )
746 {
747 serializer.writeStartElement( tagName );
748 if ( projectGroup.getId() != 0 )
749 {
750 serializer.writeStartElement( "id" );
751 serializer.writeCharacters( String.valueOf( projectGroup.getId() ) );
752 serializer.writeEndElement();
753 }
754 if ( projectGroup.getGroupId() != null )
755 {
756 serializer.writeStartElement( "groupId" );
757 serializer.writeCharacters( projectGroup.getGroupId() );
758 serializer.writeEndElement();
759 }
760 if ( projectGroup.getName() != null )
761 {
762 serializer.writeStartElement( "name" );
763 serializer.writeCharacters( projectGroup.getName() );
764 serializer.writeEndElement();
765 }
766 if ( projectGroup.getDescription() != null )
767 {
768 serializer.writeStartElement( "description" );
769 serializer.writeCharacters( projectGroup.getDescription() );
770 serializer.writeEndElement();
771 }
772 if ( ( projectGroup.getProjects() != null ) && ( projectGroup.getProjects().size() > 0 ) )
773 {
774 serializer.writeStartElement( "projects" );
775 for ( Iterator iter = projectGroup.getProjects().iterator(); iter.hasNext(); )
776 {
777 Project o = (Project) iter.next();
778 writeProject( o, "project", serializer );
779 }
780 serializer.writeEndElement();
781 }
782 if ( ( projectGroup.getNotifiers() != null ) && ( projectGroup.getNotifiers().size() > 0 ) )
783 {
784 serializer.writeStartElement( "notifiers" );
785 for ( Iterator iter = projectGroup.getNotifiers().iterator(); iter.hasNext(); )
786 {
787 ProjectNotifier o = (ProjectNotifier) iter.next();
788 writeProjectNotifier( o, "notifier", serializer );
789 }
790 serializer.writeEndElement();
791 }
792 if ( ( projectGroup.getBuildDefinitions() != null ) && ( projectGroup.getBuildDefinitions().size() > 0 ) )
793 {
794 serializer.writeStartElement( "buildDefinitions" );
795 for ( Iterator iter = projectGroup.getBuildDefinitions().iterator(); iter.hasNext(); )
796 {
797 BuildDefinition o = (BuildDefinition) iter.next();
798 writeBuildDefinition( o, "buildDefinition", serializer );
799 }
800 serializer.writeEndElement();
801 }
802 serializer.writeEndElement();
803 }
804 }
805
806
807
808
809
810
811
812
813
814
815 private void writeProjectNotifier( ProjectNotifier projectNotifier, String tagName, XMLStreamWriter serializer )
816 throws java.io.IOException, XMLStreamException
817 {
818 if ( projectNotifier != null )
819 {
820 serializer.writeStartElement( tagName );
821 if ( projectNotifier.getId() != 0 )
822 {
823 serializer.writeStartElement( "id" );
824 serializer.writeCharacters( String.valueOf( projectNotifier.getId() ) );
825 serializer.writeEndElement();
826 }
827 if ( ( projectNotifier.getType() != null ) && !projectNotifier.getType().equals( "mail" ) )
828 {
829 serializer.writeStartElement( "type" );
830 serializer.writeCharacters( projectNotifier.getType() );
831 serializer.writeEndElement();
832 }
833 if ( projectNotifier.getFrom() != 0 )
834 {
835 serializer.writeStartElement( "from" );
836 serializer.writeCharacters( String.valueOf( projectNotifier.getFrom() ) );
837 serializer.writeEndElement();
838 }
839 if ( projectNotifier.isEnabled() != true )
840 {
841 serializer.writeStartElement( "enabled" );
842 serializer.writeCharacters( String.valueOf( projectNotifier.isEnabled() ) );
843 serializer.writeEndElement();
844 }
845 if ( projectNotifier.getRecipientType() != 0 )
846 {
847 serializer.writeStartElement( "recipientType" );
848 serializer.writeCharacters( String.valueOf( projectNotifier.getRecipientType() ) );
849 serializer.writeEndElement();
850 }
851 if ( projectNotifier.isSendOnSuccess() != true )
852 {
853 serializer.writeStartElement( "sendOnSuccess" );
854 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnSuccess() ) );
855 serializer.writeEndElement();
856 }
857 if ( projectNotifier.isSendOnFailure() != true )
858 {
859 serializer.writeStartElement( "sendOnFailure" );
860 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnFailure() ) );
861 serializer.writeEndElement();
862 }
863 if ( projectNotifier.isSendOnError() != true )
864 {
865 serializer.writeStartElement( "sendOnError" );
866 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnError() ) );
867 serializer.writeEndElement();
868 }
869 if ( projectNotifier.isSendOnWarning() != true )
870 {
871 serializer.writeStartElement( "sendOnWarning" );
872 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnWarning() ) );
873 serializer.writeEndElement();
874 }
875 if ( ( projectNotifier.getConfiguration() != null ) && ( projectNotifier.getConfiguration().size() > 0 ) )
876 {
877 serializer.writeStartElement( "configuration" );
878 for ( Iterator iter = projectNotifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
879 {
880 String key = (String) iter.next();
881 String value = (String) projectNotifier.getConfiguration().get( key );
882 serializer.writeStartElement( "" + key + "" );
883 serializer.writeCharacters( value );
884 serializer.writeEndElement();
885 }
886 serializer.writeEndElement();
887 }
888 serializer.writeEndElement();
889 }
890 }
891
892
893
894
895
896
897
898
899
900
901 private void writeSchedule( Schedule schedule, String tagName, XMLStreamWriter serializer )
902 throws java.io.IOException, XMLStreamException
903 {
904 if ( schedule != null )
905 {
906 serializer.writeStartElement( tagName );
907 if ( schedule.getId() != 0 )
908 {
909 serializer.writeStartElement( "id" );
910 serializer.writeCharacters( String.valueOf( schedule.getId() ) );
911 serializer.writeEndElement();
912 }
913 if ( schedule.isActive() != false )
914 {
915 serializer.writeStartElement( "active" );
916 serializer.writeCharacters( String.valueOf( schedule.isActive() ) );
917 serializer.writeEndElement();
918 }
919 if ( schedule.getName() != null )
920 {
921 serializer.writeStartElement( "name" );
922 serializer.writeCharacters( schedule.getName() );
923 serializer.writeEndElement();
924 }
925 if ( schedule.getDescription() != null )
926 {
927 serializer.writeStartElement( "description" );
928 serializer.writeCharacters( schedule.getDescription() );
929 serializer.writeEndElement();
930 }
931 if ( schedule.getDelay() != 0 )
932 {
933 serializer.writeStartElement( "delay" );
934 serializer.writeCharacters( String.valueOf( schedule.getDelay() ) );
935 serializer.writeEndElement();
936 }
937 if ( schedule.getMaxJobExecutionTime() != 3600 )
938 {
939 serializer.writeStartElement( "maxJobExecutionTime" );
940 serializer.writeCharacters( String.valueOf( schedule.getMaxJobExecutionTime() ) );
941 serializer.writeEndElement();
942 }
943 if ( schedule.getCronExpression() != null )
944 {
945 serializer.writeStartElement( "cronExpression" );
946 serializer.writeCharacters( schedule.getCronExpression() );
947 serializer.writeEndElement();
948 }
949 serializer.writeEndElement();
950 }
951 }
952
953
954
955
956
957
958
959
960
961
962 private void writeScmResult( ScmResult scmResult, String tagName, XMLStreamWriter serializer )
963 throws java.io.IOException, XMLStreamException
964 {
965 if ( scmResult != null )
966 {
967 serializer.writeStartElement( tagName );
968 if ( scmResult.isSuccess() != false )
969 {
970 serializer.writeStartElement( "success" );
971 serializer.writeCharacters( String.valueOf( scmResult.isSuccess() ) );
972 serializer.writeEndElement();
973 }
974 if ( scmResult.getCommandLine() != null )
975 {
976 serializer.writeStartElement( "commandLine" );
977 serializer.writeCharacters( scmResult.getCommandLine() );
978 serializer.writeEndElement();
979 }
980 if ( scmResult.getProviderMessage() != null )
981 {
982 serializer.writeStartElement( "providerMessage" );
983 serializer.writeCharacters( scmResult.getProviderMessage() );
984 serializer.writeEndElement();
985 }
986 if ( scmResult.getCommandOutput() != null )
987 {
988 serializer.writeStartElement( "commandOutput" );
989 serializer.writeCharacters( scmResult.getCommandOutput() );
990 serializer.writeEndElement();
991 }
992 if ( scmResult.getException() != null )
993 {
994 serializer.writeStartElement( "exception" );
995 serializer.writeCharacters( scmResult.getException() );
996 serializer.writeEndElement();
997 }
998 if ( ( scmResult.getChanges() != null ) && ( scmResult.getChanges().size() > 0 ) )
999 {
1000 serializer.writeStartElement( "changes" );
1001 for ( Iterator iter = scmResult.getChanges().iterator(); iter.hasNext(); )
1002 {
1003 ChangeSet o = (ChangeSet) iter.next();
1004 writeChangeSet( o, "change", serializer );
1005 }
1006 serializer.writeEndElement();
1007 }
1008 serializer.writeEndElement();
1009 }
1010 }
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021 private void writeSuiteResult( SuiteResult suiteResult, String tagName, XMLStreamWriter serializer )
1022 throws java.io.IOException, XMLStreamException
1023 {
1024 if ( suiteResult != null )
1025 {
1026 serializer.writeStartElement( tagName );
1027 if ( suiteResult.getName() != null )
1028 {
1029 serializer.writeStartElement( "name" );
1030 serializer.writeCharacters( suiteResult.getName() );
1031 serializer.writeEndElement();
1032 }
1033 if ( suiteResult.getTestCount() != 0 )
1034 {
1035 serializer.writeStartElement( "testCount" );
1036 serializer.writeCharacters( String.valueOf( suiteResult.getTestCount() ) );
1037 serializer.writeEndElement();
1038 }
1039 if ( suiteResult.getFailureCount() != 0 )
1040 {
1041 serializer.writeStartElement( "failureCount" );
1042 serializer.writeCharacters( String.valueOf( suiteResult.getFailureCount() ) );
1043 serializer.writeEndElement();
1044 }
1045 if ( suiteResult.getTotalTime() != 0L )
1046 {
1047 serializer.writeStartElement( "totalTime" );
1048 serializer.writeCharacters( String.valueOf( suiteResult.getTotalTime() ) );
1049 serializer.writeEndElement();
1050 }
1051 if ( ( suiteResult.getFailures() != null ) && ( suiteResult.getFailures().size() > 0 ) )
1052 {
1053 serializer.writeStartElement( "failures" );
1054 for ( Iterator iter = suiteResult.getFailures().iterator(); iter.hasNext(); )
1055 {
1056 TestCaseFailure o = (TestCaseFailure) iter.next();
1057 writeTestCaseFailure( o, "failure", serializer );
1058 }
1059 serializer.writeEndElement();
1060 }
1061 serializer.writeEndElement();
1062 }
1063 }
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074 private void writeSystemConfiguration( SystemConfiguration systemConfiguration, String tagName, XMLStreamWriter serializer )
1075 throws java.io.IOException, XMLStreamException
1076 {
1077 if ( systemConfiguration != null )
1078 {
1079 serializer.writeStartElement( tagName );
1080 if ( systemConfiguration.isGuestAccountEnabled() != true )
1081 {
1082 serializer.writeStartElement( "guestAccountEnabled" );
1083 serializer.writeCharacters( String.valueOf( systemConfiguration.isGuestAccountEnabled() ) );
1084 serializer.writeEndElement();
1085 }
1086 if ( ( systemConfiguration.getDefaultScheduleDescription() != null ) && !systemConfiguration.getDefaultScheduleDescription().equals( "Run hourly" ) )
1087 {
1088 serializer.writeStartElement( "defaultScheduleDescription" );
1089 serializer.writeCharacters( systemConfiguration.getDefaultScheduleDescription() );
1090 serializer.writeEndElement();
1091 }
1092 if ( ( systemConfiguration.getDefaultScheduleCronExpression() != null ) && !systemConfiguration.getDefaultScheduleCronExpression().equals( "0 0 * * * ?" ) )
1093 {
1094 serializer.writeStartElement( "defaultScheduleCronExpression" );
1095 serializer.writeCharacters( systemConfiguration.getDefaultScheduleCronExpression() );
1096 serializer.writeEndElement();
1097 }
1098 if ( ( systemConfiguration.getWorkingDirectory() != null ) && !systemConfiguration.getWorkingDirectory().equals( "working-directory" ) )
1099 {
1100 serializer.writeStartElement( "workingDirectory" );
1101 serializer.writeCharacters( systemConfiguration.getWorkingDirectory() );
1102 serializer.writeEndElement();
1103 }
1104 if ( ( systemConfiguration.getBuildOutputDirectory() != null ) && !systemConfiguration.getBuildOutputDirectory().equals( "build-output-directory" ) )
1105 {
1106 serializer.writeStartElement( "buildOutputDirectory" );
1107 serializer.writeCharacters( systemConfiguration.getBuildOutputDirectory() );
1108 serializer.writeEndElement();
1109 }
1110 if ( systemConfiguration.getDeploymentRepositoryDirectory() != null )
1111 {
1112 serializer.writeStartElement( "deploymentRepositoryDirectory" );
1113 serializer.writeCharacters( systemConfiguration.getDeploymentRepositoryDirectory() );
1114 serializer.writeEndElement();
1115 }
1116 if ( systemConfiguration.getBaseUrl() != null )
1117 {
1118 serializer.writeStartElement( "baseUrl" );
1119 serializer.writeCharacters( systemConfiguration.getBaseUrl() );
1120 serializer.writeEndElement();
1121 }
1122 if ( systemConfiguration.isInitialized() != false )
1123 {
1124 serializer.writeStartElement( "initialized" );
1125 serializer.writeCharacters( String.valueOf( systemConfiguration.isInitialized() ) );
1126 serializer.writeEndElement();
1127 }
1128 serializer.writeEndElement();
1129 }
1130 }
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141 private void writeTestCaseFailure( TestCaseFailure testCaseFailure, String tagName, XMLStreamWriter serializer )
1142 throws java.io.IOException, XMLStreamException
1143 {
1144 if ( testCaseFailure != null )
1145 {
1146 serializer.writeStartElement( tagName );
1147 if ( testCaseFailure.getName() != null )
1148 {
1149 serializer.writeStartElement( "name" );
1150 serializer.writeCharacters( testCaseFailure.getName() );
1151 serializer.writeEndElement();
1152 }
1153 if ( testCaseFailure.getException() != null )
1154 {
1155 serializer.writeStartElement( "exception" );
1156 serializer.writeCharacters( testCaseFailure.getException() );
1157 serializer.writeEndElement();
1158 }
1159 serializer.writeEndElement();
1160 }
1161 }
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172 private void writeTestResult( TestResult testResult, String tagName, XMLStreamWriter serializer )
1173 throws java.io.IOException, XMLStreamException
1174 {
1175 if ( testResult != null )
1176 {
1177 serializer.writeStartElement( tagName );
1178 if ( testResult.getTestCount() != 0 )
1179 {
1180 serializer.writeStartElement( "testCount" );
1181 serializer.writeCharacters( String.valueOf( testResult.getTestCount() ) );
1182 serializer.writeEndElement();
1183 }
1184 if ( testResult.getFailureCount() != 0 )
1185 {
1186 serializer.writeStartElement( "failureCount" );
1187 serializer.writeCharacters( String.valueOf( testResult.getFailureCount() ) );
1188 serializer.writeEndElement();
1189 }
1190 if ( testResult.getTotalTime() != 0L )
1191 {
1192 serializer.writeStartElement( "totalTime" );
1193 serializer.writeCharacters( String.valueOf( testResult.getTotalTime() ) );
1194 serializer.writeEndElement();
1195 }
1196 if ( ( testResult.getSuiteResults() != null ) && ( testResult.getSuiteResults().size() > 0 ) )
1197 {
1198 serializer.writeStartElement( "suiteResults" );
1199 for ( Iterator iter = testResult.getSuiteResults().iterator(); iter.hasNext(); )
1200 {
1201 SuiteResult o = (SuiteResult) iter.next();
1202 writeSuiteResult( o, "suiteResult", serializer );
1203 }
1204 serializer.writeEndElement();
1205 }
1206 serializer.writeEndElement();
1207 }
1208 }
1209
1210 }