mirror of https://github.com/apache/maven.git
o Restored support for IT execution using embedded Maven
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-3/trunk@830178 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ae7f205ae0
commit
fca0b52ab4
|
@ -79,6 +79,11 @@ public class MavenCli
|
||||||
|
|
||||||
public static final File DEFAULT_USER_TOOLCHAINS_FILE = new File( userMavenConfigurationHome, "toolchains.xml" );
|
public static final File DEFAULT_USER_TOOLCHAINS_FILE = new File( userMavenConfigurationHome, "toolchains.xml" );
|
||||||
|
|
||||||
|
private ClassWorld classWorld;
|
||||||
|
|
||||||
|
// Per-instance container supports fast embedded execution of core ITs
|
||||||
|
private DefaultPlexusContainer container;
|
||||||
|
|
||||||
private PrintStreamLogger logger;
|
private PrintStreamLogger logger;
|
||||||
|
|
||||||
private ModelProcessor modelProcessor;
|
private ModelProcessor modelProcessor;
|
||||||
|
@ -91,6 +96,17 @@ public class MavenCli
|
||||||
|
|
||||||
private DefaultSecDispatcher dispatcher;
|
private DefaultSecDispatcher dispatcher;
|
||||||
|
|
||||||
|
public MavenCli()
|
||||||
|
{
|
||||||
|
this( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
// This supports painless invocation by the Verifier during embedded execution of the core ITs
|
||||||
|
public MavenCli( ClassWorld classWorld )
|
||||||
|
{
|
||||||
|
this.classWorld = classWorld;
|
||||||
|
}
|
||||||
|
|
||||||
public static void main( String[] args )
|
public static void main( String[] args )
|
||||||
{
|
{
|
||||||
int result = main( args, null );
|
int result = main( args, null );
|
||||||
|
@ -112,6 +128,17 @@ public static int doMain( String[] args, ClassWorld classWorld )
|
||||||
return cli.doMain( new CliRequest( args, classWorld ) );
|
return cli.doMain( new CliRequest( args, classWorld ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This supports painless invocation by the Verifier during embedded execution of the core ITs
|
||||||
|
public int doMain( String[] args, String workingDirectory, PrintStream stdout, PrintStream stderr )
|
||||||
|
{
|
||||||
|
CliRequest cliRequest = new CliRequest( args, classWorld );
|
||||||
|
cliRequest.workingDirectory = workingDirectory;
|
||||||
|
cliRequest.stdout = stdout;
|
||||||
|
cliRequest.stderr = stderr;
|
||||||
|
|
||||||
|
return doMain( cliRequest );
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: need to externalize CliRequest
|
// TODO: need to externalize CliRequest
|
||||||
public int doMain( CliRequest cliRequest )
|
public int doMain( CliRequest cliRequest )
|
||||||
{
|
{
|
||||||
|
@ -158,7 +185,14 @@ private void initialize( CliRequest cliRequest )
|
||||||
cliRequest.stderr = System.err;
|
cliRequest.stderr = System.err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( logger == null )
|
||||||
|
{
|
||||||
logger = new PrintStreamLogger( cliRequest.stdout );
|
logger = new PrintStreamLogger( cliRequest.stdout );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logger.setStream( cliRequest.stdout );
|
||||||
|
}
|
||||||
|
|
||||||
if ( cliRequest.workingDirectory == null )
|
if ( cliRequest.workingDirectory == null )
|
||||||
{
|
{
|
||||||
|
@ -295,11 +329,15 @@ private void container( CliRequest cliRequest )
|
||||||
cliRequest.classWorld = new ClassWorld( "plexus.core", Thread.currentThread().getContextClassLoader() );
|
cliRequest.classWorld = new ClassWorld( "plexus.core", Thread.currentThread().getContextClassLoader() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DefaultPlexusContainer container = this.container;
|
||||||
|
|
||||||
|
if ( container == null )
|
||||||
|
{
|
||||||
ContainerConfiguration cc = new DefaultContainerConfiguration()
|
ContainerConfiguration cc = new DefaultContainerConfiguration()
|
||||||
.setClassWorld( cliRequest.classWorld )
|
.setClassWorld( cliRequest.classWorld )
|
||||||
.setName( "maven" );
|
.setName( "maven" );
|
||||||
|
|
||||||
DefaultPlexusContainer container = new DefaultPlexusContainer( cc );
|
container = new DefaultPlexusContainer( cc );
|
||||||
|
|
||||||
container.setLoggerManager( new MavenLoggerManager( logger ) );
|
container.setLoggerManager( new MavenLoggerManager( logger ) );
|
||||||
|
|
||||||
|
@ -307,6 +345,12 @@ private void container( CliRequest cliRequest )
|
||||||
|
|
||||||
customizeContainer( container );
|
customizeContainer( container );
|
||||||
|
|
||||||
|
if ( cliRequest.classWorld == classWorld )
|
||||||
|
{
|
||||||
|
this.container = container;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
maven = container.lookup( Maven.class );
|
maven = container.lookup( Maven.class );
|
||||||
|
|
||||||
executionRequestPopulator = container.lookup( MavenExecutionRequestPopulator.class );
|
executionRequestPopulator = container.lookup( MavenExecutionRequestPopulator.class );
|
||||||
|
|
Loading…
Reference in New Issue