mmidy 01/06/08 12:02:10
Modified: java/src/org/apache/xalan/templates Tag: DTM_EXP
ElemChoose.java ElemCopyOf.java ElemForEach.java
ElemIf.java ElemValueOf.java
java/src/org/apache/xalan/trace Tag: DTM_EXP
PrintTraceListener.java TraceManager.java
java/src/org/apache/xalan/transformer Tag: DTM_EXP
TransformSnapshotImpl.java TransformerImpl.java
java/src/org/apache/xpath Tag: DTM_EXP XPath.java
Log:
Miscellaneous changes to enable tracing for tooling
Revision Changes Path
No revision
No revision
1.9.2.3 +4 -0
xml-xalan/java/src/org/apache/xalan/templates/ElemChoose.java
Index: ElemChoose.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemChoose.java,v
retrieving revision 1.9.2.2
retrieving revision 1.9.2.3
diff -u -r1.9.2.2 -r1.9.2.3
--- ElemChoose.java 2001/05/27 03:05:13 1.9.2.2
+++ ElemChoose.java 2001/06/08 19:01:57 1.9.2.3
@@ -156,6 +156,10 @@
return;
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireSelectedEvent(sourceNode, when,
+ "endTest", when.getTest(), test);
}
else if (Constants.ELEMNAME_OTHERWISE == type)
{
1.10.2.4 +6 -1
xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java
Index: ElemCopyOf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCopyOf.java,v
retrieving revision 1.10.2.3
retrieving revision 1.10.2.4
diff -u -r1.10.2.3 -r1.10.2.4
--- ElemCopyOf.java 2001/05/23 02:55:30 1.10.2.3
+++ ElemCopyOf.java 2001/06/08 19:01:58 1.10.2.4
@@ -169,7 +169,7 @@
ResultTreeHandler handler = transformer.getResultTreeHandler();
if (null != value)
- {
+ {
int type = value.getType();
String s;
@@ -229,6 +229,11 @@
break;
}
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
+ "endSelect",
m_selectExpression, value);
+
}
catch(org.xml.sax.SAXException se)
{
1.20.2.9 +18 -13
xml-xalan/java/src/org/apache/xalan/templates/ElemForEach.java
Index: ElemForEach.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemForEach.java,v
retrieving revision 1.20.2.8
retrieving revision 1.20.2.9
diff -u -r1.20.2.8 -r1.20.2.9
--- ElemForEach.java 2001/06/04 07:52:50 1.20.2.8
+++ ElemForEach.java 2001/06/08 19:01:59 1.20.2.9
@@ -116,15 +116,15 @@
* @serial
*/
protected Expression m_selectExpression = null;
-
- /**
+
+ /**
* Set the "select" attribute.
*
* @param xpath The XPath expression for the "select" attribute.
*/
public void setSelect(XPath xpath)
{
- m_selectExpression = xpath.getExpression();
+ m_selectExpression = xpath.getExpression();
}
/**
@@ -150,7 +150,7 @@
if (null == m_selectExpression)
{
- m_selectExpression =
+ m_selectExpression =
getStylesheetRoot().m_selectDefault.getExpression();
}
}
@@ -369,17 +369,17 @@
DTMIterator sourceNodes = m_selectExpression.asIterator(xctxt,
sourceNode);
try
- {
+ {
- // if (TransformerImpl.S_DEBUG)
- // transformer.getTraceManager().fireSelectedEvent(sourceNode,
this,
- // "test", m_selectExpression,
- // new
org.apache.xpath.objects.XNodeSet(sourceNodes));
- final Vector keys = (m_sortElems == null)
- ? null
- : transformer.processSortKeys(this, sourceNode);
+ if (TransformerImpl.S_DEBUG)
+
transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
+
"test", new
XPath(m_selectExpression),
+
new
org.apache.xpath.objects.XNodeSet(sourceNodes));
+ final Vector keys = (m_sortElems == null)
+
? null
+
: transformer.processSortKeys(this, sourceNode);
- // Sort if we need to.
+ // Sort if we need to.
if (null != keys)
sourceNodes = sortNodes(xctxt, keys, sourceNodes);
@@ -551,6 +551,11 @@
// guard.pop();
}
}
+ // fire end select event
+ if (TransformerImpl.S_DEBUG)
+
transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
+
"endTest", new
XPath(m_selectExpression),
+
new
org.apache.xpath.objects.XNodeSet(sourceNodes));
}
finally
{
1.9.2.2 +4 -0 xml-xalan/java/src/org/apache/xalan/templates/ElemIf.java
Index: ElemIf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemIf.java,v
retrieving revision 1.9.2.1
retrieving revision 1.9.2.2
diff -u -r1.9.2.1 -r1.9.2.2
--- ElemIf.java 2001/04/10 18:44:48 1.9.2.1
+++ ElemIf.java 2001/06/08 19:01:59 1.9.2.2
@@ -167,5 +167,9 @@
{
transformer.executeChildTemplates(this, true);
}
+
+ if (TransformerImpl.S_DEBUG)
+ transformer.getTraceManager().fireSelectedEvent(sourceNode, this,
+ "endTest", m_test, test);
}
}
1.13.2.7 +14 -8
xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java
Index: ElemValueOf.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java,v
retrieving revision 1.13.2.6
retrieving revision 1.13.2.7
diff -u -r1.13.2.6 -r1.13.2.7
--- ElemValueOf.java 2001/06/04 07:52:51 1.13.2.6
+++ ElemValueOf.java 2001/06/08 19:01:59 1.13.2.7
@@ -259,9 +259,9 @@
{
dtm.dispatchCharactersEvents(child, rth, false);
- // %TBD% if (TransformerImpl.S_DEBUG)
+ //if (TransformerImpl.S_DEBUG)
// transformer.getTraceManager().fireSelectedEvent(child, this,
- // "select", m_selectExpression, ??value??);
+ // "select", m_selectExpression, value);
}
finally
{
@@ -286,13 +286,19 @@
try
{
- Expression expr = m_selectExpression.getExpression();
+ Expression expr = m_selectExpression.getExpression();
- expr.executeCharsToContentHandler(xctxt, rth);
-
- // %TBD% if (TransformerImpl.S_DEBUG)
- // transformer.getTraceManager().fireSelectedEvent(child, this,
- // "select", m_selectExpression, ??value??);
+ if (TransformerImpl.S_DEBUG)
+ {
+ XObject obj =
expr.execute(xctxt);
+
obj.dispatchCharactersEvents(rth);
+ transformer.getTraceManager().fireSelectedEvent(current, this,
+ "select", m_selectExpression, obj);
+ }
+ else
+ {
+
expr.executeCharsToContentHandler(xctxt, rth);
+ }
}
finally
{
No revision
No revision
1.6.2.3 +33 -37
xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java
Index: PrintTraceListener.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/trace/PrintTraceListener.java,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -r1.6.2.2 -r1.6.2.3
--- PrintTraceListener.java 2001/05/06 02:09:31 1.6.2.2
+++ PrintTraceListener.java 2001/06/08 19:02:03 1.6.2.3
@@ -67,6 +67,8 @@
import org.apache.xalan.templates.Constants;
import org.apache.xpath.axes.ContextNodeList;
+import org.apache.xml.dtm.DTM;
+
/**
* <meta name="usage" content="advanced"/>
* Implementation of the TraceListener interface that
@@ -212,43 +214,37 @@
+ ev.m_xpath.getPatternString() + "': ");
}
- if (ev.m_selection.getType() == ev.m_selection.CLASS_NODESET)
- {
- m_pw.println();
- // %DTBD%
-// NodeIterator nl = ev.m_selection.nodeset();
-// if(nl instanceof ContextNodeList)
-// {
-// try
-// {
-// nl = ((ContextNodeList)nl).cloneWithReset();
-// }
-// catch(CloneNotSupportedException cnse)S
-// {
-// m_pw.println(" [Can't trace nodelist because it it threw a
CloneNotSupportedException]");
-// return;
-// }
-// Node pos = nl.nextNode();
-//
-// if (null == pos)
-// {
-// m_pw.println(" [empty node list]");
-// }
-// else
-// {
-// while (null != pos)
-// {
-// m_pw.println(" " + pos);
-//
-// pos = nl.nextNode();
-// }
-// }
-// }
-// else
- {
- m_pw.println(" [Can't trace nodelist because it isn't a
ContextNodeList]");
- }
- }
+ if (ev.m_selection.getType() ==
ev.m_selection.CLASS_NODESET)
+ {
+ m_pw.println();
+
+ org.apache.xml.dtm.DTMIterator nl =
ev.m_selection.nodeset();
+
+ try
+ {
+ nl = nl.cloneWithReset();
+ }
+ catch(CloneNotSupportedException cnse)
+ {
+ m_pw.println(" [Can't trace
nodelist because it it threw a CloneNotSupportedException]");
+ return;
+ }
+ int pos = nl.nextNode();
+
+ if (DTM.NULL == pos)
+ {
+ m_pw.println(" [empty node list]");
+ }
+ else
+ {
+ while (DTM.NULL != pos)
+ {
+ m_pw.println(" " +
ev.m_processor.getXPathContext().getDTM(pos).getNode(pos));
+
+ pos = nl.nextNode();
+ }
+ }
+ }
else
{
m_pw.println(ev.m_selection.str());
1.7.2.3 +17 -12
xml-xalan/java/src/org/apache/xalan/trace/TraceManager.java
Index: TraceManager.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/trace/TraceManager.java,v
retrieving revision 1.7.2.2
retrieving revision 1.7.2.3
diff -u -r1.7.2.2 -r1.7.2.3
--- TraceManager.java 2001/05/06 02:09:32 1.7.2.2
+++ TraceManager.java 2001/06/08 19:02:03 1.7.2.3
@@ -164,13 +164,15 @@
*/
public void fireTraceEvent(ElemTemplateElement styleNode)
{
-
- // %DTBD%
-// if (hasTraceListeners())
-// {
-// fireTraceEvent(new TracerEvent(m_transformer, sourceNode, mode,
-// styleNode));
-// }
+
+ if (hasTraceListeners())
+ {
+ int sourceNode =
m_transformer.getXPathContext().getCurrentNode();
+ Node source =
m_transformer.getXPathContext().getDTM(sourceNode).getNode(sourceNode);
+
+ fireTraceEvent(new TracerEvent(m_transformer, source, null,
/*sourceNode, mode,*/
+ styleNode));
+ }
}
/**
@@ -210,11 +212,14 @@
throws javax.xml.transform.TransformerException
{
- // %DTBD%
-// if (hasTraceListeners())
-// fireSelectedEvent(new SelectionEvent(m_transformer, sourceNode,
-// styleNode, attributeName, xpath,
-// selection));
+ if (hasTraceListeners())
+ {
+ Node source =
m_transformer.getXPathContext().getDTM(sourceNode).getNode(sourceNode);
+
+ fireSelectedEvent(new SelectionEvent(m_transformer, source,
+ styleNode, attributeName, xpath,
+ selection));
+ }
}
/**
No revision
No revision
1.1.2.5 +7 -7
xml-xalan/java/src/org/apache/xalan/transformer/TransformSnapshotImpl.java
Index: TransformSnapshotImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformSnapshotImpl.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- TransformSnapshotImpl.java 2001/06/04 07:52:55 1.1.2.4
+++ TransformSnapshotImpl.java 2001/06/08 19:02:06 1.1.2.5
@@ -102,7 +102,7 @@
/**
* The current context node list.
*/
- private ContextNodeList m_contextNodeList;
+ private DTMIterator m_contextNodeList;
/**
* Stack of AxesIterators.
@@ -167,9 +167,9 @@
/**
* Constructor TransformSnapshotImpl
+ * Take a snapshot of the currently executing context.
*
- *
- * NEEDSDOC @param transformer
+ * @param transformer Non null transformer instance
*/
TransformSnapshotImpl(TransformerImpl transformer)
{
@@ -207,7 +207,7 @@
if (!m_contextNodeLists.empty())
m_contextNodeList =
- (ContextNodeList) xpc.getContextNodeList().clone();
+ (DTMIterator) xpc.getContextNodeList().clone();
m_axesIteratorStack = (Stack) xpc.getAxesIteratorStackStacks().clone();
m_currentTemplateRuleIsNull =
@@ -231,10 +231,10 @@
}
/**
- * NEEDSDOC Method apply
- *
+ * This will reset the stylesheet to a given execution context
+ * based on some previously taken snapshot where we can then start
execution
*
- * NEEDSDOC @param transformer
+ * @param transformer Non null transformer instance
*/
void apply(TransformerImpl transformer)
{
1.90.2.19 +41 -13
xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
retrieving revision 1.90.2.18
retrieving revision 1.90.2.19
diff -u -r1.90.2.18 -r1.90.2.19
--- TransformerImpl.java 2001/06/04 07:52:09 1.90.2.18
+++ TransformerImpl.java 2001/06/08 19:02:07 1.90.2.19
@@ -540,14 +540,26 @@
{
return m_hasTransformThreadErrorCatcher;
}
+
+ /**
+ * Process the source tree to SAX parse events.
+ * @param source The input for the source tree.
+ *
+ * @throws TransformerException
+ */
+ public void transform(Source source) throws TransformerException
+ {
+ transform(source, true);
+ }
/**
* Process the source tree to SAX parse events.
* @param source The input for the source tree.
+ * @param shouldRelease Flag indicating whether to release DTMManager.
*
* @throws TransformerException
*/
- public void transform(Source source) throws TransformerException
+ public void transform(Source source, boolean shouldRelease) throws
TransformerException
{
try
@@ -562,7 +574,8 @@
}
finally
{
- mgr.release(dtm, hardDelete);
+ if (shouldRelease)
+ mgr.release(dtm, hardDelete);
}
// Kick off the parse. When the ContentHandler gets
@@ -1115,15 +1128,29 @@
return handler;
}
+
+ /**
+ * Process the source tree to the output result.
+ * @param xmlSource The input for the source tree.
+ * @param outputTarget The output source target.
+ *
+ * @throws TransformerException
+ */
+ public void transform(Source xmlSource, Result outputTarget)
+ throws TransformerException
+ {
+ transform(xmlSource, outputTarget, true);
+ }
/**
* Process the source tree to the output result.
* @param xmlSource The input for the source tree.
* @param outputTarget The output source target.
+ * @param shouldRelease Flag indicating whether to release DTMManager.
*
* @throws TransformerException
*/
- public void transform(Source xmlSource, Result outputTarget)
+ public void transform(Source xmlSource, Result outputTarget, boolean
shouldRelease)
throws TransformerException
{
@@ -1134,7 +1161,7 @@
m_outputTarget = outputTarget;
this.setContentHandler(handler);
- transform(xmlSource);
+ transform(xmlSource, shouldRelease);
}
}
@@ -2100,9 +2127,9 @@
{
// Fire a trace event for the template.
- //
- // if (TransformerImpl.S_DEBUG)
- // getTraceManager().fireTraceEvent(child, mode, template);
+
+ if (TransformerImpl.S_DEBUG)
+ getTraceManager().fireTraceEvent(template);
// And execute the child templates.
// 9/11/00: If template has been compiled, hand off to it
// since much (most? all?) of the processing has been inlined.
@@ -3480,10 +3507,10 @@
// Fragment re-execution interfaces for a tool.
/**
- * NEEDSDOC Method getSnapshot
+ * This will get a snapshot of the current executing context
*
*
- * NEEDSDOC (getSnapshot) @return
+ * @return TransformerSnapshot object, snapshot of executing context
*/
public TransformSnapshot getSnapshot()
{
@@ -3492,9 +3519,10 @@
/**
* This will execute the following XSLT instructions
- * from the snapshot point.
+ * from the snapshot point, after the stylesheet execution
+ * context has been reset from the snapshot point.
*
- * NEEDSDOC @param ts
+ * @param ts The snapshot of where to start execution
*
* @throws TransformerException
*/
@@ -3511,10 +3539,10 @@
}
/**
- * This will execute the following XSLT instructions
+ * This will reset the stylesheet execution context
* from the snapshot point.
*
- * NEEDSDOC @param ts
+ * @param ts The snapshot of where to start execution
*/
public void resetToStylesheet(TransformSnapshot ts)
{
No revision
No revision
1.18.2.8 +14 -0 xml-xalan/java/src/org/apache/xpath/XPath.java
Index: XPath.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/XPath.java,v
retrieving revision 1.18.2.7
retrieving revision 1.18.2.8
diff -u -r1.18.2.7 -r1.18.2.8
--- XPath.java 2001/06/04 07:52:57 1.18.2.7
+++ XPath.java 2001/06/08 19:02:09 1.18.2.8
@@ -230,6 +230,20 @@
{
this(exprString, locator, prefixResolver, type, null);
}
+
+ /**
+ * Construct an XPath object. The object must be initialized by the
+ * XPathParser.initXPath method.
+ *
+ * @param exp The XPath expression.
+ *
+ * @throws javax.xml.transform.TransformerException if syntax or other
error.
+ */
+ public XPath(Expression exp)
+ throws javax.xml.transform.TransformerException
+ {
+ this.setExpression(exp);
+ }
/**
* <meta name="usage" content="experimental"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]