hudson.maven
Class MojoInfo

java.lang.Object
  extended by hudson.maven.MojoInfo
Direct Known Subclasses:
MavenReportInfo

public class MojoInfo
extends Object

Information about Mojo to be executed. This object provides convenient access to various mojo information, so that MavenReporter implementations are shielded to some extent from Maven internals.

For each mojo to be executed, this object is created and passed to MavenReporter.

Author:
Kohsuke Kawaguchi
See Also:
MavenReporter, MavenReportInfo

Field Summary
 org.codehaus.plexus.configuration.PlexusConfiguration configuration
          Configuration of the mojo for the current execution.
 org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator expressionEvaluator
          Object that Maven uses to resolve variables like "${project}" to its corresponding object.
 org.apache.maven.plugin.Mojo mojo
          Mojo object that carries out the actual execution.
 org.apache.maven.plugin.MojoExecution mojoExecution
          Object from Maven that describes the Mojo to be executed.
 PluginName pluginName
          PluginName of the plugin that contains this mojo.
 
Constructor Summary
MojoInfo(org.apache.maven.plugin.MojoExecution mojoExecution, org.apache.maven.plugin.Mojo mojo, org.codehaus.plexus.configuration.PlexusConfiguration configuration, org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator expressionEvaluator)
           
 
Method Summary
<T> T
getConfigurationValue(String configName, Class<T> type)
          Obtains the configuration value of the mojo.
 String getGoal()
          Gets the goal name of the mojo to be executed, such as "javadoc".
<T> T
inject(String name, T value)
          Injects the specified value (designated by the specified field name) into the mojo, and returns its old value.
 void intercept(String fieldName, InvocationInterceptor interceptor)
          Intercept the invocation from the mojo to its injected component (designated by the given field name.)
 boolean is(String groupId, String artifactId, String mojoName)
          Returns true if this MojoInfo wraps the mojo of the given ID tuple.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mojoExecution

public final org.apache.maven.plugin.MojoExecution mojoExecution
Object from Maven that describes the Mojo to be executed.


pluginName

public final PluginName pluginName
PluginName of the plugin that contains this mojo.


mojo

public final org.apache.maven.plugin.Mojo mojo
Mojo object that carries out the actual execution.


configuration

public final org.codehaus.plexus.configuration.PlexusConfiguration configuration
Configuration of the mojo for the current execution. This reflects the default values, as well as values configured from POM, including inherited values.


expressionEvaluator

public final org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator expressionEvaluator
Object that Maven uses to resolve variables like "${project}" to its corresponding object.

Constructor Detail

MojoInfo

public MojoInfo(org.apache.maven.plugin.MojoExecution mojoExecution,
                org.apache.maven.plugin.Mojo mojo,
                org.codehaus.plexus.configuration.PlexusConfiguration configuration,
                org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator expressionEvaluator)
Method Detail

getGoal

public String getGoal()
Gets the goal name of the mojo to be executed, such as "javadoc". This is local to the plugin name.


getConfigurationValue

public <T> T getConfigurationValue(String configName,
                                   Class<T> type)
                        throws org.codehaus.plexus.component.configurator.ComponentConfigurationException
Obtains the configuration value of the mojo.

Parameters:
configName - The name of the child element in the <configuration> of mojo.
type - The Java class of the configuration value. While every element can be read as String, often different types have a different conversion rules associated with it (for example, File would resolve relative path against POM base directory.)
Returns:
The configuration value either specified in POM, or inherited from parent POM, or default value if one is specified in mojo.
Throws:
org.codehaus.plexus.component.configurator.ComponentConfigurationException - Not sure when exactly this is thrown, but it's probably when the configuration in POM is syntactically incorrect.

is

public boolean is(String groupId,
                  String artifactId,
                  String mojoName)
Returns true if this MojoInfo wraps the mojo of the given ID tuple.


inject

public <T> T inject(String name,
                    T value)
         throws NoSuchFieldException
Injects the specified value (designated by the specified field name) into the mojo, and returns its old value.

Throws:
NoSuchFieldException - if the mojo doesn't have any field of the given name.
Since:
1.232

intercept

public void intercept(String fieldName,
                      InvocationInterceptor interceptor)
               throws NoSuchFieldException
Intercept the invocation from the mojo to its injected component (designated by the given field name.)

Often for a MavenReporter to really figure out what's going on in a build, you'd like to intercept one of the components that Maven is injecting into the mojo, and inspect its parameter and return values.

This mehod provides a way to do this. You specify the name of the field in the Mojo class that receives the injected component, then pass in InvocationInterceptor, which will in turn be invoked for every invocation on that component.

Throws:
NoSuchFieldException - if the specified field is not found on the mojo class, or it is found but the type is not an interface.
Since:
1.232


Copyright © 2004-2011. All Rights Reserved.