You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by zo...@apache.org on 2003/11/24 23:18:57 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/cmdline Transform.java
zongaro 2003/11/24 14:18:57
Modified: java/src/org/apache/xalan/xsltc/runtime ErrorMessages.java
java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
java/src/org/apache/xalan/xsltc/cmdline Transform.java
Log:
Patch from myself, reviewed by Morris Kwan (mkwan@ca.ibm.com):
Introduced a versioning mechanism in AbstractTranslet. After constructing an
object of a class that extends AbstractTranslet, the postInitialization method
must be called. That method will detect any versioning differences that can
be resolved automatically, if a translet was compiled with an older version of
the XSLTC than is being used at run-time. The version number is stored in the
translet's transletVersion field.
In many cases, incompabilities run up against Java's binary compatibility
rules, and fail catastrophically. This versioning mechanism is designed to
detect those cases that can't be detected by the JVM. The first use of this
mechanism is to translate from the old form of the namesArray used by old
translets, to the new form expected by the modified version of the XSLTC
run-time, as described above.
In addition, if the translet version detected by the XSLTC run-time is more
recent than any supported by the XSLTC run-time, an error will be reported.
Revision Changes Path
1.8 +17 -6 xml-xalan/java/src/org/apache/xalan/xsltc/runtime/ErrorMessages.java
Index: ErrorMessages.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/ErrorMessages.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ErrorMessages.java 22 Oct 2003 20:23:48 -0000 1.7
+++ ErrorMessages.java 24 Nov 2003 22:18:57 -0000 1.8
@@ -112,6 +112,8 @@
* grammar for an XML file, the names and types of elements, attributes,
* etc.
*
+ * 9) Translet is an invented term that refers to the class file that contains
+ * the compiled form of a stylesheet.
*/
// These message should be read from a locale-specific resource bundle
@@ -257,7 +259,7 @@
*/
{BasisLibrary.CANT_RESOLVE_RELATIVE_URI_ERR,
"Could not resolve the URI reference ''{0}''."},
-
+
/*
* Note to translators: The stylesheet contained an element that was
* not recognized as part of the XSL syntax. The substitution text
@@ -268,13 +270,22 @@
/*
* Note to translators: The stylesheet referred to an extension to the
- * XSL syntax and indicated that it was defined by XSLTC, but XSTLC does
- * not recognized the particular extension named. The substitution text
+ * XSL syntax and indicated that it was defined by XSLTC, but XSLTC does
+ * not recognize the particular extension named. The substitution text
* gives the extension name.
*/
{BasisLibrary.UNSUPPORTED_EXT_ERR,
- "Unrecognised XSLTC extension ''{0}''"}
-
+ "Unrecognized XSLTC extension ''{0}''"},
+
+
+ //
+ // Note to translators: This error message is produced if the translet
+ // class was compiled using a newer version of XSLTC and deployed for
+ // execution with an older version of XSLTC. The substitution text is
+ // the name of the translet class.
+ //
+ {BasisLibrary.UNKNOWN_TRANSLET_VERSION_ERR,
+ "The specified translet, ''{0}'', was created using a version of XSLTC more recent than the version of the XSLTC run-time that is in use. You must recompile the stylesheet or use a more recent version of XSLTC to run this translet."}
};
public Object[][] getContents() {
1.31 +2 -1 xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java
Index: TemplatesImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- TemplatesImpl.java 22 Oct 2003 23:25:07 -0000 1.30
+++ TemplatesImpl.java 24 Nov 2003 22:18:57 -0000 1.31
@@ -370,6 +370,7 @@
// The translet needs to keep a reference to all its auxiliary
// class to prevent the GC from collecting them
AbstractTranslet translet = (AbstractTranslet) _class[_transletIndex].newInstance();
+ translet.postInitialization();
translet.setTemplates(this);
if (_auxClasses != null) {
translet.setAuxiliaryClasses(_auxClasses);
1.29 +2 -1 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.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- Transform.java 31 Oct 2003 14:14:32 -0000 1.28
+++ Transform.java 24 Nov 2003 22:18:57 -0000 1.29
@@ -139,6 +139,7 @@
final Class clazz = ObjectFactory.findProviderClass(
_className, ObjectFactory.findClassLoader(), true);
final AbstractTranslet translet = (AbstractTranslet)clazz.newInstance();
+ translet.postInitialization();
// Create a SAX parser and get the XMLReader object it uses
final SAXParserFactory factory = SAXParserFactory.newInstance();
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org