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]