Author: evenisse Date: Tue Apr 24 06:40:14 2007 New Revision: 531935 URL: http://svn.apache.org/viewvc?view=rev&rev=531935 Log: [MRELEASE-6] [MRELEASE-168] Commit pom files even if the project use a flat directory structure. The use must choose to commit files by modules instead of an atomic commit.
Modified: 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/mdo/release-descriptor.mdo maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java 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=531935&r1=531934&r2=531935 ============================================================================== --- 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 Tue Apr 24 06:40:14 2007 @@ -90,24 +90,47 @@ List pomFiles = createPomFiles( reactorProjects ); + if ( releaseDescriptor.isCommitByProject() ) + { + for ( Iterator i = pomFiles.iterator(); i.hasNext(); ) + { + File pomFile = (File) i.next(); + ScmFileSet fileSet = new ScmFileSet( pomFile.getParentFile(), pomFile ); + + checkin( provider, repository, fileSet, createMessage( releaseDescriptor ) ); + } + } + else + { + ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ), pomFiles ); + + checkin( provider, repository, fileSet, createMessage( releaseDescriptor ) ); + } + + relResult.setResultCode( ReleaseResult.SUCCESS ); + + return relResult; + } + + private void checkin( ScmProvider provider, ScmRepository repository, ScmFileSet fileSet, + String message ) + throws ReleaseExecutionException, ReleaseScmCommandException + { CheckInScmResult result; + try { - ScmFileSet fileSet = new ScmFileSet( new File( releaseDescriptor.getWorkingDirectory() ), pomFiles ); - result = provider.checkIn( repository, fileSet, (ScmVersion) null, createMessage( releaseDescriptor ) ); + result = provider.checkIn( repository, fileSet, (ScmVersion) null, message ); } catch ( ScmException e ) { throw new ReleaseExecutionException( "An error is occurred in the checkin process: " + e.getMessage(), e ); } + if ( !result.isSuccess() ) { throw new ReleaseScmCommandException( "Unable to commit files", result ); } - - relResult.setResultCode( ReleaseResult.SUCCESS ); - - return relResult; } public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects ) Modified: maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?view=diff&rev=531935&r1=531934&r2=531935 ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo (original) +++ maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo Tue Apr 24 06:40:14 2007 @@ -56,6 +56,8 @@ The description of this release configuration </description> </field> + <!-- Settings needs to be resolved --> + <!-- SCM Information --> <field> <name>ScmCommentPrefix</name> <version>1.0.0</version> @@ -65,8 +67,6 @@ The prefix of SCM modification messages </description> </field> - <!-- Settings needs to be resolved --> - <!-- SCM Information --> <field> <name>scmSourceUrl</name> <version>1.0.0</version> @@ -249,6 +249,15 @@ <type>String</type> <description> The goals to execute in preparation 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> Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?view=diff&rev=531935&r1=531934&r2=531935 ============================================================================== --- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original) +++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Tue Apr 24 06:40:14 2007 @@ -87,6 +87,13 @@ */ private String preparationGoals; + /** + * Commits to do are atomic or by project. + * + * @parameter expression="${commitByProject}" default-value="false" + */ + private boolean commitByProject; + public void execute() throws MojoExecutionException, MojoFailureException { @@ -95,6 +102,7 @@ config.setGenerateReleasePoms( generateReleasePoms ); config.setScmUseEditMode( useEditMode ); config.setPreparationGoals( preparationGoals ); + config.setCommitByProject( commitByProject ); try {