blob: 7c1ce04a283a005d57b5d67f439af62eac5b69f0 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_18) on Sun Apr 01 21:18:17 PDT 2012 -->
<TITLE>
EnvironmentCheck
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xalan.xslt.EnvironmentCheck class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="EnvironmentCheck";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/EnvironmentCheck.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/xslt/ObjectFactory.html" title="class in org.apache.xalan.xslt"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/xalan/xslt/EnvironmentCheck.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="EnvironmentCheck.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.xalan.xslt</FONT>
<BR>
Class EnvironmentCheck</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.xalan.xslt.EnvironmentCheck</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.92"><B>EnvironmentCheck</B></A><DT>extends java.lang.Object</DL>
</PRE>
<P>
Utility class to report simple information about the environment.
Simplistic reporting about certain classes found in your JVM may
help answer some FAQs for simple problems.
<p>Usage-command line:
<code>
java org.apache.xalan.xslt.EnvironmentCheck [-out outFile]
</code></p>
<p>Usage-from program:
<code>
boolean environmentOK =
(new EnvironmentCheck()).checkEnvironment(yourPrintWriter);
</code></p>
<p>Usage-from stylesheet:
<code><pre>
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xalan="http://xml.apache.org/xalan"
exclude-result-prefixes="xalan"&gt;
&lt;xsl:output indent="yes"/&gt;
&lt;xsl:template match="/"&gt;
&lt;xsl:copy-of select="xalan:checkEnvironment()"/&gt;
&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;
</pre></code></p>
<p>Xalan users reporting problems are encouraged to use this class
to see if there are potential problems with their actual
Java environment <b>before</b> reporting a bug. Note that you
should both check from the JVM/JRE's command line as well as
temporarily calling checkEnvironment() directly from your code,
since the classpath may differ (especially for servlets, etc).</p>
<p>Also see http://xml.apache.org/xalan-j/faq.html</p>
<p>Note: This class is pretty simplistic:
results are not necessarily definitive nor will it find all
problems related to environment setup. Also, you should avoid
calling this in deployed production code, both because it is
quite slow and because it forces classes to get loaded.</p>
<p>Note: This class explicitly has very limited compile-time
dependencies to enable easy compilation and usage even when
Xalan, DOM/SAX/JAXP, etc. are not present.</p>
<p>Note: for an improved version of this utility, please see
the xml-commons' project Which utility which does the same kind
of thing but in a much simpler manner.</p>
<P>
<P>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#CLASS_NOTPRESENT">CLASS_NOTPRESENT</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marker that a class or .jar was not found.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#CLASS_PRESENT">CLASS_PRESENT</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marker that a class or .jar was found.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#ERROR">ERROR</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefixed to hash keys that signify serious problems.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#ERROR_FOUND">ERROR_FOUND</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value for any error found.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#FOUNDCLASSES">FOUNDCLASSES</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefixed to hash keys that signify .jars found in classpath.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#jarNames">jarNames</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Listing of common .jar files that include Xalan-related classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private static&nbsp;java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#jarVersions">jarVersions</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manual table of known .jar sizes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.io.PrintWriter</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#outWriter">outWriter</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Simple PrintWriter we send output to; defaults to System.out.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#VERSION">VERSION</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefixed to hash keys that signify version numbers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#WARNING">WARNING</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Added to descriptions that signify potential problems.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#EnvironmentCheck()">EnvironmentCheck</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#appendEnvironmentReport(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Hashtable)">appendEnvironmentReport</A></B>(org.w3c.dom.Node&nbsp;container,
org.w3c.dom.Document&nbsp;factory,
java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stylesheet extension entrypoint: Dump a basic Xalan
environment report from getEnvironmentHash() to a Node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#appendFoundJars(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Vector, java.lang.String)">appendFoundJars</A></B>(org.w3c.dom.Node&nbsp;container,
org.w3c.dom.Document&nbsp;factory,
java.util.Vector&nbsp;v,
java.lang.String&nbsp;desc)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print out report of .jars found in a classpath.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkAntVersion(java.util.Hashtable)">checkAntVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report product version information from Ant.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkDOMVersion(java.util.Hashtable)">checkDOMVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report version info from DOM interfaces.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkEnvironment(java.io.PrintWriter)">checkEnvironment</A></B>(java.io.PrintWriter&nbsp;pw)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Programmatic entrypoint: Report on basic Java environment
and CLASSPATH settings that affect Xalan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkJAXPVersion(java.util.Hashtable)">checkJAXPVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report version information about JAXP interfaces.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkParserVersion(java.util.Hashtable)">checkParserVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report product version information from common parsers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkPathForJars(java.lang.String, java.lang.String[])">checkPathForJars</A></B>(java.lang.String&nbsp;cp,
java.lang.String[]&nbsp;jars)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cheap-o listing of specified .jars found in the classpath.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkProcessorVersion(java.util.Hashtable)">checkProcessorVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report product version information from Xalan-J.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkSAXVersion(java.util.Hashtable)">checkSAXVersion</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report version info from SAX interfaces.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkSystemProperties(java.util.Hashtable)">checkSystemProperties</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fillin hash with info about SystemProperties.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getApparentVersion(java.lang.String, long)">getApparentVersion</A></B>(java.lang.String&nbsp;jarName,
long&nbsp;jarSize)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cheap-o method to determine the product version of a .jar.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getEnvironmentHash()">getEnvironmentHash</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fill a hash with basic environment settings that affect Xalan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#logFoundJars(java.util.Vector, java.lang.String)">logFoundJars</A></B>(java.util.Vector&nbsp;v,
java.lang.String&nbsp;desc)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print out report of .jars found in a classpath.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#logMsg(java.lang.String)">logMsg</A></B>(java.lang.String&nbsp;s)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bottleneck output: calls outWriter.println(s).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line runnability: checks for [-out outFilename] arg.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#writeEnvironmentReport(java.util.Hashtable)">writeEnvironmentReport</A></B>(java.util.Hashtable&nbsp;h)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dump a basic Xalan environment report to outWriter.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="ERROR"><!-- --></A><H3>
ERROR</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.305"><B>ERROR</B></A></PRE>
<DL>
<DD>Prefixed to hash keys that signify serious problems.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.ERROR">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="WARNING"><!-- --></A><H3>
WARNING</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.308"><B>WARNING</B></A></PRE>
<DL>
<DD>Added to descriptions that signify potential problems.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.WARNING">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ERROR_FOUND"><!-- --></A><H3>
ERROR_FOUND</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.311"><B>ERROR_FOUND</B></A></PRE>
<DL>
<DD>Value for any error found.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.ERROR_FOUND">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="VERSION"><!-- --></A><H3>
VERSION</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.314"><B>VERSION</B></A></PRE>
<DL>
<DD>Prefixed to hash keys that signify version numbers.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.VERSION">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="FOUNDCLASSES"><!-- --></A><H3>
FOUNDCLASSES</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.317"><B>FOUNDCLASSES</B></A></PRE>
<DL>
<DD>Prefixed to hash keys that signify .jars found in classpath.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.FOUNDCLASSES">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CLASS_PRESENT"><!-- --></A><H3>
CLASS_PRESENT</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.320"><B>CLASS_PRESENT</B></A></PRE>
<DL>
<DD>Marker that a class or .jar was found.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.CLASS_PRESENT">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CLASS_NOTPRESENT"><!-- --></A><H3>
CLASS_NOTPRESENT</H3>
<PRE>
public static final java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.323"><B>CLASS_NOTPRESENT</B></A></PRE>
<DL>
<DD>Marker that a class or .jar was not found.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.xalan.xslt.EnvironmentCheck.CLASS_NOTPRESENT">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="jarNames"><!-- --></A><H3>
jarNames</H3>
<PRE>
public java.lang.String[] <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.326"><B>jarNames</B></A></PRE>
<DL>
<DD>Listing of common .jar files that include Xalan-related classes.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="jarVersions"><!-- --></A><H3>
jarVersions</H3>
<PRE>
private static java.util.Hashtable <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.1184"><B>jarVersions</B></A></PRE>
<DL>
<DD>Manual table of known .jar sizes.
Only includes shipped versions of certain projects.
key=jarsize, value=jarname ' from ' distro name
Note assumption: two jars cannot have the same size!
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getApparentVersion(java.lang.String, long)"><CODE>getApparentVersion(String, long)</CODE></A></DL>
</DL>
<HR>
<A NAME="outWriter"><!-- --></A><H3>
outWriter</H3>
<PRE>
protected java.io.PrintWriter <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.1286"><B>outWriter</B></A></PRE>
<DL>
<DD>Simple PrintWriter we send output to; defaults to System.out.
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="EnvironmentCheck()"><!-- --></A><H3>
EnvironmentCheck</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.92"><B>EnvironmentCheck</B></A>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="main(java.lang.String[])"><!-- --></A><H3>
main</H3>
<PRE>
public static void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.101"><B>main</B></A>(java.lang.String[]&nbsp;args)</PRE>
<DL>
<DD>Command line runnability: checks for [-out outFilename] arg.
<p>Command line entrypoint; Sets output and calls
<A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkEnvironment(java.io.PrintWriter)"><CODE>checkEnvironment(PrintWriter)</CODE></A>.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>args</CODE> - command line args</DL>
</DD>
</DL>
<HR>
<A NAME="checkEnvironment(java.io.PrintWriter)"><!-- --></A><H3>
checkEnvironment</H3>
<PRE>
public boolean <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.161"><B>checkEnvironment</B></A>(java.io.PrintWriter&nbsp;pw)</PRE>
<DL>
<DD>Programmatic entrypoint: Report on basic Java environment
and CLASSPATH settings that affect Xalan.
<p>Note that this class is not advanced enough to tell you
everything about the environment that affects Xalan, and
sometimes reports errors that will not actually affect
Xalan's behavior. Currently, it very simplistically
checks the JVM's environment for some basic properties and
logs them out; it will report a problem if it finds a setting
or .jar file that is <i>likely</i> to cause problems.</p>
<p>Advanced users can peruse the code herein to help them
investigate potential environment problems found; other users
may simply send the output from this tool along with any bugs
they submit to help us in the debugging process.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pw</CODE> - PrintWriter to send output to; can be sent to a
file that will look similar to a Properties file; defaults
to System.out if null
<DT><B>Returns:</B><DD>true if your environment appears to have no major
problems; false if potential environment problems found<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getEnvironmentHash()"><CODE>getEnvironmentHash()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getEnvironmentHash()"><!-- --></A><H3>
getEnvironmentHash</H3>
<PRE>
public java.util.Hashtable <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.215"><B>getEnvironmentHash</B></A>()</PRE>
<DL>
<DD>Fill a hash with basic environment settings that affect Xalan.
<p>Worker method called from various places.</p>
<p>Various system and CLASSPATH, etc. properties are put into
the hash as keys with a brief description of the current state
of that item as the value. Any serious problems will be put in
with a key that is prefixed with <A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#ERROR"><CODE>'ERROR.'</CODE></A> so it
stands out in any resulting report; also a key with just that
constant will be set as well for any error.</p>
<p>Note that some legitimate cases are flaged as potential
errors - namely when a developer recompiles xalan.jar on their
own - and even a non-error state doesn't guaruntee that
everything in the environment is correct. But this will help
point out the most common classpath and system property
problems that we've seen.</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD>Hashtable full of useful environment info about Xalan
and related system properties, etc.</DL>
</DD>
</DL>
<HR>
<A NAME="writeEnvironmentReport(java.util.Hashtable)"><!-- --></A><H3>
writeEnvironmentReport</H3>
<PRE>
protected boolean <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.248"><B>writeEnvironmentReport</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Dump a basic Xalan environment report to outWriter.
<p>This dumps a simple header and then each of the entries in
the Hashtable to our PrintWriter; it does special processing
for entries that are .jars found in the classpath.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable of items to report on; presumably
filled in by our various check*() methods
<DT><B>Returns:</B><DD>true if your environment appears to have no major
problems; false if potential environment problems found<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#appendEnvironmentReport(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Hashtable)"><CODE>for an equivalent that appends to a Node instead</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="logFoundJars(java.util.Vector, java.lang.String)"><!-- --></A><H3>
logFoundJars</H3>
<PRE>
protected boolean <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.353"><B>logFoundJars</B></A>(java.util.Vector&nbsp;v,
java.lang.String&nbsp;desc)</PRE>
<DL>
<DD>Print out report of .jars found in a classpath.
Takes the information encoded from a checkPathForJars()
call and dumps it out to our PrintWriter.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>v</CODE> - Vector of Hashtables of .jar file info<DD><CODE>desc</CODE> - description to print out in header
<DT><B>Returns:</B><DD>false if OK, true if any .jars were reported
as having errors<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkPathForJars(java.lang.String, java.lang.String[])"><CODE>checkPathForJars(String, String[])</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="appendEnvironmentReport(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Hashtable)"><!-- --></A><H3>
appendEnvironmentReport</H3>
<PRE>
public void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.409"><B>appendEnvironmentReport</B></A>(org.w3c.dom.Node&nbsp;container,
org.w3c.dom.Document&nbsp;factory,
java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Stylesheet extension entrypoint: Dump a basic Xalan
environment report from getEnvironmentHash() to a Node.
<p>Copy of writeEnvironmentReport that creates a Node suitable
for other processing instead of a properties-like text output.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>container</CODE> - Node to append our report to<DD><CODE>factory</CODE> - Document providing createElement, etc. services<DD><CODE>h</CODE> - Hash presumably from <A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getEnvironmentHash()"><CODE>getEnvironmentHash()</CODE></A><DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#writeEnvironmentReport(java.util.Hashtable)"><CODE>for an equivalent that writes to a PrintWriter instead</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="appendFoundJars(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Vector, java.lang.String)"><!-- --></A><H3>
appendFoundJars</H3>
<PRE>
protected boolean <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.505"><B>appendFoundJars</B></A>(org.w3c.dom.Node&nbsp;container,
org.w3c.dom.Document&nbsp;factory,
java.util.Vector&nbsp;v,
java.lang.String&nbsp;desc)</PRE>
<DL>
<DD>Print out report of .jars found in a classpath.
Takes the information encoded from a checkPathForJars()
call and dumps it out to our PrintWriter.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>container</CODE> - Node to append our report to<DD><CODE>factory</CODE> - Document providing createElement, etc. services<DD><CODE>v</CODE> - Vector of Hashtables of .jar file info<DD><CODE>desc</CODE> - description to print out in header
<DT><B>Returns:</B><DD>false if OK, true if any .jars were reported
as having errors<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkPathForJars(java.lang.String, java.lang.String[])"><CODE>checkPathForJars(String, String[])</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="checkSystemProperties(java.util.Hashtable)"><!-- --></A><H3>
checkSystemProperties</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.562"><B>checkSystemProperties</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Fillin hash with info about SystemProperties.
Logs java.class.path and other likely paths; then attempts
to search those paths for .jar files with Xalan-related classes.
//@todo NOTE: We don't actually search java.ext.dirs for
// *.jar files therein! This should be updated
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#jarNames"><CODE>jarNames</CODE></A>,
<A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#checkPathForJars(java.lang.String, java.lang.String[])"><CODE>checkPathForJars(String, String[])</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="checkPathForJars(java.lang.String, java.lang.String[])"><!-- --></A><H3>
checkPathForJars</H3>
<PRE>
protected java.util.Vector <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.656"><B>checkPathForJars</B></A>(java.lang.String&nbsp;cp,
java.lang.String[]&nbsp;jars)</PRE>
<DL>
<DD>Cheap-o listing of specified .jars found in the classpath.
cp should be separated by the usual File.pathSeparator. We
then do a simplistic search of the path for any requested
.jar filenames, and return a listing of their names and
where (apparently) they came from.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cp</CODE> - classpath to search<DD><CODE>jars</CODE> - array of .jar base filenames to look for
<DT><B>Returns:</B><DD>Vector of Hashtables filled with info about found .jars<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#jarNames"><CODE>jarNames</CODE></A>,
<A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#logFoundJars(java.util.Vector, java.lang.String)"><CODE>logFoundJars(Vector, String)</CODE></A>,
<A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#appendFoundJars(org.w3c.dom.Node, org.w3c.dom.Document, java.util.Vector, java.lang.String)"><CODE>appendFoundJars(Node, Document, Vector, String )</CODE></A>,
<A HREF="../../../../org/apache/xalan/xslt/EnvironmentCheck.html#getApparentVersion(java.lang.String, long)"><CODE>getApparentVersion(String, long)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getApparentVersion(java.lang.String, long)"><!-- --></A><H3>
getApparentVersion</H3>
<PRE>
protected java.lang.String <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.740"><B>getApparentVersion</B></A>(java.lang.String&nbsp;jarName,
long&nbsp;jarSize)</PRE>
<DL>
<DD>Cheap-o method to determine the product version of a .jar.
Currently does a lookup into a local table of some recent
shipped Xalan builds to determine where the .jar probably
came from. Note that if you recompile Xalan or Xerces
yourself this will likely report a potential error, since
we can't certify builds other than the ones we ship.
Only reports against selected posted Xalan-J builds.
//@todo actually look up version info in manifests
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>jarName</CODE> - base filename of the .jarfile<DD><CODE>jarSize</CODE> - size of the .jarfile
<DT><B>Returns:</B><DD>String describing where the .jar file probably
came from</DL>
</DD>
</DL>
<HR>
<A NAME="checkJAXPVersion(java.util.Hashtable)"><!-- --></A><H3>
checkJAXPVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.781"><B>checkJAXPVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report version information about JAXP interfaces.
Currently distinguishes between JAXP 1.0.1 and JAXP 1.1,
and not found; only tests the interfaces, and does not
check for reference implementation versions.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="checkProcessorVersion(java.util.Hashtable)"><!-- --></A><H3>
checkProcessorVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.831"><B>checkProcessorVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report product version information from Xalan-J.
Looks for version info in xalan.jar from Xalan-J products.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="checkParserVersion(java.util.Hashtable)"><!-- --></A><H3>
checkParserVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.920"><B>checkParserVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report product version information from common parsers.
Looks for version info in xerces.jar/xercesImpl.jar/crimson.jar.
//@todo actually look up version info in crimson manifest
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="checkAntVersion(java.util.Hashtable)"><!-- --></A><H3>
checkAntVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.984"><B>checkAntVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report product version information from Ant.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="checkDOMVersion(java.util.Hashtable)"><!-- --></A><H3>
checkDOMVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.1019"><B>checkDOMVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report version info from DOM interfaces.
Currently distinguishes between pre-DOM level 2, the DOM
level 2 working draft, the DOM level 2 final draft,
and not found.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="checkSAXVersion(java.util.Hashtable)"><!-- --></A><H3>
checkSAXVersion</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.1097"><B>checkSAXVersion</B></A>(java.util.Hashtable&nbsp;h)</PRE>
<DL>
<DD>Report version info from SAX interfaces.
Currently distinguishes between SAX 2, SAX 2.0beta2,
SAX1, and not found.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - Hashtable to put information in</DL>
</DD>
</DL>
<HR>
<A NAME="logMsg(java.lang.String)"><!-- --></A><H3>
logMsg</H3>
<PRE>
protected void <A HREF="../../../../src-html/org/apache/xalan/xslt/EnvironmentCheck.html#line.1292"><B>logMsg</B></A>(java.lang.String&nbsp;s)</PRE>
<DL>
<DD>Bottleneck output: calls outWriter.println(s).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>s</CODE> - String to print</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/EnvironmentCheck.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/xslt/ObjectFactory.html" title="class in org.apache.xalan.xslt"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/xalan/xslt/EnvironmentCheck.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="EnvironmentCheck.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>