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