Package hudson.maven

Class MojoInfo

java.lang.Object
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:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Instance will be set to mojo to avoid NPE in plugins.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final org.codehaus.plexus.configuration.PlexusConfiguration
    Configuration of the mojo for the current execution.
    final org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator
    Object that Maven uses to resolve variables like "${project}" to its corresponding object.
    final org.apache.maven.plugin.Mojo
    Deprecated.
    as of 1.427 Maven3 can no longer provide this information, so plugins cannot rely on this value being present.
    final org.apache.maven.plugin.MojoExecution
    Object from Maven that describes the Mojo to be executed.
    PluginName of the plugin that contains this mojo.
  • Constructor Summary

    Constructors
    Constructor
    Description
    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

    Modifier and Type
    Method
    Description
    <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.
    Gets the goal name of the mojo to be executed, such as "javadoc".
    long
     
    <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 Details

    • 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 Details

    • 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 Details

    • 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()