o aligning the plugin parameter expression evaluator with the new test code

git-svn-id: https://svn.apache.org/repos/asf/maven/components/branches/MNG-2766@760975 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2009-04-01 17:32:18 +00:00
parent e3061a4bda
commit f0d253b643
8 changed files with 122 additions and 216 deletions

View File

@ -44,7 +44,6 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.RuntimeInformation; import org.apache.maven.execution.RuntimeInformation;
import org.apache.maven.model.Dependency; import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin; import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution; import org.apache.maven.model.PluginExecution;
import org.apache.maven.monitor.logging.DefaultLog; import org.apache.maven.monitor.logging.DefaultLog;
@ -56,7 +55,6 @@ import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.repository.RepositorySystem; import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.VersionNotFoundException; import org.apache.maven.repository.VersionNotFoundException;
import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.PlexusContainer;
@ -91,8 +89,8 @@ public class DefaultPluginManager
@Requirement @Requirement
protected ArtifactFilterManager coreArtifactFilterManager; protected ArtifactFilterManager coreArtifactFilterManager;
@Requirement //@Requirement
protected PathTranslator pathTranslator; //protected PathTranslator pathTranslator;
@Requirement @Requirement
protected MavenPluginCollector pluginCollector; protected MavenPluginCollector pluginCollector;
@ -351,16 +349,18 @@ public class DefaultPluginManager
logger.warn( "Mojo: " + mojoDescriptor.getGoal() + " is deprecated.\n" + mojoDescriptor.getDeprecated() ); logger.warn( "Mojo: " + mojoDescriptor.getGoal() + " is deprecated.\n" + mojoDescriptor.getDeprecated() );
} }
/*
Model model = project.getModel(); Model model = project.getModel();
pathTranslator.alignToBaseDirectory( model, project.getBasedir() ); pathTranslator.alignToBaseDirectory( model, project.getBasedir() );
project.setBuild( model.getBuild() ); project.setBuild( model.getBuild() );
*/
if ( mojoDescriptor.isDependencyResolutionRequired() != null ) if ( mojoDescriptor.isDependencyResolutionRequired() != null )
{ {
try try
{ {
// mojoDescriptor.isDependencyResolutionRequired() is actually the scope of the dependency resolution required, not a boolean ... yah. // mojoDescriptor.isDependencyResolutionRequired() is actually the scope of the dependency resolution required, not a boolean ... yah.
downloadDependencies( session, mojoDescriptor.isDependencyResolutionRequired() ); downloadProjectDependencies( session, mojoDescriptor.isDependencyResolutionRequired() );
} }
catch ( ArtifactResolutionException e ) catch ( ArtifactResolutionException e )
{ {
@ -550,11 +550,7 @@ public class DefaultPluginManager
PlexusConfiguration mergedConfiguration = mergeMojoConfiguration( pomConfiguration, mojoDescriptor ); PlexusConfiguration mergedConfiguration = mergeMojoConfiguration( pomConfiguration, mojoDescriptor );
// TODO: plexus changes to make this more like the component descriptor so this can be used instead ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, mojoExecution );
// PlexusConfiguration mergedConfiguration = mergeConfiguration( pomConfiguration,
// mojoDescriptor.getConfiguration() );
ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, mojoExecution, pathTranslator, logger, session.getExecutionProperties() );
PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration, mojoDescriptor ); PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration, mojoDescriptor );
@ -1092,17 +1088,54 @@ public class DefaultPluginManager
// Artifact downloading // Artifact downloading
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
private void downloadDependencies( MavenSession session, String scope ) //TODO: This needs to be moved out of here, and there needs to be some interplay between the lifecycle executor and the plugin manager.
private void downloadProjectDependencies( MavenSession session, String scope )
throws ArtifactResolutionException, ArtifactNotFoundException, InvalidDependencyVersionException throws ArtifactResolutionException, ArtifactNotFoundException, InvalidDependencyVersionException
{ {
resolveTransitiveDependencies( session, scope ); MavenProject project = session.getCurrentProject();
// TODO: such a call in MavenMetadataSource too - packaging not really the intention of type
Artifact artifact = repositorySystem.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), null, project.getPackaging() );
// TODO: we don't need to resolve over and over again, as long as we are sure that the parameters are the same
// check this with yourkit as a hot spot.
// Don't recreate if already created - for effeciency, and because clover plugin adds to it
if ( project.getDependencyArtifacts() == null )
{
// NOTE: Don't worry about covering this case with the error-reporter bindings...it's already handled by the project error reporter.
try
{
project.setDependencyArtifacts( repositorySystem.createArtifacts( project.getDependencies(), null, null, project ) );
}
catch ( VersionNotFoundException e )
{
throw new InvalidDependencyVersionException( e.getProjectId(), e.getDependency(), e.getPomFile(), e.getCauseException() );
}
}
ArtifactFilter filter = new ScopeArtifactFilter( scope );
ArtifactResolutionRequest request = new ArtifactResolutionRequest()
.setArtifact( artifact )
.setResolveRoot( false )
.setArtifactDependencies( project.getDependencyArtifacts() )
.setLocalRepository( session.getLocalRepository() )
.setRemoteRepostories( project.getRemoteArtifactRepositories() )
.setManagedVersionMap( project.getManagedVersionMap() )
.setFilter( filter );
ArtifactResolutionResult result = repositorySystem.resolve( request );
resolutionErrorHandler.throwErrors( request, result );
project.setArtifacts( result.getArtifacts() );
ArtifactRepository localRepository = session.getLocalRepository(); ArtifactRepository localRepository = session.getLocalRepository();
List<ArtifactRepository> remoteArtifactRepositories = session.getCurrentProject().getRemoteArtifactRepositories(); List<ArtifactRepository> remoteArtifactRepositories = session.getCurrentProject().getRemoteArtifactRepositories();
for ( Artifact artifact : session.getCurrentProject().getArtifacts() ) for ( Artifact projectArtifact : session.getCurrentProject().getArtifacts() )
{ {
repositorySystem.resolve( new ArtifactResolutionRequest( artifact, localRepository, remoteArtifactRepositories ) ); repositorySystem.resolve( new ArtifactResolutionRequest( projectArtifact, localRepository, remoteArtifactRepositories ) );
} }
} }

View File

@ -26,46 +26,32 @@ import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
import org.apache.maven.project.path.PathTranslator;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor; import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
/** /**
* @author Jason van Zyl * @author Jason van Zyl
* @version $Id$
* @todo belong in MavenSession, so it only gets created once?
*/ */
public class PluginParameterExpressionEvaluator public class PluginParameterExpressionEvaluator
implements ExpressionEvaluator implements ExpressionEvaluator
{ {
private final PathTranslator pathTranslator; private MavenSession session;
private final MavenSession context; private MojoExecution mojoExecution;
private final Logger logger; private MavenProject project;
private final MojoExecution mojoExecution; private String basedir;
private final MavenProject project; private Properties properties;
private final String basedir; public PluginParameterExpressionEvaluator( MavenSession session, MojoExecution mojoExecution )
private final Properties properties;
public PluginParameterExpressionEvaluator( MavenSession context,
MojoExecution mojoExecution,
PathTranslator pathTranslator,
Logger logger,
Properties properties )
{ {
this.context = context; this.session = session;
this.mojoExecution = mojoExecution; this.mojoExecution = mojoExecution;
this.pathTranslator = pathTranslator; this.properties = session.getExecutionProperties();
this.logger = logger; project = session.getCurrentProject();
this.properties = properties;
project = context.getCurrentProject();
String basedir = null; String basedir = null;
@ -80,50 +66,9 @@ public class PluginParameterExpressionEvaluator
} }
} }
if ( ( basedir == null ) && ( context != null ) ) if ( ( basedir == null ) && ( session != null ) )
{ {
basedir = context.getExecutionRootDirectory(); basedir = session.getExecutionRootDirectory();
}
if ( basedir == null )
{
basedir = System.getProperty( "user.dir" );
}
this.basedir = basedir;
}
/**
* @deprecated Use {@link PluginParameterExpressionEvaluator#PluginParameterExpressionEvaluator(MavenSession, MojoExecution, PathTranslator, LifecycleExecutionContext, Logger, Properties)}
* instead.
*/
@Deprecated
public PluginParameterExpressionEvaluator( MavenSession context,
MojoExecution mojoExecution,
PathTranslator pathTranslator,
Logger logger,
MavenProject project,
Properties properties )
{
this.context = context;
this.mojoExecution = mojoExecution;
this.pathTranslator = pathTranslator;
this.logger = logger;
this.properties = properties;
this.project = project;
String basedir = null;
if ( project != null )
{
File projectFile = project.getFile();
// this should always be the case for non-super POM instances...
if ( projectFile != null )
{
basedir = projectFile.getParentFile().getAbsolutePath();
}
} }
if ( basedir == null ) if ( basedir == null )
@ -193,15 +138,15 @@ public class PluginParameterExpressionEvaluator
if ( "localRepository".equals( expression ) ) if ( "localRepository".equals( expression ) )
{ {
value = context.getLocalRepository(); value = session.getLocalRepository();
} }
else if ( "session".equals( expression ) ) else if ( "session".equals( expression ) )
{ {
value = context; value = session;
} }
else if ( "reactorProjects".equals( expression ) ) else if ( "reactorProjects".equals( expression ) )
{ {
value = context.getSortedProjects(); value = session.getSortedProjects();
} }
else if ("mojoExecution".equals(expression)) else if ("mojoExecution".equals(expression))
{ {
@ -299,7 +244,7 @@ public class PluginParameterExpressionEvaluator
} }
else if ( "settings".equals( expression ) ) else if ( "settings".equals( expression ) )
{ {
value = context.getSettings(); value = session.getSettings();
} }
else if ( expression.startsWith( "settings" ) ) else if ( expression.startsWith( "settings" ) )
{ {
@ -310,12 +255,12 @@ public class PluginParameterExpressionEvaluator
if ( pathSeparator > 0 ) if ( pathSeparator > 0 )
{ {
String pathExpression = expression.substring( 1, pathSeparator ); String pathExpression = expression.substring( 1, pathSeparator );
value = ReflectionValueExtractor.evaluate( pathExpression, context.getSettings() ); value = ReflectionValueExtractor.evaluate( pathExpression, session.getSettings() );
value = value + expression.substring( pathSeparator ); value = value + expression.substring( pathSeparator );
} }
else else
{ {
value = ReflectionValueExtractor.evaluate( expression.substring( 1 ), context.getSettings() ); value = ReflectionValueExtractor.evaluate( expression.substring( 1 ), session.getSettings() );
} }
} }
catch ( Exception e ) catch ( Exception e )
@ -337,10 +282,6 @@ public class PluginParameterExpressionEvaluator
{ {
value = basedir + expression.substring( pathSeparator ); value = basedir + expression.substring( pathSeparator );
} }
else
{
logger.error( "Got expression '" + expression + "' that was not recognised" );
}
} }
if ( value == null ) if ( value == null )
@ -399,22 +340,6 @@ public class PluginParameterExpressionEvaluator
public File alignToBaseDirectory( File file ) public File alignToBaseDirectory( File file )
{ {
File basedir; return file;
if ( ( project != null ) && ( project.getFile() != null ) )
{
basedir = project.getFile().getParentFile();
} }
else if ( ( context != null ) && ( context.getExecutionRootDirectory() != null ) )
{
basedir = new File( context.getExecutionRootDirectory() ).getAbsoluteFile();
}
else
{
basedir = new File( "." ).getAbsoluteFile().getParentFile();
}
return new File( pathTranslator.alignToBaseDirectory( file.getPath(), basedir ) );
}
} }

View File

@ -8,6 +8,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.execution.DefaultMavenExecutionRequest; import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Model;
import org.apache.maven.plugin.MavenPluginCollector; import org.apache.maven.plugin.MavenPluginCollector;
import org.apache.maven.plugin.MavenPluginDiscoverer; import org.apache.maven.plugin.MavenPluginDiscoverer;
import org.apache.maven.project.DefaultProjectBuilderConfiguration; import org.apache.maven.project.DefaultProjectBuilderConfiguration;
@ -20,7 +21,7 @@ import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.FileUtils;
public abstract class AbstractCoreMavenComponentTest public abstract class AbstractCoreMavenComponentTestCase
extends PlexusTestCase extends PlexusTestCase
{ {
@Requirement @Requirement
@ -96,11 +97,28 @@ public abstract class AbstractCoreMavenComponentTest
.setLocalRepository( request.getLocalRepository() ) .setLocalRepository( request.getLocalRepository() )
.setRemoteRepositories( request.getRemoteRepositories() ); .setRemoteRepositories( request.getRemoteRepositories() );
// We just need to use the configuration, and get the POM from that. MavenProject project = null;
MavenProject project = projectBuilder.build( pom, configuration );
if ( pom != null )
{
project = projectBuilder.build( pom, configuration );
}
else
{
project = createStubMavenProject();
}
MavenSession session = new MavenSession( getContainer(), request, project ); MavenSession session = new MavenSession( getContainer(), request, project );
return session; 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 );
}
} }

View File

@ -7,7 +7,7 @@ import org.apache.maven.execution.MavenExecutionResult;
import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.component.annotations.Requirement;
public class MavenTest public class MavenTest
extends AbstractCoreMavenComponentTest extends AbstractCoreMavenComponentTestCase
{ {
@Requirement @Requirement
private Maven maven; private Maven maven;

View File

@ -3,7 +3,7 @@ package org.apache.maven.lifecycle;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import org.apache.maven.AbstractCoreMavenComponentTest; import org.apache.maven.AbstractCoreMavenComponentTestCase;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.PluginManager; import org.apache.maven.plugin.PluginManager;
@ -12,7 +12,7 @@ import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.component.annotations.Requirement;
public class LifecycleExecutorTest public class LifecycleExecutorTest
extends AbstractCoreMavenComponentTest extends AbstractCoreMavenComponentTestCase
{ {
@Requirement @Requirement
private DefaultLifecycleExecutor lifecycleExecutor; private DefaultLifecycleExecutor lifecycleExecutor;

View File

@ -1,6 +1,6 @@
package org.apache.maven.plugin; package org.apache.maven.plugin;
import org.apache.maven.AbstractCoreMavenComponentTest; import org.apache.maven.AbstractCoreMavenComponentTestCase;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Plugin; import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
@ -8,7 +8,7 @@ import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.component.annotations.Requirement;
public class PluginManagerTest public class PluginManagerTest
extends AbstractCoreMavenComponentTest extends AbstractCoreMavenComponentTestCase
{ {
@Requirement @Requirement
private PluginManager pluginManager; private PluginManager pluginManager;
@ -153,6 +153,8 @@ public class PluginManagerTest
// test interpolation of basedir values in mojo configuration // test interpolation of basedir values in mojo configuration
// test a build where projects use different versions of the same plugin
// ----------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------
// Testing help // Testing help
// ----------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------

View File

@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import org.apache.maven.AbstractCoreMavenComponentTestCase;
import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.factory.ArtifactFactory;
@ -38,22 +39,15 @@ import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DuplicateProjectException; import org.apache.maven.execution.DuplicateProjectException;
import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
import org.apache.maven.model.Build; import org.apache.maven.model.Build;
import org.apache.maven.model.Model; import org.apache.maven.model.Model;
import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
import org.apache.maven.project.path.PathTranslator;
import org.codehaus.plexus.MutablePlexusContainer; import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.codehaus.plexus.util.dag.CycleDetectedException; import org.codehaus.plexus.util.dag.CycleDetectedException;
import org.easymock.MockControl;
/** /**
@ -62,33 +56,27 @@ import org.easymock.MockControl;
* 06:06:21 jdcasey Exp $ * 06:06:21 jdcasey Exp $
*/ */
public class PluginParameterExpressionEvaluatorTest public class PluginParameterExpressionEvaluatorTest
extends PlexusTestCase extends AbstractCoreMavenComponentTestCase
{ {
private static final String FS = System.getProperty( "file.separator" ); private static final String FS = System.getProperty( "file.separator" );
private ArtifactFactory factory; private ArtifactFactory factory;
private PathTranslator pathTranslator;
public void setUp() public void setUp()
throws Exception throws Exception
{ {
super.setUp(); super.setUp();
factory = lookup( ArtifactFactory.class ); factory = lookup( ArtifactFactory.class );
pathTranslator = lookup( PathTranslator.class );
} }
public void testPluginDescriptorExpressionReference() public void testPluginDescriptorExpressionReference()
throws ExpressionEvaluationException, CycleDetectedException, DuplicateProjectException throws Exception
{ {
MojoExecution exec = newMojoExecution(); MojoExecution exec = newMojoExecution();
MavenSession session = newMavenSession(); MavenSession session = newMavenSession();
Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "test" ); Object result = new PluginParameterExpressionEvaluator( session, exec ).evaluate( "${plugin}" );
Object result = new PluginParameterExpressionEvaluator( session, exec, pathTranslator,
logger, new Properties() ).evaluate( "${plugin}" );
System.out.println( "Result: " + result ); System.out.println( "Result: " + result );
@ -98,7 +86,7 @@ public class PluginParameterExpressionEvaluatorTest
} }
public void testPluginArtifactsExpressionReference() public void testPluginArtifactsExpressionReference()
throws ExpressionEvaluationException, CycleDetectedException, DuplicateProjectException throws Exception
{ {
MojoExecution exec = newMojoExecution(); MojoExecution exec = newMojoExecution();
@ -116,10 +104,7 @@ public class PluginParameterExpressionEvaluatorTest
MavenSession session = newMavenSession(); MavenSession session = newMavenSession();
Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "test" ); List depResults = (List) new PluginParameterExpressionEvaluator( session, exec ).evaluate( "${plugin.artifacts}" );
List depResults = (List) new PluginParameterExpressionEvaluator( session, exec, pathTranslator,
logger, new Properties() ).evaluate( "${plugin.artifacts}" );
System.out.println( "Result: " + depResults ); System.out.println( "Result: " + depResults );
@ -129,7 +114,7 @@ public class PluginParameterExpressionEvaluatorTest
} }
public void testPluginArtifactMapExpressionReference() public void testPluginArtifactMapExpressionReference()
throws ExpressionEvaluationException, CycleDetectedException, DuplicateProjectException throws Exception
{ {
MojoExecution exec = newMojoExecution(); MojoExecution exec = newMojoExecution();
@ -147,11 +132,7 @@ public class PluginParameterExpressionEvaluatorTest
MavenSession session = newMavenSession(); MavenSession session = newMavenSession();
Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "test" ); Map depResults = (Map) new PluginParameterExpressionEvaluator( session, exec ).evaluate( "${plugin.artifactMap}" );
Map depResults = (Map) new PluginParameterExpressionEvaluator( session, exec,
pathTranslator, logger,
new Properties() ).evaluate( "${plugin.artifactMap}" );
System.out.println( "Result: " + depResults ); System.out.println( "Result: " + depResults );
@ -163,16 +144,13 @@ public class PluginParameterExpressionEvaluatorTest
} }
public void testPluginArtifactIdExpressionReference() public void testPluginArtifactIdExpressionReference()
throws ExpressionEvaluationException, CycleDetectedException, DuplicateProjectException throws Exception
{ {
MojoExecution exec = newMojoExecution(); MojoExecution exec = newMojoExecution();
MavenSession session = newMavenSession(); MavenSession session = newMavenSession();
Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "test" ); Object result = new PluginParameterExpressionEvaluator( session, exec ).evaluate( "${plugin.artifactId}" );
Object result = new PluginParameterExpressionEvaluator( session, exec, pathTranslator,
logger, new Properties() ).evaluate( "${plugin.artifactId}" );
System.out.println( "Result: " + result ); System.out.println( "Result: " + result );
@ -339,11 +317,11 @@ public class PluginParameterExpressionEvaluatorTest
assertEquals( "value", value ); assertEquals( "value", value );
} }
private static MavenSession createSession( PlexusContainer container, ArtifactRepository repo ) private static MavenSession createSession( PlexusContainer container, ArtifactRepository repo, Properties properties )
throws CycleDetectedException, DuplicateProjectException throws CycleDetectedException, DuplicateProjectException
{ {
MavenExecutionRequest request = new DefaultMavenExecutionRequest() MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setProperties( new Properties() ) .setProperties( properties )
.setGoals( Collections.EMPTY_LIST ) .setGoals( Collections.EMPTY_LIST )
.setBaseDirectory( new File( "" ) ) .setBaseDirectory( new File( "" ) )
.setLocalRepository( repo ); .setLocalRepository( repo );
@ -416,7 +394,8 @@ public class PluginParameterExpressionEvaluatorTest
ArtifactRepository repo = new DefaultArtifactRepository( "local", "target/repo", repoLayout ); ArtifactRepository repo = new DefaultArtifactRepository( "local", "target/repo", repoLayout );
MutablePlexusContainer container = (MutablePlexusContainer) getContainer(); MutablePlexusContainer container = (MutablePlexusContainer) getContainer();
MavenSession session = createSession( container, repo ); MavenSession session = createSession( container, repo, executionProperties );
session.setCurrentProject( project );
MojoDescriptor mojo = new MojoDescriptor(); MojoDescriptor mojo = new MojoDescriptor();
mojo.setPluginDescriptor( pluginDescriptor ); mojo.setPluginDescriptor( pluginDescriptor );
@ -424,7 +403,7 @@ public class PluginParameterExpressionEvaluatorTest
MojoExecution mojoExecution = new MojoExecution( mojo ); MojoExecution mojoExecution = new MojoExecution( mojo );
return new PluginParameterExpressionEvaluator( session, mojoExecution, null, container.getLogger(), project, executionProperties ); return new PluginParameterExpressionEvaluator( session, mojoExecution );
} }
protected Artifact createArtifact( String groupId, protected Artifact createArtifact( String groupId,
@ -454,19 +433,15 @@ public class PluginParameterExpressionEvaluatorTest
} }
private MavenSession newMavenSession() private MavenSession newMavenSession()
throws CycleDetectedException, DuplicateProjectException throws Exception
{ {
Model model = new Model(); return createMavenSession( null );
model.setGroupId( "group" ); }
model.setArtifactId( "artifact" );
model.setVersion( "1" );
MavenProject project = new MavenProject( model ); @Override
ReactorManager rm = new ReactorManager( Collections.singletonList( project ), ReactorManager.FAIL_FAST ); protected String getProjectsDirectory()
MockControl mockMavenExecutionRequest = MockControl.createControl( MavenExecutionRequest.class ); {
MavenExecutionRequest req = (MavenExecutionRequest) mockMavenExecutionRequest.getMock(); // TODO Auto-generated method stub
MavenSession session = new MavenSession( req ); return null;
return session;
} }
} }

View File

@ -1,47 +0,0 @@
<!--
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.
-->
<component-set>
<components>
<component>
<role>org.apache.maven.project.MavenProjectBuilder</role>
<implementation>org.apache.maven.project.DefaultMavenProjectBuilder</implementation>
<requirements>
<requirement>
<role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
</requirement>
<requirement>
<role>org.apache.maven.project.validation.ModelValidator</role>
</requirement>
<requirement>
<role>org.apache.maven.project.path.PathTranslator</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
</requirement>
<requirement>
<role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
</requirement>
</requirements>
</component>
</components>
</component-set>