mirror of https://github.com/apache/maven.git
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:
parent
e3061a4bda
commit
f0d253b643
|
@ -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 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 );
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
// -----------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
|
Loading…
Reference in New Issue