blob: fe418331a6dc5c0768d3f0a97e983c4d693bafac [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<model xmlns="https://codehaus-plexus.github.io/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://codehaus-plexus.github.io/MODELLO/1.4.0 https://codehaus-plexus.github.io/modello/xsd/modello-1.4.0.xsd">
<id>release-descriptor</id>
<name>ReleaseDescriptor</name>
<description>
A release descriptor contains everything that is needed to perform a
release. A release descriptor can be used by third party systems like
Continuum to perform releases in a consistent way. The release model could also
be deployed to the repository manager so that new releases can be announced easily
and automatically.
</description>
<defaults>
<default>
<key>package</key>
<value>org.apache.maven.shared.release.config</value>
</default>
</defaults>
<classes>
<class rootElement="true">
<name>ModelloReleaseDescriptor</name>
<version>1.0.0+</version>
<fields>
<!-- Descriptive Information -->
<field>
<name>name</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The name of this release configuration
</description>
</field>
<field>
<name>description</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The description of this release configuration
</description>
</field>
<!-- Settings needs to be resolved -->
<!-- SCM Information -->
<field>
<name>ScmCommentPrefix</name>
<version>1.0.0+</version>
<type>String</type>
<defaultValue>[maven-release-manager] </defaultValue>
<description>
The prefix of SCM modification messages
</description>
</field>
<field>
<name>scmSourceUrl</name>
<version>1.0.0+</version>
<type>String</type>
<description>
This is a MavenSCM of where you're going to get the sources to make the release with.
Example: scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-release-plugin
</description>
</field>
<field>
<name>scmTagBase</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Where you are going to put your tagged sources
Example https://svn.apache.org/repos/asf/maven/plugins/tags
</description>
</field>
<field>
<name>scmBranchBase</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Where you are going to put your branched sources
Example https://svn.apache.org/repos/asf/maven/plugins/branches
</description>
</field>
<field>
<name>scmReleaseLabel</name>
<version>1.0.0+</version>
<type>String</type>
<description>
tag or branch name: the identifier for the tag/branch.
Example: maven-release-plugin-2.0
</description>
</field>
<field>
<name>scmId</name>
<version>2.3.0+</version>
<type>String</type>
<description>
The id can be used to get the credentials by the server-id from the settings.xml
</description>
</field>
<field>
<name>scmUsername</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The user name to interact with the scm
</description>
</field>
<field>
<name>scmPassword</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The password for the user interacting with the scm
</description>
</field>
<field>
<name>scmPrivateKey</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Private key for an SSH based SCM repository.
</description>
</field>
<field>
<name>scmPrivateKeyPassPhrase</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Pass phrase for the private key.
</description>
</field>
<field>
<name>scmUseEditMode</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to use edit mode when making SCM modifications. This setting is disregarded
if the SCM does not support edit mode, or if edit mode is compulsory for the given SCM.
</description>
</field>
<field>
<name>scmRelativePathProjectDirectory</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Relative path of the project returned by the checkout command.
</description>
</field>
<!-- Maven Information -->
<!-- <field> -->
<!-- <name>releaseVersions</name> -->
<!-- <version>1.0.0+</version> -->
<!-- <type>Map</type> -->
<!-- <association> -->
<!-- <type>String</type> -->
<!-- <multiplicity>*</multiplicity> -->
<!-- </association> -->
<!-- <description> -->
<!-- A map of projects to versions to use when releasing the given projects. -->
<!-- </description> -->
<!-- </field> -->
<!-- <field> -->
<!-- <name>developmentVersions</name> -->
<!-- <version>1.0.0+</version> -->
<!-- <type>Map</type> -->
<!-- <association> -->
<!-- <type>String</type> -->
<!-- <multiplicity>*</multiplicity> -->
<!-- </association> -->
<!-- <description> -->
<!-- A map of projects to versions to use when moving the given projects back into development after release. -->
<!-- </description> -->
<!-- </field> -->
<!-- <field> -->
<!-- <name>resolvedSnapshotDependencies</name> -->
<!-- <version>1.0.0+</version> -->
<!-- <type>Map</type> -->
<!-- <association> -->
<!-- <type>String</type> -->
<!-- <multiplicity>*</multiplicity> -->
<!-- </association> -->
<!-- <description> -->
<!-- A map of resolved snapshot dependencies versions. -->
<!-- </description> -->
<!-- </field> -->
<field>
<name>updateDependencies</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
If updateDependencies is false, dependencies version won't be updated to the next development version.
</description>
</field>
<field>
<name>useReleaseProfile</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
Whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate.
If set to true, this will set the property "performRelease" to true.
</description>
</field>
<field>
<name>activateProfiles</name>
<version>3.0.0+</version>
<type>List</type>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
<description>List of profiles to activate.</description>
</field>
<field>
<name>workingDirectory</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The directory where the release is performed.
</description>
</field>
<field>
<name>checkoutDirectory</name>
<version>1.0.0+</version>
<type>String</type>
<defaultValue>target/checkout</defaultValue>
<description>
The directory where the tag will be checked out.
</description>
</field>
<field>
<name>completedPhase</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The last completed phase.
</description>
</field>
<field>
<name>addSchema</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
<![CDATA[Whether to add the model schema to the top of the rewritten POM if it wasn't there already.
If <code>false</code> then the root element will remain untouched.]]>
</description>
</field>
<field>
<name>generateReleasePoms</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to generate release POMs.
</description>
</field>
<field>
<name>autoVersionSubmodules</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to use the parent pom version for submodule versions.
</description>
</field>
<field>
<name>interactive</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
Whether the release process is interactive and the release manager should be prompted to
confirm values, or whether the defaults are used regardless.
</description>
</field>
<field>
<name>snapshotReleasePluginAllowed</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
Whether a SNAPSHOT of the release plugin is allowed.
</description>
</field>
<field>
<name>additionalArguments</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Additional arguments to pass to any executed Maven process.
</description>
</field>
<field>
<name>pomFileName</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The file name of the POM to pass to any executed Maven process.
</description>
</field>
<field>
<name>checkModificationExcludes</name>
<version>2.1.0+</version>
<type>List</type>
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
<description>
In some exceptions you want to allow changes to the working copy. Changes
to files listed here will not make the ScmCheckModificationsPhase fail.
</description>
</field>
<field>
<name>preparationGoals</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The goals to execute in preparation for the release.
</description>
</field>
<field>
<name>completionGoals</name>
<version>2.2.0+</version>
<type>String</type>
<description>
The goals to execute in on completion of preparation for the release.
</description>
</field>
<field>
<name>performGoals</name>
<version>1.0.0+</version>
<type>String</type>
<description>
The goals to execute in perform phase for the release.
</description>
</field>
<field>
<name>commitByProject</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
The commits must be done by modules or not. Set it to true in case of flat directory structure.
</description>
</field>
<field>
<name>branchCreation</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to create a branch instead of do a release.
</description>
</field>
<field>
<name>updateBranchVersions</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to update branch POM versions.
</description>
</field>
<field>
<name>updateWorkingCopyVersions</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
Whether to update working copy POM versions.
</description>
</field>
<field>
<name>updateVersionsToSnapshot</name>
<version>1.0.0+</version>
<type>boolean</type>
<description>
Whether to update branch versions to SNAPSHOT.
</description>
</field>
<field>
<name>suppressCommitBeforeTagOrBranch</name>
<version>2.1.0+</version>
<type>boolean</type>
<description>
Whether to suppress a commit of changes to the working copy before a tag or branch is created.
</description>
</field>
<field>
<name>waitBeforeTagging</name>
<version>2.2.0+</version>
<type>int</type>
<description>
Wait the specified number of seconds before creating a tag.
</description>
</field>
<field>
<name>allowTimestampedSnapshots</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
Should timestamped SNAPSHOT dependencies be allowed? Default is to fail when any SNAPSHOT
dependency is found.
</description>
</field>
<field>
<name>defaultReleaseVersion</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Default version to use for the tagged release or the new branch.
</description>
</field>
<field>
<name>defaultDevelopmentVersion</name>
<version>1.0.0+</version>
<type>String</type>
<description>
Default version to use for new working copy.
</description>
</field>
<field>
<name>projectVersionPolicyId</name>
<version>2.5.1+</version>
<type>String</type>
<defaultValue>default</defaultValue>
<description>
The role-hint for the VersionPolicy implementation used to calculate the project versions.
</description>
</field>
<field>
<name>projectNamingPolicyId</name>
<version>3.0.0+</version>
<type>String</type>
<!-- no default value to support scmTagNameFormat-style behavior -->
<description>
The role-hint for the NamingPolicy implementation used to calculate the project branch and tag names.
</description>
</field>
<field>
<name>releaseStrategyId</name>
<version>3.0.0+</version>
<type>String</type>
<defaultValue>default</defaultValue>
<description>
The role-hint for the release Strategy implementation.
</description>
</field>
<field>
<name>remoteTagging</name>
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
NOTE : currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > 1.5.0
(http://jira.codehaus.org/browse/SCM-406)
</description>
</field>
<field>
<name>scmReleasedPomRevision</name>
<version>1.0.0+</version>
<type>String</type>
<description>
NOTE : currently only implemented with svn scm. It contains the revision of the committed released pom to remotely tag
the source code with this revision.
</description>
</field>
<field>
<name>pushChanges</name>
<version>2.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description>
Should distributed changes be pushed to the central repository?
For many distributed SCMs like Git, a change like a commit is only stored in your local copy of the repository.
Pushing the change allows your to more easily share it with other users.
</description>
</field>
<field>
<name>localCheckout</name>
<version>2.0.0+</version>
<type>boolean</type>
<defaultValue>false</defaultValue>
<description>
If the scm provider should use local checkouts via file://${basedir}
instead of doing a clean checkout over the network.
This is very helpful for releasing large projects!
</description>
</field>
<field>
<name>scmTagNameFormat</name>
<version>2.2.0+</version>
<type>String</type>
<description>
Specifies the format for generating a tag name. Property expansion is
used with the optional prefix of project, where properties are delimited
with @{ and }
</description>
</field>
<field>
<name>workItem</name>
<version>3.0.0+</version>
<type>String</type>
<description>
Some SCMs may require a Work Item or a Task to allow the changes to be pushed or delivered.
This field allows you to specify that Work Item or Task. It is optional, and only relevant
if pushChanges is true.
</description>
</field>
<!-- Announcement Information
Announcement related info, this can be a second part of the process.
o anything that might be of interest in the release
o issue management urls
o new content
o announcement text
-->
</fields>
<!-- Code Segments -->
<codeSegments>
<codeSegment>
<version>2.1.0+</version>
<code><![CDATA[
/**
* Field resolvedSnapshotDependencies.
*/
private java.util.Map<String, ReleaseStageVersions> resolvedSnapshotDependencies = new java.util.HashMap<>();
/**
* Field projectVersions
*/
private java.util.Map<String, ReleaseStageVersions> projectVersions = new java.util.HashMap<>();
/**
* Field originalScmInfo.
*/
private java.util.Map<String, org.apache.maven.model.Scm> originalScmInfo = new java.util.HashMap<>();
java.util.Map<String, ReleaseStageVersions> getProjectVersions()
{
return projectVersions;
}
java.util.Map<String, org.apache.maven.model.Scm> getOriginalScmInfo()
{
return originalScmInfo;
}
/**
* Method getResolvedSnapshotDependencies.
*
* @return Map
*/
java.util.Map<String, ReleaseStageVersions> getResolvedSnapshotDependencies()
{
return this.resolvedSnapshotDependencies;
} //-- java.util.Map<String, ReleaseStageVersions> getResolvedSnapshotDependencies()
public String getProjectReleaseVersion( String projectId )
{
if ( projectVersions.containsKey( projectId ) )
{
return projectVersions.get( projectId ).getRelease();
}
return null;
}
/**
* Method addReleaseVersion.
*
* @param key
* @param value
*/
public void addReleaseVersion( String projectId, String version )
{
computeIfAbsent( projectVersions, projectId ).setRelease( version );
} //-- void addReleaseVersion( String, String )
public String getProjectDevelopmentVersion( String projectId )
{
if ( projectVersions.containsKey( projectId ) )
{
return projectVersions.get( projectId ).getDevelopment();
}
return null;
}
/**
* Method addDevelopmentVersion.
*
* @param key
* @param value
*/
public void addDevelopmentVersion( String projectId, String version )
{
computeIfAbsent( projectVersions, projectId ).setDevelopment( version );
} //-- void addDevelopmentVersion( String, String )
/**
* Method getOriginalScmInfo.
*
* @return Map
*/
public org.apache.maven.model.Scm getOriginalScmInfo( String id )
{
return this.originalScmInfo.get( id );
} //-- java.util.Map<Object, String> getOriginalScmInfo()
/**
* Method addOriginalScmInfo.
*
* @param key
* @param value
*/
public void addOriginalScmInfo( String key, org.apache.maven.model.Scm value )
{
getOriginalScmInfo().put( key, value );
} //-- void addOriginalScmInfo( String, org.apache.maven.model.Scm )
public String getProjectOriginalVersion( String projectId )
{
if ( projectVersions.containsKey( projectId ) )
{
return projectVersions.get( projectId ).getOriginal();
}
return null;
}
public void addOriginalVersion( String projectId, String version )
{
computeIfAbsent( projectVersions, projectId ).setOriginal( version );
}
/**
* Retrieve the release version for the resolved snapshot dependency.
*
*/
public String getDependencyDevelopmentVersion( String artifactConflictId )
{
if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
{
ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
return versionMap.getDevelopment();
}
return null;
}
/**
* Retrieve the release version for the resolved snapshot dependency.
*
*/
public String getDependencyReleaseVersion( String artifactConflictId )
{
if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
{
ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
return versionMap.getRelease();
}
return null;
}
/**
* Retrieve the original version for the resolved snapshot dependency.
*
*/
public String getDependencyOriginalVersion( String artifactConflictId )
{
if ( resolvedSnapshotDependencies.containsKey( artifactConflictId ) )
{
ReleaseStageVersions versionMap = resolvedSnapshotDependencies.get( artifactConflictId );
return versionMap.getOriginal();
}
return null;
}
public void addDependencyOriginalVersion( String dependencyKey, String version )
{
computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setOriginal( version );
}
public void addDependencyReleaseVersion( String dependencyKey, String version )
{
computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setRelease( version );
}
public void addDependencyDevelopmentVersion( String dependencyKey, String version )
{
computeIfAbsent( resolvedSnapshotDependencies, dependencyKey ).setDevelopment( version );
}
private static ReleaseStageVersions computeIfAbsent( java.util.Map<String, ReleaseStageVersions> map, String key )
{
ReleaseStageVersions value = map.get( key );
if ( value == null )
{
value = new ReleaseStageVersions();
map.put( key, value );
}
return value;
}
@Override
public boolean equals( Object obj )
{
if ( this == obj )
{
return true;
}
if ( obj == null || getClass() != obj.getClass() )
{
return false;
}
ModelloReleaseDescriptor that = (ModelloReleaseDescriptor) obj;
if ( updateDependencies != that.isUpdateDependencies() ||
useReleaseProfile != that.isUseReleaseProfile() ||
autoVersionSubmodules != that.isAutoVersionSubmodules() ||
snapshotReleasePluginAllowed != that.isSnapshotReleasePluginAllowed() ||
commitByProject != that.isCommitByProject() ||
branchCreation != that.isBranchCreation() ||
updateBranchVersions != that.isUpdateBranchVersions() ||
updateWorkingCopyVersions != that.isUpdateWorkingCopyVersions() ||
suppressCommitBeforeTagOrBranch != that.isSuppressCommitBeforeTagOrBranch() ||
updateVersionsToSnapshot != that.isUpdateVersionsToSnapshot() ||
allowTimestampedSnapshots != that.isAllowTimestampedSnapshots() ||
remoteTagging != that.isRemoteTagging() ||
localCheckout != that.isLocalCheckout() ||
pushChanges != that.isPushChanges()
)
{
return false;
}
if ( !java.util.Objects.equals( defaultDevelopmentVersion, that.getDefaultDevelopmentVersion() ) ||
!java.util.Objects.equals( scmRelativePathProjectDirectory, that.getScmRelativePathProjectDirectory() ) ||
!java.util.Objects.equals( checkoutDirectory, that.getCheckoutDirectory() ) ||
!java.util.Objects.equals( performGoals, that.getPerformGoals() ) ||
!java.util.Objects.equals( defaultReleaseVersion, that.getDefaultReleaseVersion() ) ||
!java.util.Objects.equals( workItem, that.getWorkItem() ) ||
!java.util.Objects.equals( scmReleasedPomRevision, that.getScmReleasedPomRevision() )
)
{
return false;
}
if ( addSchema != that.isAddSchema() )
{
return false;
}
if ( generateReleasePoms != that.isGenerateReleasePoms() )
{
return false;
}
if ( interactive != that.isInteractive() )
{
return false;
}
if ( scmUseEditMode != that.isScmUseEditMode() )
{
return false;
}
if ( !java.util.Objects.equals( completedPhase, that.getCompletedPhase() ) )
{
return false;
}
if ( ( checkModificationExcludes == null || ( checkModificationExcludes != null && checkModificationExcludes.size() == 0) ) &&
( that.getCheckModificationExcludes() == null || ( that.getCheckModificationExcludes() != null && that.getCheckModificationExcludes().size() == 0) ) )
{
// Do nothing. This is a Modello workaround
}
else
{
if ( checkModificationExcludes != null ? !checkModificationExcludes.equals( that.getCheckModificationExcludes() )
: that.getCheckModificationExcludes() != null )
{
return false;
}
}
if ( ( originalScmInfo == null || (originalScmInfo != null && originalScmInfo.size() == 0 ) ) &&
( that.getOriginalScmInfo() == null || ( that.getOriginalScmInfo() != null && that.getOriginalScmInfo().size() == 0 ) ) )
{
// Do nothing. This is a Modello workaround
}
else
{
if ( originalScmInfo != null ? !compareScmCollections( that.getOriginalScmInfo() ) : that.getOriginalScmInfo() != null )
{
return false;
}
}
if ( !java.util.Objects.equals( additionalArguments, that.getAdditionalArguments() ) )
{
return false;
}
if ( !java.util.Objects.equals( preparationGoals, that.getPreparationGoals() ) )
{
return false;
}
if ( !java.util.Objects.equals( completionGoals, that.getCompletionGoals() ) )
{
return false;
}
if ( !java.util.Objects.equals( pomFileName, that.getPomFileName() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmPrivateKeyPassPhrase, that.getScmPrivateKeyPassPhrase() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmPassword, that.getScmPassword() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmPrivateKey, that.getScmPrivateKey() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmReleaseLabel, that.getScmReleaseLabel() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmTagBase, that.getScmTagBase() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmBranchBase, that.getScmBranchBase() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmId, that.getScmId() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmSourceUrl, that.getScmSourceUrl() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmUsername, that.getScmUsername() ) )
{
return false;
}
if ( !java.util.Objects.equals( workingDirectory, that.getWorkingDirectory() ) )
{
return false;
}
if ( !java.util.Objects.equals( scmTagNameFormat, that.getScmTagNameFormat() ) )
{
return false;
}
if ( !java.util.Objects.deepEquals( projectVersions, that.getProjectVersions() ) )
{
return false;
}
return true;
}
private boolean compareScmCollections( java.util.Map<String, org.apache.maven.model.Scm> that )
{
// Must manually compare as Scm doesn't have an equals method
if ( that == null && originalScmInfo == null )
{
return true;
}
if ( ( that == null && originalScmInfo != null ) || ( that != null && originalScmInfo == null ) )
{
return false;
}
if ( that.size() != originalScmInfo.size() )
{
return false;
}
for ( java.util.Iterator<java.util.Map.Entry<String, org.apache.maven.model.Scm>> i = originalScmInfo.entrySet().iterator(); i.hasNext(); )
{
java.util.Map.Entry<String, org.apache.maven.model.Scm> entry = i.next();
org.apache.maven.model.Scm thatScm = that.get( entry.getKey() );
org.apache.maven.model.Scm thisScm = entry.getValue();
if ( thatScm == null && thisScm == null )
{
return true;
}
else if ( thatScm == null )
{
return false;
}
else if ( thisScm == null )
{
return true;
}
if ( thisScm.getConnection() != null ? !thisScm.getConnection().equals( thatScm.getConnection() )
: thatScm.getConnection() != null )
{
return false;
}
if ( thisScm.getDeveloperConnection() != null ? !thisScm.getDeveloperConnection().equals(
thatScm.getDeveloperConnection() ) : thatScm.getDeveloperConnection() != null )
{
return false;
}
if ( thisScm.getUrl() != null ? !thisScm.getUrl().equals( thatScm.getUrl() ) : thatScm.getUrl() != null )
{
return false;
}
if ( thisScm.getTag() != null ? !thisScm.getTag().equals( thatScm.getTag() ) : thatScm.getTag() != null )
{
return false;
}
if ( thisScm instanceof org.apache.maven.shared.release.scm.IdentifiedScm && thatScm instanceof org.apache.maven.shared.release.scm.IdentifiedScm )
{
org.apache.maven.shared.release.scm.IdentifiedScm thisIdentifiedScm = (org.apache.maven.shared.release.scm.IdentifiedScm) thisScm;
org.apache.maven.shared.release.scm.IdentifiedScm thatIdentifiedScm = (org.apache.maven.shared.release.scm.IdentifiedScm) thatScm;
if ( thisIdentifiedScm.getId() != null ? !thisIdentifiedScm.getId().equals( thatIdentifiedScm.getId() ) : thatIdentifiedScm.getId() != null )
{
return false;
}
}
}
return true;
}
@Override
public int hashCode()
{
int result = java.util.Objects.hashCode( completedPhase );
result = 29 * result + java.util.Objects.hashCode( scmReleaseLabel );
result = 29 * result + java.util.Objects.hashCode( additionalArguments );
result = 29 * result + java.util.Objects.hashCode( preparationGoals );
result = 29 * result + java.util.Objects.hashCode( completionGoals );
result = 29 * result + java.util.Objects.hashCode( pomFileName );
result = 29 * result + java.util.Objects.hashCode( checkModificationExcludes );
result = 29 * result + java.util.Objects.hashCode( scmTagBase );
result = 29 * result + java.util.Objects.hashCode( scmBranchBase );
result = 29 * result + java.util.Objects.hashCode( scmUsername );
result = 29 * result + java.util.Objects.hashCode( scmPassword );
result = 29 * result + java.util.Objects.hashCode( scmId );
result = 29 * result + java.util.Objects.hashCode( scmSourceUrl );
result = 29 * result + java.util.Objects.hashCode( scmPrivateKey );
result = 29 * result + java.util.Objects.hashCode( scmPrivateKeyPassPhrase );
result = 29 * result + java.util.Objects.hashCode( workingDirectory );
result = 29 * result + java.util.Objects.hashCode( scmUseEditMode );
result = 29 * result + java.util.Objects.hashCode( addSchema );
result = 29 * result + java.util.Objects.hashCode( generateReleasePoms );
result = 29 * result + java.util.Objects.hashCode( interactive );
result = 29 * result + java.util.Objects.hashCode( projectVersions );
result = 29 * result + java.util.Objects.hashCode( originalScmInfo );
result = 29 * result + java.util.Objects.hashCode( updateDependencies );
result = 29 * result + java.util.Objects.hashCode( useReleaseProfile );
result = 29 * result + java.util.Objects.hashCode( autoVersionSubmodules );
result = 29 * result + java.util.Objects.hashCode( snapshotReleasePluginAllowed );
result = 29 * result + java.util.Objects.hashCode( commitByProject );
result = 29 * result + java.util.Objects.hashCode( branchCreation );
result = 29 * result + java.util.Objects.hashCode( updateBranchVersions );
result = 29 * result + java.util.Objects.hashCode( updateWorkingCopyVersions );
result = 29 * result + java.util.Objects.hashCode( suppressCommitBeforeTagOrBranch );
result = 29 * result + java.util.Objects.hashCode( updateVersionsToSnapshot );
result = 29 * result + java.util.Objects.hashCode( allowTimestampedSnapshots );
result = 29 * result + java.util.Objects.hashCode( remoteTagging );
result = 29 * result + java.util.Objects.hashCode( localCheckout );
result = 29 * result + java.util.Objects.hashCode( pushChanges );
result = 29 * result + java.util.Objects.hashCode( defaultDevelopmentVersion );
result = 29 * result + java.util.Objects.hashCode( scmRelativePathProjectDirectory );
result = 29 * result + java.util.Objects.hashCode( checkoutDirectory );
result = 29 * result + java.util.Objects.hashCode( performGoals );
result = 29 * result + java.util.Objects.hashCode( defaultReleaseVersion );
result = 29 * result + java.util.Objects.hashCode( scmReleasedPomRevision );
result = 29 * result + java.util.Objects.hashCode( workItem );
return result;
}
]]></code>
</codeSegment>
</codeSegments>
</class>
<class>
<name>ReleaseStageVersions</name>
<fields>
<field>
<name>original</name>
<version>3.0.0+</version>
<type>String</type>
</field>
<field>
<name>release</name>
<version>3.0.0+</version>
<type>String</type>
</field>
<field>
<name>development</name>
<version>3.0.0+</version>
<type>String</type>
</field>
</fields>
<codeSegments>
<codeSegment>
<version>2.1.0+</version>
<code><![CDATA[
@Override
public boolean equals( Object obj )
{
if ( this == obj )
{
return true;
}
if ( obj == null || getClass() != obj.getClass() )
{
return false;
}
ReleaseStageVersions that = (ReleaseStageVersions) obj;
if ( !java.util.Objects.equals( original, that.original ) )
{
return false;
}
if ( !java.util.Objects.equals( release, that.release ) )
{
return false;
}
if ( !java.util.Objects.equals( development, that.development ) )
{
return false;
}
return true;
}
@Override
public int hashCode()
{
int result = java.util.Objects.hashCode( original );
result = 29 * result + java.util.Objects.hashCode( release );
result = 29 * result + java.util.Objects.hashCode( development );
return result;
}
]]></code>
</codeSegment>
</codeSegments>
</class>
</classes>
</model>