You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/07/22 01:30:27 UTC
svn commit: r796579 - in /maven/components/trunk:
maven-core/src/test/java/org/apache/maven/
maven-embedder/src/test/java/org/apache/maven/embedder/
maven-embedder/src/test/java/org/apache/maven/embedder/execution/
maven-embedder/src/test/java/org/apac...
Author: jvanzyl
Date: Tue Jul 21 23:30:26 2009
New Revision: 796579
URL: http://svn.apache.org/viewvc?rev=796579&view=rev
Log:
o using the same technique for the embedder as we are for the core tests
o trying on the grid and then i'll share a test jar
Added:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java (with props)
Removed:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/execution/
Modified:
maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderAligningBasedirTest.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java?rev=796579&r1=796578&r2=796579&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java Tue Jul 21 23:30:26 2009
@@ -87,6 +87,7 @@
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setPom( pom )
.setProjectPresent( true )
+ .setShowErrors( true )
.setPluginGroups( Arrays.asList( new String[] { "org.apache.maven.plugins" } ) )
.setLocalRepository( getLocalRepository() )
.setRemoteRepositories( getRemoteRepositories() )
Added: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java?rev=796579&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java (added)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java Tue Jul 21 23:30:26 2009
@@ -0,0 +1,306 @@
+package org.apache.maven.embedder;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.Repository;
+import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.util.FileUtils;
+
+public abstract class AbstractCoreMavenComponentTestCase
+ extends PlexusTestCase
+{
+ @Requirement
+ protected RepositorySystem repositorySystem;
+
+ @Requirement
+ protected org.apache.maven.project.ProjectBuilder projectBuilder;
+
+ protected void setUp()
+ throws Exception
+ {
+ repositorySystem = lookup( RepositorySystem.class );
+ projectBuilder = lookup( org.apache.maven.project.ProjectBuilder.class );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ repositorySystem = null;
+ projectBuilder = null;
+ super.tearDown();
+ }
+
+ abstract protected String getProjectsDirectory();
+
+ protected File getProject( String name )
+ throws Exception
+ {
+ File source = new File( new File( getBasedir(), getProjectsDirectory() ), name );
+ File target = new File( new File( getBasedir(), "target" ), name );
+ if ( !target.exists() )
+ {
+ FileUtils.copyDirectoryStructure( source, target );
+ }
+ return new File( target, "pom.xml" );
+ }
+
+ /**
+ * We need to customize the standard Plexus container with the plugin discovery listener which
+ * is what looks for the META-INF/maven/plugin.xml resources that enter the system when a Maven
+ * plugin is loaded.
+ *
+ * We also need to customize the Plexus container with a standard plugin discovery listener
+ * which is the MavenPluginCollector. When a Maven plugin is discovered the MavenPluginCollector
+ * collects the plugin descriptors which are found.
+ */
+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
+ {
+// containerConfiguration.addComponentDiscoverer( PluginManager.class );
+// containerConfiguration.addComponentDiscoveryListener( PluginManager.class );
+ }
+
+ protected MavenExecutionRequest createMavenExecutionRequest( File pom )
+ throws Exception
+ {
+ MavenExecutionRequest request = new DefaultMavenExecutionRequest()
+ .setPom( pom )
+ .setProjectPresent( true )
+ .setShowErrors( true )
+ .setPluginGroups( Arrays.asList( new String[] { "org.apache.maven.plugins" } ) )
+ .setLocalRepository( getLocalRepository() )
+ .setRemoteRepositories( getRemoteRepositories() )
+ .setPluginArtifactRepositories( getPluginArtifactRepositories() )
+ .setGoals( Arrays.asList( new String[] { "package" } ) )
+ .setProperties( new Properties() );
+
+ return request;
+ }
+
+ // layer the creation of a project builder configuration with a request, but this will need to be
+ // a Maven subclass because we don't want to couple maven to the project builder which we need to
+ // separate.
+ protected MavenSession createMavenSession( File pom )
+ throws Exception
+ {
+ return createMavenSession( pom, new Properties() );
+ }
+
+ protected MavenSession createMavenSession( File pom, Properties executionProperties )
+ throws Exception
+ {
+ MavenExecutionRequest request = createMavenExecutionRequest( pom );
+
+ ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest()
+ .setLocalRepository( request.getLocalRepository() )
+ .setRemoteRepositories( request.getRemoteRepositories() )
+ .setPluginArtifactRepositories( request.getPluginArtifactRepositories() )
+ .setExecutionProperties( executionProperties );
+
+ MavenProject project = null;
+
+ if ( pom != null )
+ {
+ project = projectBuilder.build( pom, configuration );
+ }
+ else
+ {
+ project = createStubMavenProject();
+ }
+
+ MavenSession session = new MavenSession( getContainer(), request, new DefaultMavenExecutionResult(), project );
+
+ return session;
+ }
+
+ protected MavenProject createStubMavenProject()
+ {
+ Model model = new Model();
+ model.setGroupId( "org.apache.maven.test" );
+ model.setArtifactId( "maven-test" );
+ model.setVersion( "1.0" );
+ return new MavenProject( model );
+ }
+
+ protected List<ArtifactRepository> getRemoteRepositories()
+ throws InvalidRepositoryException
+ {
+ return Arrays.asList( repositorySystem.createDefaultRemoteRepository() );
+ }
+
+ protected List<ArtifactRepository> getPluginArtifactRepositories()
+ throws InvalidRepositoryException
+ {
+ Repository itRepo = new Repository();
+ itRepo.setId( "maven.it" );
+ itRepo.setUrl( "http://repository.sonatype.org/content/repositories/maven.snapshots" );
+ return Arrays.asList( repositorySystem.createDefaultRemoteRepository(), repositorySystem.buildArtifactRepository( itRepo ) );
+ }
+
+ protected ArtifactRepository getLocalRepository()
+ throws InvalidRepositoryException
+ {
+ return repositorySystem.createDefaultLocalRepository();
+ }
+
+ protected class ProjectBuilder
+ {
+ private MavenProject project;
+
+ public ProjectBuilder( String groupId, String artifactId, String version )
+ {
+ Model model = new Model();
+ model.setModelVersion( "4.0.0" );
+ model.setGroupId( groupId );
+ model.setArtifactId( artifactId );
+ model.setVersion( version );
+ model.setBuild( new Build() );
+ project = new MavenProject( model );
+ }
+
+ public ProjectBuilder setGroupId( String groupId )
+ {
+ project.setGroupId( groupId );
+ return this;
+ }
+
+ public ProjectBuilder setArtifactId( String artifactId )
+ {
+ project.setArtifactId( artifactId );
+ return this;
+ }
+
+ public ProjectBuilder setVersion( String version )
+ {
+ project.setVersion( version );
+ return this;
+ }
+
+ // Dependencies
+ //
+ public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope )
+ {
+ return addDependency( groupId, artifactId, version, scope, (Exclusion)null );
+ }
+
+ public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, Exclusion exclusion )
+ {
+ return addDependency( groupId, artifactId, version, scope, null, exclusion );
+ }
+
+ public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath )
+ {
+ return addDependency( groupId, artifactId, version, scope, systemPath, null );
+ }
+
+ public ProjectBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath, Exclusion exclusion )
+ {
+ Dependency d = new Dependency();
+ d.setGroupId( groupId );
+ d.setArtifactId( artifactId );
+ d.setVersion( version );
+ d.setScope( scope );
+
+ if ( systemPath != null && scope.equals( Artifact.SCOPE_SYSTEM ) )
+ {
+ d.setSystemPath( systemPath );
+ }
+
+ if ( exclusion != null )
+ {
+ d.addExclusion( exclusion );
+ }
+
+ project.getDependencies().add( d );
+
+ return this;
+ }
+
+ // Plugins
+ //
+ public ProjectBuilder addPlugin( Plugin plugin )
+ {
+ project.getBuildPlugins().add( plugin );
+ return this;
+ }
+
+ public MavenProject get()
+ {
+ return project;
+ }
+ }
+
+ protected class PluginBuilder
+ {
+ private Plugin plugin;
+
+ public PluginBuilder( String groupId, String artifactId, String version )
+ {
+ plugin = new Plugin();
+ plugin.setGroupId( groupId );
+ plugin.setArtifactId( artifactId );
+ plugin.setVersion( version );
+ }
+
+ // Dependencies
+ //
+ public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, Exclusion exclusion )
+ {
+ return addDependency( groupId, artifactId, version, scope, exclusion );
+ }
+
+ public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath )
+ {
+ return addDependency( groupId, artifactId, version, scope, systemPath, null );
+ }
+
+ public PluginBuilder addDependency( String groupId, String artifactId, String version, String scope, String systemPath, Exclusion exclusion )
+ {
+ Dependency d = new Dependency();
+ d.setGroupId( groupId );
+ d.setArtifactId( artifactId );
+ d.setVersion( version );
+ d.setScope( scope );
+
+ if ( systemPath != null && scope.equals( Artifact.SCOPE_SYSTEM ) )
+ {
+ d.setSystemPath( systemPath );
+ }
+
+ if ( exclusion != null )
+ {
+ d.addExclusion( exclusion );
+ }
+
+ plugin.getDependencies().add( d );
+
+ return this;
+ }
+
+ public Plugin get()
+ {
+ return plugin;
+ }
+ }
+}
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderAligningBasedirTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderAligningBasedirTest.java?rev=796579&r1=796578&r2=796579&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderAligningBasedirTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderAligningBasedirTest.java Tue Jul 21 23:30:26 2009
@@ -20,19 +20,15 @@
*/
import java.io.File;
-import java.util.Arrays;
import java.util.List;
-import junit.framework.TestCase;
-
-import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
public class MavenEmbedderAligningBasedirTest
- extends TestCase
+ extends AbstractCoreMavenComponentTestCase
{
protected String basedir;
@@ -93,10 +89,14 @@
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( targetDirectory )
.setShowErrors( true )
.setGoals( Arrays.asList( new String[]{"package"} ) );
+ */
MavenExecutionResult result = mavenEmbedder.execute( request );
@@ -110,4 +110,11 @@
assertTrue( jar.exists() );
}
+
+ @Override
+ protected String getProjectsDirectory()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=796579&r1=796578&r2=796579&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 Tue Jul 21 23:30:26 2009
@@ -26,8 +26,6 @@
import java.util.Arrays;
import java.util.List;
-import junit.framework.TestCase;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -49,7 +47,7 @@
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class MavenEmbedderTest
- extends TestCase
+ extends AbstractCoreMavenComponentTestCase
{
protected String basedir;
@@ -110,10 +108,14 @@
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( targetDirectory )
.setShowErrors( true )
.setGoals( Arrays.asList( new String[]{"package"} ) );
+ */
MavenExecutionResult result = mavenEmbedder.execute( request );
@@ -137,10 +139,14 @@
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( targetDirectory )
.setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "install" } ) );
+ */
MavenExecutionResult result = mavenEmbedder.execute( request );
@@ -186,9 +192,13 @@
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setPom( new File( targetDirectory, "pom.xml" ) ).setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "package" } ) );
+ */
MavenExecutionResult result = mavenEmbedder.execute( request );
@@ -214,10 +224,14 @@
// Check with profile not active
+ MavenExecutionRequest requestWithoutProfile = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest requestWithoutProfile = new DefaultMavenExecutionRequest()
.setPom( new File( targetDirectory, "pom.xml" ) )
.setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "validate" } ) );
+ */
MavenExecutionResult r0 = mavenEmbedder.execute( requestWithoutProfile );
@@ -233,11 +247,16 @@
// Check with profile activated
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
+ request.addActiveProfile( "embedderProfile" );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setPom( new File( targetDirectory, "pom.xml" ) )
.setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "validate" } ) )
.addActiveProfile( "embedderProfile" );
+ */
MavenExecutionResult r1 = mavenEmbedder.execute( request );
@@ -282,9 +301,12 @@
mavenEmbedder.writeModel( writer, model );
writer.close();
- /* execute maven */
+ MavenExecutionRequest request = createMavenExecutionRequest( pom );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "package" } ) );
+ */
MavenExecutionResult result = mavenEmbedder.execute( request );
@@ -301,9 +323,13 @@
mavenEmbedder.writeModel( writer, model );
writer.close();
- /* execute Maven */
+ request = createMavenExecutionRequest( pom );
+
+ /*
request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
.setGoals( Arrays.asList( new String[] { "package" } ) );
+ */
+
result = mavenEmbedder.execute( request );
assertNoExceptions( result );
@@ -314,22 +340,6 @@
assertEquals( "2.4.3", p.getVersion() );
}
- // ----------------------------------------------------------------------
- // Repository
- // ----------------------------------------------------------------------
-
- /*
- public void testLocalRepositoryRetrieval()
- throws Exception
- {
- assertNotNull( mavenEmbedder.getLocalRepository().getBasedir() );
- }
- */
-
- // ----------------------------------------------------------------------
- // Model Reading
- // ----------------------------------------------------------------------
-
public void testModelReading()
throws Exception
{
@@ -520,4 +530,9 @@
return new File( basedir, "src/test/resources/" + name );
}
+ @Override
+ protected String getProjectsDirectory()
+ {
+ return null;
+ }
}
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java?rev=796579&r1=796578&r2=796579&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java Tue Jul 21 23:30:26 2009
@@ -20,20 +20,18 @@
*/
import java.io.File;
-import java.util.Arrays;
+import org.apache.maven.embedder.AbstractCoreMavenComponentTestCase;
import org.apache.maven.embedder.Configuration;
import org.apache.maven.embedder.ConfigurationValidationResult;
import org.apache.maven.embedder.MavenEmbedder;
import org.apache.maven.embedder.SimpleConfiguration;
-import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.PlexusTestCase;
public class MavenEmbedderCrappySettingsConfigurationTest
- extends PlexusTestCase
+ extends AbstractCoreMavenComponentTestCase
{
public void testEmbedderWillStillStartupWhenTheSettingsConfigurationIsCrap()
throws Exception
@@ -55,9 +53,13 @@
//assertNotNull( embedder.getLocalRepository().getBasedir() );
+ MavenExecutionRequest request = createMavenExecutionRequest( new File( projectDirectory, "pom.xml" ) );
+
+ /*
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( projectDirectory )
.setGoals( Arrays.asList( new String[]{"validate"} ) );
+ */
MavenExecutionResult result = embedder.execute( request );
@@ -78,4 +80,11 @@
// END SNIPPET: simple-embedder-example
}
+
+ @Override
+ protected String getProjectsDirectory()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
}