mkwan 2003/02/10 11:36:46
Modified: java/src/org/apache/xalan/xsltc/cmdline Tag: XSLTC_DTM
Transform.java
java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
DocumentCache.java SAXImpl.java
XSLTCDTMManager.java
java/src/org/apache/xalan/xsltc/runtime Tag: XSLTC_DTM
BasisLibrary.java
java/src/org/apache/xalan/xsltc/trax Tag: XSLTC_DTM
SmartTransformerFactoryImpl.java
TransformerHandlerImpl.java TransformerImpl.java
XSLTCSource.java
Log:
Make XSLTC on DTM completely independent of Xalan and XPath
1. Remove the reference to org.apache.xpath.objects.XMLStringFactoryImpl
in XSLTCDTMManager. A null XMLStringFactory is used when creating a SAXImpl.
2. In SAXImpl, replace the references to getStringValue() by
getStringValueX() which
does not use XMLStrings.
3. In SmartTransformerFactoryImpl.java, do not explicitly reference
org.apache.xalan.processor.TransformerFactoryImpl to get rid of
the compile time dependency on Xalan.
4. Do not use reflection in XSLTCDTMManaget.newInstance(). There is no
intention
to let the user specify another XSLTCDTMManager at the moment. We can revisit
this issue if there is a future need.
Revision Changes Path
No revision
No revision
1.15.10.10 +2 -3
xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java
Index: Transform.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java,v
retrieving revision 1.15.10.9
retrieving revision 1.15.10.10
diff -u -r1.15.10.9 -r1.15.10.10
--- Transform.java 30 Jan 2003 18:41:36 -0000 1.15.10.9
+++ Transform.java 10 Feb 2003 19:36:45 -0000 1.15.10.10
@@ -167,8 +167,7 @@
final XMLReader reader = parser.getXMLReader();
// Set the DOM's DOM builder as the XMLReader's SAX2 content handler
- DTMManager dtmManager = XSLTCDTMManager.newInstance(
- org.apache.xpath.objects.XMLStringFactoryImpl.getFactory());
+ DTMManager dtmManager = XSLTCDTMManager.newInstance();
final SAXImpl dom = (SAXImpl)dtmManager.getDTM(
new SAXSource(reader, new
InputSource(_fileName)),
No revision
No revision
1.6.10.9 +2 -4
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DocumentCache.java
Index: DocumentCache.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DocumentCache.java,v
retrieving revision 1.6.10.8
retrieving revision 1.6.10.9
diff -u -r1.6.10.8 -r1.6.10.9
--- DocumentCache.java 30 Jan 2003 18:41:47 -0000 1.6.10.8
+++ DocumentCache.java 10 Feb 2003 19:36:45 -0000 1.6.10.9
@@ -134,9 +134,7 @@
public void loadDocument(String uri) {
XSLTCDTMManager dtmManager =
- (XSLTCDTMManager)XSLTCDTMManager.newInstance(
-
org.apache.xpath.objects.XMLStringFactoryImpl
- .getFactory());
+ (XSLTCDTMManager)XSLTCDTMManager.newInstance();
try {
final long stamp = System.currentTimeMillis();
_dom = (SAXImpl)dtmManager.getDTM(
1.1.2.28 +12 -12
xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java
Index: SAXImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java,v
retrieving revision 1.1.2.27
retrieving revision 1.1.2.28
diff -u -r1.1.2.27 -r1.1.2.28
--- SAXImpl.java 31 Jan 2003 20:31:33 -0000 1.1.2.27
+++ SAXImpl.java 10 Feb 2003 19:36:45 -0000 1.1.2.28
@@ -424,7 +424,7 @@
for (node = super.next(); node != END; node = super.next()) {
if (getExpandedTypeID(node) == _nodeType
|| getNodeType(node) == _nodeType
- || getIdForNamespace(getStringValue(node).toString())
+ || getIdForNamespace(getStringValueX(node))
== _nodeType) {
return returnNode(node);
}
@@ -1396,7 +1396,7 @@
case DTM.TEXT_NODE:
case DTM.COMMENT_NODE:
case DTM.PROCESSING_INSTRUCTION_NODE:
- System.out.print(getStringValue(node).toString());
+ System.out.print(getStringValueX(node));
break;
default: // element
final String name = getNodeName(node);
@@ -1404,7 +1404,7 @@
for (int a = getFirstAttribute(node); a != DTM.NULL; a =
getNextAttribute(a))
{
System.out.print("\n" + getNodeName(a) +
- "=\"" + getStringValue(a).toString() + "\"");
+ "=\"" + getStringValueX(a) + "\"");
}
System.out.print('>');
for (int child = getFirstChild(node); child != DTM.NULL;
@@ -1471,7 +1471,7 @@
public String getAttributeValue(final int type, final int element)
{
final int attr = getAttributeNode(type, element);
- return (attr != DTM.NULL) ? getStringValue(attr).toString() :
EMPTYSTRING;
+ return (attr != DTM.NULL) ? getStringValueX(attr) : EMPTYSTRING;
}
/**
@@ -1821,7 +1821,7 @@
final String value = new String(text, i + 1, length - len - 1);
*/
final String target = getNodeName(node);
- final String value = getStringValue(node).toString();
+ final String value = getStringValueX(node);
handler.processingInstruction(target, value);
}
@@ -1907,7 +1907,7 @@
// optimization: only create StringBuffer if > 1 child
if ((getNodeType(child) == DTM.TEXT_NODE) && (getNextSibling(child) ==
DTM.NULL))
- return getStringValue(child).toString();
+ return getStringValueX(child);
else
return stringValueAux(new StringBuffer(), doc).toString();
}
@@ -1937,7 +1937,7 @@
case DTM.COMMENT_NODE:
break;
case DTM.TEXT_NODE:
- buffer.append(getStringValue(child).toString());
+ buffer.append(getStringValueX(child));
break;
case DTM.PROCESSING_INSTRUCTION_NODE:
break;
@@ -1978,15 +1978,15 @@
switch (getNodeType(child)) {
case DTM.COMMENT_NODE:
buffer.append("<!--");
- buffer.append(buffer.append(getStringValue(child).toString()));
+ buffer.append(buffer.append(getStringValueX(child)));
buffer.append("-->");
break;
case DTM.TEXT_NODE:
- buffer.append(buffer.append(getStringValue(child).toString()));
+ buffer.append(buffer.append(getStringValueX(child)));
break;
case DTM.PROCESSING_INSTRUCTION_NODE:
buffer.append("<?");
- buffer.append(buffer.append(getStringValue(child).toString()));
+ buffer.append(buffer.append(getStringValueX(child)));
buffer.append("?>");
break;
default:
@@ -2091,6 +2091,6 @@
}
public boolean compareNodeToString(int node, String value) {
- return getStringValue(node).equals(value);
+ return getStringValueX(node).equals(value);
}
}
1.1.2.8 +15 -45
xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/XSLTCDTMManager.java
Index: XSLTCDTMManager.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/XSLTCDTMManager.java,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -r1.1.2.7 -r1.1.2.8
--- XSLTCDTMManager.java 30 Jan 2003 18:41:47 -0000 1.1.2.7
+++ XSLTCDTMManager.java 10 Feb 2003 19:36:45 -0000 1.1.2.8
@@ -107,47 +107,14 @@
/**
* Obtain a new instance of a <code>DTMManager</code>.
- * This static method creates a new factory instance
- * This method uses the following ordered lookup procedure to determine
- * the <code>DTMManager</code> implementation class to
- * load:
- * <ul>
- * <li>
- * Use the <code>org.apache.xml.dtm.DTMManager</code> system
- * property.
- * </li>
- * <li>
- * Use the JAVA_HOME(the parent directory where jdk is
- * installed)/lib/jaxp.properties for a property file that contains the
- * name of the implementation class keyed on the same value as the
- * system property defined above.
- * </li>
- * <li>
- * Use the Services API (as detailed in the JAR specification), if
- * available, to determine the classname. The Services API will look
- * for a classname in the file
- * <code>META-INF/services/javax.xml.parsers.DTMManager</code>
- * in jars available to the runtime.
- * </li>
- * <li>
- * Use the default <code>DTMManager</code> classname, which is
- * <code>org.apache.xml.dtm.ref.DTMManagerDefault</code>.
- * </li>
- * </ul>
- *
- * Once an application has obtained a reference to a <code>
- * DTMManager</code> it can use the factory to configure
- * and obtain parser instances.
- *
- * @return new DTMManager instance, never null.
- *
- * @throws DTMConfigurationException
- * if the implementation is not available or cannot be instantiated.
+ * This static method creates a new factory instance.
+ * The current implementation just returns a new XSLTCDTMManager instance.
*/
- public static DTMManager newInstance(XMLStringFactory xsf)
- throws DTMConfigurationException
+ public static DTMManager newInstance()
{
-
+ return new XSLTCDTMManager();
+
+ /*
String classname = defaultClassName;
if (classname == null)
@@ -178,6 +145,7 @@
factoryImpl.setXMLStringFactory(xsf);
return factoryImpl;
+ */
}
/**
@@ -279,7 +247,7 @@
" source: "+source.getSystemId()
);
- XMLStringFactory xstringFactory = m_xsf;
+ // XMLStringFactory xstringFactory = m_xsf;
int dtmPos = getFirstFreeDTMID();
int documentID = dtmPos << IDENT_DTM_NODE_BITS;
@@ -289,10 +257,10 @@
if (size <= 0) {
dtm = new DOMImpl(this, (DOMSource) source, documentID,
- whiteSpaceFilter, xstringFactory, doIndexing);
+ whiteSpaceFilter, null, doIndexing);
} else {
dtm = new DOMImpl(this, (DOMSource) source, documentID,
- whiteSpaceFilter, xstringFactory, doIndexing,
size);
+ whiteSpaceFilter, null, doIndexing, size);
}
addDTM(dtm, dtmPos);
@@ -352,10 +320,10 @@
SAXImpl dtm;
if (size <= 0) {
dtm = new SAXImpl(this, source, documentID, whiteSpaceFilter,
- xstringFactory, doIndexing);
+ null, doIndexing);
} else {
dtm = new SAXImpl(this, source, documentID, whiteSpaceFilter,
- xstringFactory, doIndexing, size);
+ null, doIndexing, size);
}
// Go ahead and add the DTM to the lookup table. This needs to be
@@ -363,6 +331,7 @@
// created a new DTM.
addDTM(dtm, dtmPos, 0);
+ /*
boolean haveXercesParser =
(null != reader)
&&
(reader.getClass().getName().equals("org.apache.xerces.parsers.SAXParser") );
@@ -447,6 +416,7 @@
}
else
{
+ */
if (null == reader)
{
@@ -487,7 +457,7 @@
throw new org.apache.xml.utils.WrappedRuntimeException(e);
}
- }
+ /* } */
if (DUMPTREE)
{
No revision
No revision
1.35.2.15 +2 -3
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java
Index: BasisLibrary.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/BasisLibrary.java,v
retrieving revision 1.35.2.14
retrieving revision 1.35.2.15
diff -u -r1.35.2.14 -r1.35.2.15
--- BasisLibrary.java 30 Jan 2003 18:41:48 -0000 1.35.2.14
+++ BasisLibrary.java 10 Feb 2003 19:36:45 -0000 1.35.2.15
@@ -1171,8 +1171,7 @@
copyNodes(nodeList, doc, topElementNode);
// w3cDOM -> DTM -> DOMImpl
- DTMManager dtmManager = XSLTCDTMManager.newInstance(
- org.apache.xpath.objects.XMLStringFactoryImpl.getFactory());
+ DTMManager dtmManager = XSLTCDTMManager.newInstance();
DOMImpl idom = (DOMImpl)dtmManager.getDTM(new DOMSource(doc), false,
null, true, false);
No revision
No revision
1.5.10.3 +2 -3
xml-xalan/java/src/org/apache/xalan/xsltc/trax/SmartTransformerFactoryImpl.java
Index: SmartTransformerFactoryImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/SmartTransformerFactoryImpl.java,v
retrieving revision 1.5.10.2
retrieving revision 1.5.10.3
diff -u -r1.5.10.2 -r1.5.10.3
--- SmartTransformerFactoryImpl.java 30 Jan 2003 18:41:50 -0000 1.5.10.2
+++ SmartTransformerFactoryImpl.java 10 Feb 2003 19:36:45 -0000 1.5.10.3
@@ -142,8 +142,7 @@
try {
Class xalanFactClass = Class.forName(
"org.apache.xalan.processor.TransformerFactoryImpl");
- _xalanFactory = (org.apache.xalan.processor.TransformerFactoryImpl)
- xalanFactClass.newInstance();
+ _xalanFactory = (SAXTransformerFactory)xalanFactClass.newInstance();
}
catch (ClassNotFoundException e) {
System.err.println(xalanMessage);
1.6.10.12 +2 -3
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java
Index: TransformerHandlerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java,v
retrieving revision 1.6.10.11
retrieving revision 1.6.10.12
diff -u -r1.6.10.11 -r1.6.10.12
--- TransformerHandlerImpl.java 30 Jan 2003 18:41:51 -0000
1.6.10.11
+++ TransformerHandlerImpl.java 10 Feb 2003 19:36:45 -0000
1.6.10.12
@@ -219,8 +219,7 @@
if (!_isIdentity) {
// Create an internal DOM (not W3C) and get SAX2 input handler
- DTMManager dtmManager = XSLTCDTMManager.newInstance(
- org.apache.xpath.objects.XMLStringFactoryImpl.getFactory());
+ DTMManager dtmManager = XSLTCDTMManager.newInstance();
DTMWSFilter wsFilter;
if (_translet != null && _translet instanceof StripFilter) {
1.37.2.17 +4 -10
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
retrieving revision 1.37.2.16
retrieving revision 1.37.2.17
diff -u -r1.37.2.16 -r1.37.2.17
--- TransformerImpl.java 4 Feb 2003 16:08:13 -0000 1.37.2.16
+++ TransformerImpl.java 10 Feb 2003 19:36:45 -0000 1.37.2.17
@@ -457,9 +457,7 @@
// Create a new internal DOM and set up its builder to trap
// all content/lexical events
XSLTCDTMManager dtmManager =
- (XSLTCDTMManager) XSLTCDTMManager.newInstance(
-
org.apache.xpath.objects.XMLStringFactoryImpl
- .getFactory());
+ (XSLTCDTMManager) XSLTCDTMManager.newInstance();
//dtmManager.setIncremental(_isIncremental);
dom = (SAXImpl)dtmManager.getDTM(sax, false, wsfilter, true,
false,
@@ -480,9 +478,7 @@
// Create a new internal DTM and build it directly from DOM
XSLTCDTMManager dtmManager =
- (XSLTCDTMManager)XSLTCDTMManager.newInstance(
-
org.apache.xpath.objects.XMLStringFactoryImpl
- .getFactory());
+ (XSLTCDTMManager)XSLTCDTMManager.newInstance();
//dtmManager.setIncremental(_isIncremental);
dom = (DOMImpl)dtmManager.getDTM(domsrc, false, wsfilter, true,
@@ -500,9 +496,7 @@
// Create a new internal DOM and set up its builder to trap
// all content/lexical events
XSLTCDTMManager dtmManager =
- (XSLTCDTMManager) XSLTCDTMManager.newInstance(
-
org.apache.xpath.objects.XMLStringFactoryImpl
- .getFactory());
+ (XSLTCDTMManager) XSLTCDTMManager.newInstance();
//dtmManager.setIncremental(_isIncremental);
1.3.10.6 +5 -7
xml-xalan/java/src/org/apache/xalan/xsltc/trax/XSLTCSource.java
Index: XSLTCSource.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/XSLTCSource.java,v
retrieving revision 1.3.10.5
retrieving revision 1.3.10.6
diff -u -r1.3.10.5 -r1.3.10.6
--- XSLTCSource.java 30 Jan 2003 18:41:51 -0000 1.3.10.5
+++ XSLTCSource.java 10 Feb 2003 19:36:46 -0000 1.3.10.6
@@ -100,12 +100,11 @@
public XSLTCSource(int size)
{
DTMManager dtmManager =
- XSLTCDTMManager.newInstance(org.apache.xpath.objects
-
.XMLStringFactoryImpl.getFactory());
+ XSLTCDTMManager.newInstance();
int dtmPos = ((DTMManagerDefault)dtmManager).getFirstFreeDTMID();
int documentID = dtmPos << DTMManager.IDENT_DTM_NODE_BITS;
_dom = (DOM)new SAXImpl(dtmManager, this, documentID, null,
- dtmManager.getXMLStringFactory(), true, size);
+ null, true, size);
((DTMManagerDefault)dtmManager).addDTM((DTM)_dom, dtmPos);
}
@@ -115,12 +114,11 @@
public XSLTCSource()
{
DTMManager dtmManager =
- XSLTCDTMManager.newInstance(org.apache.xpath.objects
-
.XMLStringFactoryImpl.getFactory());
+ XSLTCDTMManager.newInstance();
int dtmPos = ((DTMManagerDefault)dtmManager).getFirstFreeDTMID();
int documentID = dtmPos << DTMManager.IDENT_DTM_NODE_BITS;
_dom = (DOM)new SAXImpl(dtmManager, this, documentID, null,
- dtmManager.getXMLStringFactory(), true);
+ null, true);
((DTMManagerDefault)dtmManager).addDTM((DTM)_dom, dtmPos);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]