blob: 1ce0b3dc6a26a50235910478980a94f73deac10e [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
* Copyright 2003-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<!-- $Id$ -->
<s1 title="Downloads &amp; Dependencies">
<ul>
<li><link anchor="download">Downloading what you need</link></li>
<li><link anchor="whereis_xml4j">Where do I get &xml4j;? </link></li>
</ul>
<anchor name="download"/>
<s2 title="Downloading what you need">
<p>To use &xslt4j;, you need the following:</p>
<ul>
<li>The JDK or JRE 1.3.x, 1.4.x, or 5.x</li>
<p>You can get the JDK or JRE from <jump href="http://www-128.ibm.com/developerworks/java/jdk/index.html">
IBM developerWorks</jump> or <jump href="http://www.java.sun.com">java.sun.com</jump>.</p>
<li>xml-apis.jar (JAXP APIs)</li>
<li>&xml4j-jar; (or another <link idref="usagepatterns" anchor="plug">XML Parser</link>)</li>
<li>xalan.jar or xsltc.jar</li>
<li>serializer.jar</li>
<li>(Optional) Xalan Java source code</li>
<li>(Optional) Packages to support extension functions and elements</li>
</ul>
<p>Xalan-J has two processors,
an interpretive one, Xalan Interpretive, and a compiled one, Xalan Compiled (XSLTC).
Your choice of which binary distribution to download depends on which
of the processors you want to use.
There are 2 binary distributions available; you only need to choose one of them.
Both binary distributions contain xml-apis.jar and &xml4j-jar; from <resource-ref idref="xml4j-used"/>.</p>
<ul>
<li>The first binary distribution, &xslt4j-dist-bin;.zip or &xslt4j-dist-bin;.tar.gz,
contains the Xalan Interpretive processor, the Xalan Compiled processor (XSLTC) and the
runtime support packages in a single jar, called xalan.jar.
The reason to use this distribution would be that you don't know
which processor you are going to use, or might be using both.
</li><br/><br/>
<li>The second binary distribution, &xslt4j-dist-bin;-2jars.zip or &xslt4j-dist-bin;-2jars.tar.gz
contains the Xalan Interpretive processor in xalan.jar, and the Xalan Compiled
processor (XSLTC) and the runtime support packages in xsltc.jar.
The reason to using this distribution is that you want more control.
If you are using just XSLTC you can put xsltc.jar on the classpath
and not xalan.jar. If you are using just the interpretive processor
you can put xalan.jar on the classpath and not xsltc.jar. Of course
you can put both xalan.jar and xsltc.jar from this distribution
on your classpath if you want to use both.
</li>
</ul>
<p>There is an optional source distribution available for doing your own &xslt4j; builds; see
<link idref="readme" anchor="build">Build notes</link>. You can download the source distribution from
the <resource-ref idref="xslt4j-distdir"/>.</p>
<p>If you plan to run <link idref="extensions">XSLT extensions</link> implemented in languages
other than Java, then you will need an implementation of the Bean Scripting Framework (BSF).
An open source implementation is available for download from Apache. See the
<jump href="http://jakarta.apache.org/bsf/index.html">Apache Jakarta
BSF project</jump>. If you plan to run XSLT extensions implemented in scripting
languages, you will need bsf.jar and one or more additional files as indicated in
<link idref="extensions" anchor="supported-lang">extensions language requirements</link>.
</p>
</s2>
<anchor name="previous-releases"/>
<s2 title="Where do I download previous releases?">
<p>
To access previous releases, see the <resource-ref idref="xslt4j-distdir-previous"/>.
</p>
</s2>
<anchor name="whereis_xml4j"/>
<s2 title="Where do I get &xml4j;?">
<p>
The &xslt4j; download includes &xml4j-jar; from &xml4j-used;. In conjunction with xml-apis.jar,
this is all you need to run &xslt4j; with the &xml4j; XML parser. You can, however, download the
complete &xml4j; binary or source distribution from the <resource-ref idref="xml4j-distdir"/>.
If you cannot find &xml4j-used; at that location, have a look at the
<jump href="http://archive.apache.org/dist/xml/xerces-j/">Apache archive location for
Xerces Java</jump>.
</p>
<note>If you plan to use a different XML parser, see <link idref="usagepatterns" anchor="plug">Plugging
in a Transformer and XML parser</link>.</note>
</s2>
<anchor name="gump"/>
<s2 title="How do I download pre-built jars of the lastest code?">
<p>
If you want the latest development code but don't want to build it yourself, you can
download xalan.jar, serializer.jar, and xsltc.jar built from the latest development code at gump
from this link to the <jump href="http://vmgump.apache.org/gump/public-jars/xml-xalan/jars/">nightly gump builds</jump>.
You can download the lastest jars from the gump site
to check whether the problem still exists in the latest code.
Note that the latest jars of interest at that site have the names with a time-stamp in the middle of their name.
These are nightly builds, use them an your own risk!
</p>
<p>
Gump is basically a meta-build system designed to do code extraction and Ant builds
of multiple projects simultaneously. Luckily, Gump is a top-level project
that includes a complete set of
<jump href="http://gump.apache.org/">documentation</jump>.
</p>
<p>
The Gump committers also provide a Gump service, which runs actual
builds nightly of nearly all Apache's Java-based projects. The
<jump href="http://gump.apache.org/">results</jump> of nightly builds and
jar files for &xslt4j; (when the build succeeds) are posted daily.
</p>
<p>Note: nightly builds are just that - automated builds run nightly,
without human intervention.
</p>
</s2>
<anchor name="viewcode"/>
<s2 title="How do I view Xalan code in a browser?">
<p>
If you wish to view some of Xalan's files in a browser without downloading the
whole project you can view it at
<jump href="http://svn.apache.org/viewvc/xalan/">http://svn.apache.org/viewvc/xalan/</jump>
or at
<jump href="http://svn.apache.org/repos/asf/xalan/">http://svn.apache.org/repos/asf/xalan/</jump>.
The link with "viewvc" in it is slightly prettier.
</p>
<p>
The java/trunk and test/trunk subdirectories are the ones with the latest development code.
</p>
</s2>
<anchor name="buildmyself"/>
<s2 title="How do I download the latest development code to build myself?">
<p>
If you wish to download Xalan and build it yourself, perhaps because you want to
apply a patch and test it, you will need a subversion client and anonymous access
to the repository.
Don't worry, everyone has anonymous access.
You can find pre-built binaries of subversion clients for different
operating systems here:
<jump href="http://subversion.tigris.org/project_packages.html#binary-packages">
http://subversion.tigris.org/project_packages.html#binary-packages</jump>.
See
<jump href="http://www.apache.org/dev/version-control.html">
http://www.apache.org/dev/version-control.html
</jump> for more information on Apache and subversion.
</p>
<p>
Once the subverion client is installed on your local machine you
can use the command line client program <code>svn</code>
to get the latest Xalan-J using a command line something like this:
<source>
svn checkout http://svn.apache.org/repos/asf/xalan/java/trunk java
</source>
where the argument after <code>checkout</code> is the Subversion repository location,
in this case the location of the latest development code, and the last argument,
in this case <code>java</code> is the location of the local directory that the repository is
copied to.
</p>
<p>
Similarly for the test harness, you can download the latest test harness with a Subversion command
something like this:
<source>
svn checkout http://svn.apache.org/repos/asf/xalan/test/trunk test
</source>
</p>
<p>
Those two commands will put a copy of the latest parts in the local
directories <code>java</code> and <code>test</code>,
which are sibling directories. If you
want to test your build with
the test harness provided with Xalan then it is easiest if you keep the
local directory names
as suggested. With your paths set up to compile Java code, go into the local <code>java</code>
directory and issue these two commands:
<source>
build clean
build
</source>
Other useful targets may be <code>xsltc.jar</code> or <code>serializer.jar</code>.
If you want to test the jars you just built in the directory <code>java/build</code>, change to
directory <code>test</code> and issue this command:
<source>
build jar
build smoketest
</source>
The first target, <code>jar</code> builds the test harness and only needs to be done
once after the <code>test</code> repository is checked out. The second target, <code>smoketest</code>,
runs the Xalan-J intepretive smoketest.
Running the <code>build smoketest</code> or other targets in the <code>test</code> directory
automatically looks for the jars in the directory <code>../java/build</code>
and that is why it is easiest to download the projects into suggested sibling
directories with the given names.
</p>
<p>
Towards the end of the console output you will see <em>two CONGRATULATIONS!</em> messages if all
goes well. The end of the console output should look like this:
<source>
.
.
.
minitest-pass:
[echo] [minitest] CONGRATULATIONS! The Minitest passed!
[echo] [minitest] See details in smoketest/Minitest.xml
smoketest-notpass:
smoketest-pass:
[echo] [minitest] CONGRATULATIONS! The Smoketest passed!
[echo] [minitest] Details are in smoketest/results-conf.xml, smoketest/results-api.xml, smoketest/extensions/results-extensions.xml
smoketest:
BUILD SUCCESSFUL
Total time: 2 minutes 4 seconds
build completed!
</source>
</p>
<p>
Don't be fooled by the <em>BUILD SUCCESSFUL</em> messages, look for the two CONGRATULATIONS!
messages. If you run the smoketest for XSLTC with <code>build smoketest.xsltc</code> you wil
only get one CONGRATULATIONS! message if all goes well.
</p>
</s2>
</s1>