ceki        2004/03/30 09:42:41

  Modified:    src/java/org/apache/log4j/joran/action AppenderAction.java
                        LevelAction.java ConversionRuleAction.java
                        RootLoggerAction.java LayoutAction.java
                        LoggerAction.java AppenderRefAction.java
               src/java/org/apache/joran JoranParser.java
               src/java/org/apache/joran/action ParamAction.java
                        NewRuleAction.java NestComponentIA.java Action.java
               tests/src/java/org/apache/joran/action
                        StackCounterAction.java HelloAction.java
               tests/src/java/org/apache/joran SimpleStoreTest.java
  Log:
  Joran actions now report the location of the error in the xml file being parsed.
  
  Revision  Changes    Path
  1.4       +2 -1      
logging-log4j/src/java/org/apache/log4j/joran/action/AppenderAction.java
  
  Index: AppenderAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/AppenderAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AppenderAction.java       30 Mar 2004 17:13:22 -0000      1.3
  +++ AppenderAction.java       30 Mar 2004 17:42:41 -0000      1.4
  @@ -26,6 +26,7 @@
   import org.apache.log4j.spi.OptionHandler;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   import java.util.HashMap;
   
  @@ -39,7 +40,7 @@
      *
      * The appender thus generated is placed in the ExecutionContext appender bag.
      */
  -  public void begin(ExecutionContext ec, String localName, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String localName, Attributes attributes, 
Locator locator) {
       String className =
         attributes.getValue(CLASS_ATTRIBUTE);
   
  
  
  
  1.3       +2 -1      
logging-log4j/src/java/org/apache/log4j/joran/action/LevelAction.java
  
  Index: LevelAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/LevelAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LevelAction.java  30 Mar 2004 17:13:22 -0000      1.2
  +++ LevelAction.java  30 Mar 2004 17:42:41 -0000      1.3
  @@ -8,6 +8,7 @@
   import org.apache.log4j.helpers.Loader;
   import org.apache.log4j.helpers.OptionConverter;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   import java.lang.reflect.Method;
   
  @@ -23,7 +24,7 @@
   
     static final Class[] ONE_STRING_PARAM = new Class[] { String.class };
   
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       
                Object o = ec.peekObject();
                
  
  
  
  1.4       +2 -1      
logging-log4j/src/java/org/apache/log4j/joran/action/ConversionRuleAction.java
  
  Index: ConversionRuleAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/ConversionRuleAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ConversionRuleAction.java 30 Mar 2004 17:13:22 -0000      1.3
  +++ ConversionRuleAction.java 30 Mar 2004 17:42:41 -0000      1.4
  @@ -26,6 +26,7 @@
   
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class ConversionRuleAction extends Action {
  @@ -36,7 +37,7 @@
      * Instantiates an layout of the given class and sets its name.
      *
      */
  -  public void begin(ExecutionContext ec, String localName, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String localName, Attributes attributes, 
Locator locator) {
       // Let us forget about previous errors (in this object)
       inError = false;
   
  
  
  
  1.4       +2 -2      
logging-log4j/src/java/org/apache/log4j/joran/action/RootLoggerAction.java
  
  Index: RootLoggerAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/RootLoggerAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RootLoggerAction.java     30 Mar 2004 17:13:22 -0000      1.3
  +++ RootLoggerAction.java     30 Mar 2004 17:42:41 -0000      1.4
  @@ -22,8 +22,8 @@
   import org.apache.log4j.Logger;
   import org.apache.log4j.spi.LoggerRepository;
   
  -import org.w3c.dom.Element;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class RootLoggerAction extends Action {
  @@ -35,7 +35,7 @@
     Logger logger = Logger.getLogger(RootLoggerAction.class);
     Logger root;
   
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       inError = false;
       logger.debug("In begin method");
   
  
  
  
  1.4       +2 -1      
logging-log4j/src/java/org/apache/log4j/joran/action/LayoutAction.java
  
  Index: LayoutAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/LayoutAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LayoutAction.java 30 Mar 2004 17:13:22 -0000      1.3
  +++ LayoutAction.java 30 Mar 2004 17:42:41 -0000      1.4
  @@ -26,6 +26,7 @@
   import org.apache.log4j.spi.OptionHandler;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class LayoutAction extends Action {
  @@ -36,7 +37,7 @@
      * Instantiates an layout of the given class and sets its name.
      *
      */
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
                // Let us forget about previous errors (in this object)
                inError = false; 
   
  
  
  
  1.3       +8 -2      
logging-log4j/src/java/org/apache/log4j/joran/action/LoggerAction.java
  
  Index: LoggerAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/LoggerAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LoggerAction.java 30 Mar 2004 17:13:22 -0000      1.2
  +++ LoggerAction.java 30 Mar 2004 17:42:41 -0000      1.3
  @@ -26,6 +26,7 @@
   import org.apache.log4j.spi.LoggerRepository;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   import java.lang.reflect.Method;
   
  @@ -33,7 +34,7 @@
   public class LoggerAction extends Action {
     Logger logger = Logger.getLogger(LoggerAction.class);
   
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       // Let us forget about previous errors (in this object)
       inError = false;
   
  @@ -45,7 +46,12 @@
       if (Option.isEmpty(loggerName)) {
         inError = true;
   
  -      String errorMsg = "No 'name' attribute in element " + name;
  +      String line = null;
  +      if(locator != null) {
  +        line = ", around line "+locator.getLineNumber()+" column 
"+locator.getColumnNumber();
  +      } 
  +      String errorMsg = "No 'name' attribute in element " + name + line;
  +     
         logger.warn(errorMsg);
         ec.addError(errorMsg);
   
  
  
  
  1.4       +2 -4      
logging-log4j/src/java/org/apache/log4j/joran/action/AppenderRefAction.java
  
  Index: AppenderRefAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/log4j/joran/action/AppenderRefAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AppenderRefAction.java    30 Mar 2004 17:13:22 -0000      1.3
  +++ AppenderRefAction.java    30 Mar 2004 17:42:41 -0000      1.4
  @@ -24,10 +24,8 @@
   import org.apache.log4j.Logger;
   import org.apache.log4j.spi.AppenderAttachable;
   
  -import org.w3c.dom.Element;
  -import org.w3c.dom.Node;
  -
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   import java.util.HashMap;
   
  @@ -36,7 +34,7 @@
     static final Logger logger = Logger.getLogger(AppenderRefAction.class);
   
     public void begin(
  -    ExecutionContext ec, String localName, Attributes attributes) {
  +    ExecutionContext ec, String localName, Attributes attributes, Locator locator) {
       // Let us forget about previous errors (in this object)
       inError = false;
   
  
  
  
  1.9       +7 -2      logging-log4j/src/java/org/apache/joran/JoranParser.java
  
  Index: JoranParser.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/joran/JoranParser.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JoranParser.java  30 Mar 2004 17:13:22 -0000      1.8
  +++ JoranParser.java  30 Mar 2004 17:42:41 -0000      1.9
  @@ -21,6 +21,7 @@
   import org.apache.log4j.Logger;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   import org.xml.sax.helpers.DefaultHandler;
   
   import java.util.ArrayList;
  @@ -34,7 +35,8 @@
     private ExecutionContext ec;
     private ArrayList implicitActions;
     Pattern pattern;
  -
  +  Locator locator;
  +  
     JoranParser(RuleStore rs) {
       ruleStore = rs;
       ec = new ExecutionContext(this);
  @@ -69,6 +71,9 @@
       }
     }
   
  +  public void setDocumentLocator(Locator l) {
  +    locator = l;
  +  }
     public void endElement(String namespaceURI, String localName, String qName) {
       List applicableActionList = getapplicableActionList(pattern);
   
  @@ -140,7 +145,7 @@
   
       while (i.hasNext()) {
         Action action = (Action) i.next();
  -      action.begin(ec, tagName, atts);
  +      action.begin(ec, tagName, atts, locator);
       }
     }
   
  
  
  
  1.5       +2 -1      logging-log4j/src/java/org/apache/joran/action/ParamAction.java
  
  Index: ParamAction.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/joran/action/ParamAction.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ParamAction.java  30 Mar 2004 17:13:21 -0000      1.4
  +++ ParamAction.java  30 Mar 2004 17:42:41 -0000      1.5
  @@ -6,6 +6,7 @@
   import org.apache.log4j.config.PropertySetter;
   import org.apache.log4j.helpers.OptionConverter;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class ParamAction extends Action {
  @@ -15,7 +16,7 @@
        static String NO_NAME = "No name attribute in <param> element";
        static String NO_VALUE = "No name attribute in <param> element";
        
  -  public void begin(ExecutionContext ec, String localName, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String localName, Attributes attributes, 
Locator locator) {
                String name = attributes.getValue(NAME_ATTRIBUTE);
                String value = attributes.getValue(VALUE_ATTRIBUTE);
   
  
  
  
  1.5       +2 -1      
logging-log4j/src/java/org/apache/joran/action/NewRuleAction.java
  
  Index: NewRuleAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/joran/action/NewRuleAction.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NewRuleAction.java        30 Mar 2004 17:13:21 -0000      1.4
  +++ NewRuleAction.java        30 Mar 2004 17:42:41 -0000      1.5
  @@ -23,6 +23,7 @@
   import org.apache.log4j.Layout;
   import org.apache.log4j.Logger;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class NewRuleAction extends Action {
  @@ -33,7 +34,7 @@
      * Instantiates an layout of the given class and sets its name.
      *
      */
  -  public void begin(ExecutionContext ec, String localName, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String localName, Attributes attributes, 
Locator locator) {
                // Let us forget about previous errors (in this object)
                inError = false; 
       String errorMsg;
  
  
  
  1.5       +2 -2      
logging-log4j/src/java/org/apache/joran/action/NestComponentIA.java
  
  Index: NestComponentIA.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/src/java/org/apache/joran/action/NestComponentIA.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NestComponentIA.java      30 Mar 2004 17:13:21 -0000      1.4
  +++ NestComponentIA.java      30 Mar 2004 17:42:41 -0000      1.5
  @@ -24,8 +24,8 @@
   import org.apache.log4j.helpers.Loader;
   import org.apache.log4j.spi.OptionHandler;
   
  -import org.w3c.dom.Element;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   /**
  @@ -63,7 +63,7 @@
       }
     }
   
  -  public void begin(ExecutionContext ec, String localName, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String localName, Attributes attributes, 
Locator locator) {
       // inError was reset in isApplicable. It should not be touched here
   
         String className = attributes.getValue(CLASS_ATTRIBUTE);
  
  
  
  1.7       +2 -1      logging-log4j/src/java/org/apache/joran/action/Action.java
  
  Index: Action.java
  ===================================================================
  RCS file: /home/cvs/logging-log4j/src/java/org/apache/joran/action/Action.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Action.java       30 Mar 2004 17:13:21 -0000      1.6
  +++ Action.java       30 Mar 2004 17:42:41 -0000      1.7
  @@ -18,6 +18,7 @@
   
   import org.apache.joran.ExecutionContext;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   /**
  @@ -53,7 +54,7 @@
      * the returned value is 'false', then child elements are ignored.
      */
     public abstract void begin(
  -    ExecutionContext ec, String name, Attributes attributes);
  +    ExecutionContext ec, String name, Attributes attributes, Locator locator);
   
     public abstract void end(ExecutionContext ec, String name);
   
  
  
  
  1.2       +2 -1      
logging-log4j/tests/src/java/org/apache/joran/action/StackCounterAction.java
  
  Index: StackCounterAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/joran/action/StackCounterAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StackCounterAction.java   30 Mar 2004 17:13:22 -0000      1.1
  +++ StackCounterAction.java   30 Mar 2004 17:42:41 -0000      1.2
  @@ -21,6 +21,7 @@
   import org.apache.log4j.Logger;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class StackCounterAction extends Action {
  @@ -34,7 +35,7 @@
      * Instantiates an layout of the given class and sets its name.
      *
      */
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       String str = "Pushing "+name+"-begin";
       ec.pushObject(name+"-begin");
     }
  
  
  
  1.4       +2 -1      
logging-log4j/tests/src/java/org/apache/joran/action/HelloAction.java
  
  Index: HelloAction.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/joran/action/HelloAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HelloAction.java  30 Mar 2004 17:13:22 -0000      1.3
  +++ HelloAction.java  30 Mar 2004 17:42:41 -0000      1.4
  @@ -21,6 +21,7 @@
   import org.apache.log4j.Logger;
   
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   
   public class HelloAction extends Action {
  @@ -34,7 +35,7 @@
      * Instantiates an layout of the given class and sets its name.
      *
      */
  -  public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +  public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       String str = "Hello "+name+".";
       ec.getObjectMap().put("hello", str);
     }
  
  
  
  1.4       +4 -3      
logging-log4j/tests/src/java/org/apache/joran/SimpleStoreTest.java
  
  Index: SimpleStoreTest.java
  ===================================================================
  RCS file: 
/home/cvs/logging-log4j/tests/src/java/org/apache/joran/SimpleStoreTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SimpleStoreTest.java      30 Mar 2004 17:13:22 -0000      1.3
  +++ SimpleStoreTest.java      30 Mar 2004 17:42:41 -0000      1.4
  @@ -27,6 +27,7 @@
   
   import org.w3c.dom.Document;
   import org.xml.sax.Attributes;
  +import org.xml.sax.Locator;
   
   import java.util.List;
   
  @@ -154,7 +155,7 @@
     }
   
     class XAction extends Action {
  -    public void begin(ExecutionContext ec, String name, Attributes attributes) {
  +    public void begin(ExecutionContext ec, String name, Attributes attributes, 
Locator locator) {
       }
   
       public void end(ExecutionContext ec, String name) {
  @@ -165,7 +166,7 @@
     }
   
     class YAction extends Action {
  -             public void begin(ExecutionContext ec, String name, Attributes 
attributes) {
  +             public void begin(ExecutionContext ec, String name, Attributes 
attributes, Locator locator) {
                }
   
                public void end(ExecutionContext ec, String name) {
  @@ -175,7 +176,7 @@
                }  }
   
     class ZAction extends Action {
  -             public void begin(ExecutionContext ec, String name, Attributes 
attributes) {
  +             public void begin(ExecutionContext ec, String name, Attributes 
attributes, Locator locator) {
                }
   
                public void end(ExecutionContext ec, String name) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to