Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
1.1
-
None
-
None
-
jelly-1.1-SNAPSHOT
Description
I am trying to build Maven with jelly-1.1-SNAPSHOT from svn trunk because it contains a fix for a regression that has blocked us for a long time, see
http://jira.codehaus.org/browse/MAVEN-1691 (gee, I wish I'd checked the svn archives earlier!).
However, even though jelly-1.1-SNAPSHOT solves the above issue, it also leads to a whole bunch of test failures in several of our plugins.
After some investigation I found that they all turn out to be due to the same cause, an apparent backwards incompatibility introduced in the fix for JELLY-213.
I am not sure actually if this is a bug or the intended behavior, but it certainly breaks backwards compatibility.
To illustrate the problem: in the ant plugin we use the following snippet to generate an ant build.xml file from a template:
<j:file name="build.xml" prettyPrint="true">
<j:import file="templates/build.jelly" inherit="true"/>
</j:file>
where the template file build.jelly looks like this (simplified):
<j:jelly
xmlns:ant="jelly:ant"
xmlns:j="jelly:core"
xmlns="dummy">
<project name="${pom.artifactId}" default="jar" basedir=".">
<target name="clean" description="Clean up">
<delete dir="$${defaulttargetdir}"/>
<delete dir="$${distdir}"/>
</target>
</project>
</j:jelly>
Note the xmlns="dummy" namespace declaration which is necessary to distinguish the default namespace of the template script from Maven's default namespace. Now with jelly-1.0, this works as expected, but with the current jelly-1.1-SNAPSHOT, I get:
<project xmlns="dummy" name="test-maven-ant-plugin" default="jar" basedir=".">
<target description="Clean up" name="clean">
<delete dir="${defaulttargetdir}">
</delete>
<delete dir="${distdir}">
</delete>
</target>
<project>
ie the dummy namespace declaration makes it into the top-level element of the generated file. This makes ant very unhappy when invoked on this build file...