You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2006/05/15 12:16:22 UTC
svn commit: r406599 - in
/maven/continuum/branches/continuum-1.0.x/continuum-core/src:
main/java/org/apache/maven/continuum/execution/maven/m1/
test/java/org/apache/maven/continuum/execution/maven/m1/
Author: evenisse
Date: Mon May 15 03:16:12 2006
New Revision: 406599
URL: http://svn.apache.org/viewcvs?rev=406599&view=rev
Log:
[CONTINUUM-678] Fix duplicated notifiers
Modified:
maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java
maven/continuum/branches/continuum-1.0.x/continuum-core/src/test/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutorTest.java
Modified: maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java?rev=406599&r1=406598&r2=406599&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java Mon May 15 03:16:12 2006
@@ -242,20 +242,10 @@
Xpp3Dom build = mavenProject.getChild( "build" );
- List notifiers = null;
+ List notifiers = new ArrayList();
- ProjectNotifier notifier = null;
-
- if ( build == null )
- {
- if ( project.getNotifiers() != null && !project.getNotifiers().isEmpty() )
- {
- notifiers = new ArrayList();
-
- notifiers.addAll( project.getNotifiers() );
- }
- }
- else
+ // Add project Notifier
+ if ( build != null )
{
String nagEmailAddress = getValue( build, "nagEmailAddress", null );
@@ -265,79 +255,28 @@
props.put( ContinuumRecipientSource.ADDRESS_FIELD, nagEmailAddress );
- notifier = new ProjectNotifier();
+ ProjectNotifier notifier = new ProjectNotifier();
notifier.setConfiguration( props );
notifier.setFrom( ProjectNotifier.FROM_PROJECT );
+
+ notifiers.add( notifier );
}
}
- if ( ( notifiers != null && !notifiers.isEmpty() ) || notifier != null )
+ // Add all user notifiers
+ if ( project.getNotifiers() != null && !project.getNotifiers().isEmpty() )
{
- if ( notifiers == null )
- {
- notifiers = new ArrayList();
- }
-
- if ( notifier != null )
- {
- boolean containsNotifier = false;
-
- for ( Iterator i = notifiers.iterator(); i.hasNext(); )
- {
- ProjectNotifier n = (ProjectNotifier) i.next();
- if ( n.getConfiguration() != null )
- {
- String address = (String) n.getConfiguration().get( ContinuumRecipientSource.ADDRESS_FIELD );
-
- if ( address != null )
- {
- if ( address.equals( notifier.getConfiguration().get( ContinuumRecipientSource.ADDRESS_FIELD ) ) )
- {
- containsNotifier = true;
- }
- }
- }
- }
-
- if ( !containsNotifier )
- {
- notifiers.add( notifier );
- }
- }
-
- // Add notifier defined by user
for ( Iterator i = project.getNotifiers().iterator(); i.hasNext(); )
{
ProjectNotifier notif = (ProjectNotifier) i.next();
if ( notif.isFromUser() )
{
- ProjectNotifier userNotifier = new ProjectNotifier();
-
- userNotifier.setType( notif.getType() );
-
- userNotifier.setEnabled( notif.isEnabled() );
-
- userNotifier.setConfiguration( notif.getConfiguration() );
-
- userNotifier.setFrom( notif.getFrom() );
-
- userNotifier.setRecipientType( notif.getRecipientType() );
-
- userNotifier.setSendOnError( notif.isSendOnError() );
-
- userNotifier.setSendOnFailure( notif.isSendOnFailure() );
-
- userNotifier.setSendOnSuccess( notif.isSendOnSuccess() );
-
- userNotifier.setSendOnWarning( notif.isSendOnWarning() );
-
- notifiers.add( userNotifier );
+ notifiers.add( notif );
}
}
-
}
// ----------------------------------------------------------------------
Modified: maven/continuum/branches/continuum-1.0.x/continuum-core/src/test/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutorTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-core/src/test/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutorTest.java?rev=406599&r1=406598&r2=406599&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-core/src/test/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutorTest.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-core/src/test/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutorTest.java Mon May 15 03:16:12 2006
@@ -34,19 +34,24 @@
public class MavenOneBuildExecutorTest
extends AbstractContinuumTest
{
- public void testUpdatingAProjectFromScmWithAExistingProjectAndAEmptyMaven1Pom()
+ private File checkOut;
+
+ private MavenOneBuildExecutor executor;
+
+ protected void setUp()
throws Exception
{
+ super.setUp();
+
BuildExecutorManager builderManager = (BuildExecutorManager) lookup( BuildExecutorManager.ROLE );
- MavenOneBuildExecutor executor = (MavenOneBuildExecutor) builderManager.getBuildExecutor(
- MavenOneBuildExecutor.ID );
+ executor = (MavenOneBuildExecutor) builderManager.getBuildExecutor( MavenOneBuildExecutor.ID );
// ----------------------------------------------------------------------
// Make a checkout
// ----------------------------------------------------------------------
- File checkOut = getTestFile( "target/test-checkout" );
+ checkOut = getTestFile( "target/test-checkout" );
if ( !checkOut.exists() )
{
@@ -55,6 +60,11 @@
FileUtils.cleanDirectory( checkOut );
+ }
+
+ public void testUpdatingAProjectFromScmWithAExistingProjectAndAEmptyMaven1Pom()
+ throws Exception
+ {
FileUtils.fileWrite( new File( checkOut, "project.xml" ).getAbsolutePath(), "<project/>" );
// ----------------------------------------------------------------------
@@ -79,6 +89,8 @@
notifier.setConfiguration( props );
+ notifier.setFrom( ProjectNotifier.FROM_USER );
+
List notifiers = new ArrayList();
notifiers.add( notifier );
@@ -108,5 +120,221 @@
assertEquals( "dev@maven.apache.org", actualNotifier.getConfiguration().get( "address" ) );
assertEquals( "1.1-SNAPSHOT", project.getVersion() );
+ }
+
+ public void testUpdatingAProjectWithNagEMailAddress()
+ throws Exception
+ {
+ FileUtils.fileWrite( new File( checkOut, "project.xml" ).getAbsolutePath(),
+ "<project><build><nagEmailAddress>myuser@myhost.org</nagEmailAddress></build></project>" );
+
+ // ----------------------------------------------------------------------
+ // Make the "existing" project
+ // ----------------------------------------------------------------------
+
+ Project project = new Project();
+
+ project.setName( "Maven" );
+
+ project.setGroupId( "org.apache.maven" );
+
+ project.setArtifactId( "maven" );
+
+ project.setScmUrl( "scm:svn:http://svn.apache.org/repos/asf:maven/maven-1/core/trunk/" );
+
+ project.setVersion( "1.1-SNAPSHOT" );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertNotNull( project );
+
+ assertEquals( "Maven", project.getName() );
+
+ assertEquals( 1, project.getNotifiers().size() );
+
+ ProjectNotifier actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "myuser@myhost.org", actualNotifier.getConfiguration().get( "address" ) );
+
+ // ----------------------------------------------------------------------
+ // Updating a new time to prevent duplicated notifiers
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertEquals( 1, project.getNotifiers().size() );
+
+ actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "myuser@myhost.org", actualNotifier.getConfiguration().get( "address" ) );
+ }
+
+ public void testUpdatingAProjectWithNagEMailAddressAndOneNotifier()
+ throws Exception
+ {
+ FileUtils.fileWrite( new File( checkOut, "project.xml" ).getAbsolutePath(),
+ "<project><build><nagEmailAddress>myuser@myhost.org</nagEmailAddress></build></project>" );
+
+ // ----------------------------------------------------------------------
+ // Make the "existing" project
+ // ----------------------------------------------------------------------
+
+ Project project = new Project();
+
+ project.setName( "Maven" );
+
+ project.setGroupId( "org.apache.maven" );
+
+ project.setArtifactId( "maven" );
+
+ project.setScmUrl( "scm:svn:http://svn.apache.org/repos/asf:maven/maven-1/core/trunk/" );
+
+ ProjectNotifier notifier = new ProjectNotifier();
+
+ Properties props = new Properties();
+
+ props.put( "address", "dev@maven.apache.org" );
+
+ notifier.setConfiguration( props );
+
+ notifier.setFrom( ProjectNotifier.FROM_USER );
+
+ List notifiers = new ArrayList();
+
+ notifiers.add( notifier );
+
+ project.setNotifiers( notifiers );
+
+ project.setVersion( "1.1-SNAPSHOT" );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertNotNull( project );
+
+ assertEquals( "Maven", project.getName() );
+
+ assertEquals( 2, project.getNotifiers().size() );
+
+ ProjectNotifier actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "myuser@myhost.org", actualNotifier.getConfiguration().get( "address" ) );
+
+ actualNotifier = (ProjectNotifier) project.getNotifiers().get( 1 );
+
+ assertEquals( "dev@maven.apache.org", actualNotifier.getConfiguration().get( "address" ) );
+
+ // ----------------------------------------------------------------------
+ // Updating a new time to prevent duplicated notifiers
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertEquals( 2, project.getNotifiers().size() );
+
+ actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "myuser@myhost.org", actualNotifier.getConfiguration().get( "address" ) );
+
+ actualNotifier = (ProjectNotifier) project.getNotifiers().get( 1 );
+
+ assertEquals( "dev@maven.apache.org", actualNotifier.getConfiguration().get( "address" ) );
+ }
+
+ public void testUpdatingAProjectWithOneNotifier()
+ throws Exception
+ {
+ FileUtils.fileWrite( new File( checkOut, "project.xml" ).getAbsolutePath(), "<project/>" );
+
+ // ----------------------------------------------------------------------
+ // Make the "existing" project
+ // ----------------------------------------------------------------------
+
+ Project project = new Project();
+
+ project.setName( "Maven" );
+
+ project.setGroupId( "org.apache.maven" );
+
+ project.setArtifactId( "maven" );
+
+ project.setScmUrl( "scm:svn:http://svn.apache.org/repos/asf:maven/maven-1/core/trunk/" );
+
+ ProjectNotifier notifier = new ProjectNotifier();
+
+ Properties props = new Properties();
+
+ props.put( "address", "dev@maven.apache.org" );
+
+ notifier.setConfiguration( props );
+
+ notifier.setFrom( ProjectNotifier.FROM_USER );
+
+ List notifiers = new ArrayList();
+
+ notifiers.add( notifier );
+
+ project.setNotifiers( notifiers );
+
+ project.setVersion( "1.1-SNAPSHOT" );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertNotNull( project );
+
+ assertEquals( "Maven", project.getName() );
+
+ assertEquals( 1, project.getNotifiers().size() );
+
+ ProjectNotifier actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "dev@maven.apache.org", actualNotifier.getConfiguration().get( "address" ) );
+
+ // ----------------------------------------------------------------------
+ // Updating a new time to prevent duplicated notifiers
+ // ----------------------------------------------------------------------
+
+ executor.updateProjectFromCheckOut( checkOut, project, null );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ assertEquals( 1, project.getNotifiers().size() );
+
+ actualNotifier = (ProjectNotifier) project.getNotifiers().get( 0 );
+
+ assertEquals( "dev@maven.apache.org", actualNotifier.getConfiguration().get( "address" ) );
}
}