jstrachan 2002/10/23 03:58:59 Modified: jelly/src/java/org/apache/commons/jelly/impl DynamicTagLibrary.java jelly/src/test/org/apache/commons/jelly/define suite.jelly Log: Applied Tim Anderson's patch to fix dynamic tag libraries so that inheritence works properly now. Revision Changes Path 1.6 +6 -7 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DynamicTagLibrary.java Index: DynamicTagLibrary.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DynamicTagLibrary.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DynamicTagLibrary.java 16 Oct 2002 12:45:52 -0000 1.5 +++ DynamicTagLibrary.java 23 Oct 2002 10:58:59 -0000 1.6 @@ -98,13 +98,7 @@ return new TagScript( new TagFactory() { public Tag createTag(String name, Attributes attributes) throws Exception { - Tag answer = DynamicTagLibrary.this.createTag(name, attributes); - - // delegate to my parent instead - if ( answer == null && parent != null ) { - return parent.createTag(name, attributes); - } - return answer; + return DynamicTagLibrary.this.createTag(name, attributes); } } ); @@ -122,7 +116,12 @@ else if ( value instanceof TagFactory ) { TagFactory factory = (TagFactory) value; return factory.createTag(name, attributes); + } + else if ( parent != null ) { + // delegate to the parent + return parent.createTag(name, attributes); } + return null; } 1.4 +22 -0 jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/define/suite.jelly Index: suite.jelly =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/define/suite.jelly,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- suite.jelly 28 Aug 2002 09:19:57 -0000 1.3 +++ suite.jelly 23 Oct 2002 10:58:59 -0000 1.4 @@ -97,5 +97,27 @@ actual="${customer.dynaClass.name}"/> </test:case> + +<test:case name="testTaglibInheritTest" xmlns="taglibInherit"> + + <define:taglib uri="taglibInherit" inherit="false"> + <define:tag name="foo"> + bar + </define:tag> + </define:taglib> + + <define:taglib uri="taglibInherit" inherit="true"> + <define:tag name="foo2"> + bar2 + </define:tag> + </define:taglib> + + <j:set var="output"> + <foo/> + </j:set> + + <test:assertEquals expected="bar" actual="${output}"/> + +</test:case> </test:suite>
-- To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>