Author: jvanzyl Date: Wed Sep 28 19:47:24 2005 New Revision: 292380 URL: http://svn.apache.org/viewcvs?rev=292380&view=rev Log: o provide the phases in the lifecycle by extracting the component descriptor and pull them out of the configuration.
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=292380&r1=292379&r2=292380&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Sep 28 19:47:24 2005 @@ -46,8 +46,10 @@ import org.codehaus.classworlds.DuplicateRealmException; import org.codehaus.plexus.PlexusContainerException; import org.codehaus.plexus.configuration.PlexusConfigurationException; +import org.codehaus.plexus.configuration.PlexusConfiguration; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; +import org.codehaus.plexus.component.repository.ComponentDescriptor; import org.codehaus.plexus.embed.Embedder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.codehaus.plexus.util.dag.CycleDetectedException; @@ -127,8 +129,6 @@ private String globalChecksumPolicy; - private File mavenHome; - // ---------------------------------------------------------------------- // Accessors // ---------------------------------------------------------------------- @@ -228,16 +228,6 @@ return localRepositoryDirectory; } - public File getMavenHome() - { - return mavenHome; - } - - public void setMavenHome( File mavenHome ) - { - this.mavenHome = mavenHome; - } - // ---------------------------------------------------------------------- // Embedder Client Contract // ---------------------------------------------------------------------- @@ -380,6 +370,36 @@ } // ---------------------------------------------------------------------- + // Lifecycle information + // ---------------------------------------------------------------------- + + public List getLifecyclePhases() + throws MavenEmbedderException + { + List phases = new ArrayList(); + + ComponentDescriptor descriptor = embedder.getContainer().getComponentDescriptor( LifecycleExecutor.ROLE ); + + PlexusConfiguration configuration = descriptor.getConfiguration(); + + PlexusConfiguration[] phasesConfigurations = configuration.getChild( "phases" ).getChildren( "phase" ); + + try + { + for ( int i = 0; i < phasesConfigurations.length; i++ ) + { + phases.add( phasesConfigurations[i].getValue() ); + } + } + catch ( PlexusConfigurationException e ) + { + throw new MavenEmbedderException( "Cannot retrieve default lifecycle phasesConfigurations.", e ); + } + + return phases; + } + + // ---------------------------------------------------------------------- // Internal utility code // ---------------------------------------------------------------------- @@ -474,23 +494,6 @@ // Set the maven.home system property which is need by components like // the plugin registry builder. // ---------------------------------------------------------------------- - - // TODO: create a maven.home discovery method. - - if ( mavenHome == null ) - { - mavenHome = new File( userHome, "m2" ); - - if ( !mavenHome.exists() ) - { - if ( !mavenHome.mkdirs() ) - { - throw new IllegalStateException( "A maven home directory does not exist and cannot be created." ); - } - } - - System.setProperty( "maven.home", mavenHome.getAbsolutePath() ); - } if ( classLoader == null ) { Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=292380&r1=292379&r2=292380&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original) +++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Wed Sep 28 19:47:24 2005 @@ -98,6 +98,22 @@ } // ---------------------------------------------------------------------- + // Lifecycle phases + // ---------------------------------------------------------------------- + + public void testRetrievingLifecyclePhases() + throws Exception + { + List phases = maven.getLifecyclePhases(); + + assertEquals( "validate", (String) phases.get( 0 ) ); + + assertEquals( "initialize", (String) phases.get( 1 ) ); + + assertEquals( "generate-sources", (String) phases.get( 2 ) ); + } + + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]