Uploaded image for project: 'Commons Jelly'
  1. Commons Jelly
  2. JELLY-230

Problem with default namespace in imported scripts

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • 1.1
    • None
    • core / taglib.core
    • 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...

      Attachments

        Activity

          People

            jstrachan James Strachan
            ltheussl Lukas Theussl
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: