Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 59582 invoked from network); 21 Aug 2007 07:12:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Aug 2007 07:12:43 -0000 Received: (qmail 99489 invoked by uid 500); 21 Aug 2007 07:12:40 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 99437 invoked by uid 500); 21 Aug 2007 07:12:40 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 99424 invoked by uid 99); 21 Aug 2007 07:12:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 00:12:40 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 07:13:14 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1BD591A981A; Tue, 21 Aug 2007 00:12:15 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r567988 - in /maven/release/trunk: maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ maven-release-manager/src/main/mdo/ maven-release-mana... Date: Tue, 21 Aug 2007 07:12:07 -0000 To: commits@maven.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20070821071218.1BD591A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brett Date: Tue Aug 21 00:12:06 2007 New Revision: 567988 URL: http://svn.apache.org/viewvc?rev=567988&view=rev Log: [MRELEASE-124] add an "allowTimestampedSnapshots" parameter Submitted by: Brian Topping, Tuomas Kiviaho Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/external-timestamped-snapshot-dependencies/ maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/external-timestamped-snapshot-dependencies/pom.xml (with props) Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java 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/config/ReleaseUtils.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java?rev=567988&r1=567987&r2=567988&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java (original) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java Tue Aug 21 00:12:06 2007 @@ -73,7 +73,7 @@ mergeInto.setUpdateBranchVersions( toBeMerged.isUpdateBranchVersions() ); mergeInto.setUpdateWorkingCopyVersions( toBeMerged.isUpdateWorkingCopyVersions() ); mergeInto.setUpdateVersionsToSnapshot( toBeMerged.isUpdateVersionsToSnapshot() ); - + mergeInto.setAllowTimestampedSnapshots( toBeMerged.isAllowTimestampedSnapshots() ); mergeInto.setAutoVersionSubmodules( toBeMerged.isAutoVersionSubmodules() ); // These must be overridden, as they are not stored Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java?rev=567988&r1=567987&r2=567988&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java (original) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java Tue Aug 21 00:12:06 2007 @@ -123,7 +123,7 @@ if ( project.getParentArtifact() != null ) { - if ( checkArtifact( project.getParentArtifact(), originalVersions, artifactMap ) ) + if ( checkArtifact( project.getParentArtifact(), originalVersions, artifactMap, releaseDescriptor ) ) { snapshotDependencies.add( project.getParentArtifact() ); } @@ -137,7 +137,7 @@ { Artifact artifact = (Artifact) i.next(); - if ( checkArtifact( artifact, originalVersions, artifactMap ) ) + if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) ) { snapshotDependencies.add( artifact ); } @@ -152,7 +152,7 @@ { Artifact artifact = (Artifact) i.next(); - if ( checkArtifact( artifact, originalVersions, artifactMap ) ) + if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) ) { boolean addToFailures = true; @@ -202,7 +202,7 @@ { Artifact artifact = (Artifact) i.next(); - if ( checkArtifact( artifact, originalVersions, artifactMap ) ) + if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) ) { //snapshotDependencies.add( artifact ); snapshotReportDependencies.add( artifact ); @@ -213,7 +213,7 @@ { Artifact artifact = (Artifact) i.next(); - if ( checkArtifact( artifact, originalVersions, artifactMap ) ) + if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) ) { snapshotExtensionsDependencies.add( artifact ); } @@ -245,7 +245,7 @@ } } - private static boolean checkArtifact( Artifact artifact, Map originalVersions, Map artifactMapByVersionlessId ) + private static boolean checkArtifact( Artifact artifact, Map originalVersions, Map artifactMapByVersionlessId, ReleaseDescriptor releaseDescriptor ) { String versionlessId = ArtifactUtils.versionlessKey( artifact ); Artifact checkArtifact = (Artifact) artifactMapByVersionlessId.get( versionlessId ); @@ -255,17 +255,25 @@ checkArtifact = artifact; } - return checkArtifact( checkArtifact, originalVersions ); + return checkArtifact( checkArtifact, originalVersions, releaseDescriptor ); } - private static boolean checkArtifact( Artifact artifact, Map originalVersions ) + private static boolean checkArtifact( Artifact artifact, Map originalVersions, ReleaseDescriptor releaseDescriptor ) { String versionlessArtifactKey = ArtifactUtils.versionlessKey( artifact.getGroupId(), artifact.getArtifactId() ); // We are only looking at dependencies external to the project - ignore anything found in the reactor as // it's version will be updated - return artifact.isSnapshot() && + boolean result = artifact.isSnapshot() && !artifact.getBaseVersion().equals( originalVersions.get( versionlessArtifactKey ) ); + + // If we have a snapshot but allowTimestampedSnapshots is true, accept the artifact if the version + // indicates that it is a timestamped snapshot. + if ( result && releaseDescriptor.isAllowTimestampedSnapshots() ) { + result = artifact.getVersion().contains("SNAPSHOT"); + } + + return result; } 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?rev=567988&r1=567987&r2=567988&view=diff ============================================================================== --- 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 Aug 21 00:12:06 2007 @@ -351,6 +351,16 @@ Whether to update branch versions to SNAPSHOT. + + allowTimestampedSnapshots + 1.0.0 + boolean + false + + Should timestamped SNAPSHOT dependencies be allowed? Default is to fail when any SNAPSHOT + dependency is found. + + + + + 4.0.0 + groupId + artifactId + 1.0-SNAPSHOT + + + + external + artifactId + 1.0-20060424.060453-1 + + + Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/external-timestamped-snapshot-dependencies/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native 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?rev=567988&r1=567987&r2=567988&view=diff ============================================================================== --- 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 Aug 21 00:12:06 2007 @@ -110,6 +110,13 @@ */ private boolean commitByProject; + /** + * Whether to timestamped SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT. + * + * @parameter expression="${ignoreSnapshots}" default-value="false" + */ + private boolean allowTimestampedSnapshots; + public void execute() throws MojoExecutionException, MojoFailureException { @@ -123,6 +130,7 @@ config.setCommitByProject( commitByProject ); config.setUpdateDependencies( updateDependencies ); config.setAutoVersionSubmodules( autoVersionSubmodules ); + config.setAllowTimestampedSnapshots( allowTimestampedSnapshots ); try { releaseManager.prepare( config, settings, reactorProjects, resume, dryRun );