curcuru 01/06/29 11:01:13
Modified: test/java/src/org/apache/qetest/xalanj2
LoggingTraceListener.java
Log:
Update to call logElement for cleaner output;
also added more items to be logged (should still
add m_atts for appropriate generateEvent events)
Revision Changes Path
1.4 +53 -30
xml-xalan/test/java/src/org/apache/qetest/xalanj2/LoggingTraceListener.java
Index: LoggingTraceListener.java
===================================================================
RCS file:
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/xalanj2/LoggingTraceListener.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- LoggingTraceListener.java 2001/06/18 04:01:08 1.3
+++ LoggingTraceListener.java 2001/06/29 18:01:09 1.4
@@ -64,6 +64,7 @@
import org.apache.qetest.*;
import java.io.IOException;
+import java.util.Hashtable;
import org.w3c.dom.Node;
import org.w3c.dom.traversal.NodeIterator;
@@ -88,7 +89,7 @@
* Future improvements: allow you to specify a set of
* expected events to validate.
* @author [EMAIL PROTECTED]
- * @version $Id: LoggingTraceListener.java,v 1.3 2001/06/18 04:01:08 sboag
Exp $
+ * @version $Id: LoggingTraceListener.java,v 1.4 2001/06/29 18:01:09 curcuru
Exp $
*/
public class LoggingTraceListener extends LoggingHandler
implements TraceListener
@@ -219,6 +220,10 @@
/** setExpected, etc. not yet implemented. */
////////////////// Implement TraceListener //////////////////
+
+ /** Name of custom logElement each event outputs: traceListenerDump. */
+ public static final String TRACE_LISTENER_DUMP = "traceListenerDump";
+
/**
* Logging implementation of TraceListener method.
* Method that is called when a trace event occurs.
@@ -229,30 +234,37 @@
public void trace(TracerEvent tracerEvent)
{
counters[TYPE_TRACE]++;
+
+ Hashtable attrs = new Hashtable();
+ attrs.put("event", "trace");
+ attrs.put("location", "L" + tracerEvent.m_styleNode.getLineNumber()
+ + "C" + tracerEvent.m_styleNode.getColumnNumber());
- StringBuffer buf = new StringBuffer("trace:");
- int dumpLevel = XalanDumper.DUMP_DEFAULT;
- if (null != tracerEvent.m_mode) // not terribly elegant way to do it
- dumpLevel = XalanDumper.DUMP_NOCLOSE;
+ StringBuffer buf = new StringBuffer(" <styleNode>");
switch (tracerEvent.m_styleNode.getXSLToken())
{
// Specific handling for most common 'interesting' items
case Constants.ELEMNAME_TEXTLITERALRESULT :
- buf.append(XalanDumper.dump((ElemTextLiteral)
tracerEvent.m_styleNode, dumpLevel));
+ buf.append(XalanDumper.dump((ElemTextLiteral)
tracerEvent.m_styleNode, XalanDumper.DUMP_DEFAULT));
break;
case Constants.ELEMNAME_TEMPLATE :
- buf.append(XalanDumper.dump((ElemTemplate)
tracerEvent.m_styleNode, dumpLevel));
+ buf.append(XalanDumper.dump((ElemTemplate)
tracerEvent.m_styleNode, XalanDumper.DUMP_DEFAULT));
break;
default :
- buf.append(XalanDumper.dump((ElemTemplateElement)
tracerEvent.m_styleNode, dumpLevel));
+ buf.append(XalanDumper.dump((ElemTemplateElement)
tracerEvent.m_styleNode, XalanDumper.DUMP_DEFAULT));
}
- if (null != tracerEvent.m_mode)
- buf.append(XalanDumper.SEP + "m_mode=" + tracerEvent.m_mode +
XalanDumper.RBRACKET);
+ buf.append(" </styleNode>\n");
+ // Always add the mode value; will either use toString()
+ // automatically or will print 'null'
+ buf.append(" <m_mode>" + tracerEvent.m_mode + "</m_mode>\n");
+ // Also dump the sourceNode too!
+ buf.append(" <m_sourceNode>" +
XalanDumper.dump(tracerEvent.m_sourceNode, XalanDumper.DUMP_DEFAULT) +
"</m_sourceNode>\n");
+
setLastItem(buf.toString());
- logger.logMsg(level, prefix + getLast());
+ logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
}
/**
@@ -266,8 +278,13 @@
throws javax.xml.transform.TransformerException
{
counters[TYPE_SELECTED]++;
+
+ Hashtable attrs = new Hashtable();
+ attrs.put("event", "selected");
+ attrs.put("location", "L" +
selectionEvent.m_styleNode.getLineNumber()
+ + "C" + selectionEvent.m_styleNode.getColumnNumber());
- StringBuffer buf = new StringBuffer("selected:");
+ StringBuffer buf = new StringBuffer(" <styleNode>");
ElemTemplateElement styleNodeElem = (ElemTemplateElement)
selectionEvent.m_styleNode;
ElemTemplateElement parent = (ElemTemplateElement)
styleNodeElem.getParentNode();
if (parent == styleNodeElem.getStylesheetRoot().getDefaultRootRule())
@@ -283,14 +300,15 @@
buf.append("[default-rule]");
}
else
- buf.append(XalanDumper.dump(styleNodeElem,
XalanDumper.DUMP_NOCLOSE));
+ buf.append(XalanDumper.dump(styleNodeElem,
XalanDumper.DUMP_DEFAULT));
+ buf.append(" </styleNode>\n");
- buf.append(selectionEvent.m_attributeName + "="
- + selectionEvent.m_xpath.getPatternString() + ";");
+ buf.append(" <m_xpath>" + selectionEvent.m_attributeName + "="
+ + selectionEvent.m_xpath.getPatternString() +
"</m_xpath>\n");
+ buf.append(" <m_selection>");
if (selectionEvent.m_selection.getType() ==
selectionEvent.m_selection.CLASS_NODESET)
{
- // Must create as DTMNodeIterator for DTM_EXP merge 13-Jun-01
NodeIterator nl = selectionEvent.m_selection.nodeset();
if (nl instanceof ContextNodeList)
@@ -327,9 +345,10 @@
{
buf.append("[" + selectionEvent.m_selection.str() +"]");
}
- buf.append(XalanDumper.RBRACKET); // Since we said DUMP_NOCLOSE
above
+ buf.append("</m_selection>\n");
+ buf.append(" <m_sourceNode>" +
XalanDumper.dump(selectionEvent.m_sourceNode, XalanDumper.DUMP_DEFAULT) +
"</m_sourceNode>\n");
setLastItem(buf.toString());
- logger.logMsg(level, prefix + getLast());
+ logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
}
/**
@@ -341,53 +360,57 @@
public void generated(GenerateEvent generateEvent)
{
counters[TYPE_GENERATED]++;
+
+ Hashtable attrs = new Hashtable();
+ attrs.put("event", "generated");
- StringBuffer buf = new StringBuffer("generated:");
+ StringBuffer buf = new StringBuffer(" <eventtype ");
switch (generateEvent.m_eventtype)
{
case GenerateEvent.EVENTTYPE_STARTDOCUMENT :
- buf.append("STARTDOCUMENT");
+ buf.append("type=\"STARTDOCUMENT\">");
break;
case GenerateEvent.EVENTTYPE_ENDDOCUMENT :
- buf.append("ENDDOCUMENT");
+ buf.append("type=\"ENDDOCUMENT\">");
break;
case GenerateEvent.EVENTTYPE_STARTELEMENT :
- buf.append("STARTELEMENT[" + generateEvent.m_name + "]"); //
just hardcode [ LBRACKET ] RBRACKET here
+ buf.append("type=\"STARTELEMENT\">" + generateEvent.m_name);
break;
case GenerateEvent.EVENTTYPE_ENDELEMENT :
- buf.append("ENDELEMENT[" + generateEvent.m_name + "]");
+ buf.append("type=\"ENDELEMENT\">" + generateEvent.m_name);
break;
case GenerateEvent.EVENTTYPE_CHARACTERS :
String chars1 = new String(generateEvent.m_characters,
generateEvent.m_start, generateEvent.m_length);
- buf.append("CHARACTERS[" + chars1 + "]");
+ buf.append("type=\"CHARACTERS\">" + chars1);
break;
case GenerateEvent.EVENTTYPE_CDATA :
String chars2 = new String(generateEvent.m_characters,
generateEvent.m_start, generateEvent.m_length);
- buf.append("CDATA[" + chars2 + "]");
+ buf.append("type=\"CDATA\">" + chars2);
break;
case GenerateEvent.EVENTTYPE_COMMENT :
- buf.append("COMMENT[" + generateEvent.m_data + "]");
+ buf.append("type=\"COMMENT\">" + generateEvent.m_data);
break;
case GenerateEvent.EVENTTYPE_PI :
- buf.append("PI[" + generateEvent.m_name + ", " +
generateEvent.m_data + "]");
+ buf.append("type=\"PI\">" + generateEvent.m_name + ", " +
generateEvent.m_data);
break;
case GenerateEvent.EVENTTYPE_ENTITYREF :
- buf.append("ENTITYREF[" + generateEvent.m_name + "]");
+ buf.append("type=\"ENTITYREF\">" + generateEvent.m_name);
break;
case GenerateEvent.EVENTTYPE_IGNORABLEWHITESPACE :
- buf.append("IGNORABLEWHITESPACE");
+ buf.append("type=\"IGNORABLEWHITESPACE\">");
break;
}
+ buf.append("</eventtype>\n");
setLastItem(buf.toString());
- logger.logMsg(level, prefix + getLast());
+ logger.logElement(level, TRACE_LISTENER_DUMP, attrs, buf.toString());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]