brett 2004/12/03 12:51:03 Modified: . Tag: MAVEN-1_0-BRANCH maven.xml project.xml src/java/org/apache/maven Tag: MAVEN-1_0-BRANCH MavenUtils.java src/test/touchstone-build Tag: MAVEN-1_0-BRANCH maven.xml src/test/touchstone-build/src/reactor-build/inheritence Tag: MAVEN-1_0-BRANCH maven.xml project.properties project.xml src/test/touchstone-build/src/reactor-build/inheritence/subproject Tag: MAVEN-1_0-BRANCH maven.xml project.xml src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2 Tag: MAVEN-1_0-BRANCH maven.xml project.xml xdocs Tag: MAVEN-1_0-BRANCH changes.xml Log: PR: MAVEN-1501 fix property inheritance for builtin properties such as maven.repo.remote Revision Changes Path No revision No revision 1.97.2.35 +4 -1 maven/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven/maven.xml,v retrieving revision 1.97.2.34 retrieving revision 1.97.2.35 diff -u -r1.97.2.34 -r1.97.2.35 --- maven.xml 6 Nov 2004 02:24:28 -0000 1.97.2.34 +++ maven.xml 3 Dec 2004 20:50:55 -0000 1.97.2.35 @@ -95,10 +95,13 @@ name="maven:plugins-test" description="Test each Maven plugin"> + <!-- Exclude broken plugin tests (some only broken inside the reactor --> + <j:set var="excludes" value="${maven.plugins.excludes},dashboard/**,dist/**,ear/**,hibernate/**,pdf/**"/> + <maven:reactor basedir="${maven.plugins.directory}" includes="${maven.plugins.includes}" - excludes="${maven.plugins.excludes}" + excludes="${excludes}" goals="plugin:test" banner="Testing" ignoreFailures="false" 1.317.4.40 +1 -1 maven/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven/project.xml,v retrieving revision 1.317.4.39 retrieving revision 1.317.4.40 diff -u -r1.317.4.39 -r1.317.4.40 --- project.xml 10 Nov 2004 11:26:04 -0000 1.317.4.39 +++ project.xml 3 Dec 2004 20:50:55 -0000 1.317.4.40 @@ -22,7 +22,7 @@ <pomVersion>3</pomVersion> <id>maven</id> <name>Maven</name> - <currentVersion>1.0.1</currentVersion> + <currentVersion>1.0.2-SNAPSHOT</currentVersion> <organization> <name>Apache Software Foundation</name> <url>http://www.apache.org/</url> No revision No revision 1.107.4.29 +43 -31 maven/src/java/org/apache/maven/MavenUtils.java Index: MavenUtils.java =================================================================== RCS file: /home/cvs/maven/src/java/org/apache/maven/MavenUtils.java,v retrieving revision 1.107.4.28 retrieving revision 1.107.4.29 diff -u -r1.107.4.28 -r1.107.4.29 --- MavenUtils.java 6 Nov 2004 07:27:11 -0000 1.107.4.28 +++ MavenUtils.java 3 Dec 2004 20:50:55 -0000 1.107.4.29 @@ -208,7 +208,7 @@ } // 2) - MavenJellyContext context = MavenUtils.createContext( projectDescriptor.getParentFile(), parentContext ); + MavenJellyContext context = MavenUtils.createContextNoDefaults( projectDescriptor.getParentFile(), parentContext ); // 3) String pomToExtend = project.getExtend(); @@ -252,6 +252,9 @@ project.mergeParent( parent ); } +// TODO: check defaults are also applied to project.xml correctly + applyDefaults( context ); + // Set the created context, and put the project itself in the context. This // is how we get the ${pom} reference in the project.xml file to work. project.setContext( context ); @@ -724,6 +727,25 @@ public static MavenJellyContext createContext( File descriptorDirectory, MavenJellyContext parentContext ) { + MavenJellyContext context = createContextNoDefaults( descriptorDirectory, parentContext ); + applyDefaults( context ); + return context; + } + + /** + * Create a jelly context given a descriptor directory and parent + * jelly context, but don't apply any defaults. + * + * @param descriptorDirectory The directory from which to pull the standard maven + * properties files from. + * @param parentContext The parent jelly context. + * @todo should premerge driver, etc if they are being kept + * @return The generated maven based on the contents of the standard maven + * properties files. + */ + private static MavenJellyContext createContextNoDefaults( File descriptorDirectory, + MavenJellyContext parentContext ) + { // System properties Properties systemProperties = System.getProperties(); @@ -741,10 +763,6 @@ MavenUtils.class.getResourceAsStream( MavenConstants.DRIVER_PROPERTIES ) ); - Properties defaultProperties = loadProperties( - MavenUtils.class.getResourceAsStream( - MavenConstants.DEFAULTS_PROPERTIES ) ); - Map result = MavenUtils.mergeMaps( new Map[] { systemProperties, @@ -756,47 +774,41 @@ MavenJellyContext context; - // If we have a parent we eventually want what values it can provide but - // we turn inheritance off momentarily until we finish integrating the - // child's context values into the jelly context because we want the - // child values to win and only use the parent in the event the - // child cannot provide the value. - if ( parentContext != null ) { context = new MavenJellyContext( parentContext ); - context.setInherit( false ); - - MavenUtils.integrateMapInContext( result, context ); - - // Turn inheritance back on to make the parent's values visible. - context.setInherit( true ); - - //add in the default.properties with defaults, but in inheritance mode. - MavenUtils.integrateMapInContext( defaultProperties, context ); } else { context = new MavenJellyContext(); + } - //integrate everything else... - MavenUtils.integrateMapInContext( result, context ); - - //integrate defaults... - MavenUtils.integrateMapInContext( defaultProperties, context ); + // Turn off inheritence so parent values are overriden + context.setInherit( false ); - // Turn inheritance back on to make the parent's values visible. - context.setInherit( true ); - } + //integrate everything else... + MavenUtils.integrateMapInContext( result, context ); + // Turn inheritance back on to make the parent's values visible. + context.setInherit( true ); // Set the basedir value in the context. context.setVariable( "basedir", descriptorDirectory.getAbsolutePath() ); + return context; + } + + private static void applyDefaults( MavenJellyContext context ) + { + Properties defaultProperties = loadProperties( + MavenUtils.class.getResourceAsStream( + MavenConstants.DEFAULTS_PROPERTIES ) ); + + //integrate defaults... + MavenUtils.integrateMapInContext( defaultProperties, context ); + // deliberately use the original base directory for these variables context.resolveRelativePaths( new File( System.getProperty( "user.dir" ) ) ); - - return context; } /** No revision No revision 1.43.4.23 +6 -0 maven/src/test/touchstone-build/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/maven.xml,v retrieving revision 1.43.4.22 retrieving revision 1.43.4.23 diff -u -r1.43.4.22 -r1.43.4.23 --- maven.xml 24 Oct 2004 02:07:31 -0000 1.43.4.22 +++ maven.xml 3 Dec 2004 20:50:57 -0000 1.43.4.23 @@ -774,6 +774,12 @@ </goal> <goal name="test-inheritance"> + <ant:echo>Testing 0 level</ant:echo> + <maven:maven + descriptor="${basedir}/src/reactor-build/inheritence/project.xml" + goals="runTest" + ignoreFailures="false" + /> <ant:echo>Testing 1 level</ant:echo> <maven:maven descriptor="${basedir}/src/reactor-build/inheritence/subproject/project.xml" No revision No revision 1.1.4.4 +21 -1 maven/src/test/touchstone-build/src/reactor-build/inheritence/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/maven.xml,v retrieving revision 1.1.4.3 retrieving revision 1.1.4.4 diff -u -r1.1.4.3 -r1.1.4.4 --- maven.xml 24 Apr 2004 23:11:23 -0000 1.1.4.3 +++ maven.xml 3 Dec 2004 20:50:59 -0000 1.1.4.4 @@ -17,7 +17,27 @@ */ --> -<project xmlns:j="jelly:core" xmlns:ant="jelly:ant"> +<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="runTest"> + + <goal name="runTest"> + <ant:echo>overridden builtin property POM substitution</ant:echo> + <j:set var="value" value="${pom.url}"/> + <j:if test="${value != 'dummy'}"> + <ant:fail>Sorry, but pom.url = '${value}', inherited incorrectly</ant:fail> + </j:if> + <ant:echo>default builtin property substitution</ant:echo> + <j:set var="value" value="${maven.build.dir}"/> + <j:set var="targetDir" value="${basedir}/target"/> + <j:if test="${value != targetDir}"> + <ant:fail>Sorry, but maven.build.dir = '${value}', incorrectly set</ant:fail> + </j:if> + <ant:echo>default builtin property POM substitution</ant:echo> + <j:set var="value" value="${pom.description}"/> + <j:set var="targetDir" value="${basedir}/target"/> + <j:if test="${value != targetDir}"> + <ant:fail>Sorry, but pom.description = '${value}', incorrectly set</ant:fail> + </j:if> + </goal> <goal name="parent-goal"> <ant:property name="parentVar" value="parentVar" /> 1.1.4.3 +2 -0 maven/src/test/touchstone-build/src/reactor-build/inheritence/project.properties Index: project.properties =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/project.properties,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -u -r1.1.4.2 -r1.1.4.3 --- project.properties 4 Mar 2004 17:47:01 -0000 1.1.4.2 +++ project.properties 3 Dec 2004 20:50:59 -0000 1.1.4.3 @@ -16,3 +16,5 @@ parent.project.property=okiedokie parent.project.property.override=original + +maven.repo.remote=dummy 1.1.4.3 +25 -24 maven/src/test/touchstone-build/src/reactor-build/inheritence/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/project.xml,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -u -r1.1.4.2 -r1.1.4.3 --- project.xml 4 Mar 2004 17:47:01 -0000 1.1.4.2 +++ project.xml 3 Dec 2004 20:51:01 -0000 1.1.4.3 @@ -16,27 +16,28 @@ * limitations under the License. */ --> -
-<project> - <pomVersion>3</pomVersion> - <currentVersion>1.0</currentVersion> - <name>root</name> - <organization/> - <inceptionYear/> - <package/> - <logo/> - <shortDescription/> - <url/> - <siteAddress/> - <siteDirectory/> - <distributionSite/> - <distributionDirectory/> - <repository/> - <mailingLists/> - <developers/> - <dependencies/> - <build> - <sourceDirectory/> - <unitTestSourceDirectory/> - </build> -</project> + +<project> + <pomVersion>3</pomVersion> + <currentVersion>1.0</currentVersion> + <name>root</name> + <organization/> + <inceptionYear/> + <package/> + <logo/> + <shortDescription/> + <description>${maven.build.dir}</description> + <url>${maven.repo.remote}</url> + <siteAddress/> + <siteDirectory/> + <distributionSite/> + <distributionDirectory/> + <repository/> + <mailingLists/> + <developers/> + <dependencies/> + <build> + <sourceDirectory/> + <unitTestSourceDirectory/> + </build> +</project> No revision No revision 1.1.4.4 +10 -0 maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/maven.xml,v retrieving revision 1.1.4.3 retrieving revision 1.1.4.4 diff -u -r1.1.4.3 -r1.1.4.4 --- maven.xml 24 Apr 2004 23:11:23 -0000 1.1.4.3 +++ maven.xml 3 Dec 2004 20:51:02 -0000 1.1.4.4 @@ -50,6 +50,16 @@ <j:if test="${value != 'overridden'}"> <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited incorrectly</ant:fail> </j:if> + <ant:echo>inherited builtin property override test</ant:echo> + <j:set var="value" value="${maven.repo.remote}"/> + <j:if test="${value != 'dummy'}"> + <ant:fail>Sorry, but maven.repo.remote = '${value}', inherited incorrectly</ant:fail> + </j:if> + <ant:echo>inherited builtin property POM substitution</ant:echo> + <j:set var="value" value="${pom.url}"/> + <j:if test="${value != 'dummy'}"> + <ant:fail>Sorry, but pom.url = '${value}', inherited incorrectly</ant:fail> + </j:if> </goal> <goal name="parent-goal-override-1"> 1.1.4.3 +24 -25 maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/project.xml,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -u -r1.1.4.2 -r1.1.4.3 --- project.xml 4 Mar 2004 17:47:01 -0000 1.1.4.2 +++ project.xml 3 Dec 2004 20:51:02 -0000 1.1.4.3 @@ -16,28 +16,27 @@ * limitations under the License. */ --> - -<project> - <extend>../project.xml</extend> - <pomVersion>3</pomVersion> - <currentVersion>1.0</currentVersion> - <name>subproject</name> - <organization/> - <inceptionYear/> - <package/> - <logo/> - <shortDescription/> - <url/> - <siteAddress/> - <siteDirectory/> - <distributionSite/> - <distributionDirectory/> - <repository/> - <mailingLists/> - <developers/> - <dependencies/> - <build> - <sourceDirectory/> - <unitTestSourceDirectory/> - </build> -</project> + +<project> + <extend>../project.xml</extend> + <pomVersion>3</pomVersion> + <currentVersion>1.0</currentVersion> + <name>subproject</name> + <organization/> + <inceptionYear/> + <package/> + <logo/> + <shortDescription/> + <siteAddress/> + <siteDirectory/> + <distributionSite/> + <distributionDirectory/> + <repository/> + <mailingLists/> + <developers/> + <dependencies/> + <build> + <sourceDirectory/> + <unitTestSourceDirectory/> + </build> +</project> No revision No revision 1.1.4.4 +10 -0 maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/maven.xml,v retrieving revision 1.1.4.3 retrieving revision 1.1.4.4 diff -u -r1.1.4.3 -r1.1.4.4 --- maven.xml 24 Apr 2004 23:11:23 -0000 1.1.4.3 +++ maven.xml 3 Dec 2004 20:51:02 -0000 1.1.4.4 @@ -62,6 +62,16 @@ <j:if test="${value != 'overridden2'}"> <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited incorrectly in 2nd subproject</ant:fail> </j:if> + <ant:echo>inherited builtin property override test</ant:echo> + <j:set var="value" value="${maven.repo.remote}"/> + <j:if test="${value != 'dummy'}"> + <ant:fail>Sorry, but maven.repo.remote = '${value}', inherited incorrectly</ant:fail> + </j:if> + <ant:echo>inherited builtin property POM substitution</ant:echo> + <j:set var="value" value="${pom.url}"/> + <j:if test="${value != 'dummy'}"> + <ant:fail>Sorry, but pom.url = '${value}', inherited incorrectly</ant:fail> + </j:if> </goal> <goal name="parent-goal-override-2"> 1.1.4.3 +24 -25 maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/project.xml,v retrieving revision 1.1.4.2 retrieving revision 1.1.4.3 diff -u -r1.1.4.2 -r1.1.4.3 --- project.xml 4 Mar 2004 17:47:01 -0000 1.1.4.2 +++ project.xml 3 Dec 2004 20:51:02 -0000 1.1.4.3 @@ -16,28 +16,27 @@ * limitations under the License. */ --> - -<project> - <extend>../project.xml</extend> - <pomVersion>3</pomVersion> - <currentVersion>1.0</currentVersion> - <name>subproject</name> - <organization/> - <inceptionYear/> - <package/> - <logo/> - <shortDescription/> - <url/> - <siteAddress/> - <siteDirectory/> - <distributionSite/> - <distributionDirectory/> - <repository/> - <mailingLists/> - <developers/> - <dependencies/> - <build> - <sourceDirectory/> - <unitTestSourceDirectory/> - </build> -</project> + +<project> + <extend>../project.xml</extend> + <pomVersion>3</pomVersion> + <currentVersion>1.0</currentVersion> + <name>subproject</name> + <organization/> + <inceptionYear/> + <package/> + <logo/> + <shortDescription/> + <siteAddress/> + <siteDirectory/> + <distributionSite/> + <distributionDirectory/> + <repository/> + <mailingLists/> + <developers/> + <dependencies/> + <build> + <sourceDirectory/> + <unitTestSourceDirectory/> + </build> +</project> No revision No revision 1.14.4.52 +4 -0 maven/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/maven/xdocs/changes.xml,v retrieving revision 1.14.4.51 retrieving revision 1.14.4.52 diff -u -r1.14.4.51 -r1.14.4.52 --- changes.xml 10 Nov 2004 11:26:04 -0000 1.14.4.51 +++ changes.xml 3 Dec 2004 20:51:03 -0000 1.14.4.52 @@ -24,6 +24,10 @@ <author email="[EMAIL PROTECTED]">Vincent Massol</author> </properties> <body> + <release version="1.0.2" date="in CVS"> + <action dev="brett" type="fix" issue="MAVEN-1501">Ensure that default properties are correctly overidden when inherited from a parent</action> + </release> + <release version="1.0.1" date="2004-11-10"> <action dev="brett" type="fix">Ensure plugin:install correctly refreshes the cache when the plugin with the same version was previously installed</action> <action dev="brett" type="fix" issue="MAVEN-1471">Move dependency verification until the point where the project is in a consistent state, so that the reactor succeeds when ignoreFailures is true</action> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]