[ 
https://issues.apache.org/jira/browse/MNG-5900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15223115#comment-15223115
 ] 

Christian Schulte commented on MNG-5900:
----------------------------------------

I meant documenting that {{this}} is not to be confused with the way the Java 
keyword {{this}} works.

{code}
class A
{
    void method()
    {
        this.effectiveMethod();
        ^^^^ It's that 'this' I am talking about.
    }

    void effectiveMethod()
    {
        System.out.println("A");
    }
}

class B extends A
{
    void effectiveMethod()
    {
        System.out.println("B");
    }
}
{code}

{code}
new A().method();
A
new B().method();
B
{code}

The {{this}} in class A will lead to the method in class B getting called. So 
{{this}} refers to the effective object (A or B) and not A and only A. That's 
what I find misleading. Linking to this issue in the documentation would 
already be sufficient as everything is mentioned here now already.

> early interpolation: support ${this.*} as expression
> ----------------------------------------------------
>
>                 Key: MNG-5900
>                 URL: https://issues.apache.org/jira/browse/MNG-5900
>             Project: Maven
>          Issue Type: New Feature
>          Components: Inheritance and Interpolation
>            Reporter: Robert Scholte
>             Fix For: Issues to be reviewed for 4.x
>
>
> Right now we have $\{project.\*} which always interpolates values based on 
> the final project: "classical" interpolation is "late" interpolation. So it 
> is not possible that parent poms can lock values, ie avoid child poms 
> override. By adding $\{this} for "early" interpolation, it will be possible 
> to have intermediate interpolation.
> If a pomfile depends on a parent, that parent will first resolve all 
> $\{this.\*} values for itself. Once the fully inherited pom is there, all 
> $\{project.\*} will be resolved. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to