You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/05/11 10:21:55 UTC
svn commit: r398954 [2/2] - in /maven/plugins/trunk/maven-release-plugin/src:
main/java/org/apache/maven/plugins/release/
main/java/org/apache/maven/plugins/release/config/
main/java/org/apache/maven/plugins/release/exec/
main/java/org/apache/maven/plu...
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java Tue May 2 08:01:27 2006
@@ -86,6 +86,8 @@
releaseConfiguration.setPassphrase( properties.getProperty( "scm.passphrase" ) );
releaseConfiguration.setTagBase( properties.getProperty( "scm.tagBase" ) );
releaseConfiguration.setReleaseLabel( properties.getProperty( "scm.tag" ) );
+ releaseConfiguration.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) );
+ releaseConfiguration.setPomFileName( properties.getProperty( "exec.pomFileName" ) );
// boolean properties are not written to the properties file because the value from the caller is always used
@@ -138,12 +140,38 @@
Properties properties = new Properties();
properties.setProperty( "completedPhase", config.getCompletedPhase() );
properties.setProperty( "scm.url", config.getUrl() );
- properties.setProperty( "scm.username", config.getUsername() );
- properties.setProperty( "scm.password", config.getPassword() );
- properties.setProperty( "scm.privateKey", config.getPrivateKey() );
- properties.setProperty( "scm.passphrase", config.getPassphrase() );
- properties.setProperty( "scm.tagBase", config.getTagBase() );
- properties.setProperty( "scm.tag", config.getReleaseLabel() );
+ if ( config.getUsername() != null )
+ {
+ properties.setProperty( "scm.username", config.getUsername() );
+ }
+ if ( config.getPassword() != null )
+ {
+ properties.setProperty( "scm.password", config.getPassword() );
+ }
+ if ( config.getPrivateKey() != null )
+ {
+ properties.setProperty( "scm.privateKey", config.getPrivateKey() );
+ }
+ if ( config.getPassphrase() != null )
+ {
+ properties.setProperty( "scm.passphrase", config.getPassphrase() );
+ }
+ if ( config.getTagBase() != null )
+ {
+ properties.setProperty( "scm.tagBase", config.getTagBase() );
+ }
+ if ( config.getReleaseLabel() != null )
+ {
+ properties.setProperty( "scm.tag", config.getReleaseLabel() );
+ }
+ if ( config.getAdditionalArguments() != null )
+ {
+ properties.setProperty( "exec.additionalArguments", config.getAdditionalArguments() );
+ }
+ if ( config.getPomFileName() != null )
+ {
+ properties.setProperty( "exec.pomFileName", config.getPomFileName() );
+ }
// boolean properties are not written to the properties file because the value from the caller is always used
@@ -164,10 +192,19 @@
Map.Entry entry = (Map.Entry) i.next();
Scm scm = (Scm) entry.getValue();
properties.setProperty( "project.scm." + entry.getKey() + ".connection", scm.getConnection() );
- properties.setProperty( "project.scm." + entry.getKey() + ".developerConnection",
- scm.getDeveloperConnection() );
- properties.setProperty( "project.scm." + entry.getKey() + ".url", scm.getUrl() );
- properties.setProperty( "project.scm." + entry.getKey() + ".tag", scm.getTag() );
+ if ( scm.getDeveloperConnection() != null )
+ {
+ properties.setProperty( "project.scm." + entry.getKey() + ".developerConnection",
+ scm.getDeveloperConnection() );
+ }
+ if ( scm.getUrl() != null )
+ {
+ properties.setProperty( "project.scm." + entry.getKey() + ".url", scm.getUrl() );
+ }
+ if ( scm.getTag() != null )
+ {
+ properties.setProperty( "project.scm." + entry.getKey() + ".tag", scm.getTag() );
+ }
}
OutputStream outStream = null;
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java Tue May 2 08:01:27 2006
@@ -133,6 +133,26 @@
*/
private String releaseLabel;
+ /**
+ * Additional arguments to pass to any executed Maven process.
+ */
+ private String additionalArguments;
+
+ /**
+ * The file name of the POM to pass to any executed Maven process.
+ */
+ private String pomFileName;
+
+ public void setPomFileName( String pomFileName )
+ {
+ this.pomFileName = pomFileName;
+ }
+
+ public String getPomFileName()
+ {
+ return pomFileName;
+ }
+
public boolean isInteractive()
{
return interactive;
@@ -299,6 +319,16 @@
return releaseLabel;
}
+ public String getAdditionalArguments()
+ {
+ return additionalArguments;
+ }
+
+ public void setAdditionalArguments( String additionalArguments )
+ {
+ this.additionalArguments = additionalArguments;
+ }
+
/**
* Merge two configurations together. All SCM settings are overridden by the merge configuration, as are the
* <code>settings</code> and <code>workingDirectory</code> fields. The <code>completedPhase</code> field is used as
@@ -308,8 +338,6 @@
*/
public void merge( ReleaseConfiguration mergeConfiguration )
{
- // TODO [!]: double check if these are the expected behaviours
-
// Overridden if configured from the caller
this.url = mergeOverride( this.url, mergeConfiguration.url );
this.releaseLabel = mergeOverride( this.releaseLabel, mergeConfiguration.releaseLabel );
@@ -318,6 +346,8 @@
this.password = mergeOverride( this.password, mergeConfiguration.password );
this.privateKey = mergeOverride( this.privateKey, mergeConfiguration.privateKey );
this.passphrase = mergeOverride( this.passphrase, mergeConfiguration.passphrase );
+ this.additionalArguments = mergeOverride( this.additionalArguments, mergeConfiguration.additionalArguments );
+ this.pomFileName = mergeOverride( this.pomFileName, mergeConfiguration.pomFileName );
this.useEditMode = mergeConfiguration.useEditMode;
this.addSchema = mergeConfiguration.addSchema;
this.generateReleasePoms = mergeConfiguration.generateReleasePoms;
@@ -401,6 +431,15 @@
{
return false;
}
+ if ( additionalArguments != null ? !additionalArguments.equals( that.additionalArguments )
+ : that.additionalArguments != null )
+ {
+ return false;
+ }
+ if ( pomFileName != null ? !pomFileName.equals( that.pomFileName ) : that.pomFileName != null )
+ {
+ return false;
+ }
if ( passphrase != null ? !passphrase.equals( that.passphrase ) : that.passphrase != null )
{
return false;
@@ -499,6 +538,8 @@
int result = completedPhase != null ? completedPhase.hashCode() : 0;
result = 29 * result + ( settings != null ? settings.hashCode() : 0 );
result = 29 * result + ( releaseLabel != null ? releaseLabel.hashCode() : 0 );
+ result = 29 * result + ( additionalArguments != null ? additionalArguments.hashCode() : 0 );
+ result = 29 * result + ( pomFileName != null ? pomFileName.hashCode() : 0 );
result = 29 * result + ( tagBase != null ? tagBase.hashCode() : 0 );
result = 29 * result + ( username != null ? username.hashCode() : 0 );
result = 29 * result + ( password != null ? password.hashCode() : 0 );
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/ForkedMavenExecutor.java Tue May 2 08:01:27 2006
@@ -34,8 +34,14 @@
extends AbstractLogEnabled
implements MavenExecutor
{
+ /**
+ * Command line factory.
+ */
private CommandLineFactory commandLineFactory;
+ /**
+ * @noinspection UseOfSystemOutOrSystemErr
+ */
public void executeGoals( File workingDirectory, String goals, boolean interactive, String arguments )
throws MavenExecutorException
{
@@ -63,7 +69,6 @@
cl.createArgument().setValue( "--batch-mode" );
}
- // TODO [!] check that callers split parameters that could formerly be comma-separated
if ( !StringUtils.isEmpty( arguments ) )
{
cl.createArgument().setLine( arguments );
@@ -91,14 +96,13 @@
}
*/
- // TODO: do these still stream?
- StreamConsumer stdOut = new CommandLineUtils.StringStreamConsumer();
+ StreamConsumer stdOut = new TeeConsumer( System.out );
- StreamConsumer stdErr = new CommandLineUtils.StringStreamConsumer();
+ StreamConsumer stdErr = new TeeConsumer( System.err );
try
{
- getLogger().debug( cl.toString() );
+ getLogger().info( "Executing: " + cl.toString() );
int result = CommandLineUtils.executeCommandLine( cl, stdOut, stdErr );
Added: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java?rev=398954&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java (added)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java Tue May 2 08:01:27 2006
@@ -0,0 +1,66 @@
+package org.apache.maven.plugins.release.exec;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.codehaus.plexus.util.cli.StreamConsumer;
+
+import java.io.PrintStream;
+
+/**
+ * Consumer that both funnels to System.out/err, and stores in an internal buffer.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class TeeConsumer
+ implements StreamConsumer
+{
+ private PrintStream stream;
+
+ /**
+ * @noinspection StringBufferField
+ */
+ private StringBuffer content = new StringBuffer();
+
+ private static final String LS = System.getProperty( "line.separator" );
+
+ private String indent;
+
+ public TeeConsumer( PrintStream stream )
+ {
+ this( stream, " " );
+ }
+
+ public TeeConsumer( PrintStream stream, String indent )
+ {
+ this.stream = stream;
+
+ this.indent = indent;
+ }
+
+ public void consumeLine( String line )
+ {
+ stream.println( indent + line );
+
+ content.append( line );
+ content.append( LS );
+ }
+
+ public String getContent()
+ {
+ return content.toString();
+ }
+}
Propchange: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/exec/TeeConsumer.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/AbstractRewritePomsPhase.java Tue May 2 08:01:27 2006
@@ -95,9 +95,7 @@
{
MavenProject project = (MavenProject) it.next();
- String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
-
- getLogger().info( "Transforming " + projectId + " to release" );
+ getLogger().info( "Transforming '" + project.getName() + "'..." );
transformProject( project, releaseConfiguration, simulate );
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/GenerateReleasePomsPhase.java Tue May 2 08:01:27 2006
@@ -34,6 +34,8 @@
{
if ( releaseConfiguration.isGenerateReleasePoms() )
{
+ getLogger().info( "Generating release POMs..." );
+
generateReleasePoms();
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RemoveReleasePomsPhase.java Tue May 2 08:01:27 2006
@@ -33,6 +33,52 @@
throws ReleaseExecutionException
{
// TODO [!]: implement
+ getLogger().info( "Removing release POMs..." );
+
+/*
+ File currentReleasePomFile = null;
+
+ try
+ {
+ 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 );
+ }
+
+ pomFiles.remove( currentReleasePomFile );
+
+ currentReleasePomFile.delete();
+ }
+ }
+ catch ( ScmException e )
+ {
+ throw new MojoExecutionException( "Cannot remove " + currentReleasePomFile + " from development HEAD.",
+ e );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( "Cannot remove " + currentReleasePomFile + " from development HEAD.",
+ e );
+ }
+
+*/
}
public void simulate( ReleaseConfiguration releaseConfiguration )
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/RunGoalsPhase.java Tue May 2 08:01:27 2006
@@ -49,6 +49,9 @@
{
if ( !StringUtils.isEmpty( goals ) )
{
+ // TODO [!]: fix logging
+ getLogger().info( "Executing goals '" + goals + "'..." );
+
mavenExecutor.executeGoals( releaseConfiguration.getWorkingDirectory(), goals,
releaseConfiguration.isInteractive() );
}
@@ -62,6 +65,7 @@
public void simulate( ReleaseConfiguration releaseConfiguration )
throws ReleaseExecutionException
{
+ // TODO [!]: fix logging
getLogger().info(
"Executing tests - since this is simulation mode it is testing the original project, not the rewritten ones" );
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java Tue May 2 08:01:27 2006
@@ -62,7 +62,7 @@
public void execute( ReleaseConfiguration releaseConfiguration )
throws ReleaseExecutionException
{
- getLogger().info( "Verifying that there are no local modifications" );
+ getLogger().info( "Verifying that there are no local modifications..." );
ScmRepository repository;
ScmProvider provider;
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCommitPhase.java Tue May 2 08:01:27 2006
@@ -62,7 +62,7 @@
{
validateConfiguration( releaseConfiguration );
- getLogger().info( "Checking in modified POMs" );
+ getLogger().info( "Checking in modified POMs..." );
ScmRepository repository;
ScmProvider provider;
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmTagPhase.java Tue May 2 08:01:27 2006
@@ -49,7 +49,7 @@
{
validateConfiguration( releaseConfiguration );
- getLogger().info( "Tagging release with the label " + releaseConfiguration.getReleaseLabel() + "." );
+ getLogger().info( "Tagging release with the label " + releaseConfiguration.getReleaseLabel() + "..." );
ScmRepository repository;
ScmProvider provider;
Modified: maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml Tue May 2 08:01:27 2006
@@ -30,6 +30,12 @@
<role-hint>properties</role-hint>
<field-name>configStore</field-name>
</requirement>
+ <requirement>
+ <role>org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.plugins.release.exec.MavenExecutor</role>
+ </requirement>
</requirements>
<configuration>
<phases>
@@ -228,6 +234,11 @@
<component>
<role>org.apache.maven.plugins.release.exec.MavenExecutor</role>
<implementation>org.apache.maven.plugins.release.exec.ForkedMavenExecutor</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.plugins.release.exec.CommandLineFactory</role>
+ </requirement>
+ </requirements>
</component>
<component>
<role>org.apache.maven.plugins.release.exec.CommandLineFactory</role>
Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java Tue May 2 08:01:27 2006
@@ -54,6 +54,9 @@
assertEquals( "Expected passphrase of 'passphrase'", "passphrase", config.getPassphrase() );
assertEquals( "Expected tag base of 'tagBase'", "tagBase", config.getTagBase() );
assertEquals( "Expected tag 'tag'", "tag", config.getReleaseLabel() );
+ assertEquals( "Expected additional arguments 'additional-arguments'", "additional-arguments",
+ config.getAdditionalArguments() );
+ assertEquals( "Expected POM file name 'my-pom.xml'", "pom-file-name", config.getPomFileName() );
assertNull( "Expected no workingDirectory", config.getWorkingDirectory() );
assertNull( "Expected no settings", config.getSettings() );
assertFalse( "Expected default generateReleasePoms", config.isGenerateReleasePoms() );
@@ -154,6 +157,25 @@
assertEquals( "compare configuration", config, rereadConfiguration );
}
+ public void testWriteToNewFileRequiredOnly()
+ throws ReleaseConfigurationStoreException
+ {
+ File file = getTestFile( "target/test-classes/new-release.properties" );
+ file.delete();
+ assertFalse( "Check file doesn't exist", file.exists() );
+ store.setPropertiesFile( file );
+
+ ReleaseConfiguration config = new ReleaseConfiguration();
+ config.setCompletedPhase( "completed-phase-write" );
+ config.setUrl( "url-write" );
+
+ store.write( config );
+
+ ReleaseConfiguration rereadConfiguration = store.read();
+
+ assertEquals( "compare configuration", config, rereadConfiguration );
+ }
+
public void testOverwriteFile()
throws ReleaseConfigurationStoreException
{
@@ -179,8 +201,10 @@
config.setPassword( "password-write" );
config.setPrivateKey( "private-key-write" );
config.setPassphrase( "passphrase-write" );
- config.setTagBase( "tag-base" );
- config.setReleaseLabel( "tag" );
+ config.setTagBase( "tag-base-write" );
+ config.setReleaseLabel( "tag-write" );
+ config.setAdditionalArguments( "additional-args-write" );
+ config.setPomFileName( "pom-file-name-write" );
config.mapReleaseVersion( "groupId:artifactId", "1.0" );
config.mapDevelopmentVersion( "groupId:artifactId", "1.1-SNAPSHOT" );
@@ -192,6 +216,11 @@
scm.setTag( "tag-write" );
config.mapOriginalScmInfo( "groupId:artifactId", scm );
+ scm = new Scm();
+ scm.setConnection( "connection-write" );
+ // omit optional elements
+ config.mapOriginalScmInfo( "groupId:subproject1", scm );
+
return config;
}
@@ -205,6 +234,8 @@
assertNull( "Expected no passphrase", config.getPassphrase() );
assertNull( "Expected no tagBase", config.getTagBase() );
assertNull( "Expected no tag", config.getReleaseLabel() );
+ assertNull( "Expected no additional arguments", config.getAdditionalArguments() );
+ assertNull( "Expected no pom file name", config.getPomFileName() );
assertNull( "Expected no workingDirectory", config.getWorkingDirectory() );
assertNull( "Expected no settings", config.getSettings() );
Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java Tue May 2 08:01:27 2006
@@ -44,8 +44,8 @@
protected ReleaseConfiguration createConfigurationFromProjects( String path, boolean copyFiles )
throws Exception
{
- ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "rewrite-for-release/", path,
- copyFiles );
+ ReleaseConfiguration releaseConfiguration =
+ createConfigurationFromProjects( "rewrite-for-release/", path, copyFiles );
releaseConfiguration.setUrl( "scm:svn:file://localhost/tmp/scm-repo" );
releaseConfiguration.setReleaseLabel( "release-label" );
releaseConfiguration.setWorkingDirectory( getTestFile( "target/test/checkout" ) );
@@ -117,4 +117,46 @@
{
// nothing to do
}
+
+ /**
+ * Test for writePom with special characters in the pom
+ * Currently breaking under Linux Continuum box
+ *
+ * @throws Exception
+ */
+// public void testWritePom()
+// throws Exception
+// {
+// System.out.println( Charset.defaultCharset().name() );
+// System.out.println( System.getProperty("file.encoding") );
+//
+// Model model = new Model();
+// Contributor contributor = new Contributor();
+// /* hack to avoid problems with sources encoding, this string contains accentuated "aeiou" in UTF-8 */
+// String s = new String( new byte[] { -61, -95, -61, -87, -61, -83, -61, -77, -61, -70 }, "UTF-8" );
+//
+// contributor.setName( s );
+// model.addContributor( contributor );
+// File file = new File( mojo.basedir, "testWritePom.xml" );
+//
+// scmHelperMock.expects( new MethodNameMatcher( new IsAnything() ) );
+// scmHelperMock.expects( new MethodNameMatcher( "getScmManager" ) ).will( new ReturnStub( scmManager ) );
+//
+// mojo.writePom( file, model, "version" );
+//
+// MavenXpp3Reader pomReader = new MavenXpp3Reader();
+//
+// Model readModel = pomReader.read( new BufferedReader( new FileReader( file ) ) );
+// Contributor readContributor = (Contributor) readModel.getContributors().get( 0 );
+//
+// String msg = "POM is written in a wrong encoding: \n"
+// + "Expected bytes: " + Arrays.toString( contributor.getName().getBytes() ) + "\n"
+// + "Returned bytes: " + Arrays.toString( readContributor.getName().getBytes() ) + "\n"
+// + "JVM default charset: " + Charset.defaultCharset() + "\n"
+// + "System property file.encoding: " + System.getProperty("file.encoding") + "\n";
+// assertEquals( msg, contributor.getName(), readContributor.getName() );
+//
+// scmHelperMock.verify();
+// }
+// TODO [!]
}
Modified: maven/plugins/trunk/maven-release-plugin/src/test/resources/release.properties
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/release.properties?rev=398954&r1=398953&r2=398954&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/resources/release.properties (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/resources/release.properties Tue May 2 08:01:27 2006
@@ -23,6 +23,9 @@
scm.tagBase=tagBase
scm.tag=tag
+exec.additionalArguments=additional-arguments
+exec.pomFileName=pom-file-name
+
project.rel.groupId\:artifactId1=2.0
project.rel.groupId\:artifactId2=3.0
project.dev.groupId\:artifactId1=2.1-SNAPSHOT