Author: jdcasey
Date: Mon Dec  3 20:32:13 2007
New Revision: 600792

URL: http://svn.apache.org/viewvc?rev=600792&view=rev
Log:
Fixing problem with new extensions manager code where custom lifecycle 
definitions are not used in build planning. Unit tests included.

Added:
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
   (with props)
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/
    
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
   (with props)
    
maven/components/trunk/maven-core/src/test/resources/org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar
   (with props)
Modified:
    maven/components/trunk/maven-core/pom.xml
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenRealmManagerTest.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultExtensionManagerTest.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManagerTest.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/DefaultBuildPlannerTest.java
    
maven/components/trunk/maven-project/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
    
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
    
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java

Modified: maven/components/trunk/maven-core/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/pom.xml?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Mon Dec  3 20:32:13 2007
@@ -26,6 +26,7 @@
     <groupId>org.apache.maven</groupId>
     <version>2.1-SNAPSHOT</version>
   </parent>
+  
   <modelVersion>4.0.0</modelVersion>
   <artifactId>maven-core</artifactId>
   <name>Maven Core</name>

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
 Mon Dec  3 20:32:13 2007
@@ -21,9 +21,14 @@
 import org.apache.maven.plugin.loader.PluginLoaderException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.MavenReport;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -43,7 +48,7 @@
  *
  */
 public class DefaultLifecycleBindingManager
-    implements LifecycleBindingManager, LogEnabled
+    implements LifecycleBindingManager, LogEnabled, Contextualizable
 {
     private Map bindingsByPackaging;
 
@@ -63,32 +68,46 @@
     // configured. Moved out of DefaultLifecycleExecutor...
     private List defaultReports;
 
+    // contextualized, used for setting lookup realm before retrieving 
lifecycle bindings for packaging.
+    private PlexusContainer container;
+
     /**
      * Retrieve the LifecycleBindings given by the lifecycle mapping 
component/file for the project's packaging. Any
      * applicable mojo configuration will be injected into the 
LifecycleBindings from the POM.
      */
-    public LifecycleBindings getBindingsForPackaging( final MavenProject 
project )
+    public LifecycleBindings getBindingsForPackaging( final MavenProject 
project, final MavenSession session )
         throws LifecycleLoaderException, LifecycleSpecificationException
     {
         String packaging = project.getPackaging();
 
         LifecycleBindings bindings = null;
 
-        LifecycleBindingLoader loader = (LifecycleBindingLoader) 
bindingsByPackaging.get( packaging );
-        if ( loader != null )
-        {
-            bindings = loader.getBindings();
-        }
+        ClassRealm projectRealm = session.getRealmManager().getProjectRealm( 
project.getGroupId(), project.getArtifactId(), project.getVersion() );
 
-        // TODO: Remove this once we no longer have to support legacy-style 
lifecycle mappings
-        if ( bindings == null )
+        ClassRealm oldRealm = container.setLookupRealm( projectRealm );
+
+        try
         {
-            LifecycleMapping mapping = (LifecycleMapping) 
legacyMappingsByPackaging.get( packaging );
-            if ( mapping != null )
+            LifecycleBindingLoader loader = (LifecycleBindingLoader) 
bindingsByPackaging.get( packaging );
+            if ( loader != null )
+            {
+                bindings = loader.getBindings();
+            }
+
+            // TODO: Remove this once we no longer have to support 
legacy-style lifecycle mappings
+            if ( bindings == null )
             {
-                bindings = legacyLifecycleMappingParser.parseMappings( 
mapping, packaging );
+                LifecycleMapping mapping = (LifecycleMapping) 
legacyMappingsByPackaging.get( packaging );
+                if ( mapping != null )
+                {
+                    bindings = legacyLifecycleMappingParser.parseMappings( 
mapping, packaging );
+                }
             }
         }
+        finally
+        {
+            container.setLookupRealm( oldRealm );
+        }
 
         if ( bindings != null )
         {
@@ -580,6 +599,12 @@
         Class reportClass = classRealm.loadClass( MavenReport.class.getName() 
);
 
         return reportClass.isAssignableFrom( mojoClass );
+    }
+
+    public void contextualize( Context ctx )
+        throws ContextException
+    {
+        container = (PlexusContainer) ctx.get( PlexusConstants.PLEXUS_KEY );
     }
 
 }

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
 Mon Dec  3 20:32:13 2007
@@ -31,8 +31,9 @@
     /**
      * Retrieve the LifecycleBindings given by the lifecycle mapping 
component/file for the project's packaging. Any
      * applicable mojo configuration will be injected into the 
LifecycleBindings from the POM.
+     * @param session
      */
-    LifecycleBindings getBindingsForPackaging( MavenProject project )
+    LifecycleBindings getBindingsForPackaging( MavenProject project, 
MavenSession session )
         throws LifecycleLoaderException, LifecycleSpecificationException;
 
     /**

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
 Mon Dec  3 20:32:13 2007
@@ -51,7 +51,7 @@
         throws LifecycleLoaderException, LifecycleSpecificationException, 
LifecyclePlannerException
     {
         LifecycleBindings defaultBindings = 
lifecycleBindingManager.getDefaultBindings( project );
-        LifecycleBindings packagingBindings = 
lifecycleBindingManager.getBindingsForPackaging( project );
+        LifecycleBindings packagingBindings = 
lifecycleBindingManager.getBindingsForPackaging( project, session );
         LifecycleBindings projectBindings = 
lifecycleBindingManager.getProjectCustomBindings( project, session );
 
         BuildPlan plan = new BuildPlan( packagingBindings, projectBindings, 
defaultBindings, tasks );

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenRealmManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenRealmManagerTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenRealmManagerTest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenRealmManagerTest.java
 Mon Dec  3 20:32:13 2007
@@ -3,7 +3,6 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.codehaus.plexus.PlexusTestCase;
-import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.logging.console.ConsoleLogger;
 
@@ -25,7 +24,7 @@
     }
 
     public void 
test_ReuseSingleExtensionRealmFromMultipleProjectRealms_UsingTwoManagerInstances()
-        throws RealmManagementException, ComponentLookupException
+        throws Exception
     {
         ClassLoader cloader = Thread.currentThread().getContextClassLoader();
         URL jarResource = cloader.getResource( 
"org/apache/maven/execution/test-extension-1.jar" );

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultExtensionManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultExtensionManagerTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultExtensionManagerTest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultExtensionManagerTest.java
 Mon Dec  3 20:32:13 2007
@@ -86,7 +86,7 @@
 
             if ( f.exists() )
             {
-                           try 
+                           try
                                {
                     FileUtils.forceDelete( f );
                                }
@@ -207,6 +207,7 @@
     }
 
     private ExtensionManager newDefaultExtensionManager()
+        throws Exception
     {
         DefaultExtensionManager mgr = new DefaultExtensionManager( factory, 
resolver,
                                                                    
metadataSource, container,

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManagerTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManagerTest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManagerTest.java
 Mon Dec  3 20:32:13 2007
@@ -1,29 +1,45 @@
 package org.apache.maven.lifecycle.binding;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenRealmManager;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenRealmManager;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.LifecycleLoaderException;
 import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.model.BuildBinding;
 import org.apache.maven.lifecycle.model.LifecycleBindings;
 import org.apache.maven.lifecycle.model.MojoBinding;
+import org.apache.maven.lifecycle.model.Phase;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.PluginExecution;
 import org.apache.maven.model.PluginManagement;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.tools.easymock.MockManager;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.easymock.MockControl;
 
+import java.io.File;
+import java.net.URL;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 
-public class DefaultLifecycleBindingManagerTest extends PlexusTestCase
+public class DefaultLifecycleBindingManagerTest
+    extends PlexusTestCase
 {
 
     private LifecycleBindingManager mgr;
 
-    public void setUp() throws Exception
+    public void setUp()
+        throws Exception
     {
         super.setUp();
 
@@ -36,7 +52,7 @@
     }
 
     public void testGetBindingsForPackaging_TestMergePluginConfigToBinding()
-        throws LifecycleLoaderException, LifecycleSpecificationException
+        throws Exception
     {
         Model model = new Model();
         model.setGroupId( "group" );
@@ -61,7 +77,19 @@
 
         MavenProject project = new MavenProject( model );
 
-        LifecycleBindings lifecycleBindings = mgr.getBindingsForPackaging( 
project );
+        MavenRealmManager realmManager = new DefaultMavenRealmManager(
+                                                                       
getContainer(),
+                                                                       new 
ConsoleLogger(
+                                                                               
           Logger.LEVEL_DEBUG,
+                                                                               
           "test" ) );
+        MavenExecutionRequest request = new 
DefaultMavenExecutionRequest().setRealmManager( realmManager );
+
+        LifecycleBindings lifecycleBindings = mgr.getBindingsForPackaging( 
project,
+                                                                           new 
MavenSession(
+                                                                               
              getContainer(),
+                                                                               
              request,
+                                                                               
              null,
+                                                                               
              null ) );
 
         List bindings = 
lifecycleBindings.getBuildBinding().getCompile().getBindings();
 
@@ -79,7 +107,7 @@
     }
 
     public void 
testGetBindingsForPackaging_TestMergePluginManagementConfigToBinding()
-        throws LifecycleLoaderException, LifecycleSpecificationException
+        throws Exception
     {
         Model model = new Model();
         model.setGroupId( "group" );
@@ -107,7 +135,19 @@
 
         MavenProject project = new MavenProject( model );
 
-        LifecycleBindings lifecycleBindings = mgr.getBindingsForPackaging( 
project );
+        MavenRealmManager realmManager = new DefaultMavenRealmManager(
+                                                                       
getContainer(),
+                                                                       new 
ConsoleLogger(
+                                                                               
           Logger.LEVEL_DEBUG,
+                                                                               
           "test" ) );
+        MavenExecutionRequest request = new 
DefaultMavenExecutionRequest().setRealmManager( realmManager );
+
+        LifecycleBindings lifecycleBindings = mgr.getBindingsForPackaging( 
project,
+                                                                           new 
MavenSession(
+                                                                               
              getContainer(),
+                                                                               
              request,
+                                                                               
              null,
+                                                                               
              null ) );
 
         List bindings = 
lifecycleBindings.getBuildBinding().getCompile().getBindings();
 
@@ -176,6 +216,86 @@
 
         assertEquals( "value2", config.getChild( "test" ).getValue() );
         assertEquals( "other-value", config.getChild( "test2" ).getValue() );
+    }
+
+    public void 
test_GetBindingsForPackaging_CustomLifecycleIsUsedFromRealmManager()
+        throws Exception
+    {
+        Model model = new Model();
+
+        model.setPackaging( "test" );
+
+        MavenProject project = new MavenProject( model );
+
+        MavenRealmManager realmManager = new DefaultMavenRealmManager(
+                                                                       
getContainer(),
+                                                                       new 
ConsoleLogger(
+                                                                               
           Logger.LEVEL_DEBUG,
+                                                                               
           "test" ) );
+
+        MockManager mockManager = new MockManager();
+
+        MockControl extArtifactCtl = MockControl.createControl( Artifact.class 
);
+        mockManager.add( extArtifactCtl );
+
+        Artifact extensionArtifact = (Artifact) extArtifactCtl.getMock();
+
+        extensionArtifact.getGroupId();
+        extArtifactCtl.setReturnValue( "group", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getArtifactId();
+        extArtifactCtl.setReturnValue( "artifact", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getVersion();
+        extArtifactCtl.setReturnValue( "1", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getFile();
+        extArtifactCtl.setReturnValue( getResourceFile( 
"org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar" ),
+                                       MockControl.ZERO_OR_MORE );
+
+        mockManager.replayAll();
+
+        realmManager.createExtensionRealm( extensionArtifact, 
Collections.EMPTY_SET );
+        realmManager.importExtensionsIntoProjectRealm( "group", "project", 
"1", extensionArtifact );
+
+        MavenExecutionRequest request = new 
DefaultMavenExecutionRequest().setRealmManager( realmManager );
+
+        MavenSession session = new MavenSession( getContainer(), request, 
null, null );
+
+        LifecycleBindings lifecycleBindings = mgr.getBindingsForPackaging( 
project, session );
+
+        BuildBinding buildBinding = lifecycleBindings.getBuildBinding();
+        assertNotNull( buildBinding );
+
+        Phase installPhase = buildBinding.getInstall();
+        Phase deployPhase = buildBinding.getDeploy();
+        Phase packagePhase = buildBinding.getCreatePackage();
+
+        assertTrue( ( packagePhase.getBindings() == null ) || 
packagePhase.getBindings().isEmpty() );
+        assertNotNull( installPhase.getBindings() );
+        assertEquals( 1, installPhase.getBindings().size() );
+        assertEquals( "maven-deploy-plugin",
+                      ( (MojoBinding) installPhase.getBindings().get( 0 ) 
).getArtifactId() );
+
+        assertNotNull( deployPhase.getBindings() );
+        assertEquals( 1, deployPhase.getBindings().size() );
+        assertEquals( "maven-install-plugin",
+                      ( (MojoBinding) deployPhase.getBindings().get( 0 ) 
).getArtifactId() );
+
+        mockManager.verifyAll();
+    }
+
+    private File getResourceFile( String path )
+    {
+        ClassLoader cloader = Thread.currentThread().getContextClassLoader();
+        URL resource = cloader.getResource( path );
+
+        if ( resource == null )
+        {
+            fail( "Cannot find test resource: " + path );
+        }
+
+        return new File( resource.getPath() );
     }
 
     private Object createConfiguration( final Properties configProperties )

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/DefaultBuildPlannerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/DefaultBuildPlannerTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/DefaultBuildPlannerTest.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/DefaultBuildPlannerTest.java
 Mon Dec  3 20:32:13 2007
@@ -1,8 +1,11 @@
 package org.apache.maven.lifecycle.plan;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenRealmManager;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenRealmManager;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.lifecycle.LifecycleLoaderException;
-import org.apache.maven.lifecycle.LifecycleSpecificationException;
 import org.apache.maven.lifecycle.MojoBindingUtils;
 import org.apache.maven.lifecycle.model.MojoBinding;
 import org.apache.maven.lifecycle.plan.testutils.TestPluginLoader;
@@ -14,8 +17,14 @@
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugin.loader.PluginLoader;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.tools.easymock.MockManager;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.easymock.MockControl;
 
+import java.io.File;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -29,6 +38,8 @@
 
     private TestPluginLoader pluginLoader;
 
+    private MockManager mockManager = new MockManager();
+
     protected void setUp()
         throws Exception
     {
@@ -38,7 +49,7 @@
     }
 
     public void test_constructBuildPlan_ForkedPhaseFromMojoBoundInThatPhase()
-        throws LifecycleLoaderException, LifecycleSpecificationException, 
LifecyclePlannerException
+        throws Exception
     {
         Model model = new Model();
 
@@ -59,8 +70,10 @@
 
         plugin.addExecution( exec );
 
-        PluginDescriptor pd = TestPluginLoader.createPluginDescriptor( 
plugin.getArtifactId(), "assembly",
-                                                                       
plugin.getGroupId(), plugin.getVersion() );
+        PluginDescriptor pd = TestPluginLoader.createPluginDescriptor( 
plugin.getArtifactId(),
+                                                                       
"assembly",
+                                                                       
plugin.getGroupId(),
+                                                                       
plugin.getVersion() );
         MojoDescriptor md = TestPluginLoader.createMojoDescriptor( pd, 
"assembly" );
         md.setExecutePhase( "package" );
 
@@ -68,9 +81,14 @@
 
         MavenProject project = new MavenProject( model );
 
-        MavenSession session = new MavenSession( getContainer(), null, null, 
null );
+        MavenRealmManager realmManager = new DefaultMavenRealmManager( 
getContainer(), new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+        MavenExecutionRequest request = new 
DefaultMavenExecutionRequest().setRealmManager( realmManager );
+
+        MavenSession session = new MavenSession( getContainer(), request, 
null, null );
 
-        BuildPlan plan = buildPlanner.constructBuildPlan( 
Collections.singletonList( "package" ), project, session );
+        BuildPlan plan = buildPlanner.constructBuildPlan( 
Collections.singletonList( "package" ),
+                                                          project,
+                                                          session );
 
         List rendered = plan.renderExecutionPlan( new Stack() );
 
@@ -96,7 +114,75 @@
         assertBindingIds( rendered, checkIds );
     }
 
-    private void assertBindingIds( List bindings, List checkIds )
+    public void test_constructBuildPlan_CustomLifecycleIsUsedFromRealmManager()
+        throws Exception
+    {
+        Model model = new Model();
+
+        model.setPackaging( "test" );
+
+        MavenProject project = new MavenProject( model );
+
+        MavenRealmManager realmManager = new DefaultMavenRealmManager( 
getContainer(), new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
+
+        MockControl extArtifactCtl = MockControl.createControl( Artifact.class 
);
+        mockManager.add( extArtifactCtl );
+
+        Artifact extensionArtifact = (Artifact) extArtifactCtl.getMock();
+
+        extensionArtifact.getGroupId();
+        extArtifactCtl.setReturnValue( "group", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getArtifactId();
+        extArtifactCtl.setReturnValue( "artifact", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getVersion();
+        extArtifactCtl.setReturnValue( "1", MockControl.ZERO_OR_MORE );
+
+        extensionArtifact.getFile();
+        extArtifactCtl.setReturnValue( getResourceFile( 
"org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar" ),
+                                       MockControl.ZERO_OR_MORE );
+
+        mockManager.replayAll();
+
+        realmManager.createExtensionRealm( extensionArtifact, 
Collections.EMPTY_SET );
+        realmManager.importExtensionsIntoProjectRealm( "group", "project", 
"1", extensionArtifact );
+
+        MavenExecutionRequest request = new 
DefaultMavenExecutionRequest().setRealmManager( realmManager );
+
+        MavenSession session = new MavenSession( getContainer(), request, 
null, null );
+
+        BuildPlan plan = buildPlanner.constructBuildPlan( 
Collections.singletonList( "deploy" ),
+                                                          project,
+                                                          session );
+
+        List rendered = plan.renderExecutionPlan( new Stack() );
+
+        List checkIds = new ArrayList();
+
+        checkIds.add( "org.apache.maven.plugins:maven-deploy-plugin:deploy" );
+        checkIds.add( "org.apache.maven.plugins:maven-install-plugin:install" 
);
+
+        assertBindingIds( rendered, checkIds );
+
+        mockManager.verifyAll();
+    }
+
+    private File getResourceFile( String path )
+    {
+        ClassLoader cloader = Thread.currentThread().getContextClassLoader();
+        URL resource = cloader.getResource( path );
+
+        if ( resource == null )
+        {
+            fail( "Cannot find test resource: " + path );
+        }
+
+        return new File( resource.getPath() );
+    }
+
+    private void assertBindingIds( List bindings,
+                                   List checkIds )
     {
         assertEquals( checkIds.size(), bindings.size() );
 

Added: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml?rev=600792&view=auto
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
 (added)
+++ 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
 Mon Dec  3 20:32:13 2007
@@ -0,0 +1,10 @@
+<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/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.core.test</groupId>
+  <artifactId>test-custom-lifecycle-buildPlan</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+  <name>test-custom-lifecycle-buildPlan</name>
+
+</project>

Propchange: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml?rev=600792&view=auto
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
 (added)
+++ 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
 Mon Dec  3 20:32:13 2007
@@ -0,0 +1,31 @@
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>test</role-hint>
+      
<implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>test</type>
+        <extension>jar</extension>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+    <component>
+      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+      <role-hint>test</role-hint>
+      
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+      <configuration>
+        <lifecycles>
+          <lifecycle>
+            <id>default</id>
+            <phases>
+              
<install>org.apache.maven.plugins:maven-deploy-plugin:deploy</install>
+              
<deploy>org.apache.maven.plugins:maven-install-plugin:install</deploy>
+            </phases>
+          </lifecycle>
+        </lifecycles>
+      </configuration>
+    </component>
+  </components>
+</component-set>

Propchange: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-core/src/test/repository-projects/test-custom-lifecycle-buildplan/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-core/src/test/resources/org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/resources/org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar?rev=600792&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
maven/components/trunk/maven-core/src/test/resources/org/apache/maven/lifecycle/plan/test-custom-lifecycle-buildPlan-1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
 Mon Dec  3 20:32:13 2007
@@ -27,7 +27,6 @@
 import org.apache.maven.profiles.ProfileManager;
 import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
 import org.apache.maven.profiles.activation.ProfileActivationContext;
-import org.apache.maven.profiles.activation.ProfileActivationException;
 import org.codehaus.plexus.PlexusTestCase;
 
 import java.util.List;
@@ -37,28 +36,30 @@
     extends PlexusTestCase
 {
 
-    public void setUp() throws Exception
+    public void setUp()
+        throws Exception
     {
         super.setUp();
     }
 
-    public void testShouldActivateDefaultProfile() throws 
ProfileActivationException
+    public void testShouldActivateDefaultProfile()
+        throws Exception
     {
         Profile notActivated = new Profile();
-        notActivated.setId("notActivated");
+        notActivated.setId( "notActivated" );
 
         Activation nonActivation = new Activation();
 
-        nonActivation.setJdk("19.2");
+        nonActivation.setJdk( "19.2" );
 
         notActivated.setActivation( nonActivation );
 
         Profile defaultActivated = new Profile();
-        defaultActivated.setId("defaultActivated");
+        defaultActivated.setId( "defaultActivated" );
 
         Activation defaultActivation = new Activation();
 
-        defaultActivation.setActiveByDefault(true);
+        defaultActivation.setActiveByDefault( true );
 
         defaultActivated.setActivation( defaultActivation );
 
@@ -67,36 +68,37 @@
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(notActivated);
-        profileManager.addProfile(defaultActivated);
+        profileManager.addProfile( notActivated );
+        profileManager.addProfile( defaultActivated );
 
         List active = profileManager.getActiveProfiles();
 
         assertNotNull( active );
         assertEquals( 1, active.size() );
-        assertEquals("defaultActivated", ((Profile)active.get(0)).getId());
+        assertEquals( "defaultActivated", ( (Profile) active.get( 0 ) 
).getId() );
     }
 
-    public void testShouldNotActivateDefaultProfile() throws 
ProfileActivationException
+    public void testShouldNotActivateDefaultProfile()
+        throws Exception
     {
         Profile syspropActivated = new Profile();
-        syspropActivated.setId("syspropActivated");
+        syspropActivated.setId( "syspropActivated" );
 
         Activation syspropActivation = new Activation();
 
         ActivationProperty syspropProperty = new ActivationProperty();
-        syspropProperty.setName("java.version");
+        syspropProperty.setName( "java.version" );
 
-        syspropActivation.setProperty(syspropProperty);
+        syspropActivation.setProperty( syspropProperty );
 
         syspropActivated.setActivation( syspropActivation );
 
         Profile defaultActivated = new Profile();
-        defaultActivated.setId("defaultActivated");
+        defaultActivated.setId( "defaultActivated" );
 
         Activation defaultActivation = new Activation();
 
-        defaultActivation.setActiveByDefault(true);
+        defaultActivation.setActiveByDefault( true );
 
         defaultActivated.setActivation( defaultActivation );
 
@@ -105,27 +107,28 @@
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(syspropActivated);
-        profileManager.addProfile(defaultActivated);
+        profileManager.addProfile( syspropActivated );
+        profileManager.addProfile( defaultActivated );
 
         List active = profileManager.getActiveProfiles();
 
         assertNotNull( active );
         assertEquals( 1, active.size() );
-        assertEquals("syspropActivated", ((Profile)active.get(0)).getId());
+        assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) 
).getId() );
     }
 
-    public void testShouldNotActivateReversalOfPresentSystemProperty() throws 
ProfileActivationException
+    public void testShouldNotActivateReversalOfPresentSystemProperty()
+        throws Exception
     {
         Profile syspropActivated = new Profile();
-        syspropActivated.setId("syspropActivated");
+        syspropActivated.setId( "syspropActivated" );
 
         Activation syspropActivation = new Activation();
 
         ActivationProperty syspropProperty = new ActivationProperty();
-        syspropProperty.setName("!java.version");
+        syspropProperty.setName( "!java.version" );
 
-        syspropActivation.setProperty(syspropProperty);
+        syspropActivation.setProperty( syspropProperty );
 
         syspropActivated.setActivation( syspropActivation );
 
@@ -134,7 +137,7 @@
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(syspropActivated);
+        profileManager.addProfile( syspropActivated );
 
         List active = profileManager.getActiveProfiles();
 
@@ -142,17 +145,18 @@
         assertEquals( 0, active.size() );
     }
 
-    public void testShouldOverrideAndActivateInactiveProfile() throws 
ProfileActivationException
+    public void testShouldOverrideAndActivateInactiveProfile()
+        throws Exception
     {
         Profile syspropActivated = new Profile();
-        syspropActivated.setId("syspropActivated");
+        syspropActivated.setId( "syspropActivated" );
 
         Activation syspropActivation = new Activation();
 
         ActivationProperty syspropProperty = new ActivationProperty();
-        syspropProperty.setName("!java.version");
+        syspropProperty.setName( "!java.version" );
 
-        syspropActivation.setProperty(syspropProperty);
+        syspropActivation.setProperty( syspropProperty );
 
         syspropActivated.setActivation( syspropActivation );
 
@@ -161,28 +165,29 @@
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(syspropActivated);
+        profileManager.addProfile( syspropActivated );
 
-        profileManager.explicitlyActivate("syspropActivated");
+        profileManager.explicitlyActivate( "syspropActivated" );
 
         List active = profileManager.getActiveProfiles();
 
         assertNotNull( active );
         assertEquals( 1, active.size() );
-        assertEquals( "syspropActivated", ((Profile)active.get(0)).getId());
+        assertEquals( "syspropActivated", ( (Profile) active.get( 0 ) 
).getId() );
     }
 
-    public void testShouldOverrideAndDeactivateActiveProfile() throws 
ProfileActivationException
+    public void testShouldOverrideAndDeactivateActiveProfile()
+        throws Exception
     {
         Profile syspropActivated = new Profile();
-        syspropActivated.setId("syspropActivated");
+        syspropActivated.setId( "syspropActivated" );
 
         Activation syspropActivation = new Activation();
 
         ActivationProperty syspropProperty = new ActivationProperty();
-        syspropProperty.setName("java.version");
+        syspropProperty.setName( "java.version" );
 
-        syspropActivation.setProperty(syspropProperty);
+        syspropActivation.setProperty( syspropProperty );
 
         syspropActivated.setActivation( syspropActivation );
 
@@ -191,9 +196,9 @@
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(syspropActivated);
+        profileManager.addProfile( syspropActivated );
 
-        profileManager.explicitlyDeactivate("syspropActivated");
+        profileManager.explicitlyDeactivate( "syspropActivated" );
 
         List active = profileManager.getActiveProfiles();
 
@@ -201,27 +206,28 @@
         assertEquals( 0, active.size() );
     }
 
-   public void testOsActivationProfile() throws ProfileActivationException
+    public void testOsActivationProfile()
+        throws Exception
     {
         Profile osActivated = new Profile();
-        osActivated.setId("os-profile");
+        osActivated.setId( "os-profile" );
 
         Activation osActivation = new Activation();
 
         ActivationOS activationOS = new ActivationOS();
 
-        activationOS.setName("!dddd");
+        activationOS.setName( "!dddd" );
 
-        osActivation.setOs(activationOS);
+        osActivation.setOs( activationOS );
 
-        osActivated.setActivation(osActivation);
+        osActivated.setActivation( osActivation );
 
         Properties props = System.getProperties();
         ProfileActivationContext ctx = new DefaultProfileActivationContext( 
props, false );
 
         ProfileManager profileManager = new DefaultProfileManager( 
getContainer(), ctx );
 
-        profileManager.addProfile(osActivated);
+        profileManager.addProfile( osActivated );
 
         List active = profileManager.getActiveProfiles();
 

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
 Mon Dec  3 20:32:13 2007
@@ -42,7 +42,7 @@
     }
 
     public void 
testStandaloneSuperPomContainsInjectedExternalProfileRepositories()
-        throws ProjectBuildingException
+        throws Exception
     {
         Profile profile = new Profile();
         profile.setId( "test-profile" );

Modified: 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java?rev=600792&r1=600791&r2=600792&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
 (original)
+++ 
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
 Mon Dec  3 20:32:13 2007
@@ -388,7 +388,7 @@
     }
 
     public void testReadPOMWithParentInRepoBroughtInViaSettingsProfile()
-        throws IOException, ProjectBuildingException
+        throws Exception
     {
         // 1. create project-root directory.
         File projectRootDirectory = createTempDir( "projectRootDir" );


Reply via email to