commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jstrac...@apache.org
Subject cvs commit: jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/beanshell TestBeanShellEL.java
Date Wed, 13 Feb 2002 17:03:10 GMT
jstrachan    02/02/13 09:03:10

  Modified:    jelly    build.xml
               jelly/src/java/org/apache/commons/jelly TagLibrary.java
               jelly/src/java/org/apache/commons/jelly/expression/beanshell
                        BeanShellExpressionFactory.java
               jelly/src/java/org/apache/commons/jelly/parser
                        XMLParser.java
               jelly/src/java/org/apache/commons/jelly/tags/core
                        CoreTagLibrary.java
               jelly/src/java/org/apache/commons/jelly/tags/xml
                        XMLTagLibrary.java
               jelly/src/test/org/apache/commons/jelly testing123.jelly
               jelly/src/test/org/apache/commons/jelly/beanshell
                        TestBeanShellEL.java
  Added:       jelly/src/test/org/apache/commons/jelly
                        show_properties.jelly
  Log:
  Modified the core tags so that the common tags expect an expression for their attributes.
Tags which do not explicitly expect an expression for their attribute values can take {} around
the expressions which will then be evaluated as an expression. This is kinda similar to 'Attribute
Value Templates' in XSLT. It certainly makes common core tags look much simpler. Also added
a sample script to output the current system properties as a HTML table to show the general
idea
  
  Revision  Changes    Path
  1.4       +9 -1      jakarta-commons-sandbox/jelly/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/build.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- build.xml	13 Feb 2002 16:00:39 -0000	1.3
  +++ build.xml	13 Feb 2002 17:03:09 -0000	1.4
  @@ -3,7 +3,7 @@
   
   <!--
           "Digester" component of the Jakarta Commons Subproject
  -        $Id: build.xml,v 1.3 2002/02/13 16:00:39 jstrachan Exp $
  +        $Id: build.xml,v 1.4 2002/02/13 17:03:09 jstrachan Exp $
   -->
   
   
  @@ -299,6 +299,14 @@
         <arg value="one"/> 
         <arg value="two"/> 
         <arg value="three"/> 
  +    </java>
  +   </target>
  +
  +   <target name="demo.sysprop" depends="compile" 
  +      description="Runs demo which displays system properties">
  +    <java classname="org.apache.commons.jelly.Jelly" fork="yes">
  +      <classpath refid="test.classpath"/>
  +      <arg value="src/test/org/apache/commons/jelly/show_properties.jelly"/> 
       </java>
      </target>
   
  
  
  
  1.2       +7 -6      jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java
  
  Index: TagLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TagLibrary.java	11 Feb 2002 00:27:40 -0000	1.1
  +++ TagLibrary.java	13 Feb 2002 17:03:09 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java,v
1.1 2002/02/11 00:27:40 jstrachan Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/02/11 00:27:40 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java,v
1.2 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.2 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    * 
  - * $Id: TagLibrary.java,v 1.1 2002/02/11 00:27:40 jstrachan Exp $
  + * $Id: TagLibrary.java,v 1.2 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly;
   
  @@ -66,6 +66,7 @@
   import java.util.Map;
   
   import org.apache.commons.jelly.expression.Expression;
  +import org.apache.commons.jelly.expression.ExpressionFactory;
   import org.apache.commons.jelly.impl.TagScript;
   
   import org.xml.sax.Attributes;
  @@ -73,7 +74,7 @@
   /** <p><code>Taglib</code> represents the metadata for a Jelly custom
tag library.</p>
     *
     * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  -  * @version $Revision: 1.1 $
  +  * @version $Revision: 1.2 $
     */
   public abstract class TagLibrary {
   
  @@ -90,7 +91,7 @@
       }
       
       /** Allows taglibs to use their own expression evaluation mechanism */
  -    public Expression createExpression(String tagName, String attributeName, String attributeValue)
{
  +    public Expression createExpression(ExpressionFactory factory, String tagName, String
attributeName, String attributeValue) throws Exception {
           // will use the default expression instead
           return null;
       }
  
  
  
  1.3       +6 -11     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/expression/beanshell/BeanShellExpressionFactory.java
  
  Index: BeanShellExpressionFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/expression/beanshell/BeanShellExpressionFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BeanShellExpressionFactory.java	13 Feb 2002 16:00:39 -0000	1.2
  +++ BeanShellExpressionFactory.java	13 Feb 2002 17:03:09 -0000	1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/expression/beanshell/BeanShellExpressionFactory.java,v
1.2 2002/02/13 16:00:39 jstrachan Exp $
  - * $Revision: 1.2 $
  - * $Date: 2002/02/13 16:00:39 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/expression/beanshell/BeanShellExpressionFactory.java,v
1.3 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.3 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    * 
  - * $Id: BeanShellExpressionFactory.java,v 1.2 2002/02/13 16:00:39 jstrachan Exp $
  + * $Id: BeanShellExpressionFactory.java,v 1.3 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly.expression.beanshell;
   
  @@ -67,7 +67,7 @@
   /** Represents a factory of <a href="http://www.beanshell.org">beanshell</a>
expressions
     *
     * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  -  * @version $Revision: 1.2 $
  +  * @version $Revision: 1.3 $
     */
   public class BeanShellExpressionFactory implements ExpressionFactory {
   
  @@ -77,11 +77,6 @@
       // ExpressionFactory interface
       //------------------------------------------------------------------------- 
       public Expression createExpression(String text) throws Exception {
  -        int length = text.length();
  -        if ( length > 2 && text.charAt(0) == '{'  && text.charAt( length
- 1 ) == '}' ) {
  -            text = text.substring( 1, length - 1 );
  -            return new BeanShellExpression(text, interpreter);
  -        }
  -        return null;
  +        return new BeanShellExpression(text, interpreter);
       }
   }
  
  
  
  1.5       +14 -9     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java
  
  Index: XMLParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLParser.java	13 Feb 2002 16:00:39 -0000	1.4
  +++ XMLParser.java	13 Feb 2002 17:03:09 -0000	1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java,v
1.4 2002/02/13 16:00:39 jstrachan Exp $
  - * $Revision: 1.4 $
  - * $Date: 2002/02/13 16:00:39 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java,v
1.5 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.5 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    *
  - * $Id: XMLParser.java,v 1.4 2002/02/13 16:00:39 jstrachan Exp $
  + * $Id: XMLParser.java,v 1.5 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly.parser;
   
  @@ -115,7 +115,7 @@
    * The SAXParser and XMLReader portions of this code come from Digester.</p>
    *
    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class XMLParser extends DefaultHandler {
       
  @@ -932,7 +932,7 @@
                   for ( int i = 0; i < size; i++ ) {
                       String attributeName = list.getLocalName(i);
                       String attributeValue = list.getValue(i);
  -                    Expression expression = taglib.createExpression( localName, attributeName,
attributeValue );
  +                    Expression expression = taglib.createExpression( getExpressionFactory(),
localName, attributeName, attributeValue );
                       if ( expression == null ) {
                           expression = createExpression( localName, attributeName, attributeValue
);
                       }
  @@ -954,9 +954,14 @@
       }
       
       protected Expression createExpression( String tagName, String attributeName, String
attributeValue ) throws Exception {
  -        Expression answer = getExpressionFactory().createExpression( attributeValue );
  -        if ( answer != null ) {
  -            return answer;
  +        String text = attributeValue;
  +        int length = text.length();
  +        if ( length > 2 && text.charAt(0) == '{'  && text.charAt( length
- 1 ) == '}' ) {
  +            text = text.substring( 1, length - 1 );
  +            Expression answer = getExpressionFactory().createExpression( text );
  +            if ( answer != null ) {
  +                return answer;
  +            }
           }
           return new ConstantExpression( attributeValue );
       }
  
  
  
  1.2       +12 -3     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java
  
  Index: CoreTagLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CoreTagLibrary.java	12 Feb 2002 21:34:34 -0000	1.1
  +++ CoreTagLibrary.java	13 Feb 2002 17:03:09 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java,v
1.1 2002/02/12 21:34:34 jstrachan Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/02/12 21:34:34 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java,v
1.2 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.2 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    * 
  - * $Id: CoreTagLibrary.java,v 1.1 2002/02/12 21:34:34 jstrachan Exp $
  + * $Id: CoreTagLibrary.java,v 1.2 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly.tags.core;
   
  @@ -70,12 +70,13 @@
   import org.apache.commons.jelly.Script;
   import org.apache.commons.jelly.TagLibrary;
   import org.apache.commons.jelly.expression.Expression;
  +import org.apache.commons.jelly.expression.ExpressionFactory;
   
   
   /** Describes the Taglib. This class could be generated by XDoclet
     *
     * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  -  * @version $Revision: 1.1 $
  +  * @version $Revision: 1.2 $
     */
   public class CoreTagLibrary extends TagLibrary {
   
  @@ -84,5 +85,13 @@
           registerTag( "forEach", ForEachTag.class );
           registerTag( "jelly", JellyTag.class );
           registerTag( "set", SetTag.class );
  +    }
  +    
  +    public Expression createExpression(ExpressionFactory factory, String tagName, String
attributeName, String attributeValue) throws Exception {
  +        if (attributeName.equals( "value" ) || attributeName.equals( "items" )  || attributeName.equals(
"test" ) ) {
  +            return factory.createExpression( attributeValue );
  +        }
  +        // will use the default expression instead
  +        return null;
       }
   }
  
  
  
  1.2       +7 -6      jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/xml/XMLTagLibrary.java
  
  Index: XMLTagLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/xml/XMLTagLibrary.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLTagLibrary.java	11 Feb 2002 00:27:41 -0000	1.1
  +++ XMLTagLibrary.java	13 Feb 2002 17:03:09 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/xml/XMLTagLibrary.java,v
1.1 2002/02/11 00:27:41 jstrachan Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/02/11 00:27:41 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/xml/XMLTagLibrary.java,v
1.2 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.2 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    * 
  - * $Id: XMLTagLibrary.java,v 1.1 2002/02/11 00:27:41 jstrachan Exp $
  + * $Id: XMLTagLibrary.java,v 1.2 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly.tags.xml;
   
  @@ -70,6 +70,7 @@
   import org.apache.commons.jelly.Script;
   import org.apache.commons.jelly.TagLibrary;
   import org.apache.commons.jelly.expression.Expression;
  +import org.apache.commons.jelly.expression.ExpressionFactory;
   
   import org.dom4j.XPath;
   
  @@ -77,7 +78,7 @@
   /** Describes the Taglib. This class could be generated by XDoclet
     *
     * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  -  * @version $Revision: 1.1 $
  +  * @version $Revision: 1.2 $
     */
   public class XMLTagLibrary extends TagLibrary {
   
  @@ -88,7 +89,7 @@
           registerTag( "set", SetTag.class );
       }
       
  -    public Expression createExpression(String tagName, String attributeName, String attributeValue)
{
  +    public Expression createExpression(ExpressionFactory factory, String tagName, String
attributeName, String attributeValue) {
           if (attributeName.equals( "select" ) ) {
               return new XPathExpression( attributeValue );
           }
  
  
  
  1.2       +1 -3      jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/testing123.jelly
  
  Index: testing123.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/testing123.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- testing123.jelly	13 Feb 2002 16:00:39 -0000	1.1
  +++ testing123.jelly	13 Feb 2002 17:03:09 -0000	1.2
  @@ -1,6 +1,4 @@
   <?xml version="1.0"?>
   <j:jelly xmlns:j="jelly:core">
  -  <j:forEach var="arg" items="{args}">
  -    <j:expr value="{arg}"/> 
  -  </j:forEach>
  +  <j:forEach var="arg" items="args"><j:expr value="arg"/> </j:forEach>
   </j:jelly>
  
  
  
  1.1                  jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/show_properties.jelly
  
  Index: show_properties.jelly
  ===================================================================
  <?xml version="1.0"?>
  <j:jelly xmlns:j="jelly:core">
  <html>
    <body>
      <h1>System properties</h1>
      <table>
        <tr>
          <th>Name</th>
          <th>Value</th>
        </tr>
        <j:forEach var="iter" items="System.getProperties()">
          <tr>
            <td><j:expr value="iter.key"/></td>
            <td><j:expr value="iter.value"/></td>
          </tr>
        </j:forEach>
      </table>
    </body>
  </html>
  </j:jelly>
  
  
  1.2       +7 -7      jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/beanshell/TestBeanShellEL.java
  
  Index: TestBeanShellEL.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/beanshell/TestBeanShellEL.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestBeanShellEL.java	13 Feb 2002 16:00:39 -0000	1.1
  +++ TestBeanShellEL.java	13 Feb 2002 17:03:09 -0000	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/beanshell/TestBeanShellEL.java,v
1.1 2002/02/13 16:00:39 jstrachan Exp $
  - * $Revision: 1.1 $
  - * $Date: 2002/02/13 16:00:39 $
  + * $Header: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/beanshell/TestBeanShellEL.java,v
1.2 2002/02/13 17:03:09 jstrachan Exp $
  + * $Revision: 1.2 $
  + * $Date: 2002/02/13 17:03:09 $
    *
    * ====================================================================
    *
  @@ -57,7 +57,7 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    * 
  - * $Id: TestBeanShellEL.java,v 1.1 2002/02/13 16:00:39 jstrachan Exp $
  + * $Id: TestBeanShellEL.java,v 1.2 2002/02/13 17:03:09 jstrachan Exp $
    */
   package org.apache.commons.jelly.beanshell;
   
  @@ -78,7 +78,7 @@
   /** Tests the BeanShell EL
     *
     * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
  -  * @version $Revision: 1.1 $
  +  * @version $Revision: 1.2 $
     */
   public class TestBeanShellEL extends TestCase {
       
  @@ -112,8 +112,8 @@
       }
       
       public void testEL() throws Exception {
  -        assertExpression( "{foo}", "abc" );
  -        assertExpression( "{bar * 2}", new Integer( 246 ) );
  +        assertExpression( "foo", "abc" );
  +        assertExpression( "bar * 2", new Integer( 246 ) );
       }    
       
       /** Evaluates the given expression text and tests it against the expected value */
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message