Author: brett
Date: Tue Sep 6 21:14:22 2005
New Revision: 279240
URL: http://svn.apache.org/viewcvs?rev=279240&view=rev
Log:
various release plugin fixes
Modified:
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
Modified:
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
(original)
+++
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
Tue Sep 6 21:14:22 2005
@@ -171,22 +171,35 @@
{
checkForLocalModifications();
- for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE ) )
{
- MavenProject project = (MavenProject) it.next();
+ for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ {
+ MavenProject project = (MavenProject) it.next();
- getVersionResolver().resolveVersion( project );
+ getVersionResolver().resolveVersion( project );
- getScmRewriter().rewriteScmInfo( project, getTagLabel() );
- }
+ getScmRewriter().rewriteScmInfo( project, getTagLabel() );
+ }
- for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
- {
- MavenProject project = (MavenProject) it.next();
+ for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ {
+ MavenProject project = (MavenProject) it.next();
- checkForPresenceOfSnapshots( project );
+ checkForPresenceOfSnapshots( project );
+
+ transformPomToReleaseVersionPom( project );
+ }
+
+ try
+ {
+ getReleaseProgress().checkpoint( basedir,
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE );
+ }
+ catch ( IOException e )
+ {
+ getLog().warn( "Error writing checkpoint.", e );
+ }
- transformPomToReleaseVersionPom( project );
}
generateReleasePoms();
@@ -204,11 +217,24 @@
getScmRewriter().restoreScmInfo( project );
}
- for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT ) )
{
- MavenProject project = (MavenProject) it.next();
+ for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+ {
+ MavenProject project = (MavenProject) it.next();
+
+ transformPomToSnapshotVersionPom( project );
+ }
- transformPomToSnapshotVersionPom( project );
+ try
+ {
+ getReleaseProgress().checkpoint( basedir,
+
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT );
+ }
+ catch ( IOException e )
+ {
+ getLog().warn( "Error writing checkpoint.", e );
+ }
}
removeReleasePoms();
@@ -229,109 +255,106 @@
private void transformPomToSnapshotVersionPom( MavenProject project )
throws MojoExecutionException
{
- if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT ) )
+ if ( isSnapshot( project.getVersion() ) )
{
- if ( isSnapshot( project.getVersion() ) )
- {
- throw new MojoExecutionException( "This project is a snapshot
(" + project.getVersion() +
- "). It appears that the release version has not been
committed." );
- }
+ throw new MojoExecutionException( "This project is a snapshot (" +
project.getVersion() +
+ "). It appears that the release version has not been
committed." );
+ }
+
+ Model model = project.getOriginalModel();
- Model model = project.getOriginalModel();
+ ProjectVersionResolver versionResolver = getVersionResolver();
- ProjectVersionResolver versionResolver = getVersionResolver();
+ Parent parent = model.getParent();
- Parent parent = model.getParent();
+ //Rewrite parent version
+ if ( parent != null )
+ {
+ String incrementedVersion = versionResolver.getResolvedVersion(
parent.getGroupId(), parent
+ .getArtifactId() );
- //Rewrite parent version
- if ( parent != null )
+ if ( incrementedVersion != null )
{
- String incrementedVersion =
versionResolver.getResolvedVersion( parent.getGroupId(), parent
- .getArtifactId() );
+ parent.setVersion( incrementedVersion );
+ }
+ }
+
+ //Rewrite dependencies section
+ List dependencies = model.getDependencies();
+
+ if ( dependencies != null )
+ {
+ for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+ {
+ Dependency dep = (Dependency) i.next();
+
+ String version = versionResolver.getResolvedVersion(
dep.getGroupId(), dep.getArtifactId() );
- if ( incrementedVersion != null )
+ if ( version != null )
{
- parent.setVersion( incrementedVersion );
+ dep.setVersion( version );
}
}
+ }
+
+ //Rewrite plugins section
+ Build build = model.getBuild();
- //Rewrite dependencies section
- List dependencies = model.getDependencies();
+ if ( build != null )
+ {
+ List plugins = build.getPlugins();
- if ( dependencies != null )
+ if ( plugins != null )
{
- for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+ for ( Iterator i = plugins.iterator(); i.hasNext(); )
{
- Dependency dep = (Dependency) i.next();
+ Plugin plugin = (Plugin) i.next();
- String version = versionResolver.getResolvedVersion(
dep.getGroupId(), dep.getArtifactId() );
+ String version = versionResolver.getResolvedVersion(
plugin.getGroupId(), plugin
+ .getArtifactId() );
if ( version != null )
{
- dep.setVersion( version );
+ plugin.setVersion( version );
}
}
}
- //Rewrite plugins section
- Build build = model.getBuild();
+ //Rewrite extensions section
+ List extensions = build.getExtensions();
- if ( build != null )
+ for ( Iterator i = extensions.iterator(); i.hasNext(); )
{
- List plugins = build.getPlugins();
-
- if ( plugins != null )
- {
- for ( Iterator i = plugins.iterator(); i.hasNext(); )
- {
- Plugin plugin = (Plugin) i.next();
+ Extension ext = (Extension) i.next();
- String version = versionResolver.getResolvedVersion(
plugin.getGroupId(), plugin
- .getArtifactId() );
+ String version = versionResolver.getResolvedVersion(
ext.getGroupId(), ext.getArtifactId() );
- if ( version != null )
- {
- plugin.setVersion( version );
- }
- }
- }
-
- //Rewrite extensions section
- List extensions = build.getExtensions();
-
- for ( Iterator i = extensions.iterator(); i.hasNext(); )
+ if ( version != null )
{
- Extension ext = (Extension) i.next();
-
- String version = versionResolver.getResolvedVersion(
ext.getGroupId(), ext.getArtifactId() );
-
- if ( version != null )
- {
- ext.setVersion( version );
- }
+ ext.setVersion( version );
}
}
+ }
- Reporting reporting = model.getReporting();
+ Reporting reporting = model.getReporting();
- if ( reporting != null )
- {
- //Rewrite reports section
- List reports = reporting.getPlugins();
+ if ( reporting != null )
+ {
+ //Rewrite reports section
+ List reports = reporting.getPlugins();
- if ( reports != null )
+ if ( reports != null )
+ {
+ for ( Iterator i = reports.iterator(); i.hasNext(); )
{
- for ( Iterator i = reports.iterator(); i.hasNext(); )
- {
- ReportPlugin plugin = (ReportPlugin) i.next();
+ ReportPlugin plugin = (ReportPlugin) i.next();
- String version = versionResolver.getResolvedVersion(
plugin.getGroupId(), plugin
- .getArtifactId() );
+ String version = versionResolver.getResolvedVersion(
plugin.getGroupId(), plugin
+ .getArtifactId() );
- if ( version != null )
- {
- plugin.setVersion( version );
- }
+ if ( version != null )
+ {
+ plugin.setVersion( version );
}
}
}
@@ -353,15 +376,6 @@
{
IOUtil.close( writer );
}
-
- try
- {
- getReleaseProgress().checkpoint( basedir,
ReleaseProgressTracker.CP_POM_TRANSORMED_FOR_DEVELOPMENT );
- }
- catch ( IOException e )
- {
- getLog().warn( "Error writing checkpoint.", e );
- }
}
}
@@ -370,49 +384,54 @@
{
if ( releaseProgress == null )
{
- if ( resume )
+ try
{
- try
- {
- releaseProgress = ReleaseProgressTracker.load( basedir );
-
- releaseProgress.verifyResumeCapable();
- }
- catch ( IOException e )
- {
- throw new MojoExecutionException(
- "Cannot read existing release progress file from
directory: " + basedir + ". Cannot resume." );
- }
+ releaseProgress = ReleaseProgressTracker.loadOrCreate( basedir
);
}
- else
+ catch ( IOException e )
{
- try
- {
- releaseProgress = ReleaseProgressTracker.loadOrCreate(
basedir );
- }
- catch ( IOException e )
- {
- getLog().warn( "Cannot read existing release progress file
from directory: " + basedir +
- ". Creating new instance." );
- }
+ getLog().warn( "Cannot read existing release progress file
from directory: " + basedir + "." );
+ getLog().debug( "Cause", e );
- releaseProgress.setResumeAtCheckpoint( resume );
+ releaseProgress = ReleaseProgressTracker.create();
+ }
+
+ if ( resume )
+ {
+ releaseProgress.setResumeAtCheckpoint( true );
+ }
+ if ( releaseProgress.getUsername() == null )
+ {
releaseProgress.setUsername( username );
+ }
- if ( password != null )
- {
- releaseProgress.setPassword( password );
- }
+ if ( releaseProgress.getPassword() == null && password != null )
+ {
+ releaseProgress.setPassword( password );
+ }
+ if ( releaseProgress.getScmTag() == null )
+ {
releaseProgress.setScmTag( getTagLabel() );
+ }
+ if ( releaseProgress.getScmTagBase() == null )
+ {
releaseProgress.setScmTagBase( tagBase );
+ }
+ if ( releaseProgress.getScmUrl() == null )
+ {
releaseProgress.setScmUrl( urlScm );
}
- }
+ if ( releaseProgress.getUsername() == null ||
releaseProgress.getScmTag() == null ||
+ releaseProgress.getScmTagBase() == null ||
releaseProgress.getScmUrl() == null )
+ {
+ throw new MojoExecutionException( "Missing release preparation
information." );
+ }
+ }
return releaseProgress;
}
@@ -514,286 +533,262 @@
private void checkForPresenceOfSnapshots( MavenProject project )
throws MojoExecutionException
{
- if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_SNAPSHOTS_CHECKED ) )
- {
- getLog().info( "Checking lineage for snapshots ..." );
-
- MavenProject currentProject = project;
+ getLog().info( "Checking lineage for snapshots ..." );
- while ( currentProject.hasParent() )
- {
- MavenProject parentProject = currentProject.getParent();
+ MavenProject currentProject = project;
- String parentVersion =
getVersionResolver().getResolvedVersion( parentProject.getGroupId(),
-
parentProject.getArtifactId() );
+ while ( currentProject.hasParent() )
+ {
+ MavenProject parentProject = currentProject.getParent();
- if ( isSnapshot( parentVersion ) )
- {
- throw new MojoExecutionException( "Can't release project
due to non released parent." );
- }
+ String parentVersion = getVersionResolver().getResolvedVersion(
parentProject.getGroupId(),
+
parentProject.getArtifactId() );
- currentProject = parentProject;
+ if ( isSnapshot( parentVersion ) )
+ {
+ throw new MojoExecutionException( "Can't release project due
to non released parent." );
}
- getLog().info( "Checking dependencies for snapshots ..." );
+ currentProject = parentProject;
+ }
- Set snapshotDependencies = new HashSet();
+ getLog().info( "Checking dependencies for snapshots ..." );
- for ( Iterator i = project.getArtifacts().iterator(); i.hasNext();
)
- {
- Artifact artifact = (Artifact) i.next();
+ Set snapshotDependencies = new HashSet();
- String artifactVersion =
getVersionResolver().getResolvedVersion( artifact.getGroupId(),
-
artifact.getArtifactId() );
+ for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
- if ( artifactVersion == null )
- {
- artifactVersion = artifact.getVersion();
- }
+ String artifactVersion = getVersionResolver().getResolvedVersion(
artifact.getGroupId(),
+
artifact.getArtifactId() );
- if ( isSnapshot( artifactVersion ) )
- {
- snapshotDependencies.add( artifact );
- }
+ if ( artifactVersion == null )
+ {
+ artifactVersion = artifact.getVersion();
}
- getLog().info( "Checking plugins for snapshots ..." );
-
- for ( Iterator i = project.getPluginArtifacts().iterator();
i.hasNext(); )
+ if ( isSnapshot( artifactVersion ) )
{
- Artifact artifact = (Artifact) i.next();
+ snapshotDependencies.add( artifact );
+ }
+ }
- String artifactVersion =
getVersionResolver().getResolvedVersion( artifact.getGroupId(),
-
artifact.getArtifactId() );
+ getLog().info( "Checking plugins for snapshots ..." );
- if ( artifactVersion == null )
- {
- artifactVersion = artifact.getVersion();
- }
+ for ( Iterator i = project.getPluginArtifacts().iterator();
i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
- if ( isSnapshot( artifactVersion ) )
- {
- snapshotDependencies.add( artifact );
- }
+ String artifactVersion = getVersionResolver().getResolvedVersion(
artifact.getGroupId(),
+
artifact.getArtifactId() );
+
+ if ( artifactVersion == null )
+ {
+ artifactVersion = artifact.getVersion();
}
- if ( !snapshotDependencies.isEmpty() )
+ if ( isSnapshot( artifactVersion ) )
{
- List snapshotsList = new ArrayList( snapshotDependencies );
+ snapshotDependencies.add( artifact );
+ }
+ }
- Collections.sort( snapshotsList );
+ if ( !snapshotDependencies.isEmpty() )
+ {
+ List snapshotsList = new ArrayList( snapshotDependencies );
- StringBuffer message = new StringBuffer();
+ Collections.sort( snapshotsList );
- for ( Iterator i = snapshotsList.iterator(); i.hasNext(); )
- {
- Artifact artifact = (Artifact) i.next();
+ StringBuffer message = new StringBuffer();
- message.append( " " );
+ for ( Iterator i = snapshotsList.iterator(); i.hasNext(); )
+ {
+ Artifact artifact = (Artifact) i.next();
- message.append( artifact.getId() );
+ message.append( " " );
- message.append( "\n" );
- }
+ message.append( artifact.getId() );
- throw new MojoExecutionException(
- "Can't release project due to non released dependencies
:\n" + message.toString() );
+ message.append( "\n" );
}
- try
- {
- getReleaseProgress().checkpoint( basedir,
ReleaseProgressTracker.CP_SNAPSHOTS_CHECKED );
- }
- catch ( IOException e )
- {
- getLog().warn( "Error writing checkpoint.", e );
- }
+ throw new MojoExecutionException(
+ "Can't release project due to non released dependencies :\n" +
message.toString() );
}
}
private void transformPomToReleaseVersionPom( MavenProject project )
throws MojoExecutionException
{
- if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE ) )
+ if ( !isSnapshot( project.getVersion() ) )
{
- if ( !isSnapshot( project.getVersion() ) )
+ throw new MojoExecutionException( "The project " +
project.getGroupId() + ":" + project.getArtifactId() +
+ " isn't a snapshot (" + project.getVersion() + ")." );
+ }
+
+ Model model = project.getOriginalModel();
+
+ //Rewrite parent version
+ if ( model.getParent() != null )
+ {
+ Artifact parentArtifact = project.getParentArtifact();
+
+ if ( isSnapshot( parentArtifact.getBaseVersion() ) )
{
- throw new MojoExecutionException( "The project " +
project.getGroupId() + ":" +
- project.getArtifactId() + " isn't a snapshot (" +
project.getVersion() + ")." );
+ String version = resolveVersion( parentArtifact, "parent",
project );
+
+ model.getParent().setVersion( version );
}
+ }
- Model model = project.getOriginalModel();
+ //Rewrite dependencies section
+ List dependencies = model.getDependencies();
- //Rewrite parent version
- if ( model.getParent() != null )
+ if ( dependencies != null )
+ {
+ for ( Iterator i = dependencies.iterator(); i.hasNext(); )
{
- Artifact parentArtifact = project.getParentArtifact();
+ Dependency dep = (Dependency) i.next();
- if ( isSnapshot( parentArtifact.getBaseVersion() ) )
+ // Avoid in dep mgmt
+ if ( dep.getVersion() != null )
{
- String version = resolveVersion( parentArtifact, "parent",
project );
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( dep.getGroupId(),
+
dep.getArtifactId() );
- model.getParent().setVersion( version );
+ if ( resolvedVersion != null )
+ {
+ dep.setVersion( resolvedVersion );
+ }
}
}
+ }
- //Rewrite dependencies section
- List dependencies = model.getDependencies();
+ DependencyManagement dependencyManagement =
model.getDependencyManagement();
+ dependencies = dependencyManagement != null ?
dependencyManagement.getDependencies() : null;
- if ( dependencies != null )
+ if ( dependencies != null )
+ {
+ for ( Iterator i = dependencies.iterator(); i.hasNext(); )
{
- for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+ Dependency dep = (Dependency) i.next();
+
+ if ( dep.getVersion() != null )
{
- Dependency dep = (Dependency) i.next();
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( dep.getGroupId(),
+
dep.getArtifactId() );
- // Avoid in dep mgmt
- if ( dep.getVersion() != null )
+ if ( resolvedVersion != null )
{
- String resolvedVersion =
getVersionResolver().getResolvedVersion( dep.getGroupId(),
-
dep.getArtifactId() );
-
- if ( resolvedVersion != null )
- {
- dep.setVersion( resolvedVersion );
- }
+ dep.setVersion( resolvedVersion );
}
}
}
+ }
- DependencyManagement dependencyManagement =
model.getDependencyManagement();
- dependencies = dependencyManagement != null ?
dependencyManagement.getDependencies() : null;
+ Build build = model.getBuild();
- if ( dependencies != null )
+ if ( build != null )
+ {
+ //Rewrite plugins section
+ List plugins = build.getPlugins();
+
+ if ( plugins != null )
{
- for ( Iterator i = dependencies.iterator(); i.hasNext(); )
+ for ( Iterator i = plugins.iterator(); i.hasNext(); )
{
- Dependency dep = (Dependency) i.next();
+ Plugin plugin = (Plugin) i.next();
- if ( dep.getVersion() != null )
+ // Avoid in plugin mgmt
+ if ( plugin.getVersion() != null )
{
- String resolvedVersion =
getVersionResolver().getResolvedVersion( dep.getGroupId(),
-
dep.getArtifactId() );
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+
plugin.getArtifactId() );
if ( resolvedVersion != null )
{
- dep.setVersion( resolvedVersion );
+ plugin.setVersion( resolvedVersion );
}
}
}
}
- Build build = model.getBuild();
+ PluginManagement pluginManagement = build.getPluginManagement();
+ plugins = pluginManagement != null ? pluginManagement.getPlugins()
: null;
- if ( build != null )
+ if ( plugins != null )
{
- //Rewrite plugins section
- List plugins = build.getPlugins();
-
- if ( plugins != null )
+ for ( Iterator i = plugins.iterator(); i.hasNext(); )
{
- for ( Iterator i = plugins.iterator(); i.hasNext(); )
- {
- Plugin plugin = (Plugin) i.next();
+ Plugin plugin = (Plugin) i.next();
- // Avoid in plugin mgmt
- if ( plugin.getVersion() != null )
- {
- String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-
plugin.getArtifactId() );
-
- if ( resolvedVersion != null )
- {
- plugin.setVersion( resolvedVersion );
- }
- }
- }
- }
-
- PluginManagement pluginManagement =
build.getPluginManagement();
- plugins = pluginManagement != null ?
pluginManagement.getPlugins() : null;
-
- if ( plugins != null )
- {
- for ( Iterator i = plugins.iterator(); i.hasNext(); )
+ if ( plugin.getVersion() != null )
{
- Plugin plugin = (Plugin) i.next();
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+
plugin.getArtifactId() );
- if ( plugin.getVersion() != null )
+ if ( resolvedVersion != null )
{
- String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-
plugin.getArtifactId() );
-
- if ( resolvedVersion != null )
- {
- plugin.setVersion( resolvedVersion );
- }
+ plugin.setVersion( resolvedVersion );
}
}
}
+ }
- //Rewrite extensions section
- List extensions = build.getExtensions();
+ //Rewrite extensions section
+ List extensions = build.getExtensions();
- for ( Iterator i = extensions.iterator(); i.hasNext(); )
- {
- Extension ext = (Extension) i.next();
+ for ( Iterator i = extensions.iterator(); i.hasNext(); )
+ {
+ Extension ext = (Extension) i.next();
- String resolvedVersion =
getVersionResolver().getResolvedVersion( ext.getGroupId(),
-
ext.getArtifactId() );
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( ext.getGroupId(),
+
ext.getArtifactId() );
- if ( resolvedVersion != null )
- {
- ext.setVersion( resolvedVersion );
- }
+ if ( resolvedVersion != null )
+ {
+ ext.setVersion( resolvedVersion );
}
}
+ }
- Reporting reporting = model.getReporting();
+ Reporting reporting = model.getReporting();
- if ( reporting != null )
- {
- //Rewrite reports section
- List reports = reporting.getPlugins();
+ if ( reporting != null )
+ {
+ //Rewrite reports section
+ List reports = reporting.getPlugins();
- for ( Iterator i = reports.iterator(); i.hasNext(); )
- {
- ReportPlugin plugin = (ReportPlugin) i.next();
+ for ( Iterator i = reports.iterator(); i.hasNext(); )
+ {
+ ReportPlugin plugin = (ReportPlugin) i.next();
- String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
-
plugin.getArtifactId() );
+ String resolvedVersion =
getVersionResolver().getResolvedVersion( plugin.getGroupId(),
+
plugin.getArtifactId() );
- if ( resolvedVersion != null )
- {
- plugin.setVersion( resolvedVersion );
- }
+ if ( resolvedVersion != null )
+ {
+ plugin.setVersion( resolvedVersion );
}
}
+ }
- Writer writer = null;
+ Writer writer = null;
- try
- {
- writer = new FileWriter( project.getFile() );
-
- project.writeOriginalModel( writer );
- }
- catch ( IOException e )
- {
- throw new MojoExecutionException( "Cannot write released
version of pom to: " + project.getFile(), e );
- }
- finally
- {
- IOUtil.close( writer );
- }
+ try
+ {
+ writer = new FileWriter( project.getFile() );
- try
- {
- getReleaseProgress().checkpoint( basedir,
ReleaseProgressTracker.CP_POM_TRANSFORMED_FOR_RELEASE );
- }
- catch ( IOException e )
- {
- getLog().warn( "Error writing checkpoint.", e );
- }
+ project.writeOriginalModel( writer );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( "Cannot write released version
of pom to: " + project.getFile(), e );
+ }
+ finally
+ {
+ IOUtil.close( writer );
}
}
@@ -1004,7 +999,7 @@
{
if ( !getReleaseProgress().verifyCheckpoint(
ReleaseProgressTracker.CP_CHECKED_IN_RELEASE_VERSION ) )
{
- checkIn( "**/pom.xml,**/release-pom.xml", "[maven-release-plugin]
prepare release" );
+ checkIn( "**/pom.xml,**/release-pom.xml", "[maven-release-plugin]
prepare release " + getTagLabel() );
try
{
@@ -1149,6 +1144,16 @@
{
throw new MojoExecutionException( "An error is occurred in the
tag process.", e );
}
+ }
+
+ if ( userTag == null )
+ {
+ userTag = releaseProgress.getScmTag();
+ }
+
+ if ( userTag == null )
+ {
+ throw new MojoExecutionException( "A tag must be specified" );
}
return userTag;
Modified:
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
(original)
+++
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectScmRewriter.java
Tue Sep 6 21:14:22 2005
@@ -21,6 +21,7 @@
import org.apache.maven.model.Scm;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
@@ -41,31 +42,32 @@
" already has it's original SCM info cached. Each project
should only be resolved once." );
}
- Model model = project.getModel();
-
- Scm scm = model.getScm();
-
- if ( scm == null )
+ if ( project.getScm() == null )
{
throw new MojoExecutionException(
"Project: " + projectId + " does not have a SCM section!
Cannot proceed with release." );
}
- String tag = model.getScm().getTag();
+ Model model = project.getOriginalModel();
- String connection = model.getScm().getConnection();
+ Scm scm = model.getScm();
+ // If SCM is null in original model, it is inherited, no mods needed
+ if ( scm != null )
+ {
+ String tag = scm.getTag();
- String developerConnection = model.getScm().getDeveloperConnection();
+ String connection = scm.getConnection();
- ScmInfo info = new ScmInfo( tag, connection, developerConnection );
+ String developerConnection = scm.getDeveloperConnection();
- originalScmInformation.put( projectId, info );
+ String url = scm.getUrl();
- scm.setTag( tagLabel );
+ ScmInfo info = new ScmInfo( tag, connection, developerConnection,
url );
- scm.setConnection( rewriteScmConnection( connection, tagLabel ) );
+ originalScmInformation.put( projectId, info );
- scm.setDeveloperConnection( rewriteScmConnection( developerConnection,
tagLabel ) );
+ rewriteScmConnection( scm, tagLabel );
+ }
}
public void restoreScmInfo( MavenProject project )
@@ -83,25 +85,40 @@
original.modify( project );
}
- // TODO: Add other SCM types for rewriting...
- private String rewriteScmConnection( String scmConnection, String tag )
+ // TODO: Add other SCM types for rewriting, and allow other layouts
+ private void rewriteScmConnection( Scm scm, String tag )
{
- if ( scmConnection != null )
+ if ( scm != null )
{
- if ( scmConnection.startsWith( "svn" ) )
+ String scmConnection = scm.getConnection();
+ if ( scmConnection != null && scmConnection.startsWith( "scm:svn"
) )
{
- if ( scmConnection.endsWith( "trunk/" ) )
- {
- scmConnection = scmConnection.substring( 0,
scmConnection.length() - "trunk/".length() );
- }
- if ( scmConnection.endsWith( "branches/" ) )
+ scm.setConnection( convertSvnConnectionString( scmConnection,
tag ) );
+ scm.setDeveloperConnection( convertSvnConnectionString(
scm.getDeveloperConnection(), tag ) );
+ scm.setUrl( convertSvnConnectionString( scm.getUrl(), tag ) );
+ }
+ }
+ }
+
+ private String convertSvnConnectionString( String scmConnection, String
tag )
+ {
+ if ( scmConnection.indexOf( "/trunk" ) >= 0 )
+ {
+ scmConnection = StringUtils.replace( scmConnection, "/trunk",
"/tags/" + tag );
+ }
+ else
+ {
+ int begin = scmConnection.indexOf( "/branches/" );
+ if ( begin >= 0 )
+ {
+ int end = scmConnection.indexOf( '/', begin +
"/branches/".length() );
+ scmConnection = scmConnection.substring( 0, begin ) + "/tags/"
+ tag;
+ if ( end >= 0 && end < scmConnection.length() - 1 )
{
- scmConnection = scmConnection.substring( 0,
scmConnection.length() - "branches/".length() );
+ scmConnection += scmConnection.substring( end );
}
- scmConnection += "tags/" + tag;
}
}
-
return scmConnection;
}
@@ -113,24 +130,30 @@
private String developerConnection;
- ScmInfo( String tag, String connection, String developerConnection )
+ private String url;
+
+ ScmInfo( String tag, String connection, String developerConnection,
String url )
{
this.tag = tag;
this.connection = connection;
this.developerConnection = developerConnection;
+ this.url = url;
}
void modify( MavenProject project )
{
- Model model = project.getModel();
+ Model model = project.getOriginalModel();
- if ( model.getScm() != null )
+ Scm scm = model.getScm();
+ if ( scm != null )
{
- model.getScm().setTag( tag );
+ scm.setTag( tag );
+
+ scm.setConnection( connection );
- model.getScm().setConnection( connection );
+ scm.setDeveloperConnection( developerConnection );
- model.getScm().setDeveloperConnection( developerConnection );
+ scm.setUrl( url );
}
}
}
Modified:
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
(original)
+++
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ProjectVersionResolver.java
Tue Sep 6 21:14:22 2005
@@ -128,7 +128,7 @@
projectVersion = inputVersion;
}
- project.setVersion( projectVersion );
+ project.getOriginalModel().setVersion( projectVersion );
resolvedVersions.put( projectId, projectVersion );
}
Modified:
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java?rev=279240&r1=279239&r2=279240&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
(original)
+++
maven/components/trunk/maven-plugins/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/helpers/ReleaseProgressTracker.java
Tue Sep 6 21:14:22 2005
@@ -1,6 +1,5 @@
package org.apache.maven.plugins.release.helpers;
-import org.apache.maven.plugin.MojoExecutionException;
import org.codehaus.plexus.util.IOUtil;
import java.io.File;
@@ -32,8 +31,6 @@
public static final String CP_LOCAL_MODIFICATIONS_CHECKED =
"local-modifications-checked";
- public static final String CP_SNAPSHOTS_CHECKED = "snapshots-checked";
-
public static final String CP_POM_TRANSFORMED_FOR_RELEASE =
"transformed-pom-for-release";
public static final String CP_GENERATED_RELEASE_POM =
"generated-release-pom";
@@ -54,14 +51,15 @@
private boolean resumeAtCheckpoint = false;
- private ReleaseProgressTracker()
+ private ReleaseProgressTracker( Properties properties )
{
+ this.releaseProperties = properties;
}
public static ReleaseProgressTracker loadOrCreate( String basedir )
throws IOException
{
- ReleaseProgressTracker tracker = null;
+ ReleaseProgressTracker tracker;
if ( new File( basedir, RELEASE_PROPERTIES ).exists() )
{
@@ -69,37 +67,39 @@
}
else
{
- tracker = new ReleaseProgressTracker();
+ tracker = create();
}
return tracker;
}
+ public static ReleaseProgressTracker create()
+ {
+ return new ReleaseProgressTracker( new Properties() );
+ }
+
public static ReleaseProgressTracker load( String basedir )
throws IOException
{
File releasePropertiesFile = new File( basedir, RELEASE_PROPERTIES );
- ReleaseProgressTracker tracker = new ReleaseProgressTracker();
-
InputStream inStream = null;
+ Properties rp;
try
{
inStream = new FileInputStream( releasePropertiesFile );
- Properties rp = new Properties();
+ rp = new Properties();
rp.load( inStream );
-
- tracker.releaseProperties = rp;
}
finally
{
IOUtil.close( inStream );
}
- return tracker;
+ return new ReleaseProgressTracker( rp );
}
public static String getReleaseProgressFilename()
@@ -107,101 +107,56 @@
return RELEASE_PROPERTIES;
}
- private void checkInitialized()
- {
- if ( releaseProperties == null )
- {
- releaseProperties = new Properties();
- }
- }
-
- private void checkLoaded()
- {
- if ( releaseProperties == null )
- {
- throw new IllegalStateException( "You must load this instance
before reading from it." );
- }
- }
-
public void setUsername( String username )
{
- checkInitialized();
-
releaseProperties.setProperty( USERNAME, username );
}
public String getUsername()
{
- checkLoaded();
-
return releaseProperties.getProperty( USERNAME );
}
public void setScmTag( String scmTag )
{
- checkInitialized();
-
releaseProperties.setProperty( SCM_TAG, scmTag );
}
public String getScmTag()
{
- checkLoaded();
-
return releaseProperties.getProperty( SCM_TAG );
}
public void setScmUrl( String scmUrl )
{
- checkInitialized();
-
releaseProperties.setProperty( SCM_URL, scmUrl );
}
public String getScmUrl()
{
- checkLoaded();
-
return releaseProperties.getProperty( SCM_URL );
}
public void setScmTagBase( String tagBase )
{
- checkInitialized();
-
releaseProperties.setProperty( SCM_TAG_BASE, tagBase );
}
public String getScmTagBase()
{
- checkLoaded();
-
return releaseProperties.getProperty( SCM_TAG_BASE );
}
public void setPassword( String password )
{
- checkInitialized();
-
releaseProperties.setProperty( SCM_PASSWORD, password );
}
public String getPassword()
{
- checkInitialized();
-
return releaseProperties.getProperty( SCM_PASSWORD );
}
- public void verifyResumeCapable()
- throws MojoExecutionException
- {
- if ( getUsername() == null || getScmTag() == null || getScmTagBase()
== null || getScmUrl() == null )
- {
- throw new MojoExecutionException( "Missing release preparation
information. Failed to resume" );
- }
- }
-
public void checkpoint( String basedir, String pointName )
throws IOException
{
@@ -225,15 +180,11 @@
private void setCheckpoint( String pointName )
{
- checkInitialized();
-
releaseProperties.setProperty( CHECKPOINT_PREFIX + pointName, "OK" );
}
public boolean verifyCheckpoint( String pointName )
{
- checkLoaded();
-
return resumeAtCheckpoint && "OK".equals(
releaseProperties.getProperty( CHECKPOINT_PREFIX + pointName ) );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]