You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2002/12/19 11:52:33 UTC

cvs commit: jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/util foo.properties suite.jelly

jstrachan    2002/12/19 02:52:33

  Modified:    jelly/src/java/org/apache/commons/jelly/tags/util
                        PropertiesTag.java
               jelly/src/test/org/apache/commons/jelly/util suite.jelly
  Added:       jelly/src/test/org/apache/commons/jelly/util foo.properties
  Log:
  Added the ability of the <util:properties> tag to create a new Properties variable if required. This can be handy for loading properties from a file and then passing them as a variable to some Maven task for example
  
  Revision  Changes    Path
  1.4       +24 -7     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/PropertiesTag.java
  
  Index: PropertiesTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/util/PropertiesTag.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PropertiesTag.java	11 Dec 2002 12:41:00 -0000	1.3
  +++ PropertiesTag.java	19 Dec 2002 10:52:33 -0000	1.4
  @@ -78,6 +78,7 @@
   public class PropertiesTag extends TagSupport {
       private String file;
       private String uri;
  +    private String var;
   
       public PropertiesTag() {
       }
  @@ -104,13 +105,18 @@
           }
           Properties props = new Properties();
           props.load(is);
  -        Enumeration enum = props.propertyNames();
  -        while (enum.hasMoreElements()) {
  -            String key = (String) enum.nextElement();
  -            String value = props.getProperty(key);
  -            
  -            // @todo we should parse the value in case its an Expression
  -            context.setVariable(key, value);
  +        if (var != null) {
  +            context.setVariable(var, props);
  +        }
  +        else {
  +            Enumeration enum = props.propertyNames();
  +            while (enum.hasMoreElements()) {
  +                String key = (String) enum.nextElement();
  +                String value = props.getProperty(key);
  +                
  +                // @todo we should parse the value in case its an Expression
  +                context.setVariable(key, value);
  +            }
           }
   
       }
  @@ -131,6 +137,17 @@
        */
       public void setUri(String uri) {
           this.uri = uri;
  +    }
  +
  +    /**
  +     * If this is defined then a Properties object containing all the
  +     * properties will be created and exported, otherwise the current variable
  +     * scope will be set to the value of the properties.
  +     * 
  +     * @param var The var to set
  +     */
  +    public void setVar(String var) {
  +        this.var = var;
       }
   
   }
  
  
  
  1.5       +18 -0     jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/util/suite.jelly
  
  Index: suite.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/util/suite.jelly,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- suite.jelly	16 Nov 2002 10:15:45 -0000	1.4
  +++ suite.jelly	19 Dec 2002 10:52:33 -0000	1.5
  @@ -100,5 +100,23 @@
         and placed the result into a variable
       </test:assertEquals>
     </test:case>
  +
  +  <test:case name="testProperties">
  +  	
  +  	<util:properties uri="foo.properties"/>
  +  	
  +    <test:assertEquals expected="ABC" actual="${foo}"/>
  +    
  +  </test:case>
  +	
  +  <test:case name="testPropertiesVar">
  +  	
  +  	<util:properties uri="foo.properties" var="props"/>
  +  	
  +    <test:assertEquals expected="ABC" actual="${props.foo}"/>
  +    
  +    <log:info>Loaded properties value ${props}</log:info>
  +    
  +  </test:case>
   	
   </test:suite>
  
  
  
  1.1                  jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/util/foo.properties
  
  Index: foo.properties
  ===================================================================
  foo=ABC
  bar=XYZ
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>