You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2007/05/21 16:03:55 UTC

svn commit: r540148 [1/5] - in /maven/release/trunk/maven-release-manager/src: main/java/org/apache/maven/shared/release/phase/ main/java/org/apache/maven/shared/release/util/ test/java/org/apache/maven/shared/release/phase/ test/resources/org/apache/m...

Author: evenisse
Date: Mon May 21 07:03:35 2007
New Revision: 540148

URL: http://svn.apache.org/viewvc?view=rev&rev=540148
Log:
[MRELEASE-177] Fix generateReleasePoms phase.
Submitted by: Mark Hobson

Added:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java   (with props)
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java   (with props)
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java   (with props)
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.java   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RemoveReleasePomsPhaseTest.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/basic-pom/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/basic-pom/expected-release-pom-with-schema.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/basic-pom/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/basic-pom/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/external-range-dependency/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/external-range-dependency/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/external-range-dependency/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-dependencies/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-extension/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-plugins/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-differing-snapshot-report-plugins/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-dependency/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-managed-snapshot-plugin/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/subsubproject/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/subsubproject/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-dependencies/subproject4/subsubproject/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-extension/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject4/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject4/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-plugins/subproject4/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-range-dependency/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject3/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject3/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject4/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject4/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/internal-snapshot-report-plugins/subproject4/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/subproject1/expected-release-pom-version-changed.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-inherited-version/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject2/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-namespace/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-parent/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/subproject1/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-with-released-parent/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-without-extension-version/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-without-extension-version/expected-release-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/generate-release-poms/pom-without-extension-version/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/basic-pom/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/basic-pom/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/remove-release-poms/pom-with-modules/subproject2/pom.xml   (with props)
Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPhaseTest.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractBackupPomsPhase.java Mon May 21 07:03:35 2007
@@ -20,6 +20,7 @@
  */
 
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.util.ReleaseUtil;
 
 import java.io.File;
 
@@ -33,7 +34,7 @@
 
     protected File getPomBackup( MavenProject project )
     {
-        File pomFile = project.getFile();
+        File pomFile = ReleaseUtil.getStandardPom( project );
 
         if ( pomFile != null )
         {

Added: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java?view=auto&rev=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java (added)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java Mon May 21 07:03:35 2007
@@ -0,0 +1,78 @@
+package org.apache.maven.shared.release.phase;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+
+/**
+ * Abstract release POM phase.
+ * 
+ * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
+ */
+public abstract class AbstractReleasePomsPhase extends AbstractReleasePhase
+{
+    /**
+     * Tool that gets a configured SCM repository from release configuration.
+     * 
+     * @plexus.requirement
+     */
+    private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
+    protected ScmRepository getScmRepository( ReleaseDescriptor releaseDescriptor, Settings settings )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        try
+        {
+            return scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
+        }
+        catch ( ScmRepositoryException exception )
+        {
+            throw new ReleaseScmRepositoryException( exception.getMessage(), exception.getValidationMessages() );
+        }
+        catch ( NoSuchScmProviderException exception )
+        {
+            throw new ReleaseExecutionException( "Unable to configure SCM repository: " + exception.getMessage(),
+                                                 exception );
+        }
+    }
+
+    protected ScmProvider getScmProvider( ScmRepository scmRepository )
+        throws ReleaseExecutionException
+    {
+        try
+        {
+            return scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
+        }
+        catch ( NoSuchScmProviderException exception )
+        {
+            throw new ReleaseExecutionException( "Unable to configure SCM repository: " + exception.getMessage(),
+                                                 exception );
+        }
+    }
+}

Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractReleasePomsPhase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java Mon May 21 07:03:35 2007
@@ -126,7 +126,7 @@
         String outtro = null;
         try
         {
-            String content = FileUtils.fileRead( project.getFile() );
+            String content = FileUtils.fileRead( ReleaseUtil.getStandardPom( project ) );
             // we need to eliminate any extra whitespace inside elements, as JDOM will nuke it
             content = content.replaceAll( "<([^!][^>]*?)\\s{2,}([^>]*?)>", "<$1 $2>" );
             content = content.replaceAll( "(\\s{2,}|[^\\s])/>", "$1 />" );
@@ -180,15 +180,17 @@
         transformDocument( project, document.getRootElement(), releaseDescriptor, reactorProjects, scmRepository,
                            result );
 
+        File pomFile = ReleaseUtil.getStandardPom( project );
+        
         if ( simulate )
         {
             File outputFile =
-                new File( project.getFile().getParentFile(), project.getFile().getName() + "." + pomSuffix );
+                new File( pomFile.getParentFile(), pomFile.getName() + "." + pomSuffix );
             writePom( outputFile, document, releaseDescriptor, project.getModelVersion(), intro, outtro );
         }
         else
         {
-            writePom( project.getFile(), document, releaseDescriptor, project.getModelVersion(), intro, outtro,
+            writePom( pomFile, document, releaseDescriptor, project.getModelVersion(), intro, outtro,
                       scmRepository, provider );
         }
     }
@@ -705,8 +707,9 @@
             {
                 MavenProject project = (MavenProject) i.next();
 
+                File pomFile = ReleaseUtil.getStandardPom( project );
                 File file =
-                    new File( project.getFile().getParentFile(), project.getFile().getName() + "." + pomSuffix );
+                    new File( pomFile.getParentFile(), pomFile.getName() + "." + pomSuffix );
                 if ( file.exists() )
                 {
                     file.delete();

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CreateBackupPomsPhase.java Mon May 21 07:03:35 2007
@@ -25,6 +25,7 @@
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.IOException;
@@ -88,7 +89,7 @@
 
         try
         {
-            FileUtils.copyFile( project.getFile(), getPomBackup( project ) );
+            FileUtils.copyFile( ReleaseUtil.getStandardPom( project ), getPomBackup( project ) );
         }
         catch ( IOException e )
         {

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java Mon May 21 07:03:35 2007
@@ -19,24 +19,81 @@
  * under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Scm;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.path.PathTranslator;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
-
+import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
+import org.apache.maven.shared.release.scm.ScmTranslator;
+import org.apache.maven.shared.release.util.ReleaseUtil;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Generate release POMs.
- *
+ * 
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="generate-release-poms"
  */
 public class GenerateReleasePomsPhase
-    extends AbstractReleasePhase
+    extends AbstractReleasePomsPhase
 {
+    /**
+     * 
+     * 
+     * @plexus.requirement
+     */
+    private PathTranslator pathTranslator;
+
+    /**
+     * SCM URL translators mapped by provider name.
+     * 
+     * @plexus.requirement role="org.apache.maven.shared.release.scm.ScmTranslator"
+     */
+    private Map scmTranslators;
+
+    /*
+     * @see org.apache.maven.shared.release.phase.ReleasePhase#execute(org.apache.maven.shared.release.config.ReleaseDescriptor,
+     *      org.apache.maven.settings.Settings, java.util.List)
+     */
     public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
-        throws ReleaseExecutionException
+        throws ReleaseExecutionException, ReleaseFailureException
+    {
+        return execute( releaseDescriptor, settings, reactorProjects, false );
+    }
+
+    private ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+                                   boolean simulate )
+        throws ReleaseExecutionException, ReleaseFailureException
     {
         ReleaseResult result = new ReleaseResult();
 
@@ -44,7 +101,11 @@
         {
             logInfo( result, "Generating release POMs..." );
 
-            generateReleasePoms();
+            generateReleasePoms( releaseDescriptor, settings, reactorProjects, simulate, result );
+        }
+        else
+        {
+            logInfo( result, "Not generating release POMs" );
         }
 
         result.setResultCode( ReleaseResult.SUCCESS );
@@ -52,338 +113,453 @@
         return result;
     }
 
-    private void generateReleasePoms()
+    private void generateReleasePoms( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+                                      boolean simulate, ReleaseResult result )
+        throws ReleaseExecutionException, ReleaseFailureException
+    {
+        List releasePoms = new ArrayList();
+
+        for ( Iterator iterator = reactorProjects.iterator(); iterator.hasNext(); )
+        {
+            MavenProject project = (MavenProject) iterator.next();
+
+            logInfo( result, "Generating release POM for '" + project.getName() + "'..." );
+
+            releasePoms.add( generateReleasePom( project, releaseDescriptor, settings, reactorProjects, simulate, result ) );
+        }
+        
+        addReleasePomsToScm( releaseDescriptor, settings, reactorProjects, simulate, result, releasePoms );
+    }
+
+    private File generateReleasePom( MavenProject project, ReleaseDescriptor releaseDescriptor, Settings settings,
+                                     List reactorProjects, boolean simulate, ReleaseResult result )
+        throws ReleaseExecutionException, ReleaseFailureException
     {
-/* TODO [!]: implement
-        String canonicalBasedir;
+        // create release pom
+
+        Model releasePom = createReleaseModel( project, releaseDescriptor, settings, reactorProjects, result );
+
+        // write release pom to file
+
+        MavenXpp3Writer pomWriter = new MavenXpp3Writer();
+
+        File releasePomFile = ReleaseUtil.getReleasePom( project );
+
+        FileWriter fileWriter = null;
 
         try
         {
-            canonicalBasedir = trimPathForScmCalculation( basedir );
+            fileWriter = new FileWriter( releasePomFile );
+
+            pomWriter.write( fileWriter, releasePom );
+        }
+        catch ( IOException exception )
+        {
+            throw new ReleaseExecutionException( "Cannot generate release POM", exception );
         }
-        catch ( IOException e )
+        finally
         {
-            throw new MojoExecutionException( "Cannot canonicalize basedir: " + basedir.getAbsolutePath(), e );
+            IOUtil.close( fileWriter );
         }
-
-        ProjectVersionResolver versionResolver = getVersionResolver();
-        for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+        
+        return releasePomFile;
+    }
+    
+    private void addReleasePomsToScm( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects, boolean simulate, ReleaseResult result, List releasePoms )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        if ( simulate )
         {
-            MavenProject project = (MavenProject) it.next();
-
-            MavenProject releaseProject = new MavenProject( project );
-            Model releaseModel = releaseProject.getModel();
-            fixNullValueInModel( releaseModel, project.getModel() );
+            logInfo( result, "Full run would be adding " + releasePoms );
+        }
+        else
+        {
+            ScmRepository scmRepository = getScmRepository( releaseDescriptor, settings );
+            ScmProvider scmProvider = getScmProvider( scmRepository );
 
-            // the release POM should reflect bits of these which were injected at build time...
-            // we don't need these polluting the POM.
-            releaseModel.setProfiles( Collections.EMPTY_LIST );
-            releaseModel.setDependencyManagement( null );
-            releaseProject.getBuild().setPluginManagement( null );
+            MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
+            ScmFileSet scmFileSet = new ScmFileSet( rootProject.getFile().getParentFile(), releasePoms );
 
-            String projectVersion = releaseModel.getVersion();
-            if ( ArtifactUtils.isSnapshot( projectVersion ) )
+            try
             {
-                String snapshotVersion = projectVersion;
-
-                projectVersion = versionResolver.getResolvedVersion( project.getGroupId(), project.getArtifactId() );
+                AddScmResult scmResult = scmProvider.add( scmRepository, scmFileSet );
 
-                if ( ArtifactUtils.isSnapshot( projectVersion ) )
+                if ( !scmResult.isSuccess() )
                 {
-                    throw new MojoExecutionException(
-                        "MAJOR PROBLEM!!! Cannot find resolved version to be used in releasing project: " +
-                            releaseProject.getId() );
+                    throw new ReleaseScmCommandException( "Cannot add release POM to SCM", scmResult );
                 }
+            }
+            catch ( ScmException exception )
+            {
+                throw new ReleaseExecutionException( "Cannot add release POM to SCM: " + exception.getMessage(),
+                                                     exception );
+            }
+        }
+    }
+    
+    private Model createReleaseModel( MavenProject project, ReleaseDescriptor releaseDescriptor, Settings settings,
+                                      List reactorProjects, ReleaseResult result )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        Map originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects );
+        Map mappedVersions = getNextVersionMap( releaseDescriptor );
 
-                releaseModel.setVersion( projectVersion );
+        MavenProject releaseProject = new MavenProject( project );
+        Model releaseModel = releaseProject.getModel();
 
-                String finalName = releaseModel.getBuild().getFinalName();
+        // the release POM should reflect bits of these which were injected at build time...
+        // we don't need these polluting the POM.
+        releaseModel.setParent( null );
+        releaseModel.setProfiles( Collections.EMPTY_LIST );
+        releaseModel.setDependencyManagement( null );
+        releaseProject.getBuild().setPluginManagement( null );
+
+        // update project version
+        String projectVersion = releaseModel.getVersion();
+        String releaseVersion = getNextVersion( mappedVersions, project.getGroupId(), project.getArtifactId(), projectVersion );
+        releaseModel.setVersion( releaseVersion );
 
-                if ( finalName.equals( releaseModel.getArtifactId() + "-" + snapshotVersion ) )
-                {
-                    releaseModel.getBuild().setFinalName( null );
-                }
-                else if ( finalName.indexOf( "SNAPSHOT" ) > -1 )
-                {
-                    throw new MojoExecutionException(
-                        "Cannot reliably adjust the finalName of project: " + releaseProject.getId() );
-                }
-            }
+        // update final name if implicit
+        String finalName = releaseModel.getBuild().getFinalName();
+
+        if ( finalName.equals( releaseModel.getArtifactId() + "-" + projectVersion ) )
+        {
+            releaseModel.getBuild().setFinalName( null );
+        }
+        else if ( finalName.indexOf( "SNAPSHOT" ) != -1 )
+        {
+            throw new ReleaseFailureException( "Cannot reliably adjust the finalName of project: "
+                            + releaseProject.getId() );
+        }
 
-            releaseModel.setParent( null );
+        // update scm
+        Scm scm = releaseModel.getScm();
 
-            Set artifacts = releaseProject.getArtifacts();
+        if ( scm != null )
+        {
+            ScmRepository scmRepository = getScmRepository( releaseDescriptor, settings );
+            ScmTranslator scmTranslator = getScmTranslator( scmRepository );
 
-            if ( artifacts != null )
+            if ( scmTranslator != null )
             {
-                //Rewrite dependencies section
-                List newdeps = new ArrayList();
+                releaseModel.setScm( createReleaseScm( releaseModel.getScm(), scmTranslator, releaseDescriptor ) );
+            }
+            else
+            {
+                String message = "No SCM translator found - skipping rewrite";
 
-                Map oldDeps = new HashMap();
+                result.appendDebug( message );
 
-                List deps = releaseProject.getDependencies();
-                if ( deps != null )
-                {
-                    for ( Iterator depIterator = deps.iterator(); depIterator.hasNext(); )
-                    {
-                        Dependency dep = (Dependency) depIterator.next();
-
-                        oldDeps.put( ArtifactUtils.artifactId( dep.getGroupId(), dep.getArtifactId(), dep.getType(),
-                                                               dep.getVersion() ), dep );
-                    }
-                }
+                getLogger().debug( message );
+            }
+        }
 
-                for ( Iterator i = releaseProject.getArtifacts().iterator(); i.hasNext(); )
-                {
-                    Artifact artifact = (Artifact) i.next();
+        // rewrite dependencies
+        releaseModel.setDependencies( createReleaseDependencies( originalVersions, mappedVersions, releaseProject ) );
 
-                    String key = artifact.getId();
+        // rewrite plugins
+        releaseModel.getBuild().setPlugins( createReleasePlugins( originalVersions, mappedVersions, releaseProject ) );
 
-                    Dependency newdep = new Dependency();
+        // rewrite reports
+        releaseModel.getReporting().setPlugins( createReleaseReportPlugins( originalVersions, mappedVersions, releaseProject ) );
 
-                    newdep.setArtifactId( artifact.getArtifactId() );
-                    newdep.setGroupId( artifact.getGroupId() );
+        // rewrite extensions
+        releaseModel.getBuild().setExtensions( createReleaseExtensions( originalVersions, mappedVersions, releaseProject ) );
 
-                    String version = artifact.getVersion();
-                    if ( artifact.isSnapshot() )
-                    {
-                        version = versionResolver.getResolvedVersion( artifact.getGroupId(), artifact.getArtifactId() );
-
-                        if ( ArtifactUtils.isSnapshot( version ) )
-                        {
-                            throw new MojoExecutionException(
-                                "Unresolved SNAPSHOT version of: " + artifact + ". Cannot proceed with release." );
-                        }
-                    }
-
-                    newdep.setVersion( version );
-                    newdep.setType( artifact.getType() );
-                    newdep.setScope( artifact.getScope() );
-                    newdep.setClassifier( artifact.getClassifier() );
-
-                    Dependency old = (Dependency) oldDeps.get( key );
-
-                    if ( old != null )
-                    {
-                        newdep.setSystemPath( old.getSystemPath() );
-                        newdep.setExclusions( old.getExclusions() );
-                        newdep.setOptional( old.isOptional() );
-                    }
+        pathTranslator.unalignFromBaseDirectory( releaseProject.getModel(), project.getFile().getParentFile() );
 
-                    newdeps.add( newdep );
-                }
+        return releaseModel;
+    }
 
-                releaseModel.setDependencies( newdeps );
-            }
+    public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+        throws ReleaseExecutionException, ReleaseFailureException
+    {
+        return execute( releaseDescriptor, settings, reactorProjects, true );
+    }
 
-            // Use original - don't want the lifecycle introduced ones
-            Build build = releaseProject.getOriginalModel().getBuild();
-            List plugins = build != null ? build.getPlugins() : null;
+    protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List reactorProjects )
+    {
+        return releaseDescriptor.getOriginalVersions( reactorProjects );
+    }
 
-            if ( plugins != null )
-            {
-                //Rewrite plugins version
-                for ( Iterator i = plugins.iterator(); i.hasNext(); )
-                {
-                    Plugin plugin = (Plugin) i.next();
+    protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
+    {
+        return releaseDescriptor.getReleaseVersions();
+    }
+    
+    private String getNextVersion( Map mappedVersions, String groupId, String artifactId, String version )
+        throws ReleaseFailureException
+    {
+        // TODO: share with RewritePomsForReleasePhase.rewriteVersion
 
-                    String version;
-                    try
-                    {
-                        version = pluginVersionManager.resolvePluginVersion( plugin.getGroupId(), plugin
-                            .getArtifactId(), releaseProject, getSettings(), localRepository );
-                    }
-                    catch ( PluginVersionResolutionException e )
-                    {
-                        throw new MojoExecutionException(
-                            "Cannot resolve version for plugin '" + plugin.getKey() + "': " + e.getMessage(), e );
-                    }
-                    catch ( InvalidPluginException e )
-                    {
-                        throw new MojoExecutionException(
-                            "Cannot resolve version for plugin '" + plugin.getKey() + "': " + e.getMessage(), e );
-                    }
-                    catch ( PluginVersionNotFoundException e )
-                    {
-                        throw new MojoFailureException( e.getMessage() );
-                    }
-
-                    if ( ArtifactUtils.isSnapshot( version ) )
-                    {
-                        throw new MojoFailureException(
-                            "Resolved version of plugin is a snapshot. Please release this plugin before releasing this project.\n\nGroupId: " +
-                                plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() +
-                                "\nResolved Version: " + version + "\n\n" );
-                    }
+        String id = ArtifactUtils.versionlessKey( groupId, artifactId );
 
-                    plugin.setVersion( version );
-                }
-            }
+        String nextVersion = (String) mappedVersions.get( id );
 
-            Reporting reporting = releaseModel.getReporting();
-            List reports = reporting != null ? reporting.getPlugins() : null;
+        if ( nextVersion == null )
+        {
+            throw new ReleaseFailureException( "Version for '" + id + "' was not mapped" );
+        }
 
-            if ( reports != null )
-            {
-                //Rewrite report version
-                for ( Iterator i = reports.iterator(); i.hasNext(); )
-                {
-                    ReportPlugin plugin = (ReportPlugin) i.next();
+        return nextVersion;
+    }
 
-                    String version;
-                    try
-                    {
-                        version = pluginVersionManager.resolveReportPluginVersion( plugin.getGroupId(), plugin
-                            .getArtifactId(), releaseProject, getSettings(), localRepository );
-                    }
-                    catch ( PluginVersionResolutionException e )
-                    {
-                        throw new MojoExecutionException(
-                            "Cannot resolve version for report '" + plugin.getKey() + "': " + e.getMessage(), e );
-                    }
-                    catch ( InvalidPluginException e )
-                    {
-                        throw new MojoExecutionException(
-                            "Cannot resolve version for plugin '" + plugin.getKey() + "': " + e.getMessage(), e );
-                    }
-                    catch ( PluginVersionNotFoundException e )
-                    {
-                        throw new MojoFailureException( e.getMessage() );
-                    }
-
-                    if ( ArtifactUtils.isSnapshot( version ) )
-                    {
-                        throw new MojoFailureException(
-                            "Resolved version of report is a snapshot. Please release this report plugin before releasing this project.\n\nGroupId: " +
-                                plugin.getGroupId() + "\nArtifactId: " + plugin.getArtifactId() +
-                                "\nResolved Version: " + version + "\n\n" );
-                    }
+    private ScmTranslator getScmTranslator( ScmRepository scmRepository )
+    {
+        return (ScmTranslator) scmTranslators.get( scmRepository.getProvider() );
+    }
 
-                    plugin.setVersion( version );
-                }
-            }
+    private Scm createReleaseScm( Scm scm, ScmTranslator scmTranslator, ReleaseDescriptor releaseDescriptor )
+    {
+        // TODO: share with RewritePomsForReleasePhase.translateScm
 
-            List extensions = build != null ? build.getExtensions() : null;
+        String tag = releaseDescriptor.getScmReleaseLabel();
+        String tagBase = releaseDescriptor.getScmTagBase();
 
-            if ( extensions != null )
+        Scm releaseScm = new Scm();
+
+        if ( scm.getConnection() != null )
+        {
+            String value = scmTranslator.translateTagUrl( scm.getConnection(), tag, tagBase );
+            releaseScm.setConnection( value );
+        }
+
+        if ( scm.getDeveloperConnection() != null )
+        {
+            String value = scmTranslator.translateTagUrl( scm.getDeveloperConnection(), tag, tagBase );
+            releaseScm.setDeveloperConnection( value );
+        }
+
+        if ( scm.getUrl() != null )
+        {
+            String value = scmTranslator.translateTagUrl( scm.getUrl(), tag, tagBase );
+            releaseScm.setUrl( value );
+        }
+
+        if ( scm.getTag() != null )
+        {
+            String value = scmTranslator.resolveTag( scm.getTag() );
+            releaseScm.setTag( value );
+        }
+
+        return releaseScm;
+    }
+    
+    private List createReleaseDependencies( Map originalVersions, Map mappedVersions, MavenProject project )
+        throws ReleaseFailureException
+    {
+        Set artifacts = project.getArtifacts();
+        
+        List releaseDependencies = null;
+
+        if ( artifacts != null )
+        {
+            // make dependency order deterministic for tests (related to MNG-1412)
+            List orderedArtifacts = new ArrayList();
+            orderedArtifacts.addAll( artifacts );
+            Collections.sort( orderedArtifacts );
+            
+            releaseDependencies = new ArrayList();
+
+            for ( Iterator iterator = orderedArtifacts.iterator(); iterator.hasNext(); )
             {
-                //Rewrite extension version
-                Map extensionArtifacts = releaseProject.getExtensionArtifactMap();
+                Artifact artifact = (Artifact) iterator.next();
 
-                for ( Iterator i = extensions.iterator(); i.hasNext(); )
-                {
-                    Extension ext = (Extension) i.next();
+                Dependency releaseDependency = new Dependency();
 
-                    String extensionId = ArtifactUtils.versionlessKey( ext.getGroupId(), ext.getArtifactId() );
+                releaseDependency.setGroupId( artifact.getGroupId() );
+                releaseDependency.setArtifactId( artifact.getArtifactId() );
 
-                    Artifact artifact = (Artifact) extensionArtifacts.get( extensionId );
+                String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
 
-                    String version = resolveVersion( artifact, "extension", releaseProject
-                        .getPluginArtifactRepositories() );
+                releaseDependency.setVersion( version );
+                releaseDependency.setType( artifact.getType() );
+                releaseDependency.setScope( artifact.getScope() );
+                releaseDependency.setClassifier( artifact.getClassifier() );
 
-                    ext.setVersion( version );
-                }
+                releaseDependencies.add( releaseDependency );
             }
+        }
 
-            pathTranslator.unalignFromBaseDirectory( releaseProject.getModel(), project.getFile().getParentFile() );
+        return releaseDependencies;
+    }
+    
+    private String getReleaseVersion( Map originalVersions, Map mappedVersions, Artifact artifact )
+        throws ReleaseFailureException
+    {
+        String key = ArtifactUtils.versionlessKey( artifact );
 
-            File releasePomFile = new File( releaseProject.getFile().getParentFile(), RELEASE_POM );
+        String originalVersion = (String) originalVersions.get( key );
+        String mappedVersion = (String) mappedVersions.get( key );
 
-            Writer writer = null;
+        String version = artifact.getVersion();
 
-            try
+        if ( version.equals( originalVersion ) )
+        {
+            if ( mappedVersion != null )
             {
-                writePom( releasePomFile, releaseProject.getModel(), rootElement );
-
-                writer = new FileWriter( releasePomFile );
-
-                releaseProject.writeModel( writer );
+                version = mappedVersion;
             }
-            catch ( IOException e )
+            else
             {
-                throw new MojoExecutionException( "Cannot write release-pom to: " + releasePomFile, e );
+                throw new ReleaseFailureException( "Version '" + version + "' for '" + key + "' was not mapped" );
             }
-            finally
+        }
+        else
+        {
+            if ( !ArtifactUtils.isSnapshot( version ) )
             {
-                IOUtil.close( writer );
+                version = artifact.getBaseVersion();
             }
+        }
 
-            try
-            {
-                String releasePomPath = trimPathForScmCalculation( releasePomFile );
+        return version;
+    }
+    
+    private List createReleasePlugins( Map originalVersions, Map mappedVersions, MavenProject project )
+        throws ReleaseFailureException
+    {
+        List releasePlugins = null;
 
-                releasePomPath = releasePomPath.substring( canonicalBasedir.length() + 1 );
+        // Use original - don't want the lifecycle introduced ones
+        Build build = project.getOriginalModel().getBuild();
 
-                ScmHelper scm = getScm( basedir.getAbsolutePath() );
+        if ( build != null )
+        {
+            List plugins = build.getPlugins();
 
-                if ( !testmode )
-                {
-                    scm.add( releasePomPath );
-                }
-                else
+            if ( plugins != null )
+            {
+                Map artifactsById = project.getPluginArtifactMap();
+
+                releasePlugins = new ArrayList();
+
+                for ( Iterator iterator = plugins.iterator(); iterator.hasNext(); )
                 {
-                    getLog().info( "[TESTMODE] adding file: " + releasePomPath );
+                    Plugin plugin = (Plugin) iterator.next();
+                    String id = ArtifactUtils.versionlessKey( plugin.getGroupId(), plugin.getArtifactId() );
+                    Artifact artifact = (Artifact) artifactsById.get( id );
+                    String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+
+                    Plugin releasePlugin = new Plugin();
+                    releasePlugin.setGroupId( plugin.getGroupId() );
+                    releasePlugin.setArtifactId( plugin.getArtifactId() );
+                    releasePlugin.setVersion( version );
+                    releasePlugin.setExtensions( plugin.isExtensions() );
+                    releasePlugin.setExecutions( plugin.getExecutions() );
+                    releasePlugin.setDependencies( plugin.getDependencies() );
+                    releasePlugin.setGoals( plugin.getGoals() );
+                    releasePlugin.setInherited( plugin.getInherited() );
+                    releasePlugin.setConfiguration( plugin.getConfiguration() );
+
+                    releasePlugins.add( releasePlugin );
                 }
             }
-            catch ( ScmException e )
-            {
-                throw new MojoExecutionException( "Error adding the release-pom.xml: " + releasePomFile, e );
-            }
-            catch ( IOException e )
-            {
-                throw new MojoExecutionException( "Error adding the release-pom.xml: " + releasePomFile, e );
-            }
         }
-*/
-    }
 
-/*
-    private String resolveVersion( Artifact artifact, String artifactUsage, List pluginArtifactRepositories )
-        throws MojoExecutionException
+        return releasePlugins;
+    }
+    
+    private List createReleaseReportPlugins( Map originalVersions, Map mappedVersions, MavenProject project )
+        throws ReleaseFailureException
     {
-        ProjectVersionResolver versionResolver = getVersionResolver();
-        String resolvedVersion = versionResolver.getResolvedVersion( artifact.getGroupId(), artifact.getArtifactId() );
+        List releaseReportPlugins = null;
+
+        Reporting reporting = project.getModel().getReporting();
 
-        if ( resolvedVersion == null )
+        if ( reporting != null )
         {
-            if ( artifact.getFile() == null )
+            List reportPlugins = reporting.getPlugins();
+
+            if ( reportPlugins != null )
             {
-                try
-                {
-                    artifactMetadataSource.retrieve( artifact, localRepository, pluginArtifactRepositories );
-                }
-                catch ( ArtifactMetadataRetrievalException e )
+                Map artifactsById = project.getReportArtifactMap();
+
+                releaseReportPlugins = new ArrayList();
+
+                for ( Iterator iterator = reportPlugins.iterator(); iterator.hasNext(); )
                 {
-                    throw new MojoExecutionException( "Cannot resolve " + artifactUsage + ": " + artifact, e );
+                    ReportPlugin reportPlugin = (ReportPlugin) iterator.next();
+                    String id = ArtifactUtils.versionlessKey( reportPlugin.getGroupId(), reportPlugin.getArtifactId() );
+                    Artifact artifact = (Artifact) artifactsById.get( id );
+                    String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+
+                    ReportPlugin releaseReportPlugin = new ReportPlugin();
+                    releaseReportPlugin.setGroupId( reportPlugin.getGroupId() );
+                    releaseReportPlugin.setArtifactId( reportPlugin.getArtifactId() );
+                    releaseReportPlugin.setVersion( version );
+                    releaseReportPlugin.setInherited( reportPlugin.getInherited() );
+                    releaseReportPlugin.setConfiguration( reportPlugin.getConfiguration() );
+                    releaseReportPlugin.setReportSets( reportPlugin.getReportSets() );
+
+                    releaseReportPlugins.add( releaseReportPlugin );
                 }
             }
-
-            resolvedVersion = artifact.getVersion();
         }
 
-        return resolvedVersion;
+        return releaseReportPlugins;
     }
-
-    private String trimPathForScmCalculation( File file )
-        throws IOException
+    
+    private List createReleaseExtensions( Map originalVersions, Map mappedVersions, MavenProject project )
+        throws ReleaseFailureException
     {
-        String path = file.getCanonicalPath();
+        List releaseExtensions = null;
 
-        path = path.replace( File.separatorChar, '/' );
+        // Use original - don't want the lifecycle introduced ones
+        Build build = project.getOriginalModel().getBuild();
 
-        if ( path.endsWith( "/" ) )
+        if ( build != null )
         {
-            path = path.substring( path.length() - 1 );
+            List extensions = build.getExtensions();
+
+            if ( extensions != null )
+            {
+                releaseExtensions = new ArrayList();
+
+                for ( Iterator iterator = extensions.iterator(); iterator.hasNext(); )
+                {
+                    Extension extension = (Extension) iterator.next();
+
+                    String id = ArtifactUtils.versionlessKey( extension.getGroupId(), extension.getArtifactId() );
+                    Artifact artifact = (Artifact) project.getExtensionArtifactMap().get( id );
+                    String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+
+                    Extension releaseExtension = new Extension();
+                    releaseExtension.setGroupId( extension.getGroupId() );
+                    releaseExtension.setArtifactId( extension.getArtifactId() );
+                    releaseExtension.setVersion( version );
+
+                    releaseExtensions.add( releaseExtension );
+                }
+            }
         }
 
-        return path;
+        return releaseExtensions;
     }
-*/
-
-    public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+    
+    /*
+     * @see org.apache.maven.shared.release.phase.AbstractReleasePhase#clean(java.util.List)
+     */
+    public ReleaseResult clean( List reactorProjects )
     {
-        // TODO [!]: implement
         ReleaseResult result = new ReleaseResult();
+
+        for ( Iterator iterator = reactorProjects.iterator(); iterator.hasNext(); )
+        {
+            MavenProject project = (MavenProject) iterator.next();
+
+            File releasePom = ReleaseUtil.getReleasePom( project );
+
+            if ( releasePom.exists() )
+            {
+                logInfo( result, "Deleting release POM for '" + project.getName() + "'..." );
+                
+                if ( !releasePom.delete() )
+                {
+                    logWarn( result, "Cannot delete release POM: " + releasePom );
+                }
+            }
+        }
 
         result.setResultCode( ReleaseResult.SUCCESS );
 

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RemoveReleasePomsPhase.java Mon May 21 07:03:35 2007
@@ -19,88 +19,117 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
-
-import java.util.List;
+import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
+import org.apache.maven.shared.release.util.ReleaseUtil;
 
 /**
  * Remove release POMs.
- *
+ * 
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="remove-release-poms"
  */
 public class RemoveReleasePomsPhase
-    extends AbstractReleasePhase
+    extends AbstractReleasePomsPhase
 {
     public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
-        throws ReleaseExecutionException
+        throws ReleaseFailureException, ReleaseExecutionException
     {
-        ReleaseResult result = new ReleaseResult();
+        return execute( releaseDescriptor, settings, reactorProjects, false );
+    }
 
-        // TODO [!]: implement
-        logInfo( result, "Removing release POMs..." );
+    public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        return execute( releaseDescriptor, settings, reactorProjects, true );
+    }
 
-/*
-        File currentReleasePomFile = null;
+    private ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects,
+                                   boolean simulate )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        ReleaseResult result = new ReleaseResult();
 
-        try
+        if ( releaseDescriptor.isGenerateReleasePoms() )
         {
-            String canonicalBasedir = trimPathForScmCalculation( basedir );
-
-            for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
-            {
-                MavenProject project = (MavenProject) it.next();
-
-                currentReleasePomFile = new File( project.getFile().getParentFile(), RELEASE_POM );
-
-                String releasePomPath = trimPathForScmCalculation( currentReleasePomFile );
-
-                releasePomPath = releasePomPath.substring( canonicalBasedir.length() + 1 );
-
-                ScmHelper scm = getScm( basedir.getAbsolutePath() );
-                if ( !dryRun )
-                {
-                    scm.remove( "Removing for next development iteration.", releasePomPath );
-                }
-                else
-                {
-                    getLog().info( "[TESTMODE] Removing for next development iteration. " + releasePomPath );
-                }
+            logInfo( result, "Removing release POMs..." );
 
-                pomFiles.remove( currentReleasePomFile );
-
-                currentReleasePomFile.delete();
-            }
-        }
-        catch ( ScmException e )
-        {
-            throw new MojoExecutionException( "Cannot remove " + currentReleasePomFile + " from development HEAD.",
-                                                                      e );
+            removeReleasePoms( releaseDescriptor, settings, simulate, result, reactorProjects );
         }
-        catch ( IOException e )
+        else
         {
-            throw new MojoExecutionException( "Cannot remove " + currentReleasePomFile + " from development HEAD.",
-                                              e );
+            logInfo( result, "Not removing release POMs" );
         }
 
-*/
-
         result.setResultCode( ReleaseResult.SUCCESS );
 
         return result;
     }
 
-    public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
+    private void removeReleasePoms( ReleaseDescriptor releaseDescriptor, Settings settings, boolean simulate,
+                                    ReleaseResult result, List projects )
+        throws ReleaseFailureException, ReleaseExecutionException
     {
-        ReleaseResult result = new ReleaseResult();
+        List releasePoms = new ArrayList();
 
-        // TODO [!]: implement
+        for ( Iterator iterator = projects.iterator(); iterator.hasNext(); )
+        {
+            MavenProject project = (MavenProject) iterator.next();
 
-        result.setResultCode( ReleaseResult.SUCCESS );
+            logInfo( result, "Removing release POM for '" + project.getName() + "'..." );
 
-        return result;
+            releasePoms.add( ReleaseUtil.getReleasePom( project ) );
+        }
+
+        removeReleasePomsFromScm( releaseDescriptor, settings, simulate, result, releasePoms );
+    }
+    
+    private void removeReleasePomsFromScm( ReleaseDescriptor releaseDescriptor, Settings settings, boolean simulate,
+                                           ReleaseResult result, List releasePoms )
+        throws ReleaseFailureException, ReleaseExecutionException
+    {
+        if ( simulate )
+        {
+            logInfo( result, "Full run would be removing " + releasePoms );
+        }
+        else
+        {
+            ScmRepository scmRepository = getScmRepository( releaseDescriptor, settings );
+            ScmProvider scmProvider = getScmProvider( scmRepository );
+
+            ScmFileSet scmFileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ), releasePoms );
+
+            try
+            {
+                RemoveScmResult scmResult =
+                    scmProvider.remove( scmRepository, scmFileSet, "Removing for next development iteration." );
+
+                if ( !scmResult.isSuccess() )
+                {
+                    throw new ReleaseScmCommandException( "Cannot remove release POMs from SCM", scmResult );
+                }
+            }
+            catch ( ScmException exception )
+            {
+                throw new ReleaseExecutionException( "Cannot remove release POMs from SCM: " + exception.getMessage(),
+                                                     exception );
+            }
+        }
     }
 }

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java Mon May 21 07:03:35 2007
@@ -35,6 +35,7 @@
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -127,7 +128,7 @@
 
         try
         {
-            FileUtils.copyFile( getPomBackup( project ), project.getFile() );
+            FileUtils.copyFile( getPomBackup( project ), ReleaseUtil.getStandardPom( project ) );
         }
         catch ( IOException e )
         {

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPhase.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCommitPhase.java Mon May 21 07:03:35 2007
@@ -36,6 +36,7 @@
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.util.ReleaseUtil;
 
 import java.io.File;
 import java.text.MessageFormat;
@@ -88,20 +89,21 @@
             throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
         }
 
-        List pomFiles = createPomFiles( reactorProjects );
-
         if ( releaseDescriptor.isCommitByProject() )
         {
-            for ( Iterator i = pomFiles.iterator(); i.hasNext(); )
+            for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
             {
-                File pomFile = (File) i.next();
-                ScmFileSet fileSet = new ScmFileSet( pomFile.getParentFile(), pomFile );
+                MavenProject project = (MavenProject) i.next();
+
+                List pomFiles = createPomFiles( releaseDescriptor, project );
+                ScmFileSet fileSet = new ScmFileSet( project.getFile().getParentFile(), pomFiles );
 
                 checkin( provider, repository, fileSet, createMessage( releaseDescriptor ) );
             }
         }
         else
         {
+            List pomFiles = createPomFiles( releaseDescriptor, reactorProjects );
             ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ), pomFiles );
 
             checkin( provider, repository, fileSet, createMessage( releaseDescriptor ) );
@@ -139,7 +141,7 @@
 
         validateConfiguration( releaseDescriptor );
 
-        Collection pomFiles = createPomFiles( reactorProjects );
+        Collection pomFiles = createPomFiles( releaseDescriptor, reactorProjects );
         logInfo( result, "Full run would be checking in " + pomFiles.size() + " files with message: '" +
             createMessage( releaseDescriptor ) + "'" );
 
@@ -163,13 +165,27 @@
                                      new Object[]{releaseDescriptor.getScmReleaseLabel()} );
     }
 
-    private static List createPomFiles( List reactorProjects )
+    private static List createPomFiles( ReleaseDescriptor releaseDescriptor, MavenProject project )
+    {
+        List pomFiles = new ArrayList();
+
+        pomFiles.add( ReleaseUtil.getStandardPom( project ) );
+
+        if ( releaseDescriptor.isGenerateReleasePoms() )
+        {
+            pomFiles.add( ReleaseUtil.getReleasePom( project ) );
+        }
+
+        return pomFiles;
+    }
+
+    private static List createPomFiles( ReleaseDescriptor releaseDescriptor, List reactorProjects )
     {
-        List pomFiles = new ArrayList( reactorProjects.size() );
+        List pomFiles = new ArrayList();
         for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
         {
             MavenProject project = (MavenProject) i.next();
-            pomFiles.add( project.getFile() );
+            pomFiles.addAll( createPomFiles( releaseDescriptor, project ) );
         }
         return pomFiles;
     }

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java?view=diff&rev=540148&r1=540147&r2=540148
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java Mon May 21 07:03:35 2007
@@ -21,6 +21,7 @@
 
 import org.apache.maven.project.MavenProject;
 
+import java.io.File;
 import java.util.Iterator;
 import java.util.List;
 
@@ -30,6 +31,10 @@
  */
 public class ReleaseUtil
 {
+    public static final String RELEASE_POMv4 = "release-pom.xml";
+    
+    private static final String POMv4 = "pom.xml";
+
     private ReleaseUtil()
     {
     }
@@ -48,5 +53,23 @@
         }
 
         return project;
+    }
+    
+    public static File getStandardPom( MavenProject project )
+    {
+        File pom = project.getFile();
+        File releasePom = getReleasePom( project );
+        
+        if ( pom.equals( releasePom ))
+        {
+            pom = new File( pom.getParent(), POMv4 );
+        }
+        
+        return pom;
+    }
+    
+    public static File getReleasePom( MavenProject project )
+    {
+        return new File( project.getFile().getParent(), RELEASE_POMv4 );
     }
 }