glad you like it :)

yes, this interpolation and inheritance separation during site.xml model 
building gives us an opportunity (or even forces us) to test your MNG-5900 
idea immediately, without taking any risk at pom.xml level

and I have already learned one corner case: properties
${myproperty} takes its value from ${project.properties.myproperty} and can be 
overridden with CLI -Dmyproperty=

but how to write the "this" equivalent, while still supporting the CLI 
override?
should we support ${this.myproperty}? (and tweak CLI -Dmyproperty= to override 
the result of this expression)?
That's my current thinking, I'll implement it shortly if nobody objects or has 
any other idea

Regards,

Hervé

Le mercredi 23 mars 2016 20:44:29 Robert Scholte a écrit :
> Cool!
> 
> On Wed, 23 Mar 2016 00:56:13 +0100, <[email protected]> wrote:
> > Author: hboutemy
> > Date: Tue Mar 22 23:56:13 2016
> > New Revision: 1736261
> > 
> > URL: http://svn.apache.org/viewvc?rev=1736261&view=rev
> > Log:
> > [DOXIASITETOOLS-158] added support for ${this.*} as expression in
> > site.xml interpolation
> > 
> > Modified:
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/jav
> >     a/org/apache/maven/doxia/tools/DefaultSiteTool.java
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/ja
> >     va/org/apache/maven/doxia/tools/SiteToolTest.java
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/ja
> >     va/org/apache/maven/doxia/tools/stubs/SiteToolMavenProjectStub.java
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/re
> >     sources/unit/interpolation-child-test/pom.xml
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/re
> >     sources/unit/interpolation-parent-test/pom.xml
> >     maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/re
> >     sources/unit/interpolation-parent-test/src/site/site.xml> 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/or
> > g/apache/maven/doxia/tools/DefaultSiteTool.java URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.ja
> > va?rev=1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/or
> > g/apache/maven/doxia/tools/DefaultSiteTool.java (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/main/java/or
> > g/apache/maven/doxia/tools/DefaultSiteTool.java Tue Mar 22 23:56:13 2016
> > @@ -468,7 +468,7 @@ public class DefaultSiteTool
> > 
> >          // DecorationModel back to String to interpolate, then go back
> > 
> > to DecorationModel
> > 
> >          String siteDescriptorContent = decorationModelToString(
> > 
> > decorationModel );
> > -        siteDescriptorContent = getInterpolatedSiteDescriptorContent(
> > project, siteDescriptorContent );
> > +        siteDescriptorContent = getInterpolatedSiteDescriptorContent(
> > project, siteDescriptorContent, "project" );
> > 
> >         decorationModel = readDecorationModel( siteDescriptorContent );
> > 
> > @@ -497,11 +497,11 @@ public class DefaultSiteTool
> > 
> >      {
> >      
> >          checkNotNull( "props", props );
> > 
> > -        return getInterpolatedSiteDescriptorContent( aProject,
> > siteDescriptorContent );
> > +        return getInterpolatedSiteDescriptorContent( aProject,
> > siteDescriptorContent, "project" );
> > 
> >      }
> >     
> >     private String getInterpolatedSiteDescriptorContent( MavenProject
> > 
> > aProject,
> > -                                                        String
> > siteDescriptorContent )
> > +                                                        String
> > siteDescriptorContent, String prefix )
> > 
> >          throws SiteToolException
> >      
> >      {
> >      
> >          checkNotNull( "aProject", aProject );
> > 
> > @@ -527,7 +527,7 @@ public class DefaultSiteTool
> > 
> >          try
> >          {
> >          
> >              // FIXME: this does not escape xml entities, see MSITE-226,
> > 
> > PLXCOMP-118
> > -            return interpolator.interpolate( siteDescriptorContent,
> > "project" );
> > +            return interpolator.interpolate( siteDescriptorContent,
> > prefix );
> > 
> >          }
> >          catch ( InterpolationException e )
> >          {
> > 
> > @@ -1116,6 +1116,9 @@ public class DefaultSiteTool
> > 
> >                 String siteDescriptorContent = readSiteDescriptor(
> > 
> > siteDescriptorReader, project.getId() );
> > +                // interpolate ${this.*}
> > +                siteDescriptorContent =
> > getInterpolatedSiteDescriptorContent( project, siteDescriptorContent,
> > "this" );
> > +
> > 
> >                  decoration = readDecorationModel( siteDescriptorContent
> > 
> > );
> > 
> >                  decoration.setLastModified(
> > 
> > siteDescriptor.lastModified() );
> > 
> >              }
> > 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/SiteToolTest.java URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java?
> > rev=1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/SiteToolTest.java (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/SiteToolTest.java Tue Mar 22 23:56:13 2016
> > @@ -35,6 +35,8 @@ import org.apache.maven.artifact.reposit
> > 
> >  import org.apache.maven.doxia.site.decoration.DecorationModel;
> >  import org.apache.maven.doxia.site.decoration.Skin;
> >  import org.apache.maven.doxia.tools.stubs.SiteToolMavenProjectStub;
> > 
> > +import org.apache.maven.model.DistributionManagement;
> > +import org.apache.maven.model.Site;
> > 
> >  import org.apache.maven.project.MavenProject;
> > 
> > import org.codehaus.plexus.PlexusTestCase;
> > @@ -346,17 +348,11 @@ public class SiteToolTest
> > 
> >          assertNotNull( tool );
> >         
> >         SiteToolMavenProjectStub parentProject = new
> > 
> > SiteToolMavenProjectStub( "interpolation-parent-test" );
> > -        parentProject.setGroupId( "org.apache.maven.shared.its" );
> > -        parentProject.setArtifactId( "mshared-217-parent" );
> > -        parentProject.setVersion( "1.0-SNAPSHOT" );
> > -        parentProject.setName( "MSHARED-217 Parent" );
> > +        parentProject.setDistgributionManagementSiteUrl(
> > "dav:https://davs.codehaus.org/site"; );
> > 
> >         SiteToolMavenProjectStub childProject = new
> > 
> > SiteToolMavenProjectStub( "interpolation-child-test" );
> > 
> >          childProject.setParent( parentProject );
> > 
> > -        childProject.setGroupId( "org.apache.maven.shared.its" );
> > -        childProject.setArtifactId( "mshared-217-child" );
> > -        childProject.setVersion( "1.0-SNAPSHOT" );
> > -        childProject.setName( "MSHARED-217 Child" );
> > +        childProject.setDistgributionManagementSiteUrl(
> > "dav:https://davs.codehaus.org/site/child"; );
> > 
> >         List<MavenProject> reactorProjects =
> > 
> > Collections.<MavenProject>singletonList( parentProject );
> > 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/stubs/SiteToolMavenProjectStub.java URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/test/java/org/apache/maven/doxia/tools/stubs/SiteToolMave
> > nProjectStub.java?rev=1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/stubs/SiteToolMavenProjectStub.java (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/java/or
> > g/apache/maven/doxia/tools/stubs/SiteToolMavenProjectStub.java Tue Mar 22
> > 23:56:13 2016
> > @@ -29,7 +29,9 @@ import org.apache.maven.artifact.reposit
> > 
> >  import org.apache.maven.artifact.repository.DefaultArtifactRepository;
> >  import
> > 
> > org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
> > 
> >  import org.apache.maven.model.Build;
> > 
> > +import org.apache.maven.model.DistributionManagement;
> > 
> >  import org.apache.maven.model.Model;
> > 
> > +import org.apache.maven.model.Site;
> > 
> >  import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
> >  import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
> > 
> > @@ -44,6 +46,8 @@ public class SiteToolMavenProjectStub
> > 
> >     private File basedir;
> > 
> > +    private DistributionManagement distributionManagement;
> > +
> > 
> >      public SiteToolMavenProjectStub( String projectName )
> >      {
> >      
> >          basedir = new File( super.getBasedir() +
> > 
> > "/src/test/resources/unit/" + projectName );
> > @@ -115,4 +119,17 @@ public class SiteToolMavenProjectStub
> > 
> >         return Collections.singletonList( repository );
> >      
> >      }
> > 
> > +
> > +    public void setDistgributionManagementSiteUrl( String url )
> > +    {
> > +        Site site = new Site();
> > +        site.setUrl( url );
> > +        distributionManagement = new DistributionManagement();
> > +        distributionManagement.setSite( site );
> > +    }
> > +
> > +    public DistributionManagement getDistributionManagement()
> > +    {
> > +        return distributionManagement;
> > +    }
> > 
> >  }
> > 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-child-test/pom.xml URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/test/resources/unit/interpolation-child-test/pom.xml?rev=
> > 1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-child-test/pom.xml (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-child-test/pom.xml Tue Mar 22 23:56:13 2016
> > @@ -23,7 +23,10 @@ under the License.
> > 
> >    <modelVersion>4.0.0</modelVersion>
> >   
> >   <groupId>org.apache.maven.shared.its</groupId>
> > 
> > -  <artifactId>mshared-217-parent</artifactId>
> > +  <artifactId>mshared-217-child</artifactId>
> > 
> >    <version>1.0-SNAPSHOT</version>
> > 
> > +  <name>MSHARED-217 Child</name>
> > +  <url>http://maven.apache.org/mshared-217/child</url>
> > +
> > 
> >  </project>
> > 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/pom.xml URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/test/resources/unit/interpolation-parent-test/pom.xml?rev
> > =1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/pom.xml (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/pom.xml Tue Mar 22 23:56:13 2016
> > @@ -23,7 +23,10 @@ under the License.
> > 
> >    <modelVersion>4.0.0</modelVersion>
> >   
> >   <groupId>org.apache.maven.shared.its</groupId>
> > 
> > -  <artifactId>mshared-217-child</artifactId>
> > +  <artifactId>mshared-217-parent</artifactId>
> > 
> >    <version>1.0-SNAPSHOT</version>
> > 
> > +  <name>MSHARED-217 Parent</name>
> > +  <url>http://maven.apache.org/mshared-217</url>
> > +
> > 
> >  </project>
> > 
> > Modified:
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/src/site/site.xml URL:
> > http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-integ
> > ration-tools/src/test/resources/unit/interpolation-parent-test/src/site/si
> > te.xml?rev=1736261&r1=1736260&r2=1736261&view=diff
> > =========================================================================
> > ===== ---
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/src/site/site.xml (original)
> > +++
> > maven/doxia/doxia-sitetools/trunk/doxia-integration-tools/src/test/resourc
> > es/unit/interpolation-parent-test/src/site/site.xml Tue Mar 22 23:56:13
> > 2016
> > @@ -27,8 +27,12 @@ under the License.
> > 
> >    </bannerLeft>
> >   
> >   <body>
> > 
> > +    <links>
> > +      <item name="${this.name}" href="${this.url}" />
> > +    </links>
> > 
> >      <breadcrumbs>
> >      
> >        <item name="Maven"  href="http://maven.apache.org/index.html"; />
> > 
> > +      <item name="${this.name}" href="${this.url}" />
> > 
> >      </breadcrumbs>
> >    
> >    </body>
> >  
> >  </project>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to