Author: jdcasey
Date: Tue Sep 13 12:27:34 2005
New Revision: 280629

URL: http://svn.apache.org/viewcvs?rev=280629&view=rev
Log:
Resolving: MNG-814. Enabled import of explicit activation and deactivation of 
profileIds from the external profile manager to the project-level profile 
manager. See it0067.

Added:
    maven/components/trunk/maven-core-it/it0067/
    maven/components/trunk/maven-core-it/it0067/cli-options.txt   (with props)
    maven/components/trunk/maven-core-it/it0067/expected-results.txt   (with 
props)
    maven/components/trunk/maven-core-it/it0067/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it0067/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt   (with props)
    maven/components/trunk/maven-core-it/it0067/src/
    maven/components/trunk/maven-core-it/it0067/src/main/
    maven/components/trunk/maven-core-it/it0067/src/main/java/
    maven/components/trunk/maven-core-it/it0067/src/main/java/org/
    maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/
    maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/
    
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/
    
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
   (with props)
Modified:
    maven/components/trunk/maven-core-it/README.txt
    maven/components/trunk/maven-core-it/integration-tests.txt
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java

Modified: maven/components/trunk/maven-core-it/README.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=280629&r1=280628&r2=280629&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Tue Sep 13 12:27:34 2005
@@ -187,6 +187,8 @@
 
 it0066: Test that nonstandard POM files will be installed correctly.
 
+it0067: Test activation of a profile from the command line.
+
 -------------------------------------------------------------------------------
 
 - generated sources

Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=280629&r1=280628&r2=280629&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Tue Sep 13 
12:27:34 2005
@@ -1,3 +1,4 @@
+it0067
 it0066
 it0065
 it0064

Added: maven/components/trunk/maven-core-it/it0067/cli-options.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/cli-options.txt?rev=280629&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0067/cli-options.txt (added)
+++ maven/components/trunk/maven-core-it/it0067/cli-options.txt Tue Sep 13 
12:27:34 2005
@@ -0,0 +1 @@
+-P test-profile

Propchange: maven/components/trunk/maven-core-it/it0067/cli-options.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0067/cli-options.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0067/expected-results.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/expected-results.txt?rev=280629&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0067/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0067/expected-results.txt Tue Sep 13 
12:27:34 2005
@@ -0,0 +1 @@
+target/classes/org/apache/maven/it0021/Person.class

Propchange: maven/components/trunk/maven-core-it/it0067/expected-results.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0067/expected-results.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0067/goals.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/goals.txt?rev=280629&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0067/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0067/goals.txt Tue Sep 13 12:27:34 
2005
@@ -0,0 +1 @@
+compile
\ No newline at end of file

Propchange: maven/components/trunk/maven-core-it/it0067/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0067/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0067/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/pom.xml?rev=280629&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0067/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0067/pom.xml Tue Sep 13 12:27:34 2005
@@ -0,0 +1,21 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.plugins.it</groupId>
+  <artifactId>maven-it0067-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>1.0-SNAPSHOT</version>
+  
+  <profiles>
+    <profile>
+      <id>test-profile</id>
+      
+      <dependencies>
+        <dependency>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+          <version>3.8.1</version>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+</project>

Propchange: maven/components/trunk/maven-core-it/it0067/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0067/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt?rev=280629&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt (added)
+++ maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt Tue Sep 13 
12:27:34 2005
@@ -0,0 +1 @@
+rm ${artifact:org.apache.maven:maven-core-it-support:1.0:jar}

Propchange: maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/components/trunk/maven-core-it/it0067/prebuild-hook.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java?rev=280629&view=auto
==============================================================================
--- 
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
 (added)
+++ 
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
 Tue Sep 13 12:27:34 2005
@@ -0,0 +1,18 @@
+package org.apache.maven.it0021;
+
+import junit.framework.TestCase;
+
+public class Person
+{
+    private String name;
+    
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+    
+    public String getName()
+    {
+        return name;
+    }
+}

Propchange: 
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-core-it/it0067/src/main/java/org/apache/maven/it0021/Person.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java?rev=280629&r1=280628&r2=280629&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
 Tue Sep 13 12:27:34 2005
@@ -10,11 +10,9 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Map.Entry;
 
 /*
@@ -37,9 +35,9 @@
 {
     private PlexusContainer container;
 
-    private Set activatedIds = new HashSet();
-    private Set deactivatedIds = new HashSet();
-    private Set defaultIds = new HashSet();
+    private List activatedIds = new ArrayList();
+    private List deactivatedIds = new ArrayList();
+    private List defaultIds = new ArrayList();
     
     private Map profilesById = new HashMap();
     
@@ -48,25 +46,6 @@
         this.container = container;
     }
     
-    public DefaultProfileManager( ProfileManager globals, PlexusContainer 
container )
-    {
-        this.container = container;
-        
-        this.activatedIds.addAll( globals.getActivatedIds() );
-        this.deactivatedIds.addAll( globals.getDeactivatedIds() );
-        this.profilesById.putAll( globals.getProfilesById() );
-    }
-    
-    public Set getActivatedIds()
-    {
-        return activatedIds;
-    }
-    
-    public Set getDeactivatedIds()
-    {
-        return deactivatedIds;
-    }
-    
     public Map getProfilesById()
     {
         return profilesById;
@@ -102,9 +81,12 @@
      */
     public void explicitlyActivate( String profileId )
     {
-        container.getLogger().debug( "Profile with id: \'" + profileId + "\' 
has been explicitly activated." );
-        
-        activatedIds.add( profileId );
+        if ( !activatedIds.contains( profileId ) )
+        {
+            container.getLogger().debug( "Profile with id: \'" + profileId + 
"\' has been explicitly activated." );
+
+            activatedIds.add( profileId );
+        }
     }
     
     /* (non-Javadoc)
@@ -125,9 +107,12 @@
      */
     public void explicitlyDeactivate( String profileId )
     {
-        container.getLogger().debug( "Profile with id: \'" + profileId + "\' 
has been explicitly deactivated." );
-        
-        deactivatedIds.add( profileId );
+        if ( !deactivatedIds.contains( profileId ) )
+        {
+            container.getLogger().debug( "Profile with id: \'" + profileId + 
"\' has been explicitly deactivated." );
+
+            deactivatedIds.add( profileId );
+        }
     }
     
     /* (non-Javadoc)
@@ -234,7 +219,25 @@
 
     public void activateAsDefault( String profileId )
     {
-        defaultIds.add( profileId );
+        if ( !defaultIds.contains( profileId ) )
+        {
+            defaultIds.add( profileId );
+        }
+    }
+
+    public List getExplicitlyActivatedIds()
+    {
+        return activatedIds;
+    }
+
+    public List getExplicitlyDeactivatedIds()
+    {
+        return deactivatedIds;
+    }
+
+    public List getIdsActivatedByDefault()
+    {
+        return defaultIds;
     }
     
 }

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java?rev=280629&r1=280628&r2=280629&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
 Tue Sep 13 12:27:34 2005
@@ -5,7 +5,6 @@
 
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 public interface ProfileManager
 {
@@ -27,10 +26,12 @@
 
     void addProfiles( List profiles );
 
-    public Set getActivatedIds();
+    Map getProfilesById();
     
-    public Set getDeactivatedIds();
+    List getExplicitlyActivatedIds();
     
-    public Map getProfilesById();
+    List getExplicitlyDeactivatedIds();
+    
+    List getIdsActivatedByDefault();
     
 }

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=280629&r1=280628&r2=280629&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Tue Sep 13 12:27:34 2005
@@ -433,7 +433,7 @@
     }
 
     private MavenProject build( String pomLocation, Model model, 
ArtifactRepository localRepository,
-                                List parentSearchRepositories, File 
projectDir, ProfileManager profileManager )
+                                List parentSearchRepositories, File 
projectDir, ProfileManager externalProfileManager )
         throws ProjectBuildingException
     {
         Model superModel = getSuperModel();
@@ -461,9 +461,9 @@
         List activeExternalProfiles;
         try
         {
-            if ( profileManager != null )
+            if ( externalProfileManager != null )
             {
-                activeExternalProfiles = profileManager.getActiveProfiles();
+                activeExternalProfiles = 
externalProfileManager.getActiveProfiles();
             }
             else
             {
@@ -494,7 +494,7 @@
         Model originalModel = ModelUtils.cloneModel( model );
 
         MavenProject project = assembleLineage( model, lineage, 
localRepository, projectDir, parentSearchRepositories,
-                                                
aggregatedRemoteWagonRepositories );
+                                                
aggregatedRemoteWagonRepositories, externalProfileManager );
 
         project.setOriginalModel( originalModel );
 
@@ -526,7 +526,7 @@
 
         try
         {
-            project = processProjectLogic( pomLocation, project, repositories, 
profileManager, projectDir );
+            project = processProjectLogic( pomLocation, project, repositories, 
externalProfileManager, projectDir );
         }
         catch ( ModelInterpolationException e )
         {
@@ -658,7 +658,7 @@
      */
     private MavenProject assembleLineage( Model model, LinkedList lineage, 
ArtifactRepository localRepository,
                                           File projectDir, List 
parentSearchRepositories,
-                                          Set 
aggregatedRemoteWagonRepositories )
+                                          Set 
aggregatedRemoteWagonRepositories, ProfileManager externalProfileManager )
         throws ProjectBuildingException
     {
         if ( !model.getRepositories().isEmpty() )
@@ -677,6 +677,12 @@
         }
 
         ProfileManager profileManager = new DefaultProfileManager( container );
+        
+        if ( externalProfileManager != null )
+        {
+            profileManager.explicitlyActivate( 
externalProfileManager.getExplicitlyActivatedIds() );
+            profileManager.explicitlyDeactivate( 
externalProfileManager.getExplicitlyDeactivatedIds() );
+        }
 
         List activeProfiles;
 
@@ -813,7 +819,8 @@
                 parentProjectDir = parentDescriptor.getParentFile();
             }
             MavenProject parent = assembleLineage( model, lineage, 
localRepository, parentProjectDir,
-                                                   parentSearchRepositories, 
aggregatedRemoteWagonRepositories );
+                                                   parentSearchRepositories, 
aggregatedRemoteWagonRepositories,
+                                                   externalProfileManager );
             parent.setFile( parentDescriptor );
 
             project.setParent( parent );



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to