Author: bentmann
Date: Fri Nov 26 12:17:49 2010
New Revision: 1039327

URL: http://svn.apache.org/viewvc?rev=1039327&view=rev
Log:
[MNG-4918] MavenProject#clone() doubles active profiles
Submitted by: Sebastian Annies

Added:
    
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
   (with props)
Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
    
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java?rev=1039327&r1=1039326&r2=1039327&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
 Fri Nov 26 12:17:49 2010
@@ -1407,7 +1407,7 @@ public class MavenProject
 
     public void setActiveProfiles( List<Profile> activeProfiles )
     {
-        this.activeProfiles.addAll( activeProfiles );
+        this.activeProfiles = activeProfiles;
     }
 
     public List<Profile> getActiveProfiles()

Modified: 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java?rev=1039327&r1=1039326&r2=1039327&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
 Fri Nov 26 12:17:49 2010
@@ -27,6 +27,7 @@ import java.util.Map;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
+import org.apache.maven.model.Profile;
 
 public class MavenProjectTest
     extends AbstractMavenProjectTestCase
@@ -152,4 +153,23 @@ public class MavenProjectTest
         MavenProject clonedProject = (MavenProject) projectToClone.clone();
         assertNotNull( "clonedProject - distributionManagement", 
clonedProject.getDistributionManagementArtifactRepository() );
     }
+
+    public void testCloneWithActiveProfile() throws Exception
+    {
+
+        File f = getFileForClasspathResource( 
"withActiveByDefaultProfile-pom.xml" );
+        MavenProject projectToClone = getProject( f );
+        List<Profile> activeProfilesOrig = projectToClone.getActiveProfiles();
+
+        assertEquals( "Expecting 1 active profile", 1, 
activeProfilesOrig.size() );
+
+        MavenProject clonedProject = (MavenProject) projectToClone.clone();
+
+        List<Profile> activeProfilesClone = clonedProject.getActiveProfiles();
+
+        assertEquals( "Expecting 1 active profile", 1, 
activeProfilesClone.size() );
+
+        assertNotSame( "The list of active profiles should have been cloned 
too but is same",
+                activeProfilesOrig, activeProfilesClone);
+    }
 }

Added: 
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml?rev=1039327&view=auto
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
 (added)
+++ 
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
 Fri Nov 26 12:17:49 2010
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you 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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>maven-core</artifactId>
+  <name>Maven</name>
+  <version>2.0-SNAPSHOT</version>
+
+  <profiles>
+    <profile>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <id>test</id>
+    </profile>
+  </profiles>
+</project>

Propchange: 
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/maven-3/trunk/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to