Installing the Pluto 2.0 Binary Build

About Pluto Distributions

There are a number of distributions to choose from depending on your needs.

  • pluto-bundle - Provides Pluto and Tomcat bundled together. If you are getting started with Pluto, this is the distribution you want.
  • pluto-source-release - Provides the Pluto source code; requires that you build and deploy Pluto on your own.

  1. Download the Pluto 2.0 binary distribution named pluto-current-bundle from a distribution site.
  2. Unzip the binary distribution into a directory.
    1. <PLUTO-2.0-HOME> will be the top level directory.
  3. Execute startup.bat (Windows) or startup.sh (Unix) in <PLUTO-2.0-HOME>/bin.
    1. Use shutdown.bat/shutdown.sh to stop the portal
  4. Browse to http://localhost:8080/pluto/portal
  5. Login as user pluto (password=pluto) or tomcat (password=pluto).

Building Pluto 2.0 from Source

Maven 2 is utilized as the project management and build system for Pluto 2.0. Pluto currently provides Maven plugins which can be used to install the Pluto Portal, assemble portlet applications, deploy applications, and publish portlet applications to the Pluto Portal.

Obtaining Pluto 2.0 Source Code

The Pluto project uses the Subversion version control system. If you're new to Subversion, you can check out the online book about Subversion. Note that we are currently using Subversion 1.3.x (there are separate versions of the book covering the different versions of Subversion).

Web Access to Subversion

To browse the Pluto source code, you can use the ViewCVS web interface to Subversion. This is current at all times.

Normal Subversion Access

Anyone can check code out of Subversion anonymously. However, you need to specify a username and password in order to update the Subversion repository, and only Pluto committers have the permissions to do that. We run Subversion over standard HTTPS, so hopefully you won't have problems with intervening firewalls.

Check out from Subversion

Again, anyone can do this. To check out the latest distribution of Pluto 2.0 (trunk) to a directory called 'pluto' use this command:

svn checkout https://svn.apache.org/repos/asf/portals/pluto/trunk/ pluto

To check out Pluto 2.0.x source to the 'pluto' directory use this command (substituting 'x' for the current release number, e.g. 2.0.0):

svn checkout https://svn.apache.org/repos/asf/portals/pluto/tags/pluto-2.0.3 pluto

Zipped up Pluto 2.0 source distributions can also be downloaded from a distribution mirror.

Building Pluto with Maven 2

If this is your first time building Pluto with Maven 2, edit ~/.m2/settings.xml and add the <pluginGroups> element:

<settings>
  ...
  <pluginGroups>
    <pluginGroup>org.apache.portals.pluto</pluginGroup>
  </pluginGroups>
  ...
</settings>
            

If you don't have org.apache.portals.pluto specified as a <pluginGroup>, then the pluto2:install will fail.

<PLUTO_SRCHOME> is the local directory where the Pluto 2.0 source distribution has been checked out or unzipped into.

$> cd <PLUTO_SRCHOME>
$> mvn install
$> mvn pluto2:install -DinstallDir=path/to/appserver
          

The install goal is a built in Maven 2 lifecycle which builds the project artifacts and installs them into the Maven repository.

The pluto2:install goal will take the resulting artifacts and properly deploy them within the configured Tomcat installation. Currently, the Pluto install has been tested on Tomcat 6.0.33 and 7.0.21.

If installing to a directory that contains spaces, installDir needs to be enclosed within quotes:

C:\pluto> mvn pluto2:install -DinstallDir="C:\Program Files\Apache Software Foundation\Tomcat 7.0"
          

Installing Pluto Manually

This section documents the manual installation of Pluto 2.0 into Tomcat. It replaces the pluto2:install goal, but requires that the built-in Maven 2 install goal (mvn install) be run from <PLUTO_SRCHOME>.

Step 1:

$> cd <PLUTO_SRCHOME>
$> mvn install
          

Step 2: Copy the following files to <TOMCAT_HOME>/lib on Tomcat 6+:

  • portlet-api_2.0_spec-1.0.jar
  • ccpp-1.0.jar
  • pluto-container-api-2.0.3.jar
  • pluto-container-driver-api-2.0.3.jar
  • pluto-taglib-2.0.3.jar
  • portlet-api_2.0_spec-1.0.jar

Step 3: Copy the following to <TOMCAT_HOME>/conf/Catalina/localhost:

  • <PLUTO_SRCHOME>/pluto-portal/src/main/resources/pluto.xml
  • <PLUTO_SRCHOME>/pluto-testsuite/src/main/resources/testsuite.xml

Step 4: Copy the following to <TOMCAT_HOME>/webapps:

  • <PLUTO_SRCHOME>/pluto-portal/target/pluto-portal.war
  • <PLUTO_SRCHOME>/pluto-testsuite/target/pluto-testsuite.war

Configuring Source-Built Pluto for Application Scope PortletSession Attributes

To be able to use application-scoped PortletSession attributes in Pluto, modify the Context element in <TOMCAT_HOME>/conf/context.xml by adding the following attribute and value: sessionCookiePath="/".

Configuring User and Role in the Pluto Source Build

The Pluto Testsuite portlet application needs the role 'pluto' to run the Security Mapping Test. So before starting tomcat, you should edit <TOMCAT_HOME>/conf/tomcat-users.xml, add the role 'pluto', and add a user in that role. The simplest way to do this is to edit add the 'pluto' role to the 'tomcat' user's record. Here is a sample tomcat-users.xml file:

<?xml version="1.0" encoding="utf-8"?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="pluto"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat,pluto,manager"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="pluto" password="pluto" roles="pluto,manager"/>
</tomcat-users>
        

Starting the Portal

Now you are ready to use the Pluto Portal built from source. Start up tomcat by running startup.bat (for windows) or startup.sh (for *nix) in <TOMCAT_HOME>/bin, and browse to http://localhost:8080/pluto/portal. Login to Pluto using the user and password you just created in tomcat-users.xml. If you added the 'pluto' role to the 'tomcat' user's record, you can login as 'tomcat/tomcat'.