You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by an...@apache.org on 2001/03/19 13:33:15 UTC

cvs commit: jakarta-log4j/org/apache/log4j/xml DOMConfigurator.java

anders      01/03/19 04:33:15

  Modified:    org/apache/log4j PropertyConfigurator.java
               org/apache/log4j/xml DOMConfigurator.java
  Log:
  Updated to use JavaBeans based config/PropertySetter.
  
  Revision  Changes    Path
  1.17      +9 -2      jakarta-log4j/org/apache/log4j/PropertyConfigurator.java
  
  Index: PropertyConfigurator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/org/apache/log4j/PropertyConfigurator.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- PropertyConfigurator.java	2001/02/21 22:28:14	1.16
  +++ PropertyConfigurator.java	2001/03/19 12:33:15	1.17
  @@ -15,6 +15,8 @@
   import org.apache.log4j.Category;
   import org.apache.log4j.Priority;
   import org.apache.log4j.DefaultCategoryFactory;
  +import org.apache.log4j.config.PropertySetter;
  +import org.apache.log4j.config.PropertySetterException;
   import org.apache.log4j.spi.OptionHandler;
   import org.apache.log4j.spi.Configurator;
   import org.apache.log4j.spi.CategoryFactory;
  @@ -74,6 +76,7 @@
   
   
      @author Ceki Gülcü
  +   @author Anders Kristensen
      @since 0.8.1 */
   public class PropertyConfigurator extends BasicConfigurator
              implements Configurator {
  @@ -437,6 +440,7 @@
       }
     }
   
  +  /*
     void configureOptionHandler(OptionHandler oh, String prefix,
   			      Properties props) {
       String[] options = oh.getOptionStrings();
  @@ -456,6 +460,7 @@
       }
       oh.activateOptions();
     }
  +  */
     
       
     void configureRootCategory(Properties props, Hierarchy hierarchy) {
  @@ -595,11 +600,13 @@
   	if(layout != null) {
   	  appender.setLayout(layout);
   	  LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
  -	  configureOptionHandler(layout, layoutPrefix + ".", props);
  +	  //configureOptionHandler(layout, layoutPrefix + ".", props);
  +          PropertySetter.setProperties(layout, props, layoutPrefix + ".");
   	  LogLog.debug("End of parsing for \"" + appenderName +"\".");      
   	}
         }
  -      configureOptionHandler((OptionHandler) appender, prefix + ".", props);
  +      //configureOptionHandler((OptionHandler) appender, prefix + ".", props);
  +      PropertySetter.setProperties(appender, props, prefix + ".");
         LogLog.debug("Parsed \"" + appenderName +"\" options.");
       }
       registryPut(appender);
  
  
  
  1.12      +29 -35    jakarta-log4j/org/apache/log4j/xml/DOMConfigurator.java
  
  Index: DOMConfigurator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/org/apache/log4j/xml/DOMConfigurator.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DOMConfigurator.java	2001/01/22 22:11:37	1.11
  +++ DOMConfigurator.java	2001/03/19 12:33:15	1.12
  @@ -25,6 +25,7 @@
   import org.apache.log4j.BasicConfigurator;
   import org.apache.log4j.helpers.LogLog;
   import org.apache.log4j.spi.Filter;
  +import org.apache.log4j.config.PropertySetter;
   import org.apache.log4j.helpers.OptionConverter;
   import org.apache.log4j.helpers.FileWatchdog;
   import org.xml.sax.InputSource;
  @@ -51,6 +52,7 @@
      
      @author <a href=mailto:cstaylor@pacbell.net>Christopher Taylor</a>
      @author Ceki G&uuml;lc&uuml;
  +   @author Anders Kristensen
   
      @since 0.8.3 */
   public class DOMConfigurator extends BasicConfigurator implements Configurator {
  @@ -147,6 +149,7 @@
       try {
         Object instance 	= Class.forName(className).newInstance();
         Appender appender	= (Appender)instance;
  +      PropertySetter propSetter = new PropertySetter(appender);
   
         appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));
         
  @@ -162,9 +165,7 @@
   
   	  // Parse appender parameters 
   	  if (currentElement.getTagName().equals(PARAM_TAG)) {
  -	    if(appender instanceof OptionHandler) {
  -	      parseParameters(currentElement, (OptionHandler) appender);
  -	    }
  +            setParameter(currentElement, propSetter);
   	  }
   	  // Set appender layout
   	  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
  @@ -191,10 +192,8 @@
   	    }
   	  }
   	}
  -      }
  -      if(appender instanceof OptionHandler) {
  -	((OptionHandler) appender).activateOptions();
         }
  +      propSetter.activate();
         return appender;
       }
       /* Yes, it's ugly.  But all of these exceptions point to the same
  @@ -215,7 +214,9 @@
                                          subst(element.getAttribute(CLASS_ATTR)),
                                          org.apache.log4j.spi.ErrorHandler.class, 
    				       null);
  +    
       if(eh != null) {
  +      PropertySetter propSetter = new PropertySetter(eh);
         NodeList children = element.getChildNodes();
         final int length 	= children.getLength();
   
  @@ -225,28 +226,16 @@
   	  Element currentElement = (Element) currentNode;
   	  String tagName = currentElement.getTagName();
   	  if(tagName.equals(PARAM_TAG)) {
  -	    parseParameters(currentElement, eh);
  +            setParameter(currentElement, propSetter);
   	  }
   	}
         }
  +      propSetter.activate();
         appender.setErrorHandler(eh);
       }
     }
     
     /**
  -     Used internally to parse an <code>param</code> element.
  -   */
  -  protected
  -  void parseParameters(Element elem, OptionHandler oh) {
  -    String name = subst(elem.getAttribute(NAME_ATTR));
  -    String value = subst(elem.getAttribute(VALUE_ATTR));
  -    LogLog.debug("Handling parameter \""+name+ "="+value+'\"');	   
  -    if(oh instanceof OptionHandler && value != null) {
  -      oh.setOption(name, OptionConverter.convertSpecialChars(value));
  -    }
  -  }
  -
  -  /**
        Used internally to parse a filter element.
      */
     protected
  @@ -256,6 +245,7 @@
                                                   Filter.class, null);
       
       if(filter != null) {
  +      PropertySetter propSetter = new PropertySetter(filter);
         NodeList children = element.getChildNodes();
         final int length 	= children.getLength();
   
  @@ -265,10 +255,11 @@
   	  Element currentElement = (Element) currentNode;
   	  String tagName = currentElement.getTagName();
   	  if(tagName.equals(PARAM_TAG)) {
  -	    parseParameters(currentElement, filter);
  +            setParameter(currentElement, propSetter);
   	  }
   	}
         }
  +      propSetter.activate();
         appender.addFilter(filter);
       }    
     }
  @@ -338,7 +329,9 @@
     protected
     void parseChildrenOfCategoryElement(Element catElement,
   				      Category cat, boolean isRoot) {
  -				      
  +    
  +    PropertySetter propSetter = new PropertySetter(cat);
  +    
       // Remove all existing appenders from cat. They will be
       // reconstructed if need be.
       cat.removeAllAppenders();
  @@ -369,14 +362,11 @@
   	} else if(tagName.equals(PRIORITY_TAG)) {
   	  parsePriority(currentElement, cat, isRoot);	
   	} else if(tagName.equals(PARAM_TAG)) {
  -	  if(cat instanceof OptionHandler) {
  -	    OptionHandler oh = (OptionHandler) cat;
  -	    parseParameters(currentElement, oh);
  -	    oh.activateOptions();
  -	  }
  +          setParameter(currentElement, propSetter);
   	}
         }
       }
  +    propSetter.activate();
     }
   
     /**
  @@ -389,6 +379,7 @@
       try {
         Object instance 	= Class.forName(className).newInstance();
         Layout layout   	= (Layout)instance;
  +      PropertySetter propSetter = new PropertySetter(layout);
         
         NodeList params 	= layout_element.getChildNodes();
         final int length 	= params.getLength();
  @@ -399,13 +390,12 @@
   	  Element currentElement = (Element) currentNode;
   	  String tagName = currentElement.getTagName();
   	  if(tagName.equals(PARAM_TAG)) {
  -	    parseParameters(currentElement, layout);
  +            setParameter(currentElement, propSetter);
   	  }
   	}
         }
  -
  -      /* Now make those options take effect */
  -      layout.activateOptions();
  +      
  +      propSetter.activate();
         return layout;
       }
       catch (Exception oops) {
  @@ -463,7 +453,14 @@
   	}
         }
       }
  -    LogLog.debug(catName +" priority set to " +cat.getPriority());    
  +    LogLog.debug(catName + " priority set to " + cat.getPriority());    
  +  }
  +
  +  protected
  +  void setParameter(Element elem, PropertySetter propSetter) {
  +    String name = subst(elem.getAttribute(NAME_ATTR));
  +    String value = subst(elem.getAttribute(VALUE_ATTR));
  +    propSetter.setProperty(name, OptionConverter.convertSpecialChars(value));
     }
   
   
  @@ -493,8 +490,6 @@
       configureAndWatch(configFilename, FileWatchdog.DEFAULT_DELAY);
     }
   
  -
  -
     /**
        Read the configuration file <code>configFilename</code> if it
        exists. Moreover, a thread will be created that will periodically
  @@ -531,7 +526,6 @@
         LogLog.error("Could not open ["+url+"].", e);
       }
     }
  -
   
     /**
        Configure log4j by reading in a log4j.dtd compliant XML
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-cvs-help@jakarta.apache.org