mirror of https://github.com/apache/maven.git
[MNG-4102] -Properties used for interpolation of inherited properties can't be customized by child. [BUG] - override property in profile.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@757485 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4b3dcfac94
commit
0f8624c297
|
@ -82,7 +82,7 @@ public class ProcessorContext
|
||||||
|
|
||||||
List<Processor> processors =
|
List<Processor> processors =
|
||||||
Arrays.asList( (Processor) new BuildProcessor( new ArrayList<Processor>() ),
|
Arrays.asList( (Processor) new BuildProcessor( new ArrayList<Processor>() ),
|
||||||
(Processor) new ProfilesModuleProcessor(), new PropertiesProcessor(), new ParentProcessor(),
|
(Processor) new ProfilesModuleProcessor(), new ProfilePropertiesProcessor(), new ParentProcessor(),
|
||||||
new OrganizationProcessor(), new MailingListProcessor(), new IssueManagementProcessor(),
|
new OrganizationProcessor(), new MailingListProcessor(), new IssueManagementProcessor(),
|
||||||
new CiManagementProcessor(), new ReportingProcessor(), new RepositoriesProcessor(),
|
new CiManagementProcessor(), new ReportingProcessor(), new RepositoriesProcessor(),
|
||||||
new DistributionManagementProcessor());
|
new DistributionManagementProcessor());
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.apache.maven.project.processor;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.apache.maven.model.Model;
|
||||||
|
|
||||||
|
public class ProfilePropertiesProcessor
|
||||||
|
extends BaseProcessor
|
||||||
|
{
|
||||||
|
public void process( Object parent, Object child, Object target, boolean isChildMostSpecialized )
|
||||||
|
{
|
||||||
|
super.process( parent, child, target, isChildMostSpecialized );
|
||||||
|
Model t = (Model) target, c = (Model) child, p = (Model) parent;
|
||||||
|
|
||||||
|
Properties properties = new Properties();
|
||||||
|
|
||||||
|
if ( c.getProperties() != null )
|
||||||
|
{
|
||||||
|
properties.putAll( c.getProperties() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( p != null && p.getProperties() != null )
|
||||||
|
{
|
||||||
|
properties.putAll( p.getProperties() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !properties.isEmpty() )
|
||||||
|
{
|
||||||
|
if(t.getProperties().isEmpty())
|
||||||
|
{
|
||||||
|
t.setProperties( properties );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
t.getProperties().putAll( properties );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -33,20 +33,26 @@ public class PropertiesProcessor
|
||||||
|
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
|
|
||||||
|
if ( p != null && p.getProperties() != null )
|
||||||
|
{
|
||||||
|
properties.putAll( p.getProperties() );
|
||||||
|
}
|
||||||
|
|
||||||
if ( c.getProperties() != null )
|
if ( c.getProperties() != null )
|
||||||
{
|
{
|
||||||
properties.putAll( c.getProperties() );
|
properties.putAll( c.getProperties() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( p != null && p.getProperties() != null )
|
|
||||||
{
|
|
||||||
properties.putAll( p.getProperties() );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !properties.isEmpty() )
|
if ( !properties.isEmpty() )
|
||||||
|
{
|
||||||
|
if(t.getProperties().isEmpty())
|
||||||
{
|
{
|
||||||
t.setProperties( properties );
|
t.setProperties( properties );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
t.getProperties().putAll( properties );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1176,23 +1176,23 @@ public class PomConstructionTest
|
||||||
{
|
{
|
||||||
PomTestWrapper pom =
|
PomTestWrapper pom =
|
||||||
buildPomFromMavenProject( "profile-injection-order", "pom-a", "pom-b", "pom-e", "pom-c", "pom-d" );
|
buildPomFromMavenProject( "profile-injection-order", "pom-a", "pom-b", "pom-e", "pom-c", "pom-d" );
|
||||||
|
|
||||||
assertEquals( "e", pom.getValue( "properties[1]/pomProperty" ) );
|
assertEquals( "e", pom.getValue( "properties[1]/pomProperty" ) );
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
|
|
||||||
/* FIXME
|
/* FIXME*/
|
||||||
public void testPropertiesInheritance()
|
public void testPropertiesInheritance()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
PomTestWrapper pom = buildPom( "properties-inheritance/sub" );
|
PomTestWrapper pom = buildPom( "properties-inheritance/sub" );
|
||||||
|
|
||||||
assertEquals( "parent-property", pom.getValue( "properties/parentProperty" ) );
|
assertEquals( "parent-property", pom.getValue( "properties/parentProperty" ) );
|
||||||
assertEquals( "child-property", pom.getValue( "properties/childProperty" ) );
|
assertEquals( "child-property", pom.getValue( "properties/childProperty" ) );
|
||||||
assertEquals( "child-override", pom.getValue( "properties/overriddenProperty" ) );
|
assertEquals( "child-override", pom.getValue( "properties/overriddenProperty" ) );
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
|
|
||||||
/* FIXME: MNG-4102
|
/* FIXME: MNG-4102*/
|
||||||
public void testInheritedPropertiesInterpolatedWithValuesFromChild()
|
public void testInheritedPropertiesInterpolatedWithValuesFromChild()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue