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" );