View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   // Generated by Modello 2.0.0,
3   // any modifications will be overwritten.
4   // ==============================================================
5   
6   package org.apache.maven.shared.release.config;
7   
8   /**
9    * Class ModelloReleaseDescriptor.
10   * 
11   * @version $Revision$ $Date$
12   */
13  @SuppressWarnings( "all" )
14  public class ModelloReleaseDescriptor
15      implements java.io.Serializable
16  {
17  
18        //--------------------------/
19       //- Class/Member Variables -/
20      //--------------------------/
21  
22      /**
23       * 
24       *             The name of this release configuration
25       *           .
26       */
27      private String name;
28  
29      /**
30       * 
31       *             The description of this release configuration
32       *           .
33       */
34      private String description;
35  
36      /**
37       * 
38       *             The prefix of SCM modification messages
39       *           .
40       */
41      private String ScmCommentPrefix = "[maven-release-manager] ";
42  
43      /**
44       * 
45       *             Get whether to use a shallow clone with no
46       * history or a full clone containing the full history during
47       * the
48       *             release
49       *           .
50       */
51      private boolean scmShallowClone = true;
52  
53      /**
54       * 
55       *             The SCM commit comment when setting pom.xml to
56       * release
57       *           .
58       */
59      private String scmReleaseCommitComment = "@{prefix} prepare release @{releaseLabel}";
60  
61      /**
62       * 
63       *             The SCM commit comment when setting pom.xml back
64       * to development
65       *           .
66       */
67      private String scmDevelopmentCommitComment = "@{prefix} prepare for next development iteration";
68  
69      /**
70       * 
71       *             The SCM commit comment when branching
72       *           .
73       */
74      private String scmBranchCommitComment = "@{prefix} prepare branch @{releaseLabel}";
75  
76      /**
77       * 
78       *             The SCM commit comment when rolling back
79       *           .
80       */
81      private String scmRollbackCommitComment = "@{prefix} rollback the release of @{releaseLabel}";
82  
83      /**
84       * 
85       *             This is a MavenSCM of where you're going to get
86       * the sources to make the release with.
87       *             Example:
88       * scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-release-plugin
89       *           .
90       */
91      private String scmSourceUrl;
92  
93      /**
94       * 
95       *             Where you are going to put your tagged sources
96       *             Example
97       * https://svn.apache.org/repos/asf/maven/plugins/tags
98       *           .
99       */
100     private String scmTagBase;
101 
102     /**
103      * 
104      *             Where you are going to put your branched sources
105      *             Example
106      * https://svn.apache.org/repos/asf/maven/plugins/branches
107      *           .
108      */
109     private String scmBranchBase;
110 
111     /**
112      * 
113      *             tag or branch name: the identifier for the
114      * tag/branch.
115      *             Example: maven-release-plugin-2.0
116      *           .
117      */
118     private String scmReleaseLabel;
119 
120     /**
121      * 
122      *             The id can be used to get the credentials by the
123      * server-id from the settings.xml
124      *           .
125      */
126     private String scmId;
127 
128     /**
129      * 
130      *             The user name to interact with the scm
131      *           .
132      */
133     private String scmUsername;
134 
135     /**
136      * 
137      *             The password for the user interacting with the
138      * scm
139      *           .
140      */
141     private String scmPassword;
142 
143     /**
144      * 
145      *             Private key for an SSH based SCM repository.
146      *           
147      */
148     private String scmPrivateKey;
149 
150     /**
151      * 
152      *             Pass phrase for the private key.
153      *           
154      */
155     private String scmPrivateKeyPassPhrase;
156 
157     /**
158      * 
159      *             Whether to use edit mode when making SCM
160      * modifications. This setting is disregarded
161      *             if the SCM does not support edit mode, or if
162      * edit mode is compulsory for the given SCM.
163      *           
164      */
165     private boolean scmUseEditMode = false;
166 
167     /**
168      * 
169      *             Relative path of the project returned by the
170      * checkout command.
171      *           
172      */
173     private String scmRelativePathProjectDirectory;
174 
175     /**
176      * 
177      *             If updateDependencies is false, dependencies
178      * version won't be updated to the next development version.
179      *           
180      */
181     private boolean updateDependencies = true;
182 
183     /**
184      * 
185      *             Whether to use the release profile that adds
186      * sources and javadocs to the released artifact, if
187      * appropriate.
188      *             If set to true, this will set the property
189      * "performRelease" to true.
190      *           
191      */
192     private boolean useReleaseProfile = true;
193 
194     /**
195      * Field activateProfiles.
196      */
197     private java.util.List<String> activateProfiles;
198 
199     /**
200      * 
201      *             The directory where the release is performed.
202      *           
203      */
204     private String workingDirectory;
205 
206     /**
207      * 
208      *             The directory where the tag will be checked out.
209      *           
210      */
211     private String checkoutDirectory = "target/checkout";
212 
213     /**
214      * 
215      *             The last completed phase.
216      *           
217      */
218     private String completedPhase;
219 
220     /**
221      * 
222      *             Whether to add the model schema to the top of
223      * the rewritten POM if it wasn't there already.
224      *             If <code>false</code> then the root element will
225      * remain untouched.
226      *           
227      */
228     private boolean addSchema = false;
229 
230     /**
231      * 
232      *             Whether to generate release POMs.
233      *           
234      */
235     private boolean generateReleasePoms = false;
236 
237     /**
238      * 
239      *             Whether to use the parent pom version for
240      * submodule versions.
241      *           
242      */
243     private boolean autoVersionSubmodules = false;
244 
245     /**
246      * 
247      *             Whether the release process is interactive and
248      * the release manager should be prompted to
249      *             confirm values, or whether the defaults are used
250      * regardless.
251      *           
252      */
253     private boolean interactive = true;
254 
255     /**
256      * 
257      *             Whether a SNAPSHOT of the release plugin is
258      * allowed.
259      *           
260      */
261     private boolean snapshotReleasePluginAllowed = false;
262 
263     /**
264      * 
265      *             Additional arguments to pass to any executed
266      * Maven process.
267      *           
268      */
269     private String additionalArguments;
270 
271     /**
272      * 
273      *             The file name of the POM to pass to any executed
274      * Maven process.
275      *           
276      */
277     private String pomFileName;
278 
279     /**
280      * Field checkModificationExcludes.
281      */
282     private java.util.List<String> checkModificationExcludes;
283 
284     /**
285      * 
286      *             The goals to execute in preparation for the
287      * release.
288      *           
289      */
290     private String preparationGoals;
291 
292     /**
293      * 
294      *             The goals to execute in on completion of
295      * preparation for the release.
296      *           
297      */
298     private String completionGoals;
299 
300     /**
301      * 
302      *             The goals to execute in perform phase for the
303      * release.
304      *           
305      */
306     private String performGoals;
307 
308     /**
309      * 
310      *             The commits must be done by modules or not. Set
311      * it to true in case of flat directory structure.
312      *           
313      */
314     private boolean commitByProject = false;
315 
316     /**
317      * 
318      *             Whether to create a branch instead of do a
319      * release.
320      *           
321      */
322     private boolean branchCreation = false;
323 
324     /**
325      * 
326      *             Whether to update branch POM versions.
327      *           
328      */
329     private boolean updateBranchVersions = false;
330 
331     /**
332      * 
333      *             Whether to update working copy POM versions.
334      *           
335      */
336     private boolean updateWorkingCopyVersions = true;
337 
338     /**
339      * 
340      *             Whether to update branch versions to SNAPSHOT.
341      *           
342      */
343     private boolean updateVersionsToSnapshot = false;
344 
345     /**
346      * 
347      *             Whether to suppress a commit of changes to the
348      * working copy before a tag or branch is created.
349      *           
350      */
351     private boolean suppressCommitBeforeTagOrBranch = false;
352 
353     /**
354      * 
355      *             Wait the specified number of seconds before
356      * creating a tag.
357      *           
358      */
359     private int waitBeforeTagging = 0;
360 
361     /**
362      * 
363      *             Should timestamped SNAPSHOT dependencies be
364      * allowed?  Default is to fail when any SNAPSHOT
365      *               dependency is found.
366      *           
367      */
368     private boolean allowTimestampedSnapshots = false;
369 
370     /**
371      * 
372      *             Default version to use for the tagged release or
373      * the new branch.
374      *           
375      */
376     private String defaultReleaseVersion;
377 
378     /**
379      * 
380      *             Default version to use for new working copy.
381      *           
382      */
383     private String defaultDevelopmentVersion;
384 
385     /**
386      * 
387      *             The role-hint for the VersionPolicy
388      * implementation used to calculate the project versions.
389      *           
390      */
391     private String projectVersionPolicyId = "default";
392 
393     /**
394      * 
395      *             The optional config string for the VersionPolicy
396      * implementation used to calculate the project versions.
397      *             The format of this depends on the specific
398      * VersionPolicy that is used.
399      *           
400      */
401     private Object projectVersionPolicyConfig;
402 
403     /**
404      * 
405      *             The role-hint for the NamingPolicy
406      * implementation used to calculate the project branch and tag
407      * names.
408      *           
409      */
410     private String projectNamingPolicyId;
411 
412     /**
413      * 
414      *             The role-hint for the release Strategy
415      * implementation.
416      *           
417      */
418     private String releaseStrategyId = "default";
419 
420     /**
421      * 
422      *             NOTE : currently only implemented with svn scm.
423      * Enable a workaround to prevent issue due to svn client &gt;
424      * 1.5.0
425      *             (https://issues.apache.org/jira/browse/SCM-406)
426      *           .
427      */
428     private boolean remoteTagging = false;
429 
430     /**
431      * 
432      *             NOTE : currently only implemented with svn scm.
433      * It contains the revision of the committed released pom to
434      * remotely tag
435      *             the source code with this revision.
436      *           
437      */
438     private String scmReleasedPomRevision;
439 
440     /**
441      * 
442      *             Should distributed changes be pushed to the
443      * central repository?
444      *             For many distributed SCMs like Git, a change
445      * like a commit is only stored in your local copy of the
446      * repository.
447      *             Pushing the change allows your to more easily
448      * share it with other users.
449      *           
450      */
451     private boolean pushChanges = true;
452 
453     /**
454      * 
455      *             If the scm provider should use local checkouts
456      * via file://${basedir}
457      *             instead of doing a clean checkout over the
458      * network.
459      *             This is very helpful for releasing large
460      * projects!
461      *           
462      */
463     private boolean localCheckout = false;
464 
465     /**
466      * 
467      *             Specifies the format for generating a tag name.
468      * Property expansion is
469      *             used with the optional prefix of project, where
470      * properties are delimited
471      *             with @{ and }
472      *           .
473      */
474     private String scmTagNameFormat;
475 
476     /**
477      * 
478      *             Some SCMs may require a Work Item or a Task to
479      * allow the changes to be pushed or delivered.
480      *             This field allows you to specify that Work Item
481      * or Task. It is optional, and only relevant
482      *             if pushChanges is true.
483      *           
484      */
485     private String workItem;
486 
487     /**
488      * 
489      *             Specifies whether unresolved SNAPSHOT
490      * dependencies are automatically resolved.
491      *             If set, it is used as the answer to use when
492      * being asked how unresolved SNAPSHOT 
493      *             dependencies should be resolved:
494      *             <ul>
495      *             <li>"all" or "0": resolve all kinds of
496      * snapshots, ie. project, plugin, report and extension
497      * dependencies</li>
498      *             <li>"dependencies" or "1": resolve project
499      * dependencies</li>
500      *             <li>"plugins" or "2": resolve plugin
501      * dependencies</li>
502      *             <li>"reports" or "3": resolve report
503      * dependencies</li>
504      *             <li>"extensions" or "4": resolve extension
505      * dependencies</li>
506      *             </ul>
507      *             Additionally this implies that the default
508      * values for the dependency's release and next
509      *             development version are used.
510      *           
511      */
512     private String autoResolveSnapshots;
513 
514     /**
515      * 
516      *             Enable the "--pin-externals" option in svn copy
517      * commands which is new in Subversion 1.9.
518      *             NOTE : Currently only implemented with
519      * Subversion.
520      *             (https://issues.apache.org/jira/browse/SCM-805)
521      *           .
522      */
523     private boolean pinExternals = false;
524 
525     /**
526      * 
527      *             If the scm provider should use sign tags, for
528      * example for git-exe the '--sign' argument would be used.
529      *           
530      */
531     private boolean scmSignTags = false;
532 
533     /**
534      * 
535      *             Specifies the line separator to use in the
536      * pom.xml.
537      *           
538      */
539     private String lineSeparator;
540 
541     /**
542      * Field modelEncoding.
543      */
544     private String modelEncoding = "UTF-8";
545 
546 
547       //-----------/
548      //- Methods -/
549     //-----------/
550 
551     /**
552      * Method addActivateProfile.
553      * 
554      * @param string a string object.
555      */
556     public void addActivateProfile( String string )
557     {
558         getActivateProfiles().add( string );
559     } //-- void addActivateProfile( String )
560 
561     /**
562      * Method addCheckModificationExclude.
563      * 
564      * @param string a string object.
565      */
566     public void addCheckModificationExclude( String string )
567     {
568         getCheckModificationExcludes().add( string );
569     } //-- void addCheckModificationExclude( String )
570 
571     /**
572      * Method getActivateProfiles.
573      * 
574      * @return List
575      */
576     public java.util.List<String> getActivateProfiles()
577     {
578         if ( this.activateProfiles == null )
579         {
580             this.activateProfiles = new java.util.ArrayList<String>();
581         }
582 
583         return this.activateProfiles;
584     } //-- java.util.List<String> getActivateProfiles()
585 
586     /**
587      * Get additional arguments to pass to any executed Maven
588      * process.
589      * 
590      * @return String
591      */
592     public String getAdditionalArguments()
593     {
594         return this.additionalArguments;
595     } //-- String getAdditionalArguments()
596 
597     /**
598      * Get specifies whether unresolved SNAPSHOT dependencies are
599      * automatically resolved.
600      *             If set, it is used as the answer to use when
601      * being asked how unresolved SNAPSHOT 
602      *             dependencies should be resolved:
603      *             <ul>
604      *             <li>"all" or "0": resolve all kinds of
605      * snapshots, ie. project, plugin, report and extension
606      * dependencies</li>
607      *             <li>"dependencies" or "1": resolve project
608      * dependencies</li>
609      *             <li>"plugins" or "2": resolve plugin
610      * dependencies</li>
611      *             <li>"reports" or "3": resolve report
612      * dependencies</li>
613      *             <li>"extensions" or "4": resolve extension
614      * dependencies</li>
615      *             </ul>
616      *             Additionally this implies that the default
617      * values for the dependency's release and next
618      *             development version are used.
619      * 
620      * @return String
621      */
622     public String getAutoResolveSnapshots()
623     {
624         return this.autoResolveSnapshots;
625     } //-- String getAutoResolveSnapshots()
626 
627     /**
628      * Method getCheckModificationExcludes.
629      * 
630      * @return List
631      */
632     public java.util.List<String> getCheckModificationExcludes()
633     {
634         if ( this.checkModificationExcludes == null )
635         {
636             this.checkModificationExcludes = new java.util.ArrayList<String>();
637         }
638 
639         return this.checkModificationExcludes;
640     } //-- java.util.List<String> getCheckModificationExcludes()
641 
642     /**
643      * Get the directory where the tag will be checked out.
644      * 
645      * @return String
646      */
647     public String getCheckoutDirectory()
648     {
649         return this.checkoutDirectory;
650     } //-- String getCheckoutDirectory()
651 
652     /**
653      * Get the last completed phase.
654      * 
655      * @return String
656      */
657     public String getCompletedPhase()
658     {
659         return this.completedPhase;
660     } //-- String getCompletedPhase()
661 
662     /**
663      * Get the goals to execute in on completion of preparation for
664      * the release.
665      * 
666      * @return String
667      */
668     public String getCompletionGoals()
669     {
670         return this.completionGoals;
671     } //-- String getCompletionGoals()
672 
673     /**
674      * Get default version to use for new working copy.
675      * 
676      * @return String
677      */
678     public String getDefaultDevelopmentVersion()
679     {
680         return this.defaultDevelopmentVersion;
681     } //-- String getDefaultDevelopmentVersion()
682 
683     /**
684      * Get default version to use for the tagged release or the new
685      * branch.
686      * 
687      * @return String
688      */
689     public String getDefaultReleaseVersion()
690     {
691         return this.defaultReleaseVersion;
692     } //-- String getDefaultReleaseVersion()
693 
694     /**
695      * Get the description of this release configuration.
696      * 
697      * @return String
698      */
699     public String getDescription()
700     {
701         return this.description;
702     } //-- String getDescription()
703 
704     /**
705      * Get specifies the line separator to use in the pom.xml.
706      * 
707      * @return String
708      */
709     public String getLineSeparator()
710     {
711         return this.lineSeparator;
712     } //-- String getLineSeparator()
713 
714     /**
715      * Get the modelEncoding field.
716      * 
717      * @return String
718      */
719     public String getModelEncoding()
720     {
721         return this.modelEncoding;
722     } //-- String getModelEncoding()
723 
724     /**
725      * Get the name of this release configuration.
726      * 
727      * @return String
728      */
729     public String getName()
730     {
731         return this.name;
732     } //-- String getName()
733 
734     /**
735      * Get the goals to execute in perform phase for the release.
736      * 
737      * @return String
738      */
739     public String getPerformGoals()
740     {
741         return this.performGoals;
742     } //-- String getPerformGoals()
743 
744     /**
745      * Get the file name of the POM to pass to any executed Maven
746      * process.
747      * 
748      * @return String
749      */
750     public String getPomFileName()
751     {
752         return this.pomFileName;
753     } //-- String getPomFileName()
754 
755     /**
756      * Get the goals to execute in preparation for the release.
757      * 
758      * @return String
759      */
760     public String getPreparationGoals()
761     {
762         return this.preparationGoals;
763     } //-- String getPreparationGoals()
764 
765     /**
766      * Get the role-hint for the NamingPolicy implementation used
767      * to calculate the project branch and tag names.
768      * 
769      * @return String
770      */
771     public String getProjectNamingPolicyId()
772     {
773         return this.projectNamingPolicyId;
774     } //-- String getProjectNamingPolicyId()
775 
776     /**
777      * Get the optional config string for the VersionPolicy
778      * implementation used to calculate the project versions.
779      *             The format of this depends on the specific
780      * VersionPolicy that is used.
781      * 
782      * @return Object
783      */
784     public Object getProjectVersionPolicyConfig()
785     {
786         return this.projectVersionPolicyConfig;
787     } //-- Object getProjectVersionPolicyConfig()
788 
789     /**
790      * Get the role-hint for the VersionPolicy implementation used
791      * to calculate the project versions.
792      * 
793      * @return String
794      */
795     public String getProjectVersionPolicyId()
796     {
797         return this.projectVersionPolicyId;
798     } //-- String getProjectVersionPolicyId()
799 
800     /**
801      * Get the role-hint for the release Strategy implementation.
802      * 
803      * @return String
804      */
805     public String getReleaseStrategyId()
806     {
807         return this.releaseStrategyId;
808     } //-- String getReleaseStrategyId()
809 
810     /**
811      * Get where you are going to put your branched sources
812      *             Example
813      * https://svn.apache.org/repos/asf/maven/plugins/branches.
814      * 
815      * @return String
816      */
817     public String getScmBranchBase()
818     {
819         return this.scmBranchBase;
820     } //-- String getScmBranchBase()
821 
822     /**
823      * Get the SCM commit comment when branching.
824      * 
825      * @return String
826      */
827     public String getScmBranchCommitComment()
828     {
829         return this.scmBranchCommitComment;
830     } //-- String getScmBranchCommitComment()
831 
832     /**
833      * Get the prefix of SCM modification messages.
834      * 
835      * @return String
836      */
837     public String getScmCommentPrefix()
838     {
839         return this.ScmCommentPrefix;
840     } //-- String getScmCommentPrefix()
841 
842     /**
843      * Get the SCM commit comment when setting pom.xml back to
844      * development.
845      * 
846      * @return String
847      */
848     public String getScmDevelopmentCommitComment()
849     {
850         return this.scmDevelopmentCommitComment;
851     } //-- String getScmDevelopmentCommitComment()
852 
853     /**
854      * Get the id can be used to get the credentials by the
855      * server-id from the settings.xml.
856      * 
857      * @return String
858      */
859     public String getScmId()
860     {
861         return this.scmId;
862     } //-- String getScmId()
863 
864     /**
865      * Get the password for the user interacting with the scm.
866      * 
867      * @return String
868      */
869     public String getScmPassword()
870     {
871         return this.scmPassword;
872     } //-- String getScmPassword()
873 
874     /**
875      * Get private key for an SSH based SCM repository.
876      * 
877      * @return String
878      */
879     public String getScmPrivateKey()
880     {
881         return this.scmPrivateKey;
882     } //-- String getScmPrivateKey()
883 
884     /**
885      * Get pass phrase for the private key.
886      * 
887      * @return String
888      */
889     public String getScmPrivateKeyPassPhrase()
890     {
891         return this.scmPrivateKeyPassPhrase;
892     } //-- String getScmPrivateKeyPassPhrase()
893 
894     /**
895      * Get relative path of the project returned by the checkout
896      * command.
897      * 
898      * @return String
899      */
900     public String getScmRelativePathProjectDirectory()
901     {
902         return this.scmRelativePathProjectDirectory;
903     } //-- String getScmRelativePathProjectDirectory()
904 
905     /**
906      * Get the SCM commit comment when setting pom.xml to release.
907      * 
908      * @return String
909      */
910     public String getScmReleaseCommitComment()
911     {
912         return this.scmReleaseCommitComment;
913     } //-- String getScmReleaseCommitComment()
914 
915     /**
916      * Get tag or branch name: the identifier for the tag/branch.
917      *             Example: maven-release-plugin-2.0.
918      * 
919      * @return String
920      */
921     public String getScmReleaseLabel()
922     {
923         return this.scmReleaseLabel;
924     } //-- String getScmReleaseLabel()
925 
926     /**
927      * Get nOTE : currently only implemented with svn scm. It
928      * contains the revision of the committed released pom to
929      * remotely tag
930      *             the source code with this revision.
931      * 
932      * @return String
933      */
934     public String getScmReleasedPomRevision()
935     {
936         return this.scmReleasedPomRevision;
937     } //-- String getScmReleasedPomRevision()
938 
939     /**
940      * Get the SCM commit comment when rolling back.
941      * 
942      * @return String
943      */
944     public String getScmRollbackCommitComment()
945     {
946         return this.scmRollbackCommitComment;
947     } //-- String getScmRollbackCommitComment()
948 
949     /**
950      * Get this is a MavenSCM of where you're going to get the
951      * sources to make the release with.
952      *             Example:
953      * scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-release-plugin.
954      * 
955      * @return String
956      */
957     public String getScmSourceUrl()
958     {
959         return this.scmSourceUrl;
960     } //-- String getScmSourceUrl()
961 
962     /**
963      * Get where you are going to put your tagged sources
964      *             Example
965      * https://svn.apache.org/repos/asf/maven/plugins/tags.
966      * 
967      * @return String
968      */
969     public String getScmTagBase()
970     {
971         return this.scmTagBase;
972     } //-- String getScmTagBase()
973 
974     /**
975      * Get specifies the format for generating a tag name. Property
976      * expansion is
977      *             used with the optional prefix of project, where
978      * properties are delimited
979      *             with @{ and }.
980      * 
981      * @return String
982      */
983     public String getScmTagNameFormat()
984     {
985         return this.scmTagNameFormat;
986     } //-- String getScmTagNameFormat()
987 
988     /**
989      * Get the user name to interact with the scm.
990      * 
991      * @return String
992      */
993     public String getScmUsername()
994     {
995         return this.scmUsername;
996     } //-- String getScmUsername()
997 
998     /**
999      * Get wait the specified number of seconds before creating a
1000      * tag.
1001      * 
1002      * @return int
1003      */
1004     public int getWaitBeforeTagging()
1005     {
1006         return this.waitBeforeTagging;
1007     } //-- int getWaitBeforeTagging()
1008 
1009     /**
1010      * Get some SCMs may require a Work Item or a Task to allow the
1011      * changes to be pushed or delivered.
1012      *             This field allows you to specify that Work Item
1013      * or Task. It is optional, and only relevant
1014      *             if pushChanges is true.
1015      * 
1016      * @return String
1017      */
1018     public String getWorkItem()
1019     {
1020         return this.workItem;
1021     } //-- String getWorkItem()
1022 
1023     /**
1024      * Get the directory where the release is performed.
1025      * 
1026      * @return String
1027      */
1028     public String getWorkingDirectory()
1029     {
1030         return this.workingDirectory;
1031     } //-- String getWorkingDirectory()
1032 
1033     /**
1034      * Get whether to add the model schema to the top of the
1035      * rewritten POM if it wasn't there already.
1036      *             If <code>false</code> then the root element will
1037      * remain untouched.
1038      * 
1039      * @return boolean
1040      */
1041     public boolean isAddSchema()
1042     {
1043         return this.addSchema;
1044     } //-- boolean isAddSchema()
1045 
1046     /**
1047      * Get should timestamped SNAPSHOT dependencies be allowed? 
1048      * Default is to fail when any SNAPSHOT
1049      *               dependency is found.
1050      * 
1051      * @return boolean
1052      */
1053     public boolean isAllowTimestampedSnapshots()
1054     {
1055         return this.allowTimestampedSnapshots;
1056     } //-- boolean isAllowTimestampedSnapshots()
1057 
1058     /**
1059      * Get whether to use the parent pom version for submodule
1060      * versions.
1061      * 
1062      * @return boolean
1063      */
1064     public boolean isAutoVersionSubmodules()
1065     {
1066         return this.autoVersionSubmodules;
1067     } //-- boolean isAutoVersionSubmodules()
1068 
1069     /**
1070      * Get whether to create a branch instead of do a release.
1071      * 
1072      * @return boolean
1073      */
1074     public boolean isBranchCreation()
1075     {
1076         return this.branchCreation;
1077     } //-- boolean isBranchCreation()
1078 
1079     /**
1080      * Get the commits must be done by modules or not. Set it to
1081      * true in case of flat directory structure.
1082      * 
1083      * @return boolean
1084      */
1085     public boolean isCommitByProject()
1086     {
1087         return this.commitByProject;
1088     } //-- boolean isCommitByProject()
1089 
1090     /**
1091      * Get whether to generate release POMs.
1092      * 
1093      * @return boolean
1094      */
1095     public boolean isGenerateReleasePoms()
1096     {
1097         return this.generateReleasePoms;
1098     } //-- boolean isGenerateReleasePoms()
1099 
1100     /**
1101      * Get whether the release process is interactive and the
1102      * release manager should be prompted to
1103      *             confirm values, or whether the defaults are used
1104      * regardless.
1105      * 
1106      * @return boolean
1107      */
1108     public boolean isInteractive()
1109     {
1110         return this.interactive;
1111     } //-- boolean isInteractive()
1112 
1113     /**
1114      * Get if the scm provider should use local checkouts via
1115      * file://${basedir}
1116      *             instead of doing a clean checkout over the
1117      * network.
1118      *             This is very helpful for releasing large
1119      * projects!
1120      * 
1121      * @return boolean
1122      */
1123     public boolean isLocalCheckout()
1124     {
1125         return this.localCheckout;
1126     } //-- boolean isLocalCheckout()
1127 
1128     /**
1129      * Get enable the "--pin-externals" option in svn copy commands
1130      * which is new in Subversion 1.9.
1131      *             NOTE : Currently only implemented with
1132      * Subversion.
1133      *             (https://issues.apache.org/jira/browse/SCM-805).
1134      * 
1135      * @return boolean
1136      */
1137     public boolean isPinExternals()
1138     {
1139         return this.pinExternals;
1140     } //-- boolean isPinExternals()
1141 
1142     /**
1143      * Get should distributed changes be pushed to the central
1144      * repository?
1145      *             For many distributed SCMs like Git, a change
1146      * like a commit is only stored in your local copy of the
1147      * repository.
1148      *             Pushing the change allows your to more easily
1149      * share it with other users.
1150      * 
1151      * @return boolean
1152      */
1153     public boolean isPushChanges()
1154     {
1155         return this.pushChanges;
1156     } //-- boolean isPushChanges()
1157 
1158     /**
1159      * Get nOTE : currently only implemented with svn scm. Enable a
1160      * workaround to prevent issue due to svn client &gt; 1.5.0
1161      *             (https://issues.apache.org/jira/browse/SCM-406).
1162      * 
1163      * @return boolean
1164      */
1165     public boolean isRemoteTagging()
1166     {
1167         return this.remoteTagging;
1168     } //-- boolean isRemoteTagging()
1169 
1170     /**
1171      * Get get whether to use a shallow clone with no history or a
1172      * full clone containing the full history during the
1173      *             release.
1174      * 
1175      * @return boolean
1176      */
1177     public boolean isScmShallowClone()
1178     {
1179         return this.scmShallowClone;
1180     } //-- boolean isScmShallowClone()
1181 
1182     /**
1183      * Get if the scm provider should use sign tags, for example
1184      * for git-exe the '--sign' argument would be used.
1185      * 
1186      * @return boolean
1187      */
1188     public boolean isScmSignTags()
1189     {
1190         return this.scmSignTags;
1191     } //-- boolean isScmSignTags()
1192 
1193     /**
1194      * Get whether to use edit mode when making SCM modifications.
1195      * This setting is disregarded
1196      *             if the SCM does not support edit mode, or if
1197      * edit mode is compulsory for the given SCM.
1198      * 
1199      * @return boolean
1200      */
1201     public boolean isScmUseEditMode()
1202     {
1203         return this.scmUseEditMode;
1204     } //-- boolean isScmUseEditMode()
1205 
1206     /**
1207      * Get whether a SNAPSHOT of the release plugin is allowed.
1208      * 
1209      * @return boolean
1210      */
1211     public boolean isSnapshotReleasePluginAllowed()
1212     {
1213         return this.snapshotReleasePluginAllowed;
1214     } //-- boolean isSnapshotReleasePluginAllowed()
1215 
1216     /**
1217      * Get whether to suppress a commit of changes to the working
1218      * copy before a tag or branch is created.
1219      * 
1220      * @return boolean
1221      */
1222     public boolean isSuppressCommitBeforeTagOrBranch()
1223     {
1224         return this.suppressCommitBeforeTagOrBranch;
1225     } //-- boolean isSuppressCommitBeforeTagOrBranch()
1226 
1227     /**
1228      * Get whether to update branch POM versions.
1229      * 
1230      * @return boolean
1231      */
1232     public boolean isUpdateBranchVersions()
1233     {
1234         return this.updateBranchVersions;
1235     } //-- boolean isUpdateBranchVersions()
1236 
1237     /**
1238      * Get if updateDependencies is false, dependencies version
1239      * won't be updated to the next development version.
1240      * 
1241      * @return boolean
1242      */
1243     public boolean isUpdateDependencies()
1244     {
1245         return this.updateDependencies;
1246     } //-- boolean isUpdateDependencies()
1247 
1248     /**
1249      * Get whether to update branch versions to SNAPSHOT.
1250      * 
1251      * @return boolean
1252      */
1253     public boolean isUpdateVersionsToSnapshot()
1254     {
1255         return this.updateVersionsToSnapshot;
1256     } //-- boolean isUpdateVersionsToSnapshot()
1257 
1258     /**
1259      * Get whether to update working copy POM versions.
1260      * 
1261      * @return boolean
1262      */
1263     public boolean isUpdateWorkingCopyVersions()
1264     {
1265         return this.updateWorkingCopyVersions;
1266     } //-- boolean isUpdateWorkingCopyVersions()
1267 
1268     /**
1269      * Get whether to use the release profile that adds sources and
1270      * javadocs to the released artifact, if appropriate.
1271      *             If set to true, this will set the property
1272      * "performRelease" to true.
1273      * 
1274      * @return boolean
1275      */
1276     public boolean isUseReleaseProfile()
1277     {
1278         return this.useReleaseProfile;
1279     } //-- boolean isUseReleaseProfile()
1280 
1281     /**
1282      * Method removeActivateProfile.
1283      * 
1284      * @param string a string object.
1285      */
1286     public void removeActivateProfile( String string )
1287     {
1288         getActivateProfiles().remove( string );
1289     } //-- void removeActivateProfile( String )
1290 
1291     /**
1292      * Method removeCheckModificationExclude.
1293      * 
1294      * @param string a string object.
1295      */
1296     public void removeCheckModificationExclude( String string )
1297     {
1298         getCheckModificationExcludes().remove( string );
1299     } //-- void removeCheckModificationExclude( String )
1300 
1301     /**
1302      * Set list of profiles to activate.
1303      * 
1304      * @param activateProfiles a activateProfiles object.
1305      */
1306     public void setActivateProfiles( java.util.List<String> activateProfiles )
1307     {
1308         this.activateProfiles = activateProfiles;
1309     } //-- void setActivateProfiles( java.util.List )
1310 
1311     /**
1312      * Set whether to add the model schema to the top of the
1313      * rewritten POM if it wasn't there already.
1314      *             If <code>false</code> then the root element will
1315      * remain untouched.
1316      * 
1317      * @param addSchema a addSchema object.
1318      */
1319     public void setAddSchema( boolean addSchema )
1320     {
1321         this.addSchema = addSchema;
1322     } //-- void setAddSchema( boolean )
1323 
1324     /**
1325      * Set additional arguments to pass to any executed Maven
1326      * process.
1327      * 
1328      * @param additionalArguments a additionalArguments object.
1329      */
1330     public void setAdditionalArguments( String additionalArguments )
1331     {
1332         this.additionalArguments = additionalArguments;
1333     } //-- void setAdditionalArguments( String )
1334 
1335     /**
1336      * Set should timestamped SNAPSHOT dependencies be allowed? 
1337      * Default is to fail when any SNAPSHOT
1338      *               dependency is found.
1339      * 
1340      * @param allowTimestampedSnapshots a allowTimestampedSnapshots
1341      * object.
1342      */
1343     public void setAllowTimestampedSnapshots( boolean allowTimestampedSnapshots )
1344     {
1345         this.allowTimestampedSnapshots = allowTimestampedSnapshots;
1346     } //-- void setAllowTimestampedSnapshots( boolean )
1347 
1348     /**
1349      * Set specifies whether unresolved SNAPSHOT dependencies are
1350      * automatically resolved.
1351      *             If set, it is used as the answer to use when
1352      * being asked how unresolved SNAPSHOT 
1353      *             dependencies should be resolved:
1354      *             <ul>
1355      *             <li>"all" or "0": resolve all kinds of
1356      * snapshots, ie. project, plugin, report and extension
1357      * dependencies</li>
1358      *             <li>"dependencies" or "1": resolve project
1359      * dependencies</li>
1360      *             <li>"plugins" or "2": resolve plugin
1361      * dependencies</li>
1362      *             <li>"reports" or "3": resolve report
1363      * dependencies</li>
1364      *             <li>"extensions" or "4": resolve extension
1365      * dependencies</li>
1366      *             </ul>
1367      *             Additionally this implies that the default
1368      * values for the dependency's release and next
1369      *             development version are used.
1370      * 
1371      * @param autoResolveSnapshots a autoResolveSnapshots object.
1372      */
1373     public void setAutoResolveSnapshots( String autoResolveSnapshots )
1374     {
1375         this.autoResolveSnapshots = autoResolveSnapshots;
1376     } //-- void setAutoResolveSnapshots( String )
1377 
1378     /**
1379      * Set whether to use the parent pom version for submodule
1380      * versions.
1381      * 
1382      * @param autoVersionSubmodules a autoVersionSubmodules object.
1383      */
1384     public void setAutoVersionSubmodules( boolean autoVersionSubmodules )
1385     {
1386         this.autoVersionSubmodules = autoVersionSubmodules;
1387     } //-- void setAutoVersionSubmodules( boolean )
1388 
1389     /**
1390      * Set whether to create a branch instead of do a release.
1391      * 
1392      * @param branchCreation a branchCreation object.
1393      */
1394     public void setBranchCreation( boolean branchCreation )
1395     {
1396         this.branchCreation = branchCreation;
1397     } //-- void setBranchCreation( boolean )
1398 
1399     /**
1400      * Set in some exceptions you want to allow changes to the
1401      * working copy. Changes
1402      *             to files listed here will not make the
1403      * ScmCheckModificationsPhase fail.
1404      * 
1405      * @param checkModificationExcludes a checkModificationExcludes
1406      * object.
1407      */
1408     public void setCheckModificationExcludes( java.util.List<String> checkModificationExcludes )
1409     {
1410         this.checkModificationExcludes = checkModificationExcludes;
1411     } //-- void setCheckModificationExcludes( java.util.List )
1412 
1413     /**
1414      * Set the directory where the tag will be checked out.
1415      * 
1416      * @param checkoutDirectory a checkoutDirectory object.
1417      */
1418     public void setCheckoutDirectory( String checkoutDirectory )
1419     {
1420         this.checkoutDirectory = checkoutDirectory;
1421     } //-- void setCheckoutDirectory( String )
1422 
1423     /**
1424      * Set the commits must be done by modules or not. Set it to
1425      * true in case of flat directory structure.
1426      * 
1427      * @param commitByProject a commitByProject object.
1428      */
1429     public void setCommitByProject( boolean commitByProject )
1430     {
1431         this.commitByProject = commitByProject;
1432     } //-- void setCommitByProject( boolean )
1433 
1434     /**
1435      * Set the last completed phase.
1436      * 
1437      * @param completedPhase a completedPhase object.
1438      */
1439     public void setCompletedPhase( String completedPhase )
1440     {
1441         this.completedPhase = completedPhase;
1442     } //-- void setCompletedPhase( String )
1443 
1444     /**
1445      * Set the goals to execute in on completion of preparation for
1446      * the release.
1447      * 
1448      * @param completionGoals a completionGoals object.
1449      */
1450     public void setCompletionGoals( String completionGoals )
1451     {
1452         this.completionGoals = completionGoals;
1453     } //-- void setCompletionGoals( String )
1454 
1455     /**
1456      * Set default version to use for new working copy.
1457      * 
1458      * @param defaultDevelopmentVersion a defaultDevelopmentVersion
1459      * object.
1460      */
1461     public void setDefaultDevelopmentVersion( String defaultDevelopmentVersion )
1462     {
1463         this.defaultDevelopmentVersion = defaultDevelopmentVersion;
1464     } //-- void setDefaultDevelopmentVersion( String )
1465 
1466     /**
1467      * Set default version to use for the tagged release or the new
1468      * branch.
1469      * 
1470      * @param defaultReleaseVersion a defaultReleaseVersion object.
1471      */
1472     public void setDefaultReleaseVersion( String defaultReleaseVersion )
1473     {
1474         this.defaultReleaseVersion = defaultReleaseVersion;
1475     } //-- void setDefaultReleaseVersion( String )
1476 
1477     /**
1478      * Set the description of this release configuration.
1479      * 
1480      * @param description a description object.
1481      */
1482     public void setDescription( String description )
1483     {
1484         this.description = description;
1485     } //-- void setDescription( String )
1486 
1487     /**
1488      * Set whether to generate release POMs.
1489      * 
1490      * @param generateReleasePoms a generateReleasePoms object.
1491      */
1492     public void setGenerateReleasePoms( boolean generateReleasePoms )
1493     {
1494         this.generateReleasePoms = generateReleasePoms;
1495     } //-- void setGenerateReleasePoms( boolean )
1496 
1497     /**
1498      * Set whether the release process is interactive and the
1499      * release manager should be prompted to
1500      *             confirm values, or whether the defaults are used
1501      * regardless.
1502      * 
1503      * @param interactive a interactive object.
1504      */
1505     public void setInteractive( boolean interactive )
1506     {
1507         this.interactive = interactive;
1508     } //-- void setInteractive( boolean )
1509 
1510     /**
1511      * Set specifies the line separator to use in the pom.xml.
1512      * 
1513      * @param lineSeparator a lineSeparator object.
1514      */
1515     public void setLineSeparator( String lineSeparator )
1516     {
1517         this.lineSeparator = lineSeparator;
1518     } //-- void setLineSeparator( String )
1519 
1520     /**
1521      * Set if the scm provider should use local checkouts via
1522      * file://${basedir}
1523      *             instead of doing a clean checkout over the
1524      * network.
1525      *             This is very helpful for releasing large
1526      * projects!
1527      * 
1528      * @param localCheckout a localCheckout object.
1529      */
1530     public void setLocalCheckout( boolean localCheckout )
1531     {
1532         this.localCheckout = localCheckout;
1533     } //-- void setLocalCheckout( boolean )
1534 
1535     /**
1536      * Set the modelEncoding field.
1537      * 
1538      * @param modelEncoding a modelEncoding object.
1539      */
1540     public void setModelEncoding( String modelEncoding )
1541     {
1542         this.modelEncoding = modelEncoding;
1543     } //-- void setModelEncoding( String )
1544 
1545     /**
1546      * Set the name of this release configuration.
1547      * 
1548      * @param name a name object.
1549      */
1550     public void setName( String name )
1551     {
1552         this.name = name;
1553     } //-- void setName( String )
1554 
1555     /**
1556      * Set the goals to execute in perform phase for the release.
1557      * 
1558      * @param performGoals a performGoals object.
1559      */
1560     public void setPerformGoals( String performGoals )
1561     {
1562         this.performGoals = performGoals;
1563     } //-- void setPerformGoals( String )
1564 
1565     /**
1566      * Set enable the "--pin-externals" option in svn copy commands
1567      * which is new in Subversion 1.9.
1568      *             NOTE : Currently only implemented with
1569      * Subversion.
1570      *             (https://issues.apache.org/jira/browse/SCM-805).
1571      * 
1572      * @param pinExternals a pinExternals object.
1573      */
1574     public void setPinExternals( boolean pinExternals )
1575     {
1576         this.pinExternals = pinExternals;
1577     } //-- void setPinExternals( boolean )
1578 
1579     /**
1580      * Set the file name of the POM to pass to any executed Maven
1581      * process.
1582      * 
1583      * @param pomFileName a pomFileName object.
1584      */
1585     public void setPomFileName( String pomFileName )
1586     {
1587         this.pomFileName = pomFileName;
1588     } //-- void setPomFileName( String )
1589 
1590     /**
1591      * Set the goals to execute in preparation for the release.
1592      * 
1593      * @param preparationGoals a preparationGoals object.
1594      */
1595     public void setPreparationGoals( String preparationGoals )
1596     {
1597         this.preparationGoals = preparationGoals;
1598     } //-- void setPreparationGoals( String )
1599 
1600     /**
1601      * Set the role-hint for the NamingPolicy implementation used
1602      * to calculate the project branch and tag names.
1603      * 
1604      * @param projectNamingPolicyId a projectNamingPolicyId object.
1605      */
1606     public void setProjectNamingPolicyId( String projectNamingPolicyId )
1607     {
1608         this.projectNamingPolicyId = projectNamingPolicyId;
1609     } //-- void setProjectNamingPolicyId( String )
1610 
1611     /**
1612      * Set the optional config string for the VersionPolicy
1613      * implementation used to calculate the project versions.
1614      *             The format of this depends on the specific
1615      * VersionPolicy that is used.
1616      * 
1617      * @param projectVersionPolicyConfig a
1618      * projectVersionPolicyConfig object.
1619      */
1620     public void setProjectVersionPolicyConfig( Object projectVersionPolicyConfig )
1621     {
1622         this.projectVersionPolicyConfig = projectVersionPolicyConfig;
1623     } //-- void setProjectVersionPolicyConfig( Object )
1624 
1625     /**
1626      * Set the role-hint for the VersionPolicy implementation used
1627      * to calculate the project versions.
1628      * 
1629      * @param projectVersionPolicyId a projectVersionPolicyId object
1630      */
1631     public void setProjectVersionPolicyId( String projectVersionPolicyId )
1632     {
1633         this.projectVersionPolicyId = projectVersionPolicyId;
1634     } //-- void setProjectVersionPolicyId( String )
1635 
1636     /**
1637      * Set should distributed changes be pushed to the central
1638      * repository?
1639      *             For many distributed SCMs like Git, a change
1640      * like a commit is only stored in your local copy of the
1641      * repository.
1642      *             Pushing the change allows your to more easily
1643      * share it with other users.
1644      * 
1645      * @param pushChanges a pushChanges object.
1646      */
1647     public void setPushChanges( boolean pushChanges )
1648     {
1649         this.pushChanges = pushChanges;
1650     } //-- void setPushChanges( boolean )
1651 
1652     /**
1653      * Set the role-hint for the release Strategy implementation.
1654      * 
1655      * @param releaseStrategyId a releaseStrategyId object.
1656      */
1657     public void setReleaseStrategyId( String releaseStrategyId )
1658     {
1659         this.releaseStrategyId = releaseStrategyId;
1660     } //-- void setReleaseStrategyId( String )
1661 
1662     /**
1663      * Set nOTE : currently only implemented with svn scm. Enable a
1664      * workaround to prevent issue due to svn client &gt; 1.5.0
1665      *             (https://issues.apache.org/jira/browse/SCM-406).
1666      * 
1667      * @param remoteTagging a remoteTagging object.
1668      */
1669     public void setRemoteTagging( boolean remoteTagging )
1670     {
1671         this.remoteTagging = remoteTagging;
1672     } //-- void setRemoteTagging( boolean )
1673 
1674     /**
1675      * Set where you are going to put your branched sources
1676      *             Example
1677      * https://svn.apache.org/repos/asf/maven/plugins/branches.
1678      * 
1679      * @param scmBranchBase a scmBranchBase object.
1680      */
1681     public void setScmBranchBase( String scmBranchBase )
1682     {
1683         this.scmBranchBase = scmBranchBase;
1684     } //-- void setScmBranchBase( String )
1685 
1686     /**
1687      * Set the SCM commit comment when branching.
1688      * 
1689      * @param scmBranchCommitComment a scmBranchCommitComment object
1690      */
1691     public void setScmBranchCommitComment( String scmBranchCommitComment )
1692     {
1693         this.scmBranchCommitComment = scmBranchCommitComment;
1694     } //-- void setScmBranchCommitComment( String )
1695 
1696     /**
1697      * Set the prefix of SCM modification messages.
1698      * 
1699      * @param ScmCommentPrefix a ScmCommentPrefix object.
1700      */
1701     public void setScmCommentPrefix( String ScmCommentPrefix )
1702     {
1703         this.ScmCommentPrefix = ScmCommentPrefix;
1704     } //-- void setScmCommentPrefix( String )
1705 
1706     /**
1707      * Set the SCM commit comment when setting pom.xml back to
1708      * development.
1709      * 
1710      * @param scmDevelopmentCommitComment a
1711      * scmDevelopmentCommitComment object.
1712      */
1713     public void setScmDevelopmentCommitComment( String scmDevelopmentCommitComment )
1714     {
1715         this.scmDevelopmentCommitComment = scmDevelopmentCommitComment;
1716     } //-- void setScmDevelopmentCommitComment( String )
1717 
1718     /**
1719      * Set the id can be used to get the credentials by the
1720      * server-id from the settings.xml.
1721      * 
1722      * @param scmId a scmId object.
1723      */
1724     public void setScmId( String scmId )
1725     {
1726         this.scmId = scmId;
1727     } //-- void setScmId( String )
1728 
1729     /**
1730      * Set the password for the user interacting with the scm.
1731      * 
1732      * @param scmPassword a scmPassword object.
1733      */
1734     public void setScmPassword( String scmPassword )
1735     {
1736         this.scmPassword = scmPassword;
1737     } //-- void setScmPassword( String )
1738 
1739     /**
1740      * Set private key for an SSH based SCM repository.
1741      * 
1742      * @param scmPrivateKey a scmPrivateKey object.
1743      */
1744     public void setScmPrivateKey( String scmPrivateKey )
1745     {
1746         this.scmPrivateKey = scmPrivateKey;
1747     } //-- void setScmPrivateKey( String )
1748 
1749     /**
1750      * Set pass phrase for the private key.
1751      * 
1752      * @param scmPrivateKeyPassPhrase a scmPrivateKeyPassPhrase
1753      * object.
1754      */
1755     public void setScmPrivateKeyPassPhrase( String scmPrivateKeyPassPhrase )
1756     {
1757         this.scmPrivateKeyPassPhrase = scmPrivateKeyPassPhrase;
1758     } //-- void setScmPrivateKeyPassPhrase( String )
1759 
1760     /**
1761      * Set relative path of the project returned by the checkout
1762      * command.
1763      * 
1764      * @param scmRelativePathProjectDirectory a
1765      * scmRelativePathProjectDirectory object.
1766      */
1767     public void setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory )
1768     {
1769         this.scmRelativePathProjectDirectory = scmRelativePathProjectDirectory;
1770     } //-- void setScmRelativePathProjectDirectory( String )
1771 
1772     /**
1773      * Set the SCM commit comment when setting pom.xml to release.
1774      * 
1775      * @param scmReleaseCommitComment a scmReleaseCommitComment
1776      * object.
1777      */
1778     public void setScmReleaseCommitComment( String scmReleaseCommitComment )
1779     {
1780         this.scmReleaseCommitComment = scmReleaseCommitComment;
1781     } //-- void setScmReleaseCommitComment( String )
1782 
1783     /**
1784      * Set tag or branch name: the identifier for the tag/branch.
1785      *             Example: maven-release-plugin-2.0.
1786      * 
1787      * @param scmReleaseLabel a scmReleaseLabel object.
1788      */
1789     public void setScmReleaseLabel( String scmReleaseLabel )
1790     {
1791         this.scmReleaseLabel = scmReleaseLabel;
1792     } //-- void setScmReleaseLabel( String )
1793 
1794     /**
1795      * Set nOTE : currently only implemented with svn scm. It
1796      * contains the revision of the committed released pom to
1797      * remotely tag
1798      *             the source code with this revision.
1799      * 
1800      * @param scmReleasedPomRevision a scmReleasedPomRevision object
1801      */
1802     public void setScmReleasedPomRevision( String scmReleasedPomRevision )
1803     {
1804         this.scmReleasedPomRevision = scmReleasedPomRevision;
1805     } //-- void setScmReleasedPomRevision( String )
1806 
1807     /**
1808      * Set the SCM commit comment when rolling back.
1809      * 
1810      * @param scmRollbackCommitComment a scmRollbackCommitComment
1811      * object.
1812      */
1813     public void setScmRollbackCommitComment( String scmRollbackCommitComment )
1814     {
1815         this.scmRollbackCommitComment = scmRollbackCommitComment;
1816     } //-- void setScmRollbackCommitComment( String )
1817 
1818     /**
1819      * Set get whether to use a shallow clone with no history or a
1820      * full clone containing the full history during the
1821      *             release.
1822      * 
1823      * @param scmShallowClone a scmShallowClone object.
1824      */
1825     public void setScmShallowClone( boolean scmShallowClone )
1826     {
1827         this.scmShallowClone = scmShallowClone;
1828     } //-- void setScmShallowClone( boolean )
1829 
1830     /**
1831      * Set if the scm provider should use sign tags, for example
1832      * for git-exe the '--sign' argument would be used.
1833      * 
1834      * @param scmSignTags a scmSignTags object.
1835      */
1836     public void setScmSignTags( boolean scmSignTags )
1837     {
1838         this.scmSignTags = scmSignTags;
1839     } //-- void setScmSignTags( boolean )
1840 
1841     /**
1842      * Set this is a MavenSCM of where you're going to get the
1843      * sources to make the release with.
1844      *             Example:
1845      * scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-release-plugin.
1846      * 
1847      * @param scmSourceUrl a scmSourceUrl object.
1848      */
1849     public void setScmSourceUrl( String scmSourceUrl )
1850     {
1851         this.scmSourceUrl = scmSourceUrl;
1852     } //-- void setScmSourceUrl( String )
1853 
1854     /**
1855      * Set where you are going to put your tagged sources
1856      *             Example
1857      * https://svn.apache.org/repos/asf/maven/plugins/tags.
1858      * 
1859      * @param scmTagBase a scmTagBase object.
1860      */
1861     public void setScmTagBase( String scmTagBase )
1862     {
1863         this.scmTagBase = scmTagBase;
1864     } //-- void setScmTagBase( String )
1865 
1866     /**
1867      * Set specifies the format for generating a tag name. Property
1868      * expansion is
1869      *             used with the optional prefix of project, where
1870      * properties are delimited
1871      *             with @{ and }.
1872      * 
1873      * @param scmTagNameFormat a scmTagNameFormat object.
1874      */
1875     public void setScmTagNameFormat( String scmTagNameFormat )
1876     {
1877         this.scmTagNameFormat = scmTagNameFormat;
1878     } //-- void setScmTagNameFormat( String )
1879 
1880     /**
1881      * Set whether to use edit mode when making SCM modifications.
1882      * This setting is disregarded
1883      *             if the SCM does not support edit mode, or if
1884      * edit mode is compulsory for the given SCM.
1885      * 
1886      * @param scmUseEditMode a scmUseEditMode object.
1887      */
1888     public void setScmUseEditMode( boolean scmUseEditMode )
1889     {
1890         this.scmUseEditMode = scmUseEditMode;
1891     } //-- void setScmUseEditMode( boolean )
1892 
1893     /**
1894      * Set the user name to interact with the scm.
1895      * 
1896      * @param scmUsername a scmUsername object.
1897      */
1898     public void setScmUsername( String scmUsername )
1899     {
1900         this.scmUsername = scmUsername;
1901     } //-- void setScmUsername( String )
1902 
1903     /**
1904      * Set whether a SNAPSHOT of the release plugin is allowed.
1905      * 
1906      * @param snapshotReleasePluginAllowed a
1907      * snapshotReleasePluginAllowed object.
1908      */
1909     public void setSnapshotReleasePluginAllowed( boolean snapshotReleasePluginAllowed )
1910     {
1911         this.snapshotReleasePluginAllowed = snapshotReleasePluginAllowed;
1912     } //-- void setSnapshotReleasePluginAllowed( boolean )
1913 
1914     /**
1915      * Set whether to suppress a commit of changes to the working
1916      * copy before a tag or branch is created.
1917      * 
1918      * @param suppressCommitBeforeTagOrBranch a
1919      * suppressCommitBeforeTagOrBranch object.
1920      */
1921     public void setSuppressCommitBeforeTagOrBranch( boolean suppressCommitBeforeTagOrBranch )
1922     {
1923         this.suppressCommitBeforeTagOrBranch = suppressCommitBeforeTagOrBranch;
1924     } //-- void setSuppressCommitBeforeTagOrBranch( boolean )
1925 
1926     /**
1927      * Set whether to update branch POM versions.
1928      * 
1929      * @param updateBranchVersions a updateBranchVersions object.
1930      */
1931     public void setUpdateBranchVersions( boolean updateBranchVersions )
1932     {
1933         this.updateBranchVersions = updateBranchVersions;
1934     } //-- void setUpdateBranchVersions( boolean )
1935 
1936     /**
1937      * Set if updateDependencies is false, dependencies version
1938      * won't be updated to the next development version.
1939      * 
1940      * @param updateDependencies a updateDependencies object.
1941      */
1942     public void setUpdateDependencies( boolean updateDependencies )
1943     {
1944         this.updateDependencies = updateDependencies;
1945     } //-- void setUpdateDependencies( boolean )
1946 
1947     /**
1948      * Set whether to update branch versions to SNAPSHOT.
1949      * 
1950      * @param updateVersionsToSnapshot a updateVersionsToSnapshot
1951      * object.
1952      */
1953     public void setUpdateVersionsToSnapshot( boolean updateVersionsToSnapshot )
1954     {
1955         this.updateVersionsToSnapshot = updateVersionsToSnapshot;
1956     } //-- void setUpdateVersionsToSnapshot( boolean )
1957 
1958     /**
1959      * Set whether to update working copy POM versions.
1960      * 
1961      * @param updateWorkingCopyVersions a updateWorkingCopyVersions
1962      * object.
1963      */
1964     public void setUpdateWorkingCopyVersions( boolean updateWorkingCopyVersions )
1965     {
1966         this.updateWorkingCopyVersions = updateWorkingCopyVersions;
1967     } //-- void setUpdateWorkingCopyVersions( boolean )
1968 
1969     /**
1970      * Set whether to use the release profile that adds sources and
1971      * javadocs to the released artifact, if appropriate.
1972      *             If set to true, this will set the property
1973      * "performRelease" to true.
1974      * 
1975      * @param useReleaseProfile a useReleaseProfile object.
1976      */
1977     public void setUseReleaseProfile( boolean useReleaseProfile )
1978     {
1979         this.useReleaseProfile = useReleaseProfile;
1980     } //-- void setUseReleaseProfile( boolean )
1981 
1982     /**
1983      * Set wait the specified number of seconds before creating a
1984      * tag.
1985      * 
1986      * @param waitBeforeTagging a waitBeforeTagging object.
1987      */
1988     public void setWaitBeforeTagging( int waitBeforeTagging )
1989     {
1990         this.waitBeforeTagging = waitBeforeTagging;
1991     } //-- void setWaitBeforeTagging( int )
1992 
1993     /**
1994      * Set some SCMs may require a Work Item or a Task to allow the
1995      * changes to be pushed or delivered.
1996      *             This field allows you to specify that Work Item
1997      * or Task. It is optional, and only relevant
1998      *             if pushChanges is true.
1999      * 
2000      * @param workItem a workItem object.
2001      */
2002     public void setWorkItem( String workItem )
2003     {
2004         this.workItem = workItem;
2005     } //-- void setWorkItem( String )
2006 
2007     /**
2008      * Set the directory where the release is performed.
2009      * 
2010      * @param workingDirectory a workingDirectory object.
2011      */
2012     public void setWorkingDirectory( String workingDirectory )
2013     {
2014         this.workingDirectory = workingDirectory;
2015     } //-- void setWorkingDirectory( String )
2016 
2017     
2018     /**
2019      * Field resolvedSnapshotDependencies.
2020      */
2021     private java.util.Map<String, ReleaseStageVersions> resolvedSnapshotDependencies = new java.util.HashMap<>();
2022 
2023     /**
2024      * Field projectVersions
2025      */
2026     private java.util.Map<String, ReleaseStageVersions> projectVersions = new java.util.HashMap<>();
2027     
2028     /**
2029      * Field originalScmInfo.
2030      */
2031     private java.util.Map<String, org.apache.maven.model.Scm> originalScmInfo = new java.util.HashMap<>();
2032     
2033     
2034     java.util.Map<String, ReleaseStageVersions> getProjectVersions()
2035     {
2036         return projectVersions;
2037     }
2038     
2039     java.util.Map<String, org.apache.maven.model.Scm> getOriginalScmInfo()
2040     {
2041         return originalScmInfo;
2042     }
2043     
2044     /**
2045      * Method getResolvedSnapshotDependencies.
2046      * 
2047      * @return Map
2048      */
2049     java.util.Map<String, ReleaseStageVersions> getResolvedSnapshotDependencies()
2050     {
2051         return this.resolvedSnapshotDependencies;
2052     } //-- java.util.Map<String, ReleaseStageVersions> getResolvedSnapshotDependencies()
2053 
2054     public String getProjectReleaseVersion( String projectId )
2055     {
2056         if ( projectVersions.containsKey( projectId ) )
2057         {
2058             return projectVersions.get( projectId ).getRelease();
2059         }
2060         return null;
2061     }
2062 
2063     /**
2064      * Method addReleaseVersion.
2065      * 
2066      * @param projectId
2067      * @param version
2068      */
2069     public void addReleaseVersion( String projectId, String version )
2070     {
2071         computeIfAbsent( projectVersions, projectId ).setRelease( version ); 
2072     } //-- void addReleaseVersion( String, String )
2073 
2074     public String getProjectDevelopmentVersion( String projectId )
2075     {
2076         if ( projectVersions.containsKey( projectId ) )
2077         {
2078             return projectVersions.get( projectId ).getDevelopment();
2079         }
2080         return null;
2081     }
2082 
2083     /**
2084      * Method addDevelopmentVersion.
2085      * 
2086      * @param projectId
2087      * @param version
2088      */
2089     public void addDevelopmentVersion( String projectId, String version )
2090     {
2091         computeIfAbsent( projectVersions, projectId ).setDevelopment( version ); 
2092     } //-- void addDevelopmentVersion( String, String )
2093 
2094     /**
2095      * Method getOriginalScmInfo.
2096      * 
2097      * @return Scm
2098      */
2099     public org.apache.maven.model.Scm getOriginalScmInfo( String id )
2100     {
2101         return this.originalScmInfo.get( id );
2102     } //-- Scm getOriginalScmInfo( String)
2103     
2104     /**
2105      * Method hasOriginalScmInfo.
2106      * 
2107      * @return map contains
2108      */
2109     public boolean hasOriginalScmInfo( String id )
2110     {
2111         return this.originalScmInfo.containsKey( id );
2112     } //-- boolean hasOriginalScmInfo( String )
2113 
2114     /**
2115      * Method addOriginalScmInfo.
2116      * 
2117      * @param key
2118      * @param value
2119      */
2120     public void addOriginalScmInfo( String key, org.apache.maven.model.Scm value )
2121     {
2122         getOriginalScmInfo().put( key, value );
2123     } //-- void addOriginalScmInfo( String, org.apache.maven.model.Scm )
2124 
2125     public String getProjectOriginalVersion( String projectId )
2126     {
2127         if ( projectVersions.containsKey( projectId ) )
2128         {
2129             return projectVersions.get( projectId ).getOriginal();
2130         }
2131         return null;
2132     }
2133     
2134     public void addOriginalVersion( String projectId, String version )
2135     {
2136         computeIfAbsent( projectVersions, projectId ).setOriginal( version ); 
2137     }
2138 
2139     /**
2140      * Retrieve the release version for the resolved snapshot dependency.
2141      *
2142      */
2143     public String getDependencyDevelopmentVersion( String artifactConflictId )
2144     {
2145         if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
2146         {
2147             ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
2148             return versionMap.getDevelopment();
2149         }
2150         return null;
2151     }
2152 
2153     /**
2154      * Retrieve the release version for the resolved snapshot dependency.
2155      *
2156      */
2157     public String getDependencyReleaseVersion( String artifactConflictId )
2158     {
2159         if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
2160         {
2161             ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
2162             return versionMap.getRelease();
2163         }
2164         return null;
2165     }
2166 
2167     /**
2168      * Retrieve the original version for the resolved snapshot dependency.
2169      *
2170      */
2171     public String getDependencyOriginalVersion( String artifactConflictId )
2172     {
2173         if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
2174         {
2175             ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
2176             return versionMap.getOriginal();
2177         }
2178         return null;
2179     }
2180     
2181     public void addDependencyOriginalVersion( String dependencyKey, String version )
2182     {
2183         computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setOriginal( version );
2184     }
2185 
2186     public void addDependencyReleaseVersion( String dependencyKey, String version )
2187     {
2188         computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setRelease( version );
2189     }
2190 
2191     public void addDependencyDevelopmentVersion( String dependencyKey, String version )
2192     {
2193         computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setDevelopment( version );
2194     }
2195     
2196     private static ReleaseStageVersions computeIfAbsent( java.util.Map<String, ReleaseStageVersions> map, String key )
2197     {
2198         ReleaseStageVersions value = map.get( key );
2199         if ( value == null )
2200         {
2201             value = new ReleaseStageVersions();
2202             map.put( key, value );
2203         }
2204         return value;
2205     }
2206 
2207     @Override
2208     public boolean equals( Object obj )
2209     {
2210         if ( this == obj )
2211         {
2212             return true;
2213         }
2214         if ( obj == null || getClass() != obj.getClass() )
2215         {
2216             return false;
2217         }
2218 
2219         ModelloReleaseDescriptor that = (ModelloReleaseDescriptor) obj;
2220 
2221         if ( updateDependencies               != that.isUpdateDependencies()               ||
2222              useReleaseProfile                != that.isUseReleaseProfile()                ||
2223              autoVersionSubmodules            != that.isAutoVersionSubmodules()            ||
2224              snapshotReleasePluginAllowed     != that.isSnapshotReleasePluginAllowed()     ||
2225              commitByProject                  != that.isCommitByProject()                  ||
2226              branchCreation                   != that.isBranchCreation()                   ||
2227              updateBranchVersions             != that.isUpdateBranchVersions()             ||
2228              updateWorkingCopyVersions        != that.isUpdateWorkingCopyVersions()        ||
2229              suppressCommitBeforeTagOrBranch  != that.isSuppressCommitBeforeTagOrBranch()  ||
2230              updateVersionsToSnapshot         != that.isUpdateVersionsToSnapshot()         ||
2231              allowTimestampedSnapshots        != that.isAllowTimestampedSnapshots()        ||
2232              remoteTagging                    != that.isRemoteTagging()                    ||
2233              pinExternals                     != that.isPinExternals()                     ||
2234              localCheckout                    != that.isLocalCheckout()                    ||
2235              pushChanges                      != that.isPushChanges()
2236            )
2237            {
2238                return false;
2239            }
2240 
2241         if ( !java.util.Objects.equals( defaultDevelopmentVersion, that.getDefaultDevelopmentVersion() ) ||
2242              !java.util.Objects.equals( scmRelativePathProjectDirectory, that.getScmRelativePathProjectDirectory() ) ||
2243              !java.util.Objects.equals( checkoutDirectory, that.getCheckoutDirectory() ) ||
2244              !java.util.Objects.equals( performGoals, that.getPerformGoals() ) ||
2245              !java.util.Objects.equals( defaultReleaseVersion, that.getDefaultReleaseVersion() ) ||
2246              !java.util.Objects.equals( workItem, that.getWorkItem() ) ||
2247              !java.util.Objects.equals( scmReleasedPomRevision, that.getScmReleasedPomRevision() ) ||
2248              !java.util.Objects.equals( autoResolveSnapshots, that.getAutoResolveSnapshots() )
2249            )
2250         {
2251             return false;
2252         }
2253 
2254         if ( addSchema != that.isAddSchema() )
2255         {
2256             return false;
2257         }
2258         if ( generateReleasePoms != that.isGenerateReleasePoms() )
2259         {
2260             return false;
2261         }
2262         if ( interactive != that.isInteractive() )
2263         {
2264             return false;
2265         }
2266         if ( scmUseEditMode != that.isScmUseEditMode() )
2267         {
2268             return false;
2269         }
2270         if ( !java.util.Objects.equals( completedPhase, that.getCompletedPhase() ) )
2271         {
2272             return false;
2273         }
2274         if ( ( checkModificationExcludes == null || ( checkModificationExcludes != null && checkModificationExcludes.size() == 0) ) &&
2275             ( that.getCheckModificationExcludes() == null || ( that.getCheckModificationExcludes() != null && that.getCheckModificationExcludes().size() == 0 ) ) )
2276         {
2277             // Do nothing.  This is a Modello workaround
2278         }
2279         else
2280         {
2281             if ( checkModificationExcludes != null ? !checkModificationExcludes.equals( that.getCheckModificationExcludes() )
2282                 : that.getCheckModificationExcludes() != null )
2283             {
2284                 return false;
2285             }
2286         }
2287         if ( ( originalScmInfo == null || ( originalScmInfo != null && originalScmInfo.size() == 0 ) ) &&
2288             ( that.getOriginalScmInfo() == null || ( that.getOriginalScmInfo() != null && that.getOriginalScmInfo().size() == 0 ) ) )
2289         {
2290             // Do nothing.  This is a Modello workaround
2291         }
2292         else
2293         {
2294             if ( originalScmInfo != null ? !compareScmCollections( that.getOriginalScmInfo() ) : that.getOriginalScmInfo() != null )
2295             {
2296                 return false;
2297             }
2298         }
2299         if ( !java.util.Objects.equals( additionalArguments, that.getAdditionalArguments() ) )
2300         {
2301             return false;
2302         }
2303         if ( !java.util.Objects.equals( preparationGoals, that.getPreparationGoals() ) )
2304         {
2305             return false;
2306         }
2307         if ( !java.util.Objects.equals( completionGoals, that.getCompletionGoals() ) )
2308         {
2309             return false;
2310         }
2311         if ( !java.util.Objects.equals( pomFileName, that.getPomFileName() ) )
2312         {
2313             return false;
2314         }
2315         if ( !java.util.Objects.equals( scmDevelopmentCommitComment, that.getScmDevelopmentCommitComment() ) )
2316         {
2317             return false;
2318         }
2319         if ( !java.util.Objects.equals( scmShallowClone, that.isScmShallowClone() ) )
2320         {
2321             return false;
2322         }
2323         if ( !java.util.Objects.equals( scmReleaseCommitComment, that.getScmReleaseCommitComment() ) )
2324         {
2325             return false;
2326         }
2327         if ( !java.util.Objects.equals( scmBranchCommitComment, that.getScmBranchCommitComment() ) )
2328         {
2329             return false;
2330         }
2331         if ( !java.util.Objects.equals( scmRollbackCommitComment, that.getScmRollbackCommitComment() ) )
2332         {
2333             return false;
2334         }
2335         if ( !java.util.Objects.equals( scmPrivateKeyPassPhrase, that.getScmPrivateKeyPassPhrase() ) )
2336         {
2337             return false;
2338         }
2339         if ( !java.util.Objects.equals( scmPassword, that.getScmPassword() ) )
2340         {
2341             return false;
2342         }
2343         if ( !java.util.Objects.equals( scmPrivateKey, that.getScmPrivateKey() ) )
2344         {
2345             return false;
2346         }
2347         if ( !java.util.Objects.equals( scmReleaseLabel, that.getScmReleaseLabel() ) )
2348         {
2349             return false;
2350         }
2351         if ( !java.util.Objects.equals( scmTagBase, that.getScmTagBase() ) )
2352         {
2353             return false;
2354         }
2355         if ( !java.util.Objects.equals( scmBranchBase, that.getScmBranchBase() ) )
2356         {
2357             return false;
2358         }
2359         if ( !java.util.Objects.equals( scmId, that.getScmId() ) )
2360         {
2361             return false;
2362         }
2363         if ( !java.util.Objects.equals( scmSourceUrl, that.getScmSourceUrl() ) )
2364         {
2365             return false;
2366         }
2367         if ( !java.util.Objects.equals( scmUsername, that.getScmUsername() ) )
2368         {
2369             return false;
2370         }
2371         if ( !java.util.Objects.equals( workingDirectory, that.getWorkingDirectory() ) )
2372         {
2373             return false;
2374         }
2375         if ( !java.util.Objects.equals( scmTagNameFormat, that.getScmTagNameFormat() ) )
2376         {
2377             return false;
2378         }
2379         if ( !java.util.Objects.deepEquals( projectVersions, that.getProjectVersions() ) )
2380         {
2381             return false;
2382         }
2383 
2384         return true;
2385     }
2386 
2387     private boolean compareScmCollections( java.util.Map<String, org.apache.maven.model.Scm> that )
2388     {
2389         // Must manually compare as Scm doesn't have an equals method
2390         if ( that == null && originalScmInfo == null )
2391         {
2392             return true;
2393         }
2394 
2395         if ( ( that == null && originalScmInfo != null ) || ( that != null && originalScmInfo == null ) )
2396         {
2397             return false;
2398         }
2399 
2400         if ( that.size() != originalScmInfo.size() )
2401         {
2402             return false;
2403         }
2404 
2405         for ( java.util.Iterator<java.util.Map.Entry<String, org.apache.maven.model.Scm>> i = originalScmInfo.entrySet().iterator(); i.hasNext(); )
2406         {
2407             java.util.Map.Entry<String, org.apache.maven.model.Scm> entry = i.next();
2408 
2409             org.apache.maven.model.Scm thatScm = that.get( entry.getKey() );
2410 
2411             org.apache.maven.model.Scm thisScm = entry.getValue();
2412             if ( thatScm == null && thisScm == null )
2413             {
2414                 return true;
2415             }
2416             else if ( thatScm == null )
2417             {
2418                 return false;
2419             }
2420             else if ( thisScm == null )
2421             {
2422                 return true;
2423             }
2424 
2425             if ( thisScm.getConnection() != null ? !thisScm.getConnection().equals( thatScm.getConnection() )
2426                 : thatScm.getConnection() != null )
2427             {
2428                 return false;
2429             }
2430             if ( thisScm.getDeveloperConnection() != null ? !thisScm.getDeveloperConnection().equals(
2431                 thatScm.getDeveloperConnection() ) : thatScm.getDeveloperConnection() != null )
2432             {
2433                 return false;
2434             }
2435             if ( thisScm.getUrl() != null ? !thisScm.getUrl().equals( thatScm.getUrl() ) : thatScm.getUrl() != null )
2436             {
2437                 return false;
2438             }
2439             if ( thisScm.getTag() != null ? !thisScm.getTag().equals( thatScm.getTag() ) : thatScm.getTag() != null )
2440             {
2441                 return false;
2442             }
2443 
2444             if ( thisScm instanceof org.apache.maven.shared.release.scm.IdentifiedScm && thatScm instanceof org.apache.maven.shared.release.scm.IdentifiedScm )
2445             {
2446                 org.apache.maven.shared.release.scm.IdentifiedScm thisIdentifiedScm = (org.apache.maven.shared.release.scm.IdentifiedScm) thisScm;
2447                 org.apache.maven.shared.release.scm.IdentifiedScm thatIdentifiedScm = (org.apache.maven.shared.release.scm.IdentifiedScm) thatScm;
2448                 if ( thisIdentifiedScm.getId() != null ? !thisIdentifiedScm.getId().equals( thatIdentifiedScm.getId() ) : thatIdentifiedScm.getId() != null )
2449                 {
2450                     return false;
2451                 }
2452             }
2453         }
2454 
2455         return true;
2456     }
2457 
2458     @Override
2459     public int hashCode()
2460     {
2461         int result = java.util.Objects.hashCode( completedPhase );
2462         result = 29 * result + java.util.Objects.hashCode( scmReleaseLabel );
2463         result = 29 * result + java.util.Objects.hashCode( additionalArguments );
2464         result = 29 * result + java.util.Objects.hashCode( preparationGoals );
2465         result = 29 * result + java.util.Objects.hashCode( completionGoals );
2466         result = 29 * result + java.util.Objects.hashCode( pomFileName );
2467         result = 29 * result + java.util.Objects.hashCode( checkModificationExcludes );
2468         result = 29 * result + java.util.Objects.hashCode( scmDevelopmentCommitComment );
2469         result = 29 * result + java.util.Objects.hashCode( scmShallowClone );
2470         result = 29 * result + java.util.Objects.hashCode( scmReleaseCommitComment );
2471         result = 29 * result + java.util.Objects.hashCode( scmBranchCommitComment );
2472         result = 29 * result + java.util.Objects.hashCode( scmRollbackCommitComment );
2473         result = 29 * result + java.util.Objects.hashCode( scmTagBase );
2474         result = 29 * result + java.util.Objects.hashCode( scmBranchBase );
2475         result = 29 * result + java.util.Objects.hashCode( scmUsername );
2476         result = 29 * result + java.util.Objects.hashCode( scmPassword  );
2477         result = 29 * result + java.util.Objects.hashCode( scmId );
2478         result = 29 * result + java.util.Objects.hashCode( scmSourceUrl );
2479         result = 29 * result + java.util.Objects.hashCode( scmPrivateKey );
2480         result = 29 * result + java.util.Objects.hashCode( scmPrivateKeyPassPhrase );
2481         result = 29 * result + java.util.Objects.hashCode( workingDirectory );
2482         result = 29 * result + java.util.Objects.hashCode( scmUseEditMode );
2483         result = 29 * result + java.util.Objects.hashCode( addSchema );
2484         result = 29 * result + java.util.Objects.hashCode( generateReleasePoms );
2485         result = 29 * result + java.util.Objects.hashCode( interactive );
2486         result = 29 * result + java.util.Objects.hashCode( projectVersions );
2487         result = 29 * result + java.util.Objects.hashCode( originalScmInfo  );
2488         result = 29 * result + java.util.Objects.hashCode( updateDependencies );
2489         result = 29 * result + java.util.Objects.hashCode( useReleaseProfile );
2490         result = 29 * result + java.util.Objects.hashCode( autoVersionSubmodules );
2491         result = 29 * result + java.util.Objects.hashCode( snapshotReleasePluginAllowed );
2492         result = 29 * result + java.util.Objects.hashCode( commitByProject );
2493         result = 29 * result + java.util.Objects.hashCode( branchCreation );
2494         result = 29 * result + java.util.Objects.hashCode( updateBranchVersions );
2495         result = 29 * result + java.util.Objects.hashCode( updateWorkingCopyVersions );
2496         result = 29 * result + java.util.Objects.hashCode( suppressCommitBeforeTagOrBranch );
2497         result = 29 * result + java.util.Objects.hashCode( updateVersionsToSnapshot );
2498         result = 29 * result + java.util.Objects.hashCode( allowTimestampedSnapshots );
2499         result = 29 * result + java.util.Objects.hashCode( remoteTagging );
2500         result = 29 * result + java.util.Objects.hashCode( localCheckout );
2501         result = 29 * result + java.util.Objects.hashCode( pushChanges );
2502         result = 29 * result + java.util.Objects.hashCode( defaultDevelopmentVersion  );
2503         result = 29 * result + java.util.Objects.hashCode( scmRelativePathProjectDirectory );
2504         result = 29 * result + java.util.Objects.hashCode( checkoutDirectory );
2505         result = 29 * result + java.util.Objects.hashCode( performGoals );
2506         result = 29 * result + java.util.Objects.hashCode( defaultReleaseVersion );
2507         result = 29 * result + java.util.Objects.hashCode( scmReleasedPomRevision );
2508         result = 29 * result + java.util.Objects.hashCode( workItem );
2509         result = 29 * result + java.util.Objects.hashCode( autoResolveSnapshots );
2510         result = 29 * result + java.util.Objects.hashCode( pinExternals );
2511 
2512         return result;
2513     }
2514 
2515 }