You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Jerome Lacoste (JIRA)" <ji...@codehaus.org> on 2005/10/20 14:01:11 UTC

[jira] Created: (MNG-1248) configuration inheritence: base class parameters not correctly initialized

configuration inheritence: base class parameters not correctly initialized
--------------------------------------------------------------------------

         Key: MNG-1248
         URL: http://jira.codehaus.org/browse/MNG-1248
     Project: Maven 2
        Type: Bug
 Reporter: Jerome Lacoste


Haven't been able to identify the exact reason:

Here's my use case:

AbstractWarMojo has a parameter called project accessible by sub-classes using a getProject() method.
    /**
     * The maven project.
     *
     * @parameter expression="${project}"
     * @required
     * @readonly
     */
    private MavenProject project;

The execution will show that the project parameter has not been initialized correctly.

I.e. the following code:

       getLog().debug( "project " + this.getProject() ); // from base class
       getLog().debug( "project2 " + this.project2 );

will display:

[DEBUG] project null
[DEBUG] project2 org.apache.maven.project.MavenProject@f79ffcb3

My work-around was to define a new field in the sub-class called project2.

I don't see a difference between my mojo and the WarMojo in the way they are configured.

I've tried to add 
 * @requiresDependencyResolution runtime
 * @requiresProject
 * @inheritedByDefault true

by none of this helped.

here's the WarMojo META-IN/plugin.xml header
      <goal>war</goal>
      <description>Build a war/webapp.</description>
      <requiresDependencyResolution>runtime</requiresDependencyResolution>
      <requiresDirectInvocation>false</requiresDirectInvocation>
      <requiresProject>true</requiresProject>
      <requiresReports>false</requiresReports>
      <aggregator>false</aggregator>
      <requiresOnline>false</requiresOnline>
      <inheritedByDefault>true</inheritedByDefault>
      <phase>package</phase>
      <implementation>org.apache.maven.plugin.war.WarMojo</implementation>
      <language>java</language>
      <instantiationStrategy>per-lookup</instantiationStrategy>
      <executionStrategy>once-per-session</executionStrategy>

Here's my plugin header

      <goal>jnlp</goal>
      <description>Packages a jnlp application.</description>
      <requiresDependencyResolution>runtime</requiresDependencyResolution>
      <requiresDirectInvocation>false</requiresDirectInvocation>
      <requiresProject>true</requiresProject>
      <requiresReports>false</requiresReports>
      <aggregator>false</aggregator>
      <requiresOnline>false</requiresOnline>
      <inheritedByDefault>true</inheritedByDefault>
      <phase>compile</phase>
      <implementation>org.codehaus.mojo.webstart.JnlpMojo</implementation>
      <language>java</language>
      <instantiationStrategy>per-lookup</instantiationStrategy>
      <executionStrategy>once-per-session</executionStrategy>

They are basically identical. The invocation still fails.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Closed: (MNG-1248) configuration inheritence: base class parameters not correctly initialized

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-1248?page=all ]
     
Brett Porter closed MNG-1248:
-----------------------------

     Assign To: Brett Porter
    Resolution: Won't Fix

cannot inherit metadata across plugins

> configuration inheritence: base class parameters not correctly initialized
> --------------------------------------------------------------------------
>
>          Key: MNG-1248
>          URL: http://jira.codehaus.org/browse/MNG-1248
>      Project: Maven 2
>         Type: Bug
>     Reporter: Jerome Lacoste
>     Assignee: Brett Porter

>
>
> Haven't been able to identify the exact reason:
> Here's my use case:
> AbstractWarMojo has a parameter called project accessible by sub-classes using a getProject() method.
>     /**
>      * The maven project.
>      *
>      * @parameter expression="${project}"
>      * @required
>      * @readonly
>      */
>     private MavenProject project;
> The execution will show that the project parameter has not been initialized correctly.
> I.e. the following code:
>        getLog().debug( "project " + this.getProject() ); // from base class
>        getLog().debug( "project2 " + this.project2 );
> will display:
> [DEBUG] project null
> [DEBUG] project2 org.apache.maven.project.MavenProject@f79ffcb3
> My work-around was to define a new field in the sub-class called project2.
> I don't see a difference between my mojo and the WarMojo in the way they are configured.
> I've tried to add 
>  * @requiresDependencyResolution runtime
>  * @requiresProject
>  * @inheritedByDefault true
> by none of this helped.
> here's the WarMojo META-IN/plugin.xml header
>       <goal>war</goal>
>       <description>Build a war/webapp.</description>
>       <requiresDependencyResolution>runtime</requiresDependencyResolution>
>       <requiresDirectInvocation>false</requiresDirectInvocation>
>       <requiresProject>true</requiresProject>
>       <requiresReports>false</requiresReports>
>       <aggregator>false</aggregator>
>       <requiresOnline>false</requiresOnline>
>       <inheritedByDefault>true</inheritedByDefault>
>       <phase>package</phase>
>       <implementation>org.apache.maven.plugin.war.WarMojo</implementation>
>       <language>java</language>
>       <instantiationStrategy>per-lookup</instantiationStrategy>
>       <executionStrategy>once-per-session</executionStrategy>
> Here's my plugin header
>       <goal>jnlp</goal>
>       <description>Packages a jnlp application.</description>
>       <requiresDependencyResolution>runtime</requiresDependencyResolution>
>       <requiresDirectInvocation>false</requiresDirectInvocation>
>       <requiresProject>true</requiresProject>
>       <requiresReports>false</requiresReports>
>       <aggregator>false</aggregator>
>       <requiresOnline>false</requiresOnline>
>       <inheritedByDefault>true</inheritedByDefault>
>       <phase>compile</phase>
>       <implementation>org.codehaus.mojo.webstart.JnlpMojo</implementation>
>       <language>java</language>
>       <instantiationStrategy>per-lookup</instantiationStrategy>
>       <executionStrategy>once-per-session</executionStrategy>
> They are basically identical. The invocation still fails.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1248) configuration inheritence: base class parameters not correctly initialized

Posted by "Jerome Lacoste (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1248?page=comments#action_48920 ] 

Jerome Lacoste commented on MNG-1248:
-------------------------------------

Just want to add that if I use

               <inherited>true</inherited>

in the plugin configuration (which is something I want to avoid), the project field is inialized, but calling methods from the base class return unitialized parameters. E.g. if I call getWebappDirectory(), it will return null. 


> configuration inheritence: base class parameters not correctly initialized
> --------------------------------------------------------------------------
>
>          Key: MNG-1248
>          URL: http://jira.codehaus.org/browse/MNG-1248
>      Project: Maven 2
>         Type: Bug
>     Reporter: Jerome Lacoste

>
>
> Haven't been able to identify the exact reason:
> Here's my use case:
> AbstractWarMojo has a parameter called project accessible by sub-classes using a getProject() method.
>     /**
>      * The maven project.
>      *
>      * @parameter expression="${project}"
>      * @required
>      * @readonly
>      */
>     private MavenProject project;
> The execution will show that the project parameter has not been initialized correctly.
> I.e. the following code:
>        getLog().debug( "project " + this.getProject() ); // from base class
>        getLog().debug( "project2 " + this.project2 );
> will display:
> [DEBUG] project null
> [DEBUG] project2 org.apache.maven.project.MavenProject@f79ffcb3
> My work-around was to define a new field in the sub-class called project2.
> I don't see a difference between my mojo and the WarMojo in the way they are configured.
> I've tried to add 
>  * @requiresDependencyResolution runtime
>  * @requiresProject
>  * @inheritedByDefault true
> by none of this helped.
> here's the WarMojo META-IN/plugin.xml header
>       <goal>war</goal>
>       <description>Build a war/webapp.</description>
>       <requiresDependencyResolution>runtime</requiresDependencyResolution>
>       <requiresDirectInvocation>false</requiresDirectInvocation>
>       <requiresProject>true</requiresProject>
>       <requiresReports>false</requiresReports>
>       <aggregator>false</aggregator>
>       <requiresOnline>false</requiresOnline>
>       <inheritedByDefault>true</inheritedByDefault>
>       <phase>package</phase>
>       <implementation>org.apache.maven.plugin.war.WarMojo</implementation>
>       <language>java</language>
>       <instantiationStrategy>per-lookup</instantiationStrategy>
>       <executionStrategy>once-per-session</executionStrategy>
> Here's my plugin header
>       <goal>jnlp</goal>
>       <description>Packages a jnlp application.</description>
>       <requiresDependencyResolution>runtime</requiresDependencyResolution>
>       <requiresDirectInvocation>false</requiresDirectInvocation>
>       <requiresProject>true</requiresProject>
>       <requiresReports>false</requiresReports>
>       <aggregator>false</aggregator>
>       <requiresOnline>false</requiresOnline>
>       <inheritedByDefault>true</inheritedByDefault>
>       <phase>compile</phase>
>       <implementation>org.codehaus.mojo.webstart.JnlpMojo</implementation>
>       <language>java</language>
>       <instantiationStrategy>per-lookup</instantiationStrategy>
>       <executionStrategy>once-per-session</executionStrategy>
> They are basically identical. The invocation still fails.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org