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/04/24 02:45:03 UTC
svn commit: r396360 - in /maven/plugins/trunk/maven-release-plugin/src:
main/java/org/apache/maven/plugins/release/
main/java/org/apache/maven/plugins/release/config/
test/java/org/apache/maven/plugins/release/config/ test/resources/
Author: brett
Date: Sun Apr 23 17:45:02 2006
New Revision: 396360
URL: http://svn.apache.org/viewcvs?rev=396360&view=rev
Log:
[MRELEASE-98] implement release property writing, complete reading tests
Added:
maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties (with props)
Modified:
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStore.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/config/PropertiesReleaseConfigurationStoreTest.java
maven/plugins/trunk/maven-release-plugin/src/test/resources/release.properties
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java?rev=396360&r1=396359&r2=396360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java Sun Apr 23 17:45:02 2006
@@ -106,7 +106,15 @@
}
config.setCompletedPhase( name );
- configStore.write( config );
+ try
+ {
+ configStore.write( config );
+ }
+ catch ( ReleaseConfigurationStoreException e )
+ {
+ // TODO: rollback?
+ throw new ReleaseExecutionException( "Error writing release properties after completing phase", e );
+ }
}
}
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=396360&r1=396359&r2=396360&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 Sun Apr 23 17:45:02 2006
@@ -22,8 +22,10 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.Properties;
/**
@@ -74,8 +76,12 @@
ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
releaseConfiguration.setCompletedPhase( properties.getProperty( "completedPhase" ) );
-
- // TODO: populate from properties
+ releaseConfiguration.setUrl( properties.getProperty( "scm.url" ) );
+ releaseConfiguration.setUsername( properties.getProperty( "scm.username" ) );
+ releaseConfiguration.setPassword( properties.getProperty( "scm.password" ) );
+ releaseConfiguration.setPrivateKey( properties.getProperty( "scm.privateKey" ) );
+ releaseConfiguration.setPassphrase( properties.getProperty( "scm.passphrase" ) );
+ releaseConfiguration.setTagBase( properties.getProperty( "scm.tagBase" ) );
if ( mergeConfiguration != null )
{
@@ -86,8 +92,35 @@
}
public void write( ReleaseConfiguration config )
+ throws ReleaseConfigurationStoreException
{
- // TODO: implement
+ 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() );
+
+ OutputStream outStream = null;
+ //noinspection OverlyBroadCatchBlock
+ try
+ {
+ outStream = new FileOutputStream( propertiesFile );
+
+ properties.store( outStream, "release configuration" );
+ }
+ catch ( IOException e )
+ {
+ throw new ReleaseConfigurationStoreException(
+ "Error writing properties file '" + propertiesFile.getName() + "': " + e.getMessage(), e );
+ }
+ finally
+ {
+ IOUtil.close( outStream );
+ }
+
}
public ReleaseConfiguration read()
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=396360&r1=396359&r2=396360&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 Sun Apr 23 17:45:02 2006
@@ -215,10 +215,10 @@
result = 29 * result + ( tagBase != null ? tagBase.hashCode() : 0 );
result = 29 * result + ( username != null ? username.hashCode() : 0 );
result = 29 * result + ( password != null ? password.hashCode() : 0 );
- result = 29 * result + url.hashCode();
+ result = 29 * result + ( url != null ? url.hashCode() : 0 );
result = 29 * result + ( privateKey != null ? privateKey.hashCode() : 0 );
result = 29 * result + ( passphrase != null ? passphrase.hashCode() : 0 );
- result = 29 * result + workingDirectory.hashCode();
+ result = 29 * result + ( workingDirectory != null ? workingDirectory.hashCode() : 0 );
return result;
}
@@ -259,7 +259,7 @@
{
return false;
}
- if ( !url.equals( that.url ) )
+ if ( url != null ? !url.equals( that.url ) : that.url != null )
{
return false;
}
@@ -268,7 +268,8 @@
return false;
}
//noinspection RedundantIfStatement
- if ( !workingDirectory.equals( that.workingDirectory ) )
+ if ( workingDirectory != null ? !workingDirectory.equals( that.workingDirectory )
+ : that.workingDirectory != null )
{
return false;
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java?rev=396360&r1=396359&r2=396360&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfigurationStore.java Sun Apr 23 17:45:02 2006
@@ -51,5 +51,6 @@
*
* @param config the configuration
*/
- void write( ReleaseConfiguration config );
+ void write( ReleaseConfiguration config )
+ throws ReleaseConfigurationStoreException;
}
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=396360&r1=396359&r2=396360&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 Sun Apr 23 17:45:02 2006
@@ -30,6 +30,13 @@
{
private PropertiesReleaseConfigurationStore store;
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ store = (PropertiesReleaseConfigurationStore) lookup( ReleaseConfigurationStore.ROLE, "properties" );
+ }
+
public void testReadFromFile()
throws ReleaseConfigurationStoreException
{
@@ -38,8 +45,14 @@
ReleaseConfiguration config = store.read();
assertEquals( "Expected completedPhase of 'step1'", "step1", config.getCompletedPhase() );
-
- // TODO: assert other contents
+ assertEquals( "Expected url of 'scm-url'", "scm-url", config.getUrl() );
+ assertEquals( "Expected username of 'username'", "username", config.getUsername() );
+ assertEquals( "Expected password of 'password'", "password", config.getPassword() );
+ assertEquals( "Expected private key of 'private-key'", "private-key", config.getPrivateKey() );
+ assertEquals( "Expected passphrase of 'passphrase'", "passphrase", config.getPassphrase() );
+ assertEquals( "Expected tag base of 'tagBase'", "tagBase", config.getTagBase() );
+ assertNull( "Expected no workingDirectory", config.getWorkingDirectory() );
+ assertNull( "Expected no settings", config.getSettings() );
}
public void testReadFromEmptyFile()
@@ -88,18 +101,65 @@
assertEquals( "Check configurations merged", mergeConfiguration, config );
}
- private static void assertDefaultReleaseConfiguration( ReleaseConfiguration config )
+ public void testWriteToNewFile()
+ throws ReleaseConfigurationStoreException
{
- assertNull( "Expected no completedPhase", config.getCompletedPhase() );
+ File file = getTestFile( "target/test-classes/new-release.properties" );
+ file.delete();
+ assertFalse( "Check file doesn't exist", file.exists() );
+ store.setPropertiesFile( file );
- // TODO: assert other default contents
+ ReleaseConfiguration config = new ReleaseConfiguration();
+ config.setCompletedPhase( "completed-phase-write" );
+ config.setUrl( "url-write" );
+ config.setUsername( "username-write" );
+ config.setPassword( "password-write" );
+ config.setPrivateKey( "private-key-write" );
+ config.setPassphrase( "passphrase-write" );
+ config.setTagBase( "tag-base" );
+
+ store.write( config );
+
+ ReleaseConfiguration rereadConfiguration = store.read();
+
+ assertEquals( "compare configuration", config, rereadConfiguration );
}
- protected void setUp()
- throws Exception
+ public void testOverwriteFile()
+ throws ReleaseConfigurationStoreException
{
- super.setUp();
- store = (PropertiesReleaseConfigurationStore) lookup( ReleaseConfigurationStore.ROLE, "properties" );
+ File file = getTestFile( "target/test-classes/rewrite-release.properties" );
+ assertTrue( "Check file already exists", file.exists() );
+ store.setPropertiesFile( file );
+
+ ReleaseConfiguration config = new ReleaseConfiguration();
+ config.setCompletedPhase( "completed-phase-write" );
+ config.setUrl( "url-write" );
+ config.setUsername( "username-write" );
+ config.setPassword( "password-write" );
+ config.setPrivateKey( "private-key-write" );
+ config.setPassphrase( "passphrase-write" );
+ config.setTagBase( "tag-base" );
+
+ store.write( config );
+
+ ReleaseConfiguration rereadConfiguration = store.read();
+
+ assertEquals( "compare configuration", config, rereadConfiguration );
+ }
+
+ private static void assertDefaultReleaseConfiguration( ReleaseConfiguration config )
+ {
+ assertNull( "Expected no completedPhase", config.getCompletedPhase() );
+ assertNull( "Expected no url", config.getUrl() );
+ assertNull( "Expected no username", config.getUsername() );
+ assertNull( "Expected no password", config.getPassword() );
+ assertNull( "Expected no privateKey", config.getPrivateKey() );
+ assertNull( "Expected no passphrase", config.getPassphrase() );
+ assertNull( "Expected no tagBase", config.getTagBase() );
+
+ assertNull( "Expected no workingDirectory", config.getWorkingDirectory() );
+ assertNull( "Expected no settings", config.getSettings() );
}
public ReleaseConfiguration createMergeConfiguration()
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=396360&r1=396359&r2=396360&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 Sun Apr 23 17:45:02 2006
@@ -15,3 +15,9 @@
#
completedPhase=step1
+scm.url=scm-url
+scm.username=username
+scm.password=password
+scm.privateKey=private-key
+scm.passphrase=passphrase
+scm.tagBase=tagBase
Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties?rev=396360&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties Sun Apr 23 17:45:02 2006
@@ -0,0 +1,23 @@
+#
+# 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.
+#
+
+completedPhase=step1
+scm.url=scm-url
+scm.username=username
+scm.password=password
+scm.privateKey=private-key
+scm.passphrase=passphrase
+scm.tagBase=tagBase
Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/rewrite-release.properties
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision