1
2
3
4
5
6
7
8 package org.apache.maven.continuum.model.project.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.continuum.model.project.ProjectScmRoot;
25 import org.apache.continuum.model.release.ContinuumReleaseResult;
26 import org.apache.continuum.model.repository.AbstractPurgeConfiguration;
27 import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
28 import org.apache.continuum.model.repository.LocalRepository;
29 import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
30 import org.apache.maven.continuum.model.project.BuildDefinition;
31 import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
32 import org.apache.maven.continuum.model.project.BuildQueue;
33 import org.apache.maven.continuum.model.project.BuildResult;
34 import org.apache.maven.continuum.model.project.ContinuumDatabase;
35 import org.apache.maven.continuum.model.project.Project;
36 import org.apache.maven.continuum.model.project.ProjectDependency;
37 import org.apache.maven.continuum.model.project.ProjectDeveloper;
38 import org.apache.maven.continuum.model.project.ProjectGroup;
39 import org.apache.maven.continuum.model.project.ProjectNotifier;
40 import org.apache.maven.continuum.model.project.Schedule;
41 import org.apache.maven.continuum.model.scm.ChangeFile;
42 import org.apache.maven.continuum.model.scm.ChangeSet;
43 import org.apache.maven.continuum.model.scm.ScmResult;
44 import org.apache.maven.continuum.model.system.Installation;
45 import org.apache.maven.continuum.model.system.NotificationAddress;
46 import org.apache.maven.continuum.model.system.Profile;
47 import org.apache.maven.continuum.model.system.SystemConfiguration;
48 import org.apache.maven.continuum.project.ContinuumProjectState;
49 import org.codehaus.plexus.util.xml.Xpp3Dom;
50
51
52
53
54
55
56 @SuppressWarnings( "all" )
57 public class ContinuumStaxWriter
58 {
59
60
61
62
63
64
65
66
67 private int curId;
68
69
70
71
72 private java.util.Map idMap;
73
74
75
76
77
78
79 public ContinuumStaxWriter()
80 {
81 idMap = new java.util.HashMap();
82 }
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 public void write( Writer writer, ContinuumDatabase continuumDatabase )
98 throws java.io.IOException, XMLStreamException
99 {
100 XMLOutputFactory factory = XMLOutputFactory.newInstance();
101 boolean supportWindowsLineEndings = false;
102 if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
103 {
104 factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
105 supportWindowsLineEndings = true;
106 }
107 if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
108 {
109 factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
110 }
111 IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
112 if ( supportWindowsLineEndings )
113 {
114 serializer.setNewLine( serializer.getLineSeparator() );
115 }
116 serializer.writeStartDocument( continuumDatabase.getModelEncoding(), "1.0" );
117 writeContinuumDatabase( continuumDatabase, "continuumDatabase", serializer );
118 serializer.writeEndDocument();
119 }
120
121
122
123
124
125
126
127
128
129
130 private void writeAbstractPurgeConfiguration( AbstractPurgeConfiguration abstractPurgeConfiguration, String tagName, XMLStreamWriter serializer )
131 throws java.io.IOException, XMLStreamException
132 {
133 if ( abstractPurgeConfiguration != null )
134 {
135 serializer.writeStartElement( tagName );
136 if ( abstractPurgeConfiguration.getId() != 0 )
137 {
138 serializer.writeStartElement( "id" );
139 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getId() ) );
140 serializer.writeEndElement();
141 }
142 if ( abstractPurgeConfiguration.getDescription() != null )
143 {
144 serializer.writeStartElement( "description" );
145 serializer.writeCharacters( abstractPurgeConfiguration.getDescription() );
146 serializer.writeEndElement();
147 }
148 if ( abstractPurgeConfiguration.isDeleteAll() != false )
149 {
150 serializer.writeStartElement( "deleteAll" );
151 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isDeleteAll() ) );
152 serializer.writeEndElement();
153 }
154 if ( abstractPurgeConfiguration.getRetentionCount() != 2 )
155 {
156 serializer.writeStartElement( "retentionCount" );
157 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getRetentionCount() ) );
158 serializer.writeEndElement();
159 }
160 if ( abstractPurgeConfiguration.getDaysOlder() != 100 )
161 {
162 serializer.writeStartElement( "daysOlder" );
163 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getDaysOlder() ) );
164 serializer.writeEndElement();
165 }
166 if ( abstractPurgeConfiguration.isEnabled() != true )
167 {
168 serializer.writeStartElement( "enabled" );
169 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isEnabled() ) );
170 serializer.writeEndElement();
171 }
172 if ( abstractPurgeConfiguration.getSchedule() != null )
173 {
174 serializer.writeStartElement( "schedule" );
175 serializer.writeAttribute( "id", String.valueOf( abstractPurgeConfiguration.getSchedule().getId() ) );
176 serializer.writeEndElement();
177 }
178 if ( abstractPurgeConfiguration.isDefaultPurge() != false )
179 {
180 serializer.writeStartElement( "defaultPurge" );
181 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isDefaultPurge() ) );
182 serializer.writeEndElement();
183 }
184 serializer.writeEndElement();
185 }
186 }
187
188
189
190
191
192
193
194
195
196
197 private void writeBuildDefinition( BuildDefinition buildDefinition, String tagName, XMLStreamWriter serializer )
198 throws java.io.IOException, XMLStreamException
199 {
200 if ( buildDefinition != null )
201 {
202 serializer.writeStartElement( tagName );
203 if ( buildDefinition.getId() != 0 )
204 {
205 serializer.writeStartElement( "id" );
206 serializer.writeCharacters( String.valueOf( buildDefinition.getId() ) );
207 serializer.writeEndElement();
208 }
209 if ( buildDefinition.isDefaultForProject() != false )
210 {
211 serializer.writeStartElement( "defaultForProject" );
212 serializer.writeCharacters( String.valueOf( buildDefinition.isDefaultForProject() ) );
213 serializer.writeEndElement();
214 }
215 if ( buildDefinition.getGoals() != null )
216 {
217 serializer.writeStartElement( "goals" );
218 serializer.writeCharacters( buildDefinition.getGoals() );
219 serializer.writeEndElement();
220 }
221 if ( buildDefinition.getArguments() != null )
222 {
223 serializer.writeStartElement( "arguments" );
224 serializer.writeCharacters( buildDefinition.getArguments() );
225 serializer.writeEndElement();
226 }
227 if ( buildDefinition.getBuildFile() != null )
228 {
229 serializer.writeStartElement( "buildFile" );
230 serializer.writeCharacters( buildDefinition.getBuildFile() );
231 serializer.writeEndElement();
232 }
233 if ( buildDefinition.isBuildFresh() != false )
234 {
235 serializer.writeStartElement( "buildFresh" );
236 serializer.writeCharacters( String.valueOf( buildDefinition.isBuildFresh() ) );
237 serializer.writeEndElement();
238 }
239 if ( buildDefinition.getDescription() != null )
240 {
241 serializer.writeStartElement( "description" );
242 serializer.writeCharacters( buildDefinition.getDescription() );
243 serializer.writeEndElement();
244 }
245 if ( buildDefinition.getType() != null )
246 {
247 serializer.writeStartElement( "type" );
248 serializer.writeCharacters( buildDefinition.getType() );
249 serializer.writeEndElement();
250 }
251 if ( buildDefinition.getSchedule() != null )
252 {
253 serializer.writeStartElement( "schedule" );
254 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getSchedule().getId() ) );
255 serializer.writeEndElement();
256 }
257 if ( buildDefinition.getProfile() != null )
258 {
259 serializer.writeStartElement( "profile" );
260 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getProfile().getId() ) );
261 serializer.writeEndElement();
262 }
263 if ( buildDefinition.isAlwaysBuild() != false )
264 {
265 serializer.writeStartElement( "alwaysBuild" );
266 serializer.writeCharacters( String.valueOf( buildDefinition.isAlwaysBuild() ) );
267 serializer.writeEndElement();
268 }
269 if ( buildDefinition.isTemplate() != false )
270 {
271 serializer.writeStartElement( "template" );
272 serializer.writeCharacters( String.valueOf( buildDefinition.isTemplate() ) );
273 serializer.writeEndElement();
274 }
275 serializer.writeEndElement();
276 }
277 }
278
279
280
281
282
283
284
285
286
287
288 private void writeBuildDefinitionTemplate( BuildDefinitionTemplate buildDefinitionTemplate, String tagName, XMLStreamWriter serializer )
289 throws java.io.IOException, XMLStreamException
290 {
291 if ( buildDefinitionTemplate != null )
292 {
293 serializer.writeStartElement( tagName );
294 if ( buildDefinitionTemplate.getId() != 0 )
295 {
296 serializer.writeStartElement( "id" );
297 serializer.writeCharacters( String.valueOf( buildDefinitionTemplate.getId() ) );
298 serializer.writeEndElement();
299 }
300 if ( buildDefinitionTemplate.getName() != null )
301 {
302 serializer.writeStartElement( "name" );
303 serializer.writeCharacters( buildDefinitionTemplate.getName() );
304 serializer.writeEndElement();
305 }
306 if ( buildDefinitionTemplate.isContinuumDefault() != false )
307 {
308 serializer.writeStartElement( "continuumDefault" );
309 serializer.writeCharacters( String.valueOf( buildDefinitionTemplate.isContinuumDefault() ) );
310 serializer.writeEndElement();
311 }
312 if ( buildDefinitionTemplate.getType() != null )
313 {
314 serializer.writeStartElement( "type" );
315 serializer.writeCharacters( buildDefinitionTemplate.getType() );
316 serializer.writeEndElement();
317 }
318 if ( ( buildDefinitionTemplate.getBuildDefinitions() != null ) && ( buildDefinitionTemplate.getBuildDefinitions().size() > 0 ) )
319 {
320 serializer.writeStartElement( "buildDefinitions" );
321 for ( Iterator iter = buildDefinitionTemplate.getBuildDefinitions().iterator(); iter.hasNext(); )
322 {
323 BuildDefinition o = (BuildDefinition) iter.next();
324 serializer.writeStartElement( "buildDefinition" );
325 serializer.writeAttribute( "id", String.valueOf( o.getId() ) );
326 serializer.writeEndElement();
327 }
328 serializer.writeEndElement();
329 }
330 serializer.writeEndElement();
331 }
332 }
333
334
335
336
337
338
339
340
341
342
343 private void writeBuildQueue( BuildQueue buildQueue, String tagName, XMLStreamWriter serializer )
344 throws java.io.IOException, XMLStreamException
345 {
346 if ( buildQueue != null )
347 {
348 serializer.writeStartElement( tagName );
349 if ( buildQueue.getId() != 0 )
350 {
351 serializer.writeStartElement( "id" );
352 serializer.writeCharacters( String.valueOf( buildQueue.getId() ) );
353 serializer.writeEndElement();
354 }
355 if ( ( buildQueue.getName() != null ) && !buildQueue.getName().equals( "" ) )
356 {
357 serializer.writeStartElement( "name" );
358 serializer.writeCharacters( buildQueue.getName() );
359 serializer.writeEndElement();
360 }
361 serializer.writeEndElement();
362 }
363 }
364
365
366
367
368
369
370
371
372
373
374 private void writeBuildResult( BuildResult buildResult, String tagName, XMLStreamWriter serializer )
375 throws java.io.IOException, XMLStreamException
376 {
377 if ( buildResult != null )
378 {
379 serializer.writeStartElement( tagName );
380 if ( buildResult.getProject() != null )
381 {
382 serializer.writeStartElement( "project" );
383 serializer.writeAttribute( "id", String.valueOf( buildResult.getProject().getId() ) );
384 serializer.writeEndElement();
385 }
386 if ( buildResult.getBuildDefinition() != null )
387 {
388 serializer.writeStartElement( "buildDefinition" );
389 serializer.writeAttribute( "id", String.valueOf( buildResult.getBuildDefinition().getId() ) );
390 serializer.writeEndElement();
391 }
392 if ( buildResult.getId() != 0 )
393 {
394 serializer.writeStartElement( "id" );
395 serializer.writeCharacters( String.valueOf( buildResult.getId() ) );
396 serializer.writeEndElement();
397 }
398 if ( buildResult.getBuildNumber() != 0 )
399 {
400 serializer.writeStartElement( "buildNumber" );
401 serializer.writeCharacters( String.valueOf( buildResult.getBuildNumber() ) );
402 serializer.writeEndElement();
403 }
404 if ( buildResult.getState() != 0 )
405 {
406 serializer.writeStartElement( "state" );
407 serializer.writeCharacters( String.valueOf( buildResult.getState() ) );
408 serializer.writeEndElement();
409 }
410 if ( buildResult.getTrigger() != 0 )
411 {
412 serializer.writeStartElement( "trigger" );
413 serializer.writeCharacters( String.valueOf( buildResult.getTrigger() ) );
414 serializer.writeEndElement();
415 }
416 if ( buildResult.getStartTime() != 0L )
417 {
418 serializer.writeStartElement( "startTime" );
419 serializer.writeCharacters( String.valueOf( buildResult.getStartTime() ) );
420 serializer.writeEndElement();
421 }
422 if ( buildResult.getEndTime() != 0L )
423 {
424 serializer.writeStartElement( "endTime" );
425 serializer.writeCharacters( String.valueOf( buildResult.getEndTime() ) );
426 serializer.writeEndElement();
427 }
428 if ( buildResult.getError() != null )
429 {
430 serializer.writeStartElement( "error" );
431 serializer.writeCharacters( buildResult.getError() );
432 serializer.writeEndElement();
433 }
434 if ( buildResult.isSuccess() != false )
435 {
436 serializer.writeStartElement( "success" );
437 serializer.writeCharacters( String.valueOf( buildResult.isSuccess() ) );
438 serializer.writeEndElement();
439 }
440 if ( buildResult.getExitCode() != 0 )
441 {
442 serializer.writeStartElement( "exitCode" );
443 serializer.writeCharacters( String.valueOf( buildResult.getExitCode() ) );
444 serializer.writeEndElement();
445 }
446 if ( buildResult.getScmResult() != null )
447 {
448 writeScmResult( (ScmResult) buildResult.getScmResult(), "scmResult", serializer );
449 }
450 if ( ( buildResult.getModifiedDependencies() != null ) && ( buildResult.getModifiedDependencies().size() > 0 ) )
451 {
452 serializer.writeStartElement( "modifiedDependencies" );
453 for ( Iterator iter = buildResult.getModifiedDependencies().iterator(); iter.hasNext(); )
454 {
455 ProjectDependency o = (ProjectDependency) iter.next();
456 writeProjectDependency( o, "modifiedDependency", serializer );
457 }
458 serializer.writeEndElement();
459 }
460 if ( buildResult.getLastChangedDate() != 0L )
461 {
462 serializer.writeStartElement( "lastChangedDate" );
463 serializer.writeCharacters( String.valueOf( buildResult.getLastChangedDate() ) );
464 serializer.writeEndElement();
465 }
466 if ( ( buildResult.getBuildUrl() != null ) && !buildResult.getBuildUrl().equals( "" ) )
467 {
468 serializer.writeStartElement( "buildUrl" );
469 serializer.writeCharacters( buildResult.getBuildUrl() );
470 serializer.writeEndElement();
471 }
472 serializer.writeEndElement();
473 }
474 }
475
476
477
478
479
480
481
482
483
484
485 private void writeChangeFile( ChangeFile changeFile, String tagName, XMLStreamWriter serializer )
486 throws java.io.IOException, XMLStreamException
487 {
488 if ( changeFile != null )
489 {
490 serializer.writeStartElement( tagName );
491 if ( changeFile.getName() != null )
492 {
493 serializer.writeStartElement( "name" );
494 serializer.writeCharacters( changeFile.getName() );
495 serializer.writeEndElement();
496 }
497 if ( changeFile.getRevision() != null )
498 {
499 serializer.writeStartElement( "revision" );
500 serializer.writeCharacters( changeFile.getRevision() );
501 serializer.writeEndElement();
502 }
503 if ( changeFile.getStatus() != null )
504 {
505 serializer.writeStartElement( "status" );
506 serializer.writeCharacters( changeFile.getStatus() );
507 serializer.writeEndElement();
508 }
509 serializer.writeEndElement();
510 }
511 }
512
513
514
515
516
517
518
519
520
521
522 private void writeChangeSet( ChangeSet changeSet, String tagName, XMLStreamWriter serializer )
523 throws java.io.IOException, XMLStreamException
524 {
525 if ( changeSet != null )
526 {
527 serializer.writeStartElement( tagName );
528 if ( changeSet.getId() != null )
529 {
530 serializer.writeStartElement( "id" );
531 serializer.writeCharacters( changeSet.getId() );
532 serializer.writeEndElement();
533 }
534 if ( changeSet.getAuthor() != null )
535 {
536 serializer.writeStartElement( "author" );
537 serializer.writeCharacters( changeSet.getAuthor() );
538 serializer.writeEndElement();
539 }
540 if ( changeSet.getComment() != null )
541 {
542 serializer.writeStartElement( "comment" );
543 serializer.writeCharacters( changeSet.getComment() );
544 serializer.writeEndElement();
545 }
546 if ( changeSet.getDate() != 0L )
547 {
548 serializer.writeStartElement( "date" );
549 serializer.writeCharacters( String.valueOf( changeSet.getDate() ) );
550 serializer.writeEndElement();
551 }
552 if ( ( changeSet.getFiles() != null ) && ( changeSet.getFiles().size() > 0 ) )
553 {
554 serializer.writeStartElement( "files" );
555 for ( Iterator iter = changeSet.getFiles().iterator(); iter.hasNext(); )
556 {
557 ChangeFile o = (ChangeFile) iter.next();
558 writeChangeFile( o, "file", serializer );
559 }
560 serializer.writeEndElement();
561 }
562 serializer.writeEndElement();
563 }
564 }
565
566
567
568
569
570
571
572
573
574
575 private void writeContinuumDatabase( ContinuumDatabase continuumDatabase, String tagName, XMLStreamWriter serializer )
576 throws java.io.IOException, XMLStreamException
577 {
578 if ( continuumDatabase != null )
579 {
580 serializer.writeStartElement( tagName );
581 if ( ( continuumDatabase.getProjectGroups() != null ) && ( continuumDatabase.getProjectGroups().size() > 0 ) )
582 {
583 serializer.writeStartElement( "projectGroups" );
584 for ( Iterator iter = continuumDatabase.getProjectGroups().iterator(); iter.hasNext(); )
585 {
586 ProjectGroup o = (ProjectGroup) iter.next();
587 writeProjectGroup( o, "projectGroup", serializer );
588 }
589 serializer.writeEndElement();
590 }
591 if ( continuumDatabase.getSystemConfiguration() != null )
592 {
593 writeSystemConfiguration( (SystemConfiguration) continuumDatabase.getSystemConfiguration(), "systemConfiguration", serializer );
594 }
595 if ( ( continuumDatabase.getInstallations() != null ) && ( continuumDatabase.getInstallations().size() > 0 ) )
596 {
597 serializer.writeStartElement( "installations" );
598 for ( Iterator iter = continuumDatabase.getInstallations().iterator(); iter.hasNext(); )
599 {
600 Installation o = (Installation) iter.next();
601 writeInstallation( o, "installation", serializer );
602 }
603 serializer.writeEndElement();
604 }
605 if ( ( continuumDatabase.getSchedules() != null ) && ( continuumDatabase.getSchedules().size() > 0 ) )
606 {
607 serializer.writeStartElement( "schedules" );
608 for ( Iterator iter = continuumDatabase.getSchedules().iterator(); iter.hasNext(); )
609 {
610 Schedule o = (Schedule) iter.next();
611 writeSchedule( o, "schedule", serializer );
612 }
613 serializer.writeEndElement();
614 }
615 if ( ( continuumDatabase.getProfiles() != null ) && ( continuumDatabase.getProfiles().size() > 0 ) )
616 {
617 serializer.writeStartElement( "profiles" );
618 for ( Iterator iter = continuumDatabase.getProfiles().iterator(); iter.hasNext(); )
619 {
620 Profile o = (Profile) iter.next();
621 writeProfile( o, "profile", serializer );
622 }
623 serializer.writeEndElement();
624 }
625 if ( ( continuumDatabase.getLocalRepositories() != null ) && ( continuumDatabase.getLocalRepositories().size() > 0 ) )
626 {
627 serializer.writeStartElement( "localRepositories" );
628 for ( Iterator iter = continuumDatabase.getLocalRepositories().iterator(); iter.hasNext(); )
629 {
630 LocalRepository o = (LocalRepository) iter.next();
631 writeLocalRepository( o, "localRepository", serializer );
632 }
633 serializer.writeEndElement();
634 }
635 if ( ( continuumDatabase.getRepositoryPurgeConfigurations() != null ) && ( continuumDatabase.getRepositoryPurgeConfigurations().size() > 0 ) )
636 {
637 serializer.writeStartElement( "repositoryPurgeConfigurations" );
638 for ( Iterator iter = continuumDatabase.getRepositoryPurgeConfigurations().iterator(); iter.hasNext(); )
639 {
640 RepositoryPurgeConfiguration o = (RepositoryPurgeConfiguration) iter.next();
641 writeRepositoryPurgeConfiguration( o, "repositoryPurgeConfiguration", serializer );
642 }
643 serializer.writeEndElement();
644 }
645 if ( ( continuumDatabase.getDirectoryPurgeConfigurations() != null ) && ( continuumDatabase.getDirectoryPurgeConfigurations().size() > 0 ) )
646 {
647 serializer.writeStartElement( "directoryPurgeConfigurations" );
648 for ( Iterator iter = continuumDatabase.getDirectoryPurgeConfigurations().iterator(); iter.hasNext(); )
649 {
650 DirectoryPurgeConfiguration o = (DirectoryPurgeConfiguration) iter.next();
651 writeDirectoryPurgeConfiguration( o, "directoryPurgeConfiguration", serializer );
652 }
653 serializer.writeEndElement();
654 }
655 if ( ( continuumDatabase.getProjectScmRoots() != null ) && ( continuumDatabase.getProjectScmRoots().size() > 0 ) )
656 {
657 serializer.writeStartElement( "projectScmRoots" );
658 for ( Iterator iter = continuumDatabase.getProjectScmRoots().iterator(); iter.hasNext(); )
659 {
660 ProjectScmRoot o = (ProjectScmRoot) iter.next();
661 writeProjectScmRoot( o, "projectScmRoot", serializer );
662 }
663 serializer.writeEndElement();
664 }
665 if ( ( continuumDatabase.getContinuumReleaseResults() != null ) && ( continuumDatabase.getContinuumReleaseResults().size() > 0 ) )
666 {
667 serializer.writeStartElement( "continuumReleaseResults" );
668 for ( Iterator iter = continuumDatabase.getContinuumReleaseResults().iterator(); iter.hasNext(); )
669 {
670 ContinuumReleaseResult o = (ContinuumReleaseResult) iter.next();
671 writeContinuumReleaseResult( o, "continuumReleaseResult", serializer );
672 }
673 serializer.writeEndElement();
674 }
675 if ( ( continuumDatabase.getBuildDefinitionTemplates() != null ) && ( continuumDatabase.getBuildDefinitionTemplates().size() > 0 ) )
676 {
677 serializer.writeStartElement( "buildDefinitionTemplates" );
678 for ( Iterator iter = continuumDatabase.getBuildDefinitionTemplates().iterator(); iter.hasNext(); )
679 {
680 BuildDefinitionTemplate o = (BuildDefinitionTemplate) iter.next();
681 writeBuildDefinitionTemplate( o, "buildDefinitionTemplate", serializer );
682 }
683 serializer.writeEndElement();
684 }
685 if ( ( continuumDatabase.getBuildQueues() != null ) && ( continuumDatabase.getBuildQueues().size() > 0 ) )
686 {
687 serializer.writeStartElement( "buildQueues" );
688 for ( Iterator iter = continuumDatabase.getBuildQueues().iterator(); iter.hasNext(); )
689 {
690 BuildQueue o = (BuildQueue) iter.next();
691 writeBuildQueue( o, "buildQueue", serializer );
692 }
693 serializer.writeEndElement();
694 }
695 if ( ( continuumDatabase.getBuildDefinitions() != null ) && ( continuumDatabase.getBuildDefinitions().size() > 0 ) )
696 {
697 serializer.writeStartElement( "buildDefinitions" );
698 for ( Iterator iter = continuumDatabase.getBuildDefinitions().iterator(); iter.hasNext(); )
699 {
700 BuildDefinition o = (BuildDefinition) iter.next();
701 writeBuildDefinition( o, "buildDefinition", serializer );
702 }
703 serializer.writeEndElement();
704 }
705 serializer.writeEndElement();
706 }
707 }
708
709
710
711
712
713
714
715
716
717
718 private void writeContinuumProjectState( ContinuumProjectState continuumProjectState, String tagName, XMLStreamWriter serializer )
719 throws java.io.IOException, XMLStreamException
720 {
721 if ( continuumProjectState != null )
722 {
723 serializer.writeStartElement( tagName );
724 if ( continuumProjectState.getName() != null )
725 {
726 serializer.writeStartElement( "name" );
727 serializer.writeCharacters( continuumProjectState.getName() );
728 serializer.writeEndElement();
729 }
730 serializer.writeEndElement();
731 }
732 }
733
734
735
736
737
738
739
740
741
742
743 private void writeContinuumReleaseResult( ContinuumReleaseResult continuumReleaseResult, String tagName, XMLStreamWriter serializer )
744 throws java.io.IOException, XMLStreamException
745 {
746 if ( continuumReleaseResult != null )
747 {
748 serializer.writeStartElement( tagName );
749 if ( continuumReleaseResult.getId() != 0 )
750 {
751 serializer.writeStartElement( "id" );
752 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getId() ) );
753 serializer.writeEndElement();
754 }
755 if ( continuumReleaseResult.getStartTime() != 0L )
756 {
757 serializer.writeStartElement( "startTime" );
758 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getStartTime() ) );
759 serializer.writeEndElement();
760 }
761 if ( continuumReleaseResult.getEndTime() != 0L )
762 {
763 serializer.writeStartElement( "endTime" );
764 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getEndTime() ) );
765 serializer.writeEndElement();
766 }
767 if ( continuumReleaseResult.getResultCode() != 0 )
768 {
769 serializer.writeStartElement( "resultCode" );
770 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getResultCode() ) );
771 serializer.writeEndElement();
772 }
773 if ( continuumReleaseResult.getProjectGroup() != null )
774 {
775 serializer.writeStartElement( "projectGroup" );
776 serializer.writeAttribute( "id", String.valueOf( continuumReleaseResult.getProjectGroup().getId() ) );
777 serializer.writeEndElement();
778 }
779 if ( continuumReleaseResult.getProject() != null )
780 {
781 serializer.writeStartElement( "project" );
782 serializer.writeAttribute( "id", String.valueOf( continuumReleaseResult.getProject().getId() ) );
783 serializer.writeEndElement();
784 }
785 if ( continuumReleaseResult.getReleaseGoal() != null )
786 {
787 serializer.writeStartElement( "releaseGoal" );
788 serializer.writeCharacters( continuumReleaseResult.getReleaseGoal() );
789 serializer.writeEndElement();
790 }
791 serializer.writeEndElement();
792 }
793 }
794
795
796
797
798
799
800
801
802
803
804 private void writeDirectoryPurgeConfiguration( DirectoryPurgeConfiguration directoryPurgeConfiguration, String tagName, XMLStreamWriter serializer )
805 throws java.io.IOException, XMLStreamException
806 {
807 if ( directoryPurgeConfiguration != null )
808 {
809 serializer.writeStartElement( tagName );
810 if ( directoryPurgeConfiguration.getLocation() != null )
811 {
812 serializer.writeStartElement( "location" );
813 serializer.writeCharacters( directoryPurgeConfiguration.getLocation() );
814 serializer.writeEndElement();
815 }
816 if ( directoryPurgeConfiguration.getDirectoryType() != null )
817 {
818 serializer.writeStartElement( "directoryType" );
819 serializer.writeCharacters( directoryPurgeConfiguration.getDirectoryType() );
820 serializer.writeEndElement();
821 }
822 if ( directoryPurgeConfiguration.getId() != 0 )
823 {
824 serializer.writeStartElement( "id" );
825 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getId() ) );
826 serializer.writeEndElement();
827 }
828 if ( directoryPurgeConfiguration.getDescription() != null )
829 {
830 serializer.writeStartElement( "description" );
831 serializer.writeCharacters( directoryPurgeConfiguration.getDescription() );
832 serializer.writeEndElement();
833 }
834 if ( directoryPurgeConfiguration.isDeleteAll() != false )
835 {
836 serializer.writeStartElement( "deleteAll" );
837 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isDeleteAll() ) );
838 serializer.writeEndElement();
839 }
840 if ( directoryPurgeConfiguration.getRetentionCount() != 2 )
841 {
842 serializer.writeStartElement( "retentionCount" );
843 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getRetentionCount() ) );
844 serializer.writeEndElement();
845 }
846 if ( directoryPurgeConfiguration.getDaysOlder() != 100 )
847 {
848 serializer.writeStartElement( "daysOlder" );
849 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getDaysOlder() ) );
850 serializer.writeEndElement();
851 }
852 if ( directoryPurgeConfiguration.isEnabled() != true )
853 {
854 serializer.writeStartElement( "enabled" );
855 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isEnabled() ) );
856 serializer.writeEndElement();
857 }
858 if ( directoryPurgeConfiguration.getSchedule() != null )
859 {
860 serializer.writeStartElement( "schedule" );
861 serializer.writeAttribute( "id", String.valueOf( directoryPurgeConfiguration.getSchedule().getId() ) );
862 serializer.writeEndElement();
863 }
864 if ( directoryPurgeConfiguration.isDefaultPurge() != false )
865 {
866 serializer.writeStartElement( "defaultPurge" );
867 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isDefaultPurge() ) );
868 serializer.writeEndElement();
869 }
870 serializer.writeEndElement();
871 }
872 }
873
874
875
876
877
878
879
880
881 private void writeDom( Xpp3Dom dom, XMLStreamWriter serializer )
882 throws XMLStreamException
883 {
884 serializer.writeStartElement( dom.getName() );
885 String[] attributeNames = dom.getAttributeNames();
886 for ( int i = 0; i < attributeNames.length; i++ )
887 {
888 String attributeName = attributeNames[i];
889 serializer.writeAttribute( attributeName, dom.getAttribute( attributeName ) );
890 }
891 Xpp3Dom[] children = dom.getChildren();
892 for ( int i = 0; i < children.length; i++ )
893 {
894 writeDom( children[i], serializer );
895 }
896 String value = dom.getValue();
897 if ( value != null )
898 {
899 serializer.writeCharacters( value );
900 }
901 serializer.writeEndElement();
902 }
903
904
905
906
907
908
909
910
911
912
913 private void writeInstallation( Installation installation, String tagName, XMLStreamWriter serializer )
914 throws java.io.IOException, XMLStreamException
915 {
916 if ( installation != null )
917 {
918 serializer.writeStartElement( tagName );
919 if ( installation.getType() != null )
920 {
921 serializer.writeStartElement( "type" );
922 serializer.writeCharacters( installation.getType() );
923 serializer.writeEndElement();
924 }
925 if ( installation.getVarValue() != null )
926 {
927 serializer.writeStartElement( "varValue" );
928 serializer.writeCharacters( installation.getVarValue() );
929 serializer.writeEndElement();
930 }
931 if ( installation.getVarName() != null )
932 {
933 serializer.writeStartElement( "varName" );
934 serializer.writeCharacters( installation.getVarName() );
935 serializer.writeEndElement();
936 }
937 if ( installation.getName() != null )
938 {
939 serializer.writeStartElement( "name" );
940 serializer.writeCharacters( installation.getName() );
941 serializer.writeEndElement();
942 }
943 if ( installation.getInstallationId() != 0 )
944 {
945 serializer.writeStartElement( "installationId" );
946 serializer.writeCharacters( String.valueOf( installation.getInstallationId() ) );
947 serializer.writeEndElement();
948 }
949 serializer.writeEndElement();
950 }
951 }
952
953
954
955
956
957
958
959
960
961
962 private void writeLocalRepository( LocalRepository localRepository, String tagName, XMLStreamWriter serializer )
963 throws java.io.IOException, XMLStreamException
964 {
965 if ( localRepository != null )
966 {
967 serializer.writeStartElement( tagName );
968 if ( localRepository.getId() != 0 )
969 {
970 serializer.writeStartElement( "id" );
971 serializer.writeCharacters( String.valueOf( localRepository.getId() ) );
972 serializer.writeEndElement();
973 }
974 if ( localRepository.getName() != null )
975 {
976 serializer.writeStartElement( "name" );
977 serializer.writeCharacters( localRepository.getName() );
978 serializer.writeEndElement();
979 }
980 if ( localRepository.getLocation() != null )
981 {
982 serializer.writeStartElement( "location" );
983 serializer.writeCharacters( localRepository.getLocation() );
984 serializer.writeEndElement();
985 }
986 if ( ( localRepository.getLayout() != null ) && !localRepository.getLayout().equals( "default" ) )
987 {
988 serializer.writeStartElement( "layout" );
989 serializer.writeCharacters( localRepository.getLayout() );
990 serializer.writeEndElement();
991 }
992 serializer.writeEndElement();
993 }
994 }
995
996
997
998
999
1000
1001
1002
1003
1004
1005 private void writeNotificationAddress( NotificationAddress notificationAddress, String tagName, XMLStreamWriter serializer )
1006 throws java.io.IOException, XMLStreamException
1007 {
1008 if ( notificationAddress != null )
1009 {
1010 serializer.writeStartElement( tagName );
1011 if ( ( notificationAddress.getType() != null ) && !notificationAddress.getType().equals( "mail" ) )
1012 {
1013 serializer.writeStartElement( "type" );
1014 serializer.writeCharacters( notificationAddress.getType() );
1015 serializer.writeEndElement();
1016 }
1017 if ( notificationAddress.getAddress() != null )
1018 {
1019 serializer.writeStartElement( "address" );
1020 serializer.writeCharacters( notificationAddress.getAddress() );
1021 serializer.writeEndElement();
1022 }
1023 if ( ( notificationAddress.getConfiguration() != null ) && ( notificationAddress.getConfiguration().size() > 0 ) )
1024 {
1025 serializer.writeStartElement( "configuration" );
1026 for ( Iterator iter = notificationAddress.getConfiguration().keySet().iterator(); iter.hasNext(); )
1027 {
1028 String key = (String) iter.next();
1029 String value = (String) notificationAddress.getConfiguration().get( key );
1030 serializer.writeStartElement( "" + key + "" );
1031 serializer.writeCharacters( value );
1032 serializer.writeEndElement();
1033 }
1034 serializer.writeEndElement();
1035 }
1036 serializer.writeEndElement();
1037 }
1038 }
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049 private void writeProfile( Profile profile, String tagName, XMLStreamWriter serializer )
1050 throws java.io.IOException, XMLStreamException
1051 {
1052 if ( profile != null )
1053 {
1054 serializer.writeStartElement( tagName );
1055 if ( profile.getId() != 0 )
1056 {
1057 serializer.writeStartElement( "id" );
1058 serializer.writeCharacters( String.valueOf( profile.getId() ) );
1059 serializer.writeEndElement();
1060 }
1061 if ( profile.isActive() != false )
1062 {
1063 serializer.writeStartElement( "active" );
1064 serializer.writeCharacters( String.valueOf( profile.isActive() ) );
1065 serializer.writeEndElement();
1066 }
1067 if ( profile.getName() != null )
1068 {
1069 serializer.writeStartElement( "name" );
1070 serializer.writeCharacters( profile.getName() );
1071 serializer.writeEndElement();
1072 }
1073 if ( profile.getDescription() != null )
1074 {
1075 serializer.writeStartElement( "description" );
1076 serializer.writeCharacters( profile.getDescription() );
1077 serializer.writeEndElement();
1078 }
1079 if ( profile.getScmMode() != 0 )
1080 {
1081 serializer.writeStartElement( "scmMode" );
1082 serializer.writeCharacters( String.valueOf( profile.getScmMode() ) );
1083 serializer.writeEndElement();
1084 }
1085 if ( profile.isBuildWithoutChanges() != false )
1086 {
1087 serializer.writeStartElement( "buildWithoutChanges" );
1088 serializer.writeCharacters( String.valueOf( profile.isBuildWithoutChanges() ) );
1089 serializer.writeEndElement();
1090 }
1091 if ( ( profile.getBuildAgentGroup() != null ) && !profile.getBuildAgentGroup().equals( "" ) )
1092 {
1093 serializer.writeStartElement( "buildAgentGroup" );
1094 serializer.writeCharacters( profile.getBuildAgentGroup() );
1095 serializer.writeEndElement();
1096 }
1097 if ( profile.getJdk() != null )
1098 {
1099 serializer.writeStartElement( "jdk" );
1100 serializer.writeAttribute( "installationId", String.valueOf( profile.getJdk().getInstallationId() ) );
1101 serializer.writeEndElement();
1102 }
1103 if ( profile.getBuilder() != null )
1104 {
1105 serializer.writeStartElement( "builder" );
1106 serializer.writeAttribute( "installationId", String.valueOf( profile.getBuilder().getInstallationId() ) );
1107 serializer.writeEndElement();
1108 }
1109 if ( ( profile.getEnvironmentVariables() != null ) && ( profile.getEnvironmentVariables().size() > 0 ) )
1110 {
1111 serializer.writeStartElement( "environmentVariables" );
1112 for ( Iterator iter = profile.getEnvironmentVariables().iterator(); iter.hasNext(); )
1113 {
1114 Installation o = (Installation) iter.next();
1115 serializer.writeStartElement( "environmentVariable" );
1116 serializer.writeAttribute( "installationId", String.valueOf( o.getInstallationId() ) );
1117 serializer.writeEndElement();
1118 }
1119 serializer.writeEndElement();
1120 }
1121 serializer.writeEndElement();
1122 }
1123 }
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134 private void writeProject( Project project, String tagName, XMLStreamWriter serializer )
1135 throws java.io.IOException, XMLStreamException
1136 {
1137 if ( project != null )
1138 {
1139 serializer.writeStartElement( tagName );
1140 if ( project.getId() != 0 )
1141 {
1142 serializer.writeStartElement( "id" );
1143 serializer.writeCharacters( String.valueOf( project.getId() ) );
1144 serializer.writeEndElement();
1145 }
1146 if ( project.getGroupId() != null )
1147 {
1148 serializer.writeStartElement( "groupId" );
1149 serializer.writeCharacters( project.getGroupId() );
1150 serializer.writeEndElement();
1151 }
1152 if ( project.getArtifactId() != null )
1153 {
1154 serializer.writeStartElement( "artifactId" );
1155 serializer.writeCharacters( project.getArtifactId() );
1156 serializer.writeEndElement();
1157 }
1158 if ( project.getExecutorId() != null )
1159 {
1160 serializer.writeStartElement( "executorId" );
1161 serializer.writeCharacters( project.getExecutorId() );
1162 serializer.writeEndElement();
1163 }
1164 if ( project.getName() != null )
1165 {
1166 serializer.writeStartElement( "name" );
1167 serializer.writeCharacters( project.getName() );
1168 serializer.writeEndElement();
1169 }
1170 if ( project.getDescription() != null )
1171 {
1172 serializer.writeStartElement( "description" );
1173 serializer.writeCharacters( project.getDescription() );
1174 serializer.writeEndElement();
1175 }
1176 if ( project.getUrl() != null )
1177 {
1178 serializer.writeStartElement( "url" );
1179 serializer.writeCharacters( project.getUrl() );
1180 serializer.writeEndElement();
1181 }
1182 if ( project.getScmUrl() != null )
1183 {
1184 serializer.writeStartElement( "scmUrl" );
1185 serializer.writeCharacters( project.getScmUrl() );
1186 serializer.writeEndElement();
1187 }
1188 if ( project.getScmTag() != null )
1189 {
1190 serializer.writeStartElement( "scmTag" );
1191 serializer.writeCharacters( project.getScmTag() );
1192 serializer.writeEndElement();
1193 }
1194 if ( project.getScmUsername() != null )
1195 {
1196 serializer.writeStartElement( "scmUsername" );
1197 serializer.writeCharacters( project.getScmUsername() );
1198 serializer.writeEndElement();
1199 }
1200 if ( project.getScmPassword() != null )
1201 {
1202 serializer.writeStartElement( "scmPassword" );
1203 serializer.writeCharacters( project.getScmPassword() );
1204 serializer.writeEndElement();
1205 }
1206 if ( project.isScmUseCache() != false )
1207 {
1208 serializer.writeStartElement( "scmUseCache" );
1209 serializer.writeCharacters( String.valueOf( project.isScmUseCache() ) );
1210 serializer.writeEndElement();
1211 }
1212 if ( project.getVersion() != null )
1213 {
1214 serializer.writeStartElement( "version" );
1215 serializer.writeCharacters( project.getVersion() );
1216 serializer.writeEndElement();
1217 }
1218 if ( project.getState() != 1 )
1219 {
1220 serializer.writeStartElement( "state" );
1221 serializer.writeCharacters( String.valueOf( project.getState() ) );
1222 serializer.writeEndElement();
1223 }
1224 if ( project.getOldState() != 0 )
1225 {
1226 serializer.writeStartElement( "oldState" );
1227 serializer.writeCharacters( String.valueOf( project.getOldState() ) );
1228 serializer.writeEndElement();
1229 }
1230 if ( project.getLatestBuildId() != 0 )
1231 {
1232 serializer.writeStartElement( "latestBuildId" );
1233 serializer.writeCharacters( String.valueOf( project.getLatestBuildId() ) );
1234 serializer.writeEndElement();
1235 }
1236 if ( project.getBuildNumber() != 0 )
1237 {
1238 serializer.writeStartElement( "buildNumber" );
1239 serializer.writeCharacters( String.valueOf( project.getBuildNumber() ) );
1240 serializer.writeEndElement();
1241 }
1242 if ( project.getWorkingDirectory() != null )
1243 {
1244 serializer.writeStartElement( "workingDirectory" );
1245 serializer.writeCharacters( project.getWorkingDirectory() );
1246 serializer.writeEndElement();
1247 }
1248 if ( project.getRelativePath() != null )
1249 {
1250 serializer.writeStartElement( "relativePath" );
1251 serializer.writeCharacters( project.getRelativePath() );
1252 serializer.writeEndElement();
1253 }
1254 if ( ( project.getBuildResults() != null ) && ( project.getBuildResults().size() > 0 ) )
1255 {
1256 serializer.writeStartElement( "buildResults" );
1257 for ( Iterator iter = project.getBuildResults().iterator(); iter.hasNext(); )
1258 {
1259 BuildResult o = (BuildResult) iter.next();
1260 writeBuildResult( o, "buildResult", serializer );
1261 }
1262 serializer.writeEndElement();
1263 }
1264 if ( project.getCheckoutResult() != null )
1265 {
1266 writeScmResult( (ScmResult) project.getCheckoutResult(), "checkoutResult", serializer );
1267 }
1268 if ( ( project.getDevelopers() != null ) && ( project.getDevelopers().size() > 0 ) )
1269 {
1270 serializer.writeStartElement( "developers" );
1271 for ( Iterator iter = project.getDevelopers().iterator(); iter.hasNext(); )
1272 {
1273 ProjectDeveloper o = (ProjectDeveloper) iter.next();
1274 writeProjectDeveloper( o, "developer", serializer );
1275 }
1276 serializer.writeEndElement();
1277 }
1278 if ( project.getParent() != null )
1279 {
1280 writeProjectDependency( (ProjectDependency) project.getParent(), "parent", serializer );
1281 }
1282 if ( ( project.getDependencies() != null ) && ( project.getDependencies().size() > 0 ) )
1283 {
1284 serializer.writeStartElement( "dependencies" );
1285 for ( Iterator iter = project.getDependencies().iterator(); iter.hasNext(); )
1286 {
1287 ProjectDependency o = (ProjectDependency) iter.next();
1288 writeProjectDependency( o, "dependency", serializer );
1289 }
1290 serializer.writeEndElement();
1291 }
1292 if ( project.getProjectGroup() != null )
1293 {
1294 serializer.writeStartElement( "projectGroup" );
1295 serializer.writeAttribute( "id", String.valueOf( project.getProjectGroup().getId() ) );
1296 serializer.writeEndElement();
1297 }
1298 if ( ( project.getNotifiers() != null ) && ( project.getNotifiers().size() > 0 ) )
1299 {
1300 serializer.writeStartElement( "notifiers" );
1301 for ( Iterator iter = project.getNotifiers().iterator(); iter.hasNext(); )
1302 {
1303 ProjectNotifier o = (ProjectNotifier) iter.next();
1304 writeProjectNotifier( o, "notifier", serializer );
1305 }
1306 serializer.writeEndElement();
1307 }
1308 if ( ( project.getBuildDefinitions() != null ) && ( project.getBuildDefinitions().size() > 0 ) )
1309 {
1310 serializer.writeStartElement( "buildDefinitions" );
1311 for ( Iterator iter = project.getBuildDefinitions().iterator(); iter.hasNext(); )
1312 {
1313 BuildDefinition o = (BuildDefinition) iter.next();
1314 writeBuildDefinition( o, "buildDefinition", serializer );
1315 }
1316 serializer.writeEndElement();
1317 }
1318 serializer.writeEndElement();
1319 }
1320 }
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331 private void writeProjectDependency( ProjectDependency projectDependency, String tagName, XMLStreamWriter serializer )
1332 throws java.io.IOException, XMLStreamException
1333 {
1334 if ( projectDependency != null )
1335 {
1336 serializer.writeStartElement( tagName );
1337 if ( projectDependency.getGroupId() != null )
1338 {
1339 serializer.writeStartElement( "groupId" );
1340 serializer.writeCharacters( projectDependency.getGroupId() );
1341 serializer.writeEndElement();
1342 }
1343 if ( projectDependency.getArtifactId() != null )
1344 {
1345 serializer.writeStartElement( "artifactId" );
1346 serializer.writeCharacters( projectDependency.getArtifactId() );
1347 serializer.writeEndElement();
1348 }
1349 if ( projectDependency.getVersion() != null )
1350 {
1351 serializer.writeStartElement( "version" );
1352 serializer.writeCharacters( projectDependency.getVersion() );
1353 serializer.writeEndElement();
1354 }
1355 serializer.writeEndElement();
1356 }
1357 }
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368 private void writeProjectDeveloper( ProjectDeveloper projectDeveloper, String tagName, XMLStreamWriter serializer )
1369 throws java.io.IOException, XMLStreamException
1370 {
1371 if ( projectDeveloper != null )
1372 {
1373 serializer.writeStartElement( tagName );
1374 if ( projectDeveloper.getScmId() != null )
1375 {
1376 serializer.writeStartElement( "scmId" );
1377 serializer.writeCharacters( projectDeveloper.getScmId() );
1378 serializer.writeEndElement();
1379 }
1380 if ( projectDeveloper.getName() != null )
1381 {
1382 serializer.writeStartElement( "name" );
1383 serializer.writeCharacters( projectDeveloper.getName() );
1384 serializer.writeEndElement();
1385 }
1386 if ( projectDeveloper.getEmail() != null )
1387 {
1388 serializer.writeStartElement( "email" );
1389 serializer.writeCharacters( projectDeveloper.getEmail() );
1390 serializer.writeEndElement();
1391 }
1392 if ( projectDeveloper.getContinuumId() != 0 )
1393 {
1394 serializer.writeStartElement( "continuumId" );
1395 serializer.writeCharacters( String.valueOf( projectDeveloper.getContinuumId() ) );
1396 serializer.writeEndElement();
1397 }
1398 serializer.writeEndElement();
1399 }
1400 }
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411 private void writeProjectGroup( ProjectGroup projectGroup, String tagName, XMLStreamWriter serializer )
1412 throws java.io.IOException, XMLStreamException
1413 {
1414 if ( projectGroup != null )
1415 {
1416 serializer.writeStartElement( tagName );
1417 if ( projectGroup.getId() != 0 )
1418 {
1419 serializer.writeStartElement( "id" );
1420 serializer.writeCharacters( String.valueOf( projectGroup.getId() ) );
1421 serializer.writeEndElement();
1422 }
1423 if ( projectGroup.getGroupId() != null )
1424 {
1425 serializer.writeStartElement( "groupId" );
1426 serializer.writeCharacters( projectGroup.getGroupId() );
1427 serializer.writeEndElement();
1428 }
1429 if ( projectGroup.getName() != null )
1430 {
1431 serializer.writeStartElement( "name" );
1432 serializer.writeCharacters( projectGroup.getName() );
1433 serializer.writeEndElement();
1434 }
1435 if ( projectGroup.getDescription() != null )
1436 {
1437 serializer.writeStartElement( "description" );
1438 serializer.writeCharacters( projectGroup.getDescription() );
1439 serializer.writeEndElement();
1440 }
1441 if ( ( projectGroup.getProjects() != null ) && ( projectGroup.getProjects().size() > 0 ) )
1442 {
1443 serializer.writeStartElement( "projects" );
1444 for ( Iterator iter = projectGroup.getProjects().iterator(); iter.hasNext(); )
1445 {
1446 Project o = (Project) iter.next();
1447 writeProject( o, "project", serializer );
1448 }
1449 serializer.writeEndElement();
1450 }
1451 if ( ( projectGroup.getNotifiers() != null ) && ( projectGroup.getNotifiers().size() > 0 ) )
1452 {
1453 serializer.writeStartElement( "notifiers" );
1454 for ( Iterator iter = projectGroup.getNotifiers().iterator(); iter.hasNext(); )
1455 {
1456 ProjectNotifier o = (ProjectNotifier) iter.next();
1457 writeProjectNotifier( o, "notifier", serializer );
1458 }
1459 serializer.writeEndElement();
1460 }
1461 if ( ( projectGroup.getBuildDefinitions() != null ) && ( projectGroup.getBuildDefinitions().size() > 0 ) )
1462 {
1463 serializer.writeStartElement( "buildDefinitions" );
1464 for ( Iterator iter = projectGroup.getBuildDefinitions().iterator(); iter.hasNext(); )
1465 {
1466 BuildDefinition o = (BuildDefinition) iter.next();
1467 writeBuildDefinition( o, "buildDefinition", serializer );
1468 }
1469 serializer.writeEndElement();
1470 }
1471 if ( projectGroup.getLocalRepository() != null )
1472 {
1473 serializer.writeStartElement( "localRepository" );
1474 serializer.writeAttribute( "id", String.valueOf( projectGroup.getLocalRepository().getId() ) );
1475 serializer.writeEndElement();
1476 }
1477 serializer.writeEndElement();
1478 }
1479 }
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490 private void writeProjectNotifier( ProjectNotifier projectNotifier, String tagName, XMLStreamWriter serializer )
1491 throws java.io.IOException, XMLStreamException
1492 {
1493 if ( projectNotifier != null )
1494 {
1495 serializer.writeStartElement( tagName );
1496 if ( projectNotifier.getId() != 0 )
1497 {
1498 serializer.writeStartElement( "id" );
1499 serializer.writeCharacters( String.valueOf( projectNotifier.getId() ) );
1500 serializer.writeEndElement();
1501 }
1502 if ( ( projectNotifier.getType() != null ) && !projectNotifier.getType().equals( "mail" ) )
1503 {
1504 serializer.writeStartElement( "type" );
1505 serializer.writeCharacters( projectNotifier.getType() );
1506 serializer.writeEndElement();
1507 }
1508 if ( projectNotifier.getFrom() != 0 )
1509 {
1510 serializer.writeStartElement( "from" );
1511 serializer.writeCharacters( String.valueOf( projectNotifier.getFrom() ) );
1512 serializer.writeEndElement();
1513 }
1514 if ( projectNotifier.isEnabled() != true )
1515 {
1516 serializer.writeStartElement( "enabled" );
1517 serializer.writeCharacters( String.valueOf( projectNotifier.isEnabled() ) );
1518 serializer.writeEndElement();
1519 }
1520 if ( projectNotifier.getRecipientType() != 0 )
1521 {
1522 serializer.writeStartElement( "recipientType" );
1523 serializer.writeCharacters( String.valueOf( projectNotifier.getRecipientType() ) );
1524 serializer.writeEndElement();
1525 }
1526 if ( projectNotifier.isSendOnSuccess() != true )
1527 {
1528 serializer.writeStartElement( "sendOnSuccess" );
1529 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnSuccess() ) );
1530 serializer.writeEndElement();
1531 }
1532 if ( projectNotifier.isSendOnFailure() != true )
1533 {
1534 serializer.writeStartElement( "sendOnFailure" );
1535 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnFailure() ) );
1536 serializer.writeEndElement();
1537 }
1538 if ( projectNotifier.isSendOnError() != true )
1539 {
1540 serializer.writeStartElement( "sendOnError" );
1541 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnError() ) );
1542 serializer.writeEndElement();
1543 }
1544 if ( projectNotifier.isSendOnWarning() != true )
1545 {
1546 serializer.writeStartElement( "sendOnWarning" );
1547 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnWarning() ) );
1548 serializer.writeEndElement();
1549 }
1550 if ( ( projectNotifier.getConfiguration() != null ) && ( projectNotifier.getConfiguration().size() > 0 ) )
1551 {
1552 serializer.writeStartElement( "configuration" );
1553 for ( Iterator iter = projectNotifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
1554 {
1555 String key = (String) iter.next();
1556 String value = (String) projectNotifier.getConfiguration().get( key );
1557 serializer.writeStartElement( "" + key + "" );
1558 serializer.writeCharacters( value );
1559 serializer.writeEndElement();
1560 }
1561 serializer.writeEndElement();
1562 }
1563 if ( projectNotifier.isSendOnScmFailure() != false )
1564 {
1565 serializer.writeStartElement( "sendOnScmFailure" );
1566 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnScmFailure() ) );
1567 serializer.writeEndElement();
1568 }
1569 serializer.writeEndElement();
1570 }
1571 }
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582 private void writeProjectScmRoot( ProjectScmRoot projectScmRoot, String tagName, XMLStreamWriter serializer )
1583 throws java.io.IOException, XMLStreamException
1584 {
1585 if ( projectScmRoot != null )
1586 {
1587 serializer.writeStartElement( tagName );
1588 if ( projectScmRoot.getId() != 0 )
1589 {
1590 serializer.writeStartElement( "id" );
1591 serializer.writeCharacters( String.valueOf( projectScmRoot.getId() ) );
1592 serializer.writeEndElement();
1593 }
1594 if ( projectScmRoot.getScmRootAddress() != null )
1595 {
1596 serializer.writeStartElement( "scmRootAddress" );
1597 serializer.writeCharacters( projectScmRoot.getScmRootAddress() );
1598 serializer.writeEndElement();
1599 }
1600 if ( projectScmRoot.getOldState() != 0 )
1601 {
1602 serializer.writeStartElement( "oldState" );
1603 serializer.writeCharacters( String.valueOf( projectScmRoot.getOldState() ) );
1604 serializer.writeEndElement();
1605 }
1606 if ( projectScmRoot.getState() != 0 )
1607 {
1608 serializer.writeStartElement( "state" );
1609 serializer.writeCharacters( String.valueOf( projectScmRoot.getState() ) );
1610 serializer.writeEndElement();
1611 }
1612 if ( projectScmRoot.getError() != null )
1613 {
1614 serializer.writeStartElement( "error" );
1615 serializer.writeCharacters( projectScmRoot.getError() );
1616 serializer.writeEndElement();
1617 }
1618 if ( projectScmRoot.getProjectGroup() != null )
1619 {
1620 serializer.writeStartElement( "projectGroup" );
1621 serializer.writeAttribute( "id", String.valueOf( projectScmRoot.getProjectGroup().getId() ) );
1622 serializer.writeEndElement();
1623 }
1624 serializer.writeEndElement();
1625 }
1626 }
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637 private void writeRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repositoryPurgeConfiguration, String tagName, XMLStreamWriter serializer )
1638 throws java.io.IOException, XMLStreamException
1639 {
1640 if ( repositoryPurgeConfiguration != null )
1641 {
1642 serializer.writeStartElement( tagName );
1643 if ( repositoryPurgeConfiguration.getRepository() != null )
1644 {
1645 serializer.writeStartElement( "repository" );
1646 serializer.writeAttribute( "id", String.valueOf( repositoryPurgeConfiguration.getRepository().getId() ) );
1647 serializer.writeEndElement();
1648 }
1649 if ( repositoryPurgeConfiguration.isDeleteReleasedSnapshots() != false )
1650 {
1651 serializer.writeStartElement( "deleteReleasedSnapshots" );
1652 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDeleteReleasedSnapshots() ) );
1653 serializer.writeEndElement();
1654 }
1655 if ( repositoryPurgeConfiguration.getId() != 0 )
1656 {
1657 serializer.writeStartElement( "id" );
1658 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getId() ) );
1659 serializer.writeEndElement();
1660 }
1661 if ( repositoryPurgeConfiguration.getDescription() != null )
1662 {
1663 serializer.writeStartElement( "description" );
1664 serializer.writeCharacters( repositoryPurgeConfiguration.getDescription() );
1665 serializer.writeEndElement();
1666 }
1667 if ( repositoryPurgeConfiguration.isDeleteAll() != false )
1668 {
1669 serializer.writeStartElement( "deleteAll" );
1670 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDeleteAll() ) );
1671 serializer.writeEndElement();
1672 }
1673 if ( repositoryPurgeConfiguration.getRetentionCount() != 2 )
1674 {
1675 serializer.writeStartElement( "retentionCount" );
1676 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getRetentionCount() ) );
1677 serializer.writeEndElement();
1678 }
1679 if ( repositoryPurgeConfiguration.getDaysOlder() != 100 )
1680 {
1681 serializer.writeStartElement( "daysOlder" );
1682 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getDaysOlder() ) );
1683 serializer.writeEndElement();
1684 }
1685 if ( repositoryPurgeConfiguration.isEnabled() != true )
1686 {
1687 serializer.writeStartElement( "enabled" );
1688 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isEnabled() ) );
1689 serializer.writeEndElement();
1690 }
1691 if ( repositoryPurgeConfiguration.getSchedule() != null )
1692 {
1693 serializer.writeStartElement( "schedule" );
1694 serializer.writeAttribute( "id", String.valueOf( repositoryPurgeConfiguration.getSchedule().getId() ) );
1695 serializer.writeEndElement();
1696 }
1697 if ( repositoryPurgeConfiguration.isDefaultPurge() != false )
1698 {
1699 serializer.writeStartElement( "defaultPurge" );
1700 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDefaultPurge() ) );
1701 serializer.writeEndElement();
1702 }
1703 serializer.writeEndElement();
1704 }
1705 }
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716 private void writeSchedule( Schedule schedule, String tagName, XMLStreamWriter serializer )
1717 throws java.io.IOException, XMLStreamException
1718 {
1719 if ( schedule != null )
1720 {
1721 serializer.writeStartElement( tagName );
1722 if ( schedule.getId() != 0 )
1723 {
1724 serializer.writeStartElement( "id" );
1725 serializer.writeCharacters( String.valueOf( schedule.getId() ) );
1726 serializer.writeEndElement();
1727 }
1728 if ( schedule.isActive() != false )
1729 {
1730 serializer.writeStartElement( "active" );
1731 serializer.writeCharacters( String.valueOf( schedule.isActive() ) );
1732 serializer.writeEndElement();
1733 }
1734 if ( schedule.getName() != null )
1735 {
1736 serializer.writeStartElement( "name" );
1737 serializer.writeCharacters( schedule.getName() );
1738 serializer.writeEndElement();
1739 }
1740 if ( schedule.getDescription() != null )
1741 {
1742 serializer.writeStartElement( "description" );
1743 serializer.writeCharacters( schedule.getDescription() );
1744 serializer.writeEndElement();
1745 }
1746 if ( schedule.getDelay() != 0 )
1747 {
1748 serializer.writeStartElement( "delay" );
1749 serializer.writeCharacters( String.valueOf( schedule.getDelay() ) );
1750 serializer.writeEndElement();
1751 }
1752 if ( schedule.getMaxJobExecutionTime() != 3600 )
1753 {
1754 serializer.writeStartElement( "maxJobExecutionTime" );
1755 serializer.writeCharacters( String.valueOf( schedule.getMaxJobExecutionTime() ) );
1756 serializer.writeEndElement();
1757 }
1758 if ( schedule.getCronExpression() != null )
1759 {
1760 serializer.writeStartElement( "cronExpression" );
1761 serializer.writeCharacters( schedule.getCronExpression() );
1762 serializer.writeEndElement();
1763 }
1764 if ( ( schedule.getBuildQueues() != null ) && ( schedule.getBuildQueues().size() > 0 ) )
1765 {
1766 serializer.writeStartElement( "buildQueues" );
1767 for ( Iterator iter = schedule.getBuildQueues().iterator(); iter.hasNext(); )
1768 {
1769 BuildQueue o = (BuildQueue) iter.next();
1770 serializer.writeStartElement( "buildQueue" );
1771 serializer.writeAttribute( "id", String.valueOf( o.getId() ) );
1772 serializer.writeEndElement();
1773 }
1774 serializer.writeEndElement();
1775 }
1776 serializer.writeEndElement();
1777 }
1778 }
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789 private void writeScmResult( ScmResult scmResult, String tagName, XMLStreamWriter serializer )
1790 throws java.io.IOException, XMLStreamException
1791 {
1792 if ( scmResult != null )
1793 {
1794 serializer.writeStartElement( tagName );
1795 if ( scmResult.isSuccess() != false )
1796 {
1797 serializer.writeStartElement( "success" );
1798 serializer.writeCharacters( String.valueOf( scmResult.isSuccess() ) );
1799 serializer.writeEndElement();
1800 }
1801 if ( scmResult.getCommandLine() != null )
1802 {
1803 serializer.writeStartElement( "commandLine" );
1804 serializer.writeCharacters( scmResult.getCommandLine() );
1805 serializer.writeEndElement();
1806 }
1807 if ( scmResult.getProviderMessage() != null )
1808 {
1809 serializer.writeStartElement( "providerMessage" );
1810 serializer.writeCharacters( scmResult.getProviderMessage() );
1811 serializer.writeEndElement();
1812 }
1813 if ( scmResult.getCommandOutput() != null )
1814 {
1815 serializer.writeStartElement( "commandOutput" );
1816 serializer.writeCharacters( scmResult.getCommandOutput() );
1817 serializer.writeEndElement();
1818 }
1819 if ( scmResult.getException() != null )
1820 {
1821 serializer.writeStartElement( "exception" );
1822 serializer.writeCharacters( scmResult.getException() );
1823 serializer.writeEndElement();
1824 }
1825 if ( ( scmResult.getChanges() != null ) && ( scmResult.getChanges().size() > 0 ) )
1826 {
1827 serializer.writeStartElement( "changes" );
1828 for ( Iterator iter = scmResult.getChanges().iterator(); iter.hasNext(); )
1829 {
1830 ChangeSet o = (ChangeSet) iter.next();
1831 writeChangeSet( o, "change", serializer );
1832 }
1833 serializer.writeEndElement();
1834 }
1835 serializer.writeEndElement();
1836 }
1837 }
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848 private void writeSystemConfiguration( SystemConfiguration systemConfiguration, String tagName, XMLStreamWriter serializer )
1849 throws java.io.IOException, XMLStreamException
1850 {
1851 if ( systemConfiguration != null )
1852 {
1853 serializer.writeStartElement( tagName );
1854 if ( systemConfiguration.isGuestAccountEnabled() != true )
1855 {
1856 serializer.writeStartElement( "guestAccountEnabled" );
1857 serializer.writeCharacters( String.valueOf( systemConfiguration.isGuestAccountEnabled() ) );
1858 serializer.writeEndElement();
1859 }
1860 if ( ( systemConfiguration.getDefaultScheduleDescription() != null ) && !systemConfiguration.getDefaultScheduleDescription().equals( "Run hourly" ) )
1861 {
1862 serializer.writeStartElement( "defaultScheduleDescription" );
1863 serializer.writeCharacters( systemConfiguration.getDefaultScheduleDescription() );
1864 serializer.writeEndElement();
1865 }
1866 if ( ( systemConfiguration.getDefaultScheduleCronExpression() != null ) && !systemConfiguration.getDefaultScheduleCronExpression().equals( "0 0 * * * ?" ) )
1867 {
1868 serializer.writeStartElement( "defaultScheduleCronExpression" );
1869 serializer.writeCharacters( systemConfiguration.getDefaultScheduleCronExpression() );
1870 serializer.writeEndElement();
1871 }
1872 if ( ( systemConfiguration.getWorkingDirectory() != null ) && !systemConfiguration.getWorkingDirectory().equals( "working-directory" ) )
1873 {
1874 serializer.writeStartElement( "workingDirectory" );
1875 serializer.writeCharacters( systemConfiguration.getWorkingDirectory() );
1876 serializer.writeEndElement();
1877 }
1878 if ( ( systemConfiguration.getBuildOutputDirectory() != null ) && !systemConfiguration.getBuildOutputDirectory().equals( "build-output-directory" ) )
1879 {
1880 serializer.writeStartElement( "buildOutputDirectory" );
1881 serializer.writeCharacters( systemConfiguration.getBuildOutputDirectory() );
1882 serializer.writeEndElement();
1883 }
1884 if ( systemConfiguration.getDeploymentRepositoryDirectory() != null )
1885 {
1886 serializer.writeStartElement( "deploymentRepositoryDirectory" );
1887 serializer.writeCharacters( systemConfiguration.getDeploymentRepositoryDirectory() );
1888 serializer.writeEndElement();
1889 }
1890 if ( systemConfiguration.getBaseUrl() != null )
1891 {
1892 serializer.writeStartElement( "baseUrl" );
1893 serializer.writeCharacters( systemConfiguration.getBaseUrl() );
1894 serializer.writeEndElement();
1895 }
1896 if ( systemConfiguration.isInitialized() != false )
1897 {
1898 serializer.writeStartElement( "initialized" );
1899 serializer.writeCharacters( String.valueOf( systemConfiguration.isInitialized() ) );
1900 serializer.writeEndElement();
1901 }
1902 if ( ( systemConfiguration.getReleaseOutputDirectory() != null ) && !systemConfiguration.getReleaseOutputDirectory().equals( "release-output-directory" ) )
1903 {
1904 serializer.writeStartElement( "releaseOutputDirectory" );
1905 serializer.writeCharacters( systemConfiguration.getReleaseOutputDirectory() );
1906 serializer.writeEndElement();
1907 }
1908 if ( systemConfiguration.getNumberOfBuildsInParallel() != 1 )
1909 {
1910 serializer.writeStartElement( "numberOfBuildsInParallel" );
1911 serializer.writeCharacters( String.valueOf( systemConfiguration.getNumberOfBuildsInParallel() ) );
1912 serializer.writeEndElement();
1913 }
1914 if ( systemConfiguration.isDistributedBuildEnabled() != false )
1915 {
1916 serializer.writeStartElement( "distributedBuildEnabled" );
1917 serializer.writeCharacters( String.valueOf( systemConfiguration.isDistributedBuildEnabled() ) );
1918 serializer.writeEndElement();
1919 }
1920 serializer.writeEndElement();
1921 }
1922 }
1923
1924 }