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>

Reply via email to