mirror of https://github.com/apache/maven.git
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 git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@796579 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d738d58150
commit
3d9dea68d9
|
@ -87,6 +87,7 @@ public abstract class AbstractCoreMavenComponentTestCase
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setPom( pom )
|
.setPom( pom )
|
||||||
.setProjectPresent( true )
|
.setProjectPresent( true )
|
||||||
|
.setShowErrors( true )
|
||||||
.setPluginGroups( Arrays.asList( new String[] { "org.apache.maven.plugins" } ) )
|
.setPluginGroups( Arrays.asList( new String[] { "org.apache.maven.plugins" } ) )
|
||||||
.setLocalRepository( getLocalRepository() )
|
.setLocalRepository( getLocalRepository() )
|
||||||
.setRemoteRepositories( getRemoteRepositories() )
|
.setRemoteRepositories( getRemoteRepositories() )
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,19 +20,15 @@ package org.apache.maven.embedder;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
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.MavenExecutionRequest;
|
||||||
import org.apache.maven.execution.MavenExecutionResult;
|
import org.apache.maven.execution.MavenExecutionResult;
|
||||||
import org.apache.maven.project.MavenProject;
|
import org.apache.maven.project.MavenProject;
|
||||||
import org.codehaus.plexus.util.FileUtils;
|
import org.codehaus.plexus.util.FileUtils;
|
||||||
|
|
||||||
public class MavenEmbedderAligningBasedirTest
|
public class MavenEmbedderAligningBasedirTest
|
||||||
extends TestCase
|
extends AbstractCoreMavenComponentTestCase
|
||||||
{
|
{
|
||||||
protected String basedir;
|
protected String basedir;
|
||||||
|
|
||||||
|
@ -93,10 +89,14 @@ public class MavenEmbedderAligningBasedirTest
|
||||||
|
|
||||||
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setBaseDirectory( targetDirectory )
|
.setBaseDirectory( targetDirectory )
|
||||||
.setShowErrors( true )
|
.setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[]{"package"} ) );
|
.setGoals( Arrays.asList( new String[]{"package"} ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = mavenEmbedder.execute( request );
|
MavenExecutionResult result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -110,4 +110,11 @@ public class MavenEmbedderAligningBasedirTest
|
||||||
|
|
||||||
assertTrue( jar.exists() );
|
assertTrue( jar.exists() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProjectsDirectory()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,6 @@ import java.io.Writer;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
import org.apache.maven.artifact.Artifact;
|
import org.apache.maven.artifact.Artifact;
|
||||||
import org.apache.maven.execution.DefaultMavenExecutionRequest;
|
import org.apache.maven.execution.DefaultMavenExecutionRequest;
|
||||||
import org.apache.maven.execution.MavenExecutionRequest;
|
import org.apache.maven.execution.MavenExecutionRequest;
|
||||||
|
@ -49,7 +47,7 @@ import org.codehaus.plexus.util.WriterFactory;
|
||||||
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
||||||
|
|
||||||
public class MavenEmbedderTest
|
public class MavenEmbedderTest
|
||||||
extends TestCase
|
extends AbstractCoreMavenComponentTestCase
|
||||||
{
|
{
|
||||||
protected String basedir;
|
protected String basedir;
|
||||||
|
|
||||||
|
@ -110,10 +108,14 @@ public class MavenEmbedderTest
|
||||||
|
|
||||||
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setBaseDirectory( targetDirectory )
|
.setBaseDirectory( targetDirectory )
|
||||||
.setShowErrors( true )
|
.setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[]{"package"} ) );
|
.setGoals( Arrays.asList( new String[]{"package"} ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = mavenEmbedder.execute( request );
|
MavenExecutionResult result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -137,10 +139,14 @@ public class MavenEmbedderTest
|
||||||
|
|
||||||
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setBaseDirectory( targetDirectory )
|
.setBaseDirectory( targetDirectory )
|
||||||
.setShowErrors( true )
|
.setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "install" } ) );
|
.setGoals( Arrays.asList( new String[] { "install" } ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = mavenEmbedder.execute( request );
|
MavenExecutionResult result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -186,9 +192,13 @@ public class MavenEmbedderTest
|
||||||
|
|
||||||
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setPom( new File( targetDirectory, "pom.xml" ) ).setShowErrors( true )
|
.setPom( new File( targetDirectory, "pom.xml" ) ).setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = mavenEmbedder.execute( request );
|
MavenExecutionResult result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -214,10 +224,14 @@ public class MavenEmbedderTest
|
||||||
|
|
||||||
// Check with profile not active
|
// Check with profile not active
|
||||||
|
|
||||||
|
MavenExecutionRequest requestWithoutProfile = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest requestWithoutProfile = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest requestWithoutProfile = new DefaultMavenExecutionRequest()
|
||||||
.setPom( new File( targetDirectory, "pom.xml" ) )
|
.setPom( new File( targetDirectory, "pom.xml" ) )
|
||||||
.setShowErrors( true )
|
.setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "validate" } ) );
|
.setGoals( Arrays.asList( new String[] { "validate" } ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult r0 = mavenEmbedder.execute( requestWithoutProfile );
|
MavenExecutionResult r0 = mavenEmbedder.execute( requestWithoutProfile );
|
||||||
|
|
||||||
|
@ -233,11 +247,16 @@ public class MavenEmbedderTest
|
||||||
|
|
||||||
// Check with profile activated
|
// Check with profile activated
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( targetDirectory, "pom.xml" ) );
|
||||||
|
request.addActiveProfile( "embedderProfile" );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setPom( new File( targetDirectory, "pom.xml" ) )
|
.setPom( new File( targetDirectory, "pom.xml" ) )
|
||||||
.setShowErrors( true )
|
.setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "validate" } ) )
|
.setGoals( Arrays.asList( new String[] { "validate" } ) )
|
||||||
.addActiveProfile( "embedderProfile" );
|
.addActiveProfile( "embedderProfile" );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult r1 = mavenEmbedder.execute( request );
|
MavenExecutionResult r1 = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -282,9 +301,12 @@ public class MavenEmbedderTest
|
||||||
mavenEmbedder.writeModel( writer, model );
|
mavenEmbedder.writeModel( writer, model );
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|
||||||
/* execute maven */
|
MavenExecutionRequest request = createMavenExecutionRequest( pom );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = mavenEmbedder.execute( request );
|
MavenExecutionResult result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
|
@ -301,9 +323,13 @@ public class MavenEmbedderTest
|
||||||
mavenEmbedder.writeModel( writer, model );
|
mavenEmbedder.writeModel( writer, model );
|
||||||
writer.close();
|
writer.close();
|
||||||
|
|
||||||
/* execute Maven */
|
request = createMavenExecutionRequest( pom );
|
||||||
|
|
||||||
|
/*
|
||||||
request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
|
request = new DefaultMavenExecutionRequest().setPom( pom ).setShowErrors( true )
|
||||||
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
.setGoals( Arrays.asList( new String[] { "package" } ) );
|
||||||
|
*/
|
||||||
|
|
||||||
result = mavenEmbedder.execute( request );
|
result = mavenEmbedder.execute( request );
|
||||||
|
|
||||||
assertNoExceptions( result );
|
assertNoExceptions( result );
|
||||||
|
@ -314,22 +340,6 @@ public class MavenEmbedderTest
|
||||||
assertEquals( "2.4.3", p.getVersion() );
|
assertEquals( "2.4.3", p.getVersion() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
// Repository
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
|
|
||||||
/*
|
|
||||||
public void testLocalRepositoryRetrieval()
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
assertNotNull( mavenEmbedder.getLocalRepository().getBasedir() );
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
// Model Reading
|
|
||||||
// ----------------------------------------------------------------------
|
|
||||||
|
|
||||||
public void testModelReading()
|
public void testModelReading()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
@ -520,4 +530,9 @@ public class MavenEmbedderTest
|
||||||
return new File( basedir, "src/test/resources/" + name );
|
return new File( basedir, "src/test/resources/" + name );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProjectsDirectory()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,133 +0,0 @@
|
||||||
package org.apache.maven.embedder.execution;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.apache.maven.embedder.AbstractEmbedderTestCase;
|
|
||||||
import org.apache.maven.execution.DefaultMavenExecutionRequest;
|
|
||||||
import org.apache.maven.execution.MavenExecutionRequest;
|
|
||||||
import org.apache.maven.execution.MavenExecutionResult;
|
|
||||||
import org.codehaus.plexus.util.FileUtils;
|
|
||||||
|
|
||||||
public abstract class AbstractEmbedderExecutionTestCase
|
|
||||||
extends AbstractEmbedderTestCase
|
|
||||||
{
|
|
||||||
protected File runWithProject( String goal )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
return runWithProject( Collections.singletonList( goal ), null );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected File runWithProject( String goal,
|
|
||||||
Properties properties )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
return runWithProject( Collections.singletonList( goal ), properties );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected File runWithProject( String[] goals )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
return runWithProject( Arrays.asList( goals ), null );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected File runWithProject( String[] goals,
|
|
||||||
Properties properties )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
return runWithProject( Arrays.asList( goals ), properties );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected File runWithProject( List goals )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
return runWithProject( goals, null );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected File runWithProject( List goals,
|
|
||||||
Properties properties )
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
if ( request.getBaseDirectory() == null || !new File( request.getBaseDirectory() ).exists() )
|
|
||||||
{
|
|
||||||
throw new IllegalStateException( "You must specify a valid base directory in your execution request for this test." );
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
File testDirectory = new File( getBasedir(), "src/test/embedder-test-project" );
|
|
||||||
|
|
||||||
File targetDirectory = new File( getBasedir(), "target/" + getId() );
|
|
||||||
|
|
||||||
FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
|
|
||||||
|
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
|
||||||
.setShowErrors( true )
|
|
||||||
//.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG )
|
|
||||||
.setBaseDirectory( targetDirectory )
|
|
||||||
.setGoals( goals );
|
|
||||||
|
|
||||||
System.out.println( "properties = " + properties );
|
|
||||||
|
|
||||||
if ( properties != null )
|
|
||||||
{
|
|
||||||
request.setProperties( properties );
|
|
||||||
}
|
|
||||||
|
|
||||||
MavenExecutionResult result = maven.execute( request );
|
|
||||||
|
|
||||||
assertNoExceptions( result );
|
|
||||||
|
|
||||||
return targetDirectory;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract String getId();
|
|
||||||
|
|
||||||
protected void assertNoExceptions( MavenExecutionResult result )
|
|
||||||
{
|
|
||||||
if ( !result.hasExceptions() )
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( Iterator i = result.getExceptions().iterator(); i.hasNext(); )
|
|
||||||
{
|
|
||||||
Exception exception = (Exception) i.next();
|
|
||||||
|
|
||||||
exception.printStackTrace( System.err );
|
|
||||||
}
|
|
||||||
|
|
||||||
fail( "Encountered Exceptions in MavenExecutionResult during " + getName() );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void assertFileExists( File file )
|
|
||||||
{
|
|
||||||
if ( !file.exists() )
|
|
||||||
{
|
|
||||||
fail( "The specified file '" + file + "' does not exist." );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -20,20 +20,18 @@ package org.apache.maven.embedder.validation;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.File;
|
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.Configuration;
|
||||||
import org.apache.maven.embedder.ConfigurationValidationResult;
|
import org.apache.maven.embedder.ConfigurationValidationResult;
|
||||||
import org.apache.maven.embedder.MavenEmbedder;
|
import org.apache.maven.embedder.MavenEmbedder;
|
||||||
import org.apache.maven.embedder.SimpleConfiguration;
|
import org.apache.maven.embedder.SimpleConfiguration;
|
||||||
import org.apache.maven.execution.DefaultMavenExecutionRequest;
|
|
||||||
import org.apache.maven.execution.MavenExecutionRequest;
|
import org.apache.maven.execution.MavenExecutionRequest;
|
||||||
import org.apache.maven.execution.MavenExecutionResult;
|
import org.apache.maven.execution.MavenExecutionResult;
|
||||||
import org.apache.maven.project.MavenProject;
|
import org.apache.maven.project.MavenProject;
|
||||||
import org.codehaus.plexus.PlexusTestCase;
|
|
||||||
|
|
||||||
public class MavenEmbedderCrappySettingsConfigurationTest
|
public class MavenEmbedderCrappySettingsConfigurationTest
|
||||||
extends PlexusTestCase
|
extends AbstractCoreMavenComponentTestCase
|
||||||
{
|
{
|
||||||
public void testEmbedderWillStillStartupWhenTheSettingsConfigurationIsCrap()
|
public void testEmbedderWillStillStartupWhenTheSettingsConfigurationIsCrap()
|
||||||
throws Exception
|
throws Exception
|
||||||
|
@ -55,9 +53,13 @@ public class MavenEmbedderCrappySettingsConfigurationTest
|
||||||
|
|
||||||
//assertNotNull( embedder.getLocalRepository().getBasedir() );
|
//assertNotNull( embedder.getLocalRepository().getBasedir() );
|
||||||
|
|
||||||
|
MavenExecutionRequest request = createMavenExecutionRequest( new File( projectDirectory, "pom.xml" ) );
|
||||||
|
|
||||||
|
/*
|
||||||
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
|
||||||
.setBaseDirectory( projectDirectory )
|
.setBaseDirectory( projectDirectory )
|
||||||
.setGoals( Arrays.asList( new String[]{"validate"} ) );
|
.setGoals( Arrays.asList( new String[]{"validate"} ) );
|
||||||
|
*/
|
||||||
|
|
||||||
MavenExecutionResult result = embedder.execute( request );
|
MavenExecutionResult result = embedder.execute( request );
|
||||||
|
|
||||||
|
@ -78,4 +80,11 @@ public class MavenEmbedderCrappySettingsConfigurationTest
|
||||||
|
|
||||||
// END SNIPPET: simple-embedder-example
|
// END SNIPPET: simple-embedder-example
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getProjectsDirectory()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue