We need to document somewhere that the body of the tag has it's xml escaped if its dragged in from a variable.
IMHO, the tag is still broken, as hard code xml/html works ok in the body, but a variable with that same xml/html doesn't. -- dIon Gillard, Multitask Consulting Blog: http://www.freeroller.net/page/dion/Weblog Work: http://www.multitask.com.au [EMAIL PROTECTED] wrote on 22/01/2003 10:21:20 PM: > jstrachan 2003/01/22 03:21:20 > > Modified: jelly/jelly- > tags/html/src/java/org/apache/commons/jelly/tags/html > ParseTag.java > jelly/jelly-tags/html build.xml .cvsignore > jelly/jelly-tags/html/src/test/org/apache/commons/jelly/html > suite.jelly > Log: > * Fixed the unit tests > * Regenerated the Ant build > * Added support for parsing XML which is inside a String variable. > This can now be done via > > <html:parse var="doc" text="${whatever}"/> > > Also added a JellyUnit test case to check this works > > Revision Changes Path > 1.6 +7 -1 jakarta-commons-sandbox/jelly/jelly- > tags/html/src/java/org/apache/commons/jelly/tags/html/ParseTag.java > > Index: ParseTag.java > =================================================================== > RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly- > tags/html/src/java/org/apache/commons/jelly/tags/html/ParseTag.java,v > retrieving revision 1.5 > retrieving revision 1.6 > diff -u -r1.5 -r1.6 > --- ParseTag.java 19 Dec 2002 15:03:51 -0000 1.5 > +++ ParseTag.java 22 Jan 2003 11:21:19 -0000 1.6 > @@ -101,7 +101,13 @@ > } > Document document = null; > if (html == null) { > - document = parseBody(output); > + String text = getText(); > + if (text != null) { > + document = parseText(text); > + } > + else { > + document = parseBody(output); > + } > } > else { > document = parse(html); > > > > 1.4 +145 -187 jakarta-commons-sandbox/jelly/jelly-tags/html/build.xml > > Index: build.xml > =================================================================== > RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly- > tags/html/build.xml,v > retrieving revision 1.3 > retrieving revision 1.4 > diff -u -r1.3 -r1.4 > --- build.xml 17 Jan 2003 15:48:02 -0000 1.3 > +++ build.xml 22 Jan 2003 11:21:19 -0000 1.4 > @@ -1,238 +1,196 @@ > <?xml version="1.0" encoding="UTF-8"?> > > <project default="jar" name="commons-jelly-tags-html" basedir="."> > - > - <property name="defaulttargetdir" value="target"></property> > - <property name="classesdir" value="target/classes"></property> > - <property name="testclassesdir" value="target/test-classes"></property> > - <property name="testreportdir" value="target/test-reports"></property> > - > - > - > - > - > - > - > - > - > - > - <property name="resourcedir" value="."></property> > - > - <property name="distdir" value="dist"></property> > - <property name="javadocdir" value="target/docs/apidocs"></property> > - <property name="final.name" value="commons-jelly-tags-html-1.0- > SNAPSHOT"></property> > - > + <property name="defaulttargetdir" value="target"> > + </property> > + <property name="classesdir" value="target/classes"> > + </property> > + <property name="testclassesdir" value="target/test-classes"> > + </property> > + <property name="testreportdir" value="target/test-reports"> > + </property> > + <property name="distdir" value="dist"> > + </property> > + <property name="javadocdir" value="target/docs/apidocs"> > + </property> > + <property name="final.name" value="commons-jelly-tags-html-1.0-SNAPSHOT"> > + </property> > <target name="init" description="o Initializes some properties"> > - <mkdir dir="lib"></mkdir> > + <mkdir dir="lib"> > + </mkdir> > <condition property="noget"> > - <equals arg2="only" arg1="${build.sysclasspath}"></equals> > + <equals arg2="only" arg1="${build.sysclasspath}"> > + </equals> > </condition> > </target> > - > <target name="compile" description="o Compile the code" > depends="get-deps"> > - > - <mkdir dir="${classesdir}"></mkdir> > - > + <mkdir dir="${classesdir}"> > + </mkdir> > <javac destdir="${classesdir}" deprecation="true" > debug="true" optimize="false" excludes="**/package.html"> > <src> > - <pathelement location="src/java"></pathelement> > + <pathelement location="src/java"> > + </pathelement> > </src> > <classpath> > <fileset dir="lib"> > - <include name="*.jar"></include> > + <include name="*.jar"> > + </include> > </fileset> > </classpath> > </javac> > - > - > - > - > <copy todir="${classesdir}"> > - > - > - > - > <fileset dir="src/java"> > - > - > - <include name="**/*.properties"></include> > - > - > + <include name="**/*.properties"> > + </include> > </fileset> > </copy> > - > - > - > - > - > - > <copy todir="${testclassesdir}"> > - > - > - > - > <fileset dir="src/test"> > - > - > - <include name="**/*.jelly"></include> > - > - <include name="**/*.xml"></include> > - > - <include name="**/*.xsl"></include> > - > - <include name="**/*.rng"></include> > - > - <include name="**/*.dtd"></include> > - > - <include name="**/*.properties"></include> > - > - <include name="**/*.html"></include> > - > - > + <include name="**/*.jelly"> > + </include> > + <include name="**/*.xml"> > + </include> > + <include name="**/*.xsl"> > + </include> > + <include name="**/*.rng"> > + </include> > + <include name="**/*.dtd"> > + </include> > + <include name="**/*.properties"> > + </include> > + <include name="**/*.html"> > + </include> > </fileset> > </copy> > - > - > - > </target> > - > <target name="jar" description="o Create the jar" depends="compile,test"> > - > - <jar jarfile="target/${final.name}.jar" excludes="**/package. > html" basedir="${classesdir}"></jar> > - > + <jar jarfile="target/${final.name}.jar" excludes="**/package. > html" basedir="${classesdir}"> > + </jar> > </target> > - > <target name="clean" description="o Clean up the generated directories"> > - <delete dir="${defaulttargetdir}"></delete> > - <delete dir="${distdir}"></delete> > + <delete dir="${defaulttargetdir}"> > + </delete> > + <delete dir="${distdir}"> > + </delete> > </target> > - > <target name="dist" description="o Create a distribution" > depends="jar, javadoc"> > - <mkdir dir="dist"></mkdir> > + <mkdir dir="dist"> > + </mkdir> > <copy todir="dist"> > - <fileset dir="${defaulttargetdir}"></fileset> > + <fileset dir="${defaulttargetdir}"> > + </fileset> > </copy> > </target> > - > <target name="test" description="o Run the test cases" > if="test.failure" depends="internal-test"> > - <fail message="There were test failures."></fail> > + <fail message="There were test failures."> > + </fail> > </target> > <target name="internal-test" depends="compile-tests"> > - > - <mkdir dir="${testreportdir}"></mkdir> > - <junit dir="./" failureproperty="test.failure" > printSummary="yes" fork="true" haltonerror="true"> > - > - <sysproperty key="basedir" value="."></sysproperty> > - <formatter type="xml"></formatter> > - <formatter usefile="false" type="plain"></formatter> > - <classpath> > - <fileset dir="lib"> > - <include name="*.jar"></include> > - </fileset> > - <pathelement path="${testclassesdir}"></pathelement> > - <pathelement path="${classesdir}"></pathelement> > - </classpath> > - <batchtest todir="${testreportdir}"> > - <fileset dir="src/test"> > - > - <include name="**/Test*.java"></include> > - > - > - > - > - > - </fileset> > - </batchtest> > - </junit> > - > + <mkdir dir="${testreportdir}"> > + </mkdir> > + <junit dir="./" failureproperty="test.failure" > printSummary="yes" fork="true" haltonerror="true"> > + <sysproperty key="basedir" value="."> > + </sysproperty> > + <formatter type="xml"> > + </formatter> > + <formatter usefile="false" type="plain"> > + </formatter> > + <classpath> > + <fileset dir="lib"> > + <include name="*.jar"> > + </include> > + </fileset> > + <pathelement path="${testclassesdir}"> > + </pathelement> > + <pathelement path="${classesdir}"> > + </pathelement> > + </classpath> > + <batchtest todir="${testreportdir}"> > + <fileset dir="src/test"> > + <include name="**/Test*.java"> > + </include> > + </fileset> > + </batchtest> > + </junit> > </target> > - > <target name="compile-tests" depends="compile"> > - > - <mkdir dir="${testclassesdir}"></mkdir> > - <javac destdir="${testclassesdir}" deprecation="true" > debug="true" optimize="false" excludes="**/package.html"> > - <src> > - <pathelement location="src/test"></pathelement> > - </src> > - <classpath> > - <fileset dir="lib"> > - <include name="*.jar"></include> > - </fileset> > - <pathelement path="${classesdir}"></pathelement> > - </classpath> > - </javac> > - > - > - > - > - > + <mkdir dir="${testclassesdir}"> > + </mkdir> > + <javac destdir="${testclassesdir}" deprecation="true" > debug="true" optimize="false" excludes="**/package.html"> > + <src> > + <pathelement location="src/test"> > + </pathelement> > + </src> > + <classpath> > + <fileset dir="lib"> > + <include name="*.jar"> > + </include> > + </fileset> > + <pathelement path="${classesdir}"> > + </pathelement> > + </classpath> > + </javac> > </target> > - > <target name="javadoc" description="o Generate javadoc" depends="jar"> > - > - > - <mkdir dir="${javadocdir}"></mkdir> > - > - > + <mkdir dir="${javadocdir}"> > + </mkdir> > <tstamp> > - <format pattern="2002-yyyy" property="year"></format> > + <format pattern="2002-yyyy" property="year"> > + </format> > </tstamp> > - > - <property name="copyright" value="Copyright &copy; > Apache Software Foundation. All Rights Reserved."></property> > - > - <property name="title" value="commons-jelly-tags-html 1.0- > SNAPSHOT API"></property> > - > + <property name="copyright" value="Copyright &copy; > Apache Software Foundation. All Rights Reserved."> > + </property> > + <property name="title" value="commons-jelly-tags-html 1.0- > SNAPSHOT API"> > + </property> > <javadoc use="true" private="true" destdir="${javadocdir}" > author="true" version="true" sourcepath="src/java" > packagenames="org.apache.commons.jelly.tags.html.*"> > <classpath> > <fileset dir="lib"> > - <include name="*.jar"></include> > + <include name="*.jar"> > + </include> > </fileset> > - <pathelement location="target/${final.name}.jar"></pathelement> > + <pathelement location="target/${final.name}.jar"> > + </pathelement> > </classpath> > </javadoc> > - > </target> > - > <target name="get-deps" unless="noget" depends="init"> > - > - > - <get dest="lib/commons-jexl-1.0-beta-1.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jexl/jars/commons-jexl-1.0-beta-1.jar"></get> > - <get dest="lib/xml-apis-1.0.b2.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/xml- > apis/jars/xml-apis-1.0.b2.jar"></get> > - <get dest="lib/commons-beanutils-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-beanutils/jars/commons-beanutils-SNAPSHOT.jar"></get> > - <get dest="lib/commons-collections-2.1.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-collections/jars/commons-collections-2.1.jar"></get> > - <get dest="lib/commons-logging-1.0.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/commons- > logging/jars/commons-logging-1.0.jar"></get> > - <get dest="lib/dom4j-1.4-dev-8.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/dom4j/jars/dom4j-1.4-dev-8.jar"></get> > - <get dest="lib/jaxp-1.2.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/jaxp/jars/jaxp-1.2.jar > "></get> > - <get dest="lib/xerces-2.2.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/xerces/jars/xerces-2.2.1.jar"></get> > - <get dest="lib/commons-jelly-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-SNAPSHOT.jar"></get> > - <get dest="lib/nekohtml-0.7.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/nekohtml/jars/nekohtml-0.7.1.jar"></get> > - <get dest="lib/commons-cli-SNAPSHOT.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/commons- > cli/jars/commons-cli-SNAPSHOT.jar"></get> > - <get dest="lib/commons-jelly-tags-jsl-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-tags-jsl-SNAPSHOT.jar"></get> > - <get dest="lib/commons-jelly-tags-xml-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-tags-xml-SNAPSHOT.jar"></get> > - > - <get dest="lib/junit-3.8.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/junit/jars/junit-3.8.1.jar"></get> > - <get dest="lib/ant-1.5.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-1.5.jar > "></get> > - <get dest="lib/ant-optional-1.5.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant- > optional-1.5.jar"></get> > - </target> > - > - > - > - > - > - > - > - > - > - > + <get dest="lib/commons-jexl-1.0-beta-1.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jexl/jars/commons-jexl-1.0-beta-1.jar"> > + </get> > + <get dest="lib/xml-apis-1.0.b2.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/xml- > apis/jars/xml-apis-1.0.b2.jar"> > + </get> > + <get dest="lib/commons-beanutils-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-beanutils/jars/commons-beanutils-SNAPSHOT.jar"> > + </get> > + <get dest="lib/commons-collections-2.1.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-collections/jars/commons-collections-2.1.jar"> > + </get> > + <get dest="lib/commons-logging-1.0.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/commons- > logging/jars/commons-logging-1.0.jar"> > + </get> > + <get dest="lib/dom4j-1.4-dev-8.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/dom4j/jars/dom4j-1.4-dev-8.jar"> > + </get> > + <get dest="lib/xerces-2.2.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/xerces/jars/xerces-2.2.1.jar"> > + </get> > + <get dest="lib/commons-jelly-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-SNAPSHOT.jar"> > + </get> > + <get dest="lib/nekohtml-0.7.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/nekohtml/jars/nekohtml-0.7.1.jar"> > + </get> > + <get dest="lib/commons-cli-SNAPSHOT.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/commons- > cli/jars/commons-cli-SNAPSHOT.jar"> > + </get> > + <get dest="lib/commons-jelly-tags-jsl-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-tags-jsl-SNAPSHOT.jar"> > + </get> > + <get dest="lib/commons-jelly-tags-xml-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-tags-xml-SNAPSHOT.jar"> > + </get> > + <get dest="lib/commons-jelly-tags-junit-SNAPSHOT.jar" > usetimestamp="true" ignoreerrors="true" src="http://www.ibiblio. > org/maven/commons-jelly/jars/commons-jelly-tags-junit-SNAPSHOT.jar"> > + </get> > + <get dest="lib/junit-3.8.1.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio. > org/maven/junit/jars/junit-3.8.1.jar"> > + </get> > + <get dest="lib/ant-1.5.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant-1.5.jar"> > + </get> > + <get dest="lib/ant-optional-1.5.jar" usetimestamp="true" > ignoreerrors="true" src="http://www.ibiblio.org/maven/ant/jars/ant- > optional-1.5.jar"> > + </get> > + </target> > <target name="install-maven"> > - > - > - > - <get dest="${user.home}/maven-install-latest.jar" > usetimestamp="true" src="${maven.repo.remote}/maven/maven-install- > latest.jar"></get> > - > - <unjar dest="${maven.home}" src="${user.home}/maven-install- > latest.jar"></unjar> > - > - </target> > - > -</project> > - > \ No newline at end of file > + <get dest="${user.home}/maven-install-latest.jar" > usetimestamp="true" src="${maven.repo.remote}/maven/maven-install-latest.jar"> > + </get> > + <unjar dest="${maven.home}" src="${user.home}/maven-install- > latest.jar"> > + </unjar> > + </target> > +</project> > \ No newline at end of file > > > > 1.2 +1 -0 jakarta-commons-sandbox/jelly/jelly- > tags/html/.cvsignore > > Index: .cvsignore > =================================================================== > RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly- > tags/html/.cvsignore,v > retrieving revision 1.1 > retrieving revision 1.2 > diff -u -r1.1 -r1.2 > --- .cvsignore 5 Jan 2003 07:42:19 -0000 1.1 > +++ .cvsignore 22 Jan 2003 11:21:19 -0000 1.2 > @@ -1,2 +1,3 @@ > target > maven.log > +lib > > > > 1.3 +9 -4 jakarta-commons-sandbox/jelly/jelly- > tags/html/src/test/org/apache/commons/jelly/html/suite.jelly > > Index: suite.jelly > =================================================================== > RCS file: /home/cvs/jakarta-commons-sandbox/jelly/jelly- > tags/html/src/test/org/apache/commons/jelly/html/suite.jelly,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -u -r1.2 -r1.3 > --- suite.jelly 20 Jan 2003 07:02:10 -0000 1.2 > +++ suite.jelly 22 Jan 2003 11:21:20 -0000 1.3 > @@ -54,24 +54,29 @@ > </test:case> > > <test:case name="testInlineFromVar"> > + > + <!-- this will turn the HTML markup from XML events into text --> > <j:set var="html" encode="false"> > <html> > <head> > <title>Jelly - Jelly : Java and XML based processing > engine</title> > - <meta name="author" value="James Strachan"/> > + <meta name="author" value="James Strachan"/> > <meta name="email" value="[EMAIL PROTECTED]" /> > </head> > <body> > </body> > </html> > </j:set> > - > - <html:parse var="doc">${html}</html:parse> > + > + <!-- parse the text as markup --> > + <html:parse var="doc" text="${html}"/> > > <test:assert xpath="$doc/html/head/title"/> > > <j:set var="title"><x:expr select="$doc/html/head/title" /></j:set> > - <test:assertEquals expected="Jelly - Jelly : Java and XML > based processing engine" > + > + <test:assertEquals > + expected="Jelly - Jelly : Java and XML based processing engine" > actual="${title}" /> > </test:case> > > > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > ForwardSourceID:NT000A689E -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
