Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 11 additions & 25 deletions src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,13 @@
import com.thoughtworks.xstream.converters.collections.PropertiesConverter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
Expand Down Expand Up @@ -124,6 +122,12 @@ public class EvaluateMojo extends AbstractHelpMojo {
@Parameter(defaultValue = "${settings}", readonly = true, required = true)
private Settings settings;

/**
* The current mojo execution, used to create the expression evaluator.
*/
@Parameter(defaultValue = "${mojoExecution}", readonly = true, required = true)
private MojoExecution mojoExecution;

// ----------------------------------------------------------------------
// Instance variables
// ----------------------------------------------------------------------
Expand All @@ -143,20 +147,10 @@ public class EvaluateMojo extends AbstractHelpMojo {
*/
private final InputHandler inputHandler;

/**
* Component used to get mojo descriptors.
*/
private MojoDescriptorCreator mojoDescriptorCreator;

@Inject
public EvaluateMojo(
ProjectBuilder projectBuilder,
RepositorySystem repositorySystem,
InputHandler inputHandler,
MojoDescriptorCreator mojoDescriptorCreator) {
public EvaluateMojo(ProjectBuilder projectBuilder, RepositorySystem repositorySystem, InputHandler inputHandler) {
super(projectBuilder, repositorySystem);
this.inputHandler = inputHandler;
this.mojoDescriptorCreator = mojoDescriptorCreator;
}

// ----------------------------------------------------------------------
Expand Down Expand Up @@ -223,20 +217,12 @@ private void validateParameters() {

/**
* @return a lazy loading evaluator object.
* @throws MojoFailureException if any reflection exceptions occur or missing components.
*/
private PluginParameterExpressionEvaluator getEvaluator() throws MojoFailureException {
private PluginParameterExpressionEvaluator getEvaluator() {
if (evaluator == null) {
MojoDescriptor mojoDescriptor;
try {
mojoDescriptor = mojoDescriptorCreator.getMojoDescriptor("help:evaluate", session, project);
} catch (Exception e) {
throw new MojoFailureException("Failure while evaluating.", e);
}
MojoExecution mojoExecution = new MojoExecution(mojoDescriptor);

// Maven 3: PluginParameterExpressionEvaluator gets the current project from the session:
// so we need to clone the session to set the right project
// PluginParameterExpressionEvaluator gets the current project from the session,
// so we need to clone the session to set the right project (which may have been
// changed by the "artifact" parameter).
MavenSession clonedSession = session.clone();
clonedSession.setCurrentProject(project);
evaluator = new PluginParameterExpressionEvaluator(clonedSession, mojoExecution);
Expand Down
Loading