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

Nested Class Summary
static class MojoInfo.Maven3ProvidesNoAccessToMojo
          Instance will be set to mojo to avoid NPE in plugins.
 
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
          Deprecated. as of 1.427 Maven3 can no longer provide this information, so plugins cannot rely on this value being present. For the time being we are setting a dummy value to avoid NPE. Use configuration to access configuration values, but otherwise the ability to inject values is lost and there's no viable alternative.
 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.execution.ExecutionEvent event, long startTime)
           
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, long startTime)
           
 
Method Summary
<T> T
getConfigurationValue(String configName, Class<T> type)
          Obtains the configuration value of the mojo.
<T> T
getConfigurationValue(String configName, Class<T> type, T defaultValue)
          Obtains the configuration value of the mojo.
 String getGoal()
          Gets the goal name of the mojo to be executed, such as "javadoc".
 long getStartTime()
           
<T> T
inject(String name, T value)
          Deprecated. as of 1.427 See the discussion in mojo
 void intercept(String fieldName, InvocationInterceptor interceptor)
          Deprecated. as of 1.427 See the discussion in mojo
 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
Deprecated. as of 1.427 Maven3 can no longer provide this information, so plugins cannot rely on this value being present. For the time being we are setting a dummy value to avoid NPE. Use configuration to access configuration values, but otherwise the ability to inject values is lost and there's no viable alternative.
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,
                long startTime)

MojoInfo

public MojoInfo(org.apache.maven.execution.ExecutionEvent event,
                long startTime)
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,
                                   T defaultValue)
                        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.)
defaultValue - The default value to return in case the mojo doesn't have such configuration value
Returns:
The configuration value either specified in POM, or inherited from parent POM, or default value if one is specified in mojo, or the defaultValue parameter if no such configuration value exists.
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.

getConfigurationValue

@CheckForNull
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, or null if no such configuration value exists.
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
Deprecated. as of 1.427 See the discussion in mojo

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
Deprecated. as of 1.427 See the discussion in mojo

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

getStartTime

public long getStartTime()


Copyright © 2004-2013. All Rights Reserved.