
RUNTIME REQUIREMENTS

The following jar files are required by JSPWiki for deployment.

akismet-java-1.02.jar
      Automattic's Akismet anti-spam service, version 1.02
      http://akismet.com/

ecs.jar
      Element Construction Set, version 1.4.2
			http://jakarta.apache.org/ecs/index.html

freshcookies-security-0.54.jar
			Andrew Jaquith's security utilities.
			http://freshcookies.org/

jsonrpc-1.0.jar
      JSON-RPC implementation
      http://oss.metaparadigm.com/jsonrpc/

jrcs-diff.jar
      JRCS diff utilities
			http://www.suigeneris.org/kb/display/jrcs/JRCS+Home
			
jug-asl-2.0.0.jar
      Java UUID generator
      http://docs.safehaus.org/display/JUG/Home

lucene-highlighter.jar
      Search term highlighter utility, from Lucene sandbox.
			http://lucene.apache.org/java/docs/lucene-sandbox/

lucene.jar
      Lucene search engine, version 2.0.0.
			http://lucene.apache.org/java/docs/index.html

multipartrequest.jar
      Pell Multipart request utility, version 1.30b3.
			http://freshmeat.net/projects/multipartrequest

nekohtml.jar
      HTML parser utilities, version 0.9.4.
			http://people.apache.org/~andyc/neko/doc/html/

oro.jar
      Jakarta regular expression utility, version unknown.
			http://jakarta.apache.org/oro/

oscache.jar
      Cache utility library, version 2.3.1.
			http://www.opensymphony.com/oscache/

sandler.jar
      Atom utilities. Version unknown.
			(Home page unknown at the moment.)

xmlrpc.jar
      XML-RPC implementation, version 2.0.1.
			(http://ws.apache.org/xmlrpc/index.html)


RUNTIME REQUIREMENTS, PROVISIONAL

The following APIs/jar files are required by JSPWiki at run-time, but are often provided by the JSP container.

activation.jar
      Java Activation Framework, version 1.1.
			http://java.sun.com/products/javabeans/jaf/downloads/index.html

commons-codec-1.3.jar
      Jakarta Commons Codec, version 1.3
      http://jakarta.apache.org/commons/codec/

commons-httpclient-3.0.1.jar
      Jakarta Commons HttpClient library, version 3.0.1
      http://jakarta.apache.org/commons/httpclient/

commons-lang-2.3.jar
      Jakarta commons lang, version 2.3
			http://jakarta.apache.org/commons/lang/	

commons-logging-api.jar
      Jakarta commons logging, version 1.0.4
			http://jakarta.apache.org/commons/logging/

jakarta-taglibs-standard-1.1.2.jar
jakarta-taglibs-jstl-1.1.2.jar
      Apache Jakarta Standard/JSTL Taglibs, version 1.1.2
      http://jakarta.apache.org/taglibs/

jaxen.jar
      Java XPath Engine, version 1.1b6.
			http://jaxen.codehaus.org/index.html
 
jdom.jar
      JDOM, version 1.0.
			http://www.jdom.org/
			Note: requires xerces, in classpath before any other XML parsers.

log4j.jar
      Logging library, version 1.2.14.
			http://logging.apache.org/log4j/docs/

mail.jar
      Java Mail API, version 1.4.
			http://java.sun.com/products/javamail/


BUILD REQUIREMENTS

The following jar files are required to build and/or test JSPWiki (in addition to the previously listed ones), but are not necessary for deployment. These are stored in tests/lib.

commons-el-1.0
      JSP 2.0 expression language Apache implementation; used by Jetty, version 1.0.
      http://commons.apache.org/el/

custom_rhino.jar
      Rhino JavaScript library; used to compress JSPWiki's JavaScript files.

hsqldb.jar
      Hypersonic embedded DB, version 1.8.0. 
      http://www.hsqldb.org/

jasper-compiler-5.5.25
      Apache Tomcat 5.5 JSP compiler; used by Jetty.
      http://tomcat.apache.org

jasper-runtime-5.5.25
      Apache Tomcat 5.5 JSP runtime support classes; used by Jetty.
      http://tomcat.apache.org

junit.jar
      Java Unit testing framework, version 3.8.1.
      http://www.junit.org/index.htm

jetty-jmx-5.1.14.jar
      Jetty implementation of JMX classes, version 5.1.14.
      Renamed from: org.mortbay.jmx.jar
      http://dist.codehaus.org/jetty/jetty-5.1.x/

jetty-plus-5.1.14.jar
      Jetty additional classes that support JNDI and Datasources;
      used for web unit testing. Built by changing to jetty-src/extra/plus
      and executing 'ant jars'. Renamed from: org.mortbay.jetty.plus.jar

jetty-servlet-5.1.14.jar
      Jetty implementation of J2EE servlet classes, version 5.1.14.
      Renamed from: javax.servlet.jar
      http://dist.codehaus.org/jetty/jetty-5.1.x/

selenium-java-client-driver-0.9.2
      Selenium Remote Control web unit testing client
      for driving Firefox, Safari, and Internet Explorer.
      http://selenium-rc.openqa.org/

selenium-server-0.9.2-patched.jar
      Selenium Remote Control server for web unit testing. Includes
      bundled Jetty 5.1.14 server inside JAR. We applied patches to the
      Selenium JavaScript files to make them compatible with Mootools
      (see  tests/etc/selenium/selenium-core-0.8.3-patches).
      http://selenium-rc.openqa.org/

xercesImpl-2.6.2.jar
      Apache Xerces2 XML parser, version 2.6.2.
      http://xerces.apache.org/xerces2-j/index.html

xml-apis-1.0.b2.jar
      Collection of XML API implementations.
      (Source unknown.)

