You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by ba...@locus.apache.org on 2000/02/02 08:42:21 UTC

cvs commit: xml-cocoon/src/org/apache/cocoon/framework Configurations.java

balld       00/02/01 23:42:21

  Modified:    src/org/apache/cocoon/framework Configurations.java
  Log:
  Changed class so that it contains a Properties object, not extends Properties.
  This is so that it's easier to write a subclass of Configurations for graceful
  upgrading to an XML conf file. I didn't want to have to worry about providing
  wrapper methods for everything in Properties, just everything in
  Configurations. Everything still works fine with cocoon's classes, but this
  _might_ break 3rd party modules that use Properties method calls on their
  Configurations objects that aren't replicated in the new plain jane
  Configurations object. Please email me if you have such a module and we'll
  rethink this.
  
  Revision  Changes    Path
  1.5       +33 -14    xml-cocoon/src/org/apache/cocoon/framework/Configurations.java
  
  Index: Configurations.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/framework/Configurations.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Configurations.java	2000/01/03 01:46:00	1.4
  +++ Configurations.java	2000/02/02 07:42:21	1.5
  @@ -1,4 +1,4 @@
  -/*-- $Id: Configurations.java,v 1.4 2000/01/03 01:46:00 stefano Exp $ --
  +/*-- $Id: Configurations.java,v 1.5 2000/02/02 07:42:21 balld Exp $ --
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -58,15 +58,16 @@
    * class to work.
    *
    * @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
  - * @version $Revision: 1.4 $ $Date: 2000/01/03 01:46:00 $
  + * @version $Revision: 1.5 $ $Date: 2000/02/02 07:42:21 $
    */
   
  -public class Configurations extends Properties {
  +public class Configurations {
   
  -    private String baseName;
  +    protected String baseName;
  +	protected Properties properties;
   
       public Configurations() {
  -        super();
  +		properties = new Properties();
       }
   
       /**
  @@ -80,9 +81,13 @@
        * Create the class with given defaults and from the file
        */
       public Configurations(String file, Configurations defaults) throws Exception {
  -        this(defaults);
  +		if (defaults != null) {
  +        	properties = new Properties(defaults.properties);
  +		} else {
  +			properties = new Properties();
  +		}
           InputStream input = new FileInputStream(file);
  -        load(input);
  +        properties.load(input);
           input.close();
       }
   
  @@ -90,28 +95,35 @@
        * Create the class with given defaults.
        */
       public Configurations(Configurations c) {
  -        super(c);
  +		properties = new Properties(c.properties);
       }
   
       /**
        * Set the configuration.
        */
       public void set(String key, Object value) {
  -        super.put(key, value);
  +        properties.put(key, value);
       }
   
  +	/**
  +	 * The JavaModule interpreter is using this method. should it?
  +	 */
  +	public void put(String key, Object value) {
  +		properties.put(key,value);
  +	}
  +
       /**
        * Get the configuration.
        */
       public Object get(String key) {
  -        return super.get(key);
  +        return properties.get(key);
       }
   
       /**
        * Get the configuration and use the given default value if not found.
        */
       public Object get(String key, Object def) {
  -        Object o = super.get(key);
  +        Object o = properties.get(key);
           return (o == null) ? def : o;
       }
   
  @@ -119,7 +131,7 @@
        * Get the configuration, throw an exception if not present.
        */
       public Object getNotNull(String key) {
  -        Object o = super.get(key);
  +        Object o = properties.get(key);
           if (o == null) {
               throw new RuntimeException("Cocoon configuration item '" + ((baseName == null) ? "" : baseName + "." + key) + "' is not set");
           } else {
  @@ -150,7 +162,7 @@
           c.setBasename((baseName == null) ? base : baseName + "." + base);
           String prefix = base + ".";
   
  -        Enumeration keys = this.propertyNames();
  +        Enumeration keys = properties.propertyNames();
           while (keys.hasMoreElements()) {
               String key = (String) keys.nextElement();
   
  @@ -167,4 +179,11 @@
       public void setBasename(String baseName) {
           this.baseName = baseName;
       }
  -}
  \ No newline at end of file
  +
  +	/**
  +	 * Used by XSPProcessor, but this maybe should be getKeys()?
  +	 */
  +	public Enumeration keys() {
  +		return properties.keys();
  +	}
  +}