
               Running Pluto
               =============

This project contains pluto, the reference implementation for the
Portlet API 1.0, and a test portal to run pluto. In order to install and run
this container, you must do the following:


(0) Download and Install a Java Development Kit

* Download a Java Development Kit (JDK) release (version 1.3.1) from:

    http://java.sun.com/j2se/

* Install the JDK according to the instructions included with the release.

* Set an environment variable JAVA_HOME to the pathname of the directory
  into which you installed the JDK release.


(1) Download and Install the Tomcat 4.1 Binary Distribution

* Download a binary distribution of Tomcat from:

    http://jakarta.apache.org/builds/jakarta-tomcat-4.1/

* Unpack the binary distribution into a convenient location so that the
  distribution resides in its own directory (conventionally named
  "jakarta-tomcat-4.1").  For the purposes of the remainder of this document,
  the symbolic name "${catalina.home}" is used to refer to the full
  pathname of the release directory.


(2) Download Pluto

* Not yet a fixed download location

(3) Install Pluto

* Execute /build/install.bat to install pluto into tomcat


(4) Start Up Tomcat 4.1

* Please see Tomcat instructions for information

(5) Run Pluto

* Default url to start Pluto:

    http://localhost:8080/pluto/portal

* In case Tomcat runs on a different port, change the port setting
  in ${catalina.home}/webapps/pluto/WEB-INF/config/services/ConfigService.properties

(6) Deploy portlets

* To install portlets after you successfully installed Pluto, 
  copy the portlet war's to the /portlets directory and execute
  /build/build.bat deploy_portlets
 