<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 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.
-->
<document>
<properties>
  <author email="nlothian.AT.apache.DOT.org">Nick Lothian</author>
  <author email="ddewolf.AT.apache.DOT.org">David DeWolf</author>
  <author email="cdoremus.AT.apache.DOT.org">Craig Doremus</author>
  <author email="zheng.AT.apache.DOT.org">ZHENG Zhong</author>
  <title>User Guide: Pluto Portal Driver</title>
</properties>

<body>
<section name="User Guide: Pluto 1.0.1 Portal Driver">
  <p>
  <ul>
  <li><A href="#Limitations">Limitations</A></li>
  <li><A href="#Configuration">Configuration</A></li>
  <li><A href="#Defining_the_Portal_Layout">Defining the Portal Layout</A></li>
  <li><A href="#Advanced_Customization">Advanced Customization</A></li>
  <li><A href="#Internationalization">Internationalization</A></li>
  <li><A href="#Further_Information">Further Information</A></li>
  </ul>
  </p>
</section>


<section name="Limitations">
    <p>
       The Pluto Portal is intended to provide an example implementation of
       how to integrate Pluto into a portal. Additionally, it may be used for
       the development of compliant portlets.  In some places it lacks the 
       flexibility a true portal supplies. The portal is not designed for 
       maximum performance, but rather simplicity.
     </p>

     <p>
       To learn how to embed Pluto in your own portal, see the
	   "<a href="../developer/integrate.html">Integration Guide</a>" document.</p>
</section>

<section name="Configuration">
  <subsection name="Default Configuration">
    <p>
      Upon installation of the binary distribution of Pluto 1.0.1, the portal
      driver is made available at <code>http://localhost:8080/pluto/portal</code>.
      The default installation is configured with a portal page which
      contains two instances of the testsuite portlet and an administration.
      portlet for installing custom portlets and viewing the repositories.  
      This configuration is also the default for installations completed from the source distribution
      (or Subversion repository) and deployed using the Pluto deploy tool.
    </p>
    <p>
      <table>
      <caption><B>Default Configuration for Binary Distributions:</B></caption>
      <tr><th>Configuration</th>
          <th>Platform</th>
          <th>Value</th><th>Description</th></tr>
      <tr><td>Installation Directory</td>
          <td>All</td>
          <td>&lt;PLUTO_HOME&gt;</td>
          <td>The directory to which you unarchived the distribution</td></tr>
      <tr><td>Startup Scripts</td>
          <td>*nix</td>
          <td>&lt;PLUTO_HOME&gt;/bin/startup.sh</td>
          <td>The script used to startup the portal driver</td></tr>
      <tr><td>Startup Scripts</td>
          <td>Windows</td>
          <td>&lt;PLUTO_HOME&gt;/bin/startup.bat</td>
          <td>The script used to startup the portal driver</td></tr>
      <tr><td>Context Configuration</td>
          <td>All</td>
          <td>&lt;PLUTO_HOME&gt;/conf/Catalina/localhost/pluto.xml</td>
          <td>The Tomcat Context Configuration file</td></tr>
      </table>
    </p>

    <p>
      <table>
      <caption><B>Default Configuration for Source Distributions:</B></caption>
      <tr><th>Configuration</th>
          <th>Platform</th>
          <th>Value</th><th>Description</th></tr>
      <tr><td>Installation Directory</td>
          <td>All</td>
          <td>${maven.tomcat.home}</td>
          <td>The tomcat installation directory to which pluto has been installed</td></tr>
      <tr><td>Startup Scipts</td>
          <td>*nix</td>
          <td>${maven.tomcat.home}/bin/startup.sh</td>
          <td>The script used to startup the portal driver</td></tr>
      <tr><td>Startup Scipts</td>
          <td>Windows</td>
          <td>${maven.tomcat.home}/bin/startup.bat</td>
          <td>The script used to startup the portal driver</td></tr>
      <tr><td>Context Configuration</td>
          <td>Tomcat 5.5</td>
          <td>${maven.tomcat.home}/conf/Catalina/localhost/pluto.xml</td>
          <td>The Tomcat Context Configuration file</td></tr>
      </table>
    </p>

    <p>When the Pluto Portal is first installed, it is made available at 
       the address http://localhost:8080/pluto/portal/.</p>

				<p>This location can be customized, using standard Tomcat functionality. To modify the <i>pluto</i> part of the
				location, alter the path mapping in pluto's context configuration file <i>pluto.xml</i></p>

				<p>Under Tomcat 5.5, pluto.xml will be located
				in the ${TOMCAT_HOME}/conf/Catalina/ directory. </p>

				<p>In order to modify the context Pluto is running under, modify the <i>path</i> attribute:</p>
				<p>
				<b>Before:</b>
				<source>
	&lt;Context path="/pluto" docBase="pluto" crossContext="true"&gt;
	&lt;/Context&gt;
				</source>
				</p>
				<p><b>After:</b>
				<source>
	&lt;Context path="/newlocation" docBase="pluto" crossContext="true"&gt;
	&lt;/Context&gt;
				</source>
				</p>
				
				<p>You might also need to modify host.name and portletcontainer.uniquename in 
				${TOMCAT_HOME}/webapps/pluto/WEB-INF/config/services/ConfigService.properties.
				</p>

				<p>After this modification (and restarting Tomcat),
				the Pluto Portal will be available at the address http://servername/newlocation/portal/.
				Further information on customizing the context configuration is available for
				<a href="http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/context.html">Tomcat 5.5</a>.
				</p>

				<p>To modify the <i>portal</i> part of the location, alter the <i>url-pattern</i> for the
				<i>pluto</i> servlet. This mapping can be found in the <i>web.xml</i> configuration file
				for the Pluto web application.</p>
				<p>
				<b>Before:</b>
				<source>
    &lt;servlet-mapping&gt;
       &lt;servlet-name&gt;pluto&lt;/servlet-name&gt;
       &lt;url-pattern&gt;/portal/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
				</source>
				</p>
				<p>
				<b>After:</b>
				<source>
    &lt;servlet-mapping&gt;
       &lt;servlet-name&gt;pluto&lt;/servlet-name&gt;
       &lt;url-pattern&gt;/app/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
				</source>
				</p>
				
				<p>You will also need to modify servlet.insecure in ${TOMCAT_HOME}/webapps/pluto/WEB-INF/config/services/ConfigService.properties.
				</p>
				
				<p>After these modifications (and restarting Tomcat),
				the Pluto Portal will be available at the address http://servername/newlocation/app/
				(assuming that the previous modification was also applied).
				</p>
			</subsection>

			<subsection name="Registering Portlets for use">
				<p>In order to use a Portlet in the Pluto Portal it needs to be registered. The Pluto Portal
				keeps page registrations in a file named <i>portletentityregistry.xml</i> in the directory
				${TOMCAT_HOME}/webapps/pluto/data.</p>

				<p>By default, this file looks like this:
				<source>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;portlet-entity-registry&gt;
    &lt;application id="3"&gt;
        &lt;definition-id&gt;testsuite&lt;/definition-id&gt;
        &lt;portlet id="1"&gt;
            &lt;definition-id&gt;testsuite.TestPortlet1&lt;/definition-id&gt;
            &lt;preferences&gt;
                &lt;pref-name&gt;TestName4&lt;/pref-name&gt;
                &lt;pref-value&gt;TestValue4&lt;/pref-value&gt;
                &lt;read-only&gt;true&lt;/read-only&gt;
            &lt;/preferences&gt;
        &lt;/portlet&gt;
    &lt;/application&gt;
    &lt;application id="4"&gt;
        &lt;definition-id&gt;testsuite&lt;/definition-id&gt;
        &lt;portlet id="1"&gt;
            &lt;definition-id&gt;testsuite.TestPortlet2&lt;/definition-id&gt;
            &lt;preferences&gt;
                &lt;pref-name&gt;TestName4&lt;/pref-name&gt;
                &lt;pref-value&gt;TestValue4&lt;/pref-value&gt;
                &lt;read-only&gt;true&lt;/read-only&gt;
            &lt;/preferences&gt;
        &lt;/portlet&gt;
    &lt;/application&gt;
&lt;/portlet-entity-registry&gt;
				</source>
				</p>
				<p>Each &lt;application&gt; tag defines one application (corresponding to one web-app on the
				portal container), which can contain multiple &lt;portlet&gt; tags.
				The "id" attribute in this tag identifies the application, and it does not need to be numeric.</p>

				<p>The &lt;definition-id&gt; tag within the &lt;application&gt; refers to the name of the
				web-app that contains the portlets in this application.</p>

				<p>Each &lt;portlet&gt; tag defines one portlet. The "id"
				attribute in this tag identifies the portlet. Note that the application id concatenated with the portlet
				id will be mapped to the "value" attribute in the &lt;proprety&gt; tag in pageregistry.xml
				(which is explained later).</p>

				<p>Each &lt;preferences&gt; tag within the &lt;portlet&gt; tag defines name/value pairs for
				the PorletPreferences.</p>

				<p>In the example above two Portlet applications are made available to the portal with the
				ids of "3" and "4". Both happen to point to the same webapp (<tt>&lt;definition-id&gt;testsuite&lt;/definition-id&gt;</tt>).
				Both applications define a single Portlet each. Application id 3 uses the Portlet <i>TestPortlet1</i>
				(<tt>&lt;definition-id&gt;testsuite.TestPortlet1&lt;/definition-id&gt;</tt>), while Application id 4 uses
				the Portlet <i>TestPortlet2</i>	(<tt>&lt;definition-id&gt;testsuite.TestPortlet2&lt;/definition-id&gt;</tt>).
				Note that prefixing the name of the Portlet with the name of web application (<i><b>testsuite</b>.TestPortlet1</i>)
				is required.
				</p>

				<p>
					Since Pluto 1.0.1-rc2, another configuration file, portletcontexts.txt, has been 
				        included in the Pluto portal. The Portlet Contexts file ($PLUTO_HOME/WEB-INF/data/portletcontexts.txt) 
				        lists the webapp 
				        contexts for each portlet application that runs in Pluto. Each portlet app has a line in this 
				        file corresponding to a path and starting with a slash ('/'). In Tomcat, this path is the value 
				        of the 'path' attribute of the 'Context' element in a context XML descriptor in 
				        $TOMCAT_HOME/conf/Catalina/localhost (or another 'conf' subdirectory).

				</p>

				<p>The Portlets themselves are defined in the portlet.xml configuration file within the
				testsuite web application.	In that file there are two Portlets defined,
				<i>TestPortlet1</i> and <i>TestPortlet2</i>, both of which point to the same
				portlet class (<tt>org.apache.pluto.portalImpl.portlet.TestPortlet</tt>).
				See the javax.portlet specification (JSR-168) for futher details on using the portlet.xml file.
				</p>
			</subsection>

			<subsection name="Defining the Portal Layout">
				<p>Once the Portlets available have been defined the Portal layout needs to be defined.	In the
				Pluto Portal the file <i>pageregistry.xml</i> in the directory ${TOMCAT_HOME}/webapps/pluto/data defines this layout.</p>

				<p>When Pluto is first installed, pageregistry.xml looks like this:
			<source>
&lt;?xml version="1.0"?&gt;
&lt;portal&gt;
    &lt;fragment name="navigation" class="org.apache.pluto.portalImpl.aggregation.navigation.TabNavigation"&gt;
    &lt;/fragment&gt;

    &lt;fragment name="test" type="page"&gt;
        &lt;navigation&gt;
            &lt;title&gt;Test&lt;/title&gt;
            &lt;description&gt;...&lt;/description&gt;
        &lt;/navigation&gt;

        &lt;fragment name="row" type="row"&gt;
            &lt;fragment name="col1" type="column"&gt;

                &lt;fragment name="p1" type="portlet"&gt;
                    &lt;property name="portlet" value="3.1"/&gt;
                &lt;/fragment&gt;
                &lt;fragment name="p2" type="portlet"&gt;
                    &lt;property name="portlet" value="4.1"/&gt;
                &lt;/fragment&gt;

            &lt;/fragment&gt;
        &lt;/fragment&gt;
    &lt;/fragment&gt;
&lt;/portal&gt;
			</source>
				</p>

				<p>This configuration results in the Portal being displayed
				(from the url http://servername/pluto/portal/test/) as Figure 1 shows.</p>

				<div align="center">
					<p>
							<a href="../../images/v101/default_portal_layout.jpg">
                <img src="../../images/v101/default_portal_layout.jpg"
                     alt="Default Portal Layout" width="500"/></a>
					</p>
					<p>
						<i><b><font size="-1">Figure 1. Default Portal Layout. Click on the picture to enlarge it</font></b></i>
					</p>
				</div>

				<p>Working from the top of pageregistry.xml down, the first important section we come to is:
				<source>
&lt;fragment name="navigation" class="org.apache.pluto.portalImpl.aggregation.navigation.TabNavigation"&gt;
&lt;/fragment&gt;
				</source>
				</p>
				<p>This section tells the Portal to add a navigation menu to the user interface. Each fragment of
				type <i>page</i> will be displayed in the navigation menu, provided the fragment has a &lt;navigation&gt;
				sub-element. Removing the <tt>&lt;fragment name="navigation" ...&gt;&lt;/fragment&gt;</tt> section
				will result in no navigation menu being displayed.
				</p>

				<p>
				The next section is:
				<source>
    &lt;fragment name="test" type="page"&gt;
        &lt;navigation&gt;
            &lt;title&gt;Test&lt;/title&gt;
            &lt;description&gt;...&lt;/description&gt;
        &lt;/navigation&gt;
		...
		...
    &lt;/fragment&gt;
				</source>
				</p>
				<p>
				This section defines a Portal "page", which is simply a container for one or more Portlets. The <i>name</i>
				attribute must be unique within the pageregistry.xml file (if this constraint is not met an error
				message <i>Fragment with this name &lt;duplicated name&gt; already exists in the pageregistry.xml.</i> will be written to your
				log and your Pluto web application will fail to load).
				</p>
				<p>
				The navigation subsection is used by the navigation menu (discussed previously). The &lt;title&gt;...&lt;/title&gt;
				defines the label that will be shown in the navigation menu. The &lt;description&gt;...&lt;/description&gt;element
				is not used.
				</p>

				<p>Inside the <tt>&lt;fragment type="page" .... &gt;&lt;/fragment&gt;</tt> elements we find
				<source>
    &lt;fragment name="row" type="row"&gt;
        &lt;fragment name="col1" type="column"&gt;

            &lt;fragment name="p1" type="portlet"&gt;
                &lt;property name="portlet" value="3.1"/&gt;
            &lt;/fragment&gt;
            &lt;fragment name="p2" type="portlet"&gt;
                &lt;property name="portlet" value="4.1"/&gt;
            &lt;/fragment&gt;

        &lt;/fragment&gt;
    &lt;/fragment&gt;
				</source>
				</p>
				<p>This defines the layout of the Portal "page". In this case two Portlets will be laid out in two columns,
				nested inside a single row.
				</p>
				<p>The configuration below will give the page a layout of two rows, with a Portlet in each. Note that the names of all fragments
				need to be unique.
				<source>
	&lt;fragment name="row1" type="row"&gt;
	    &lt;fragment name="col1" type="column"&gt;
	        &lt;fragment name="p1" type="portlet"&gt;
	            &lt;property name="portlet" value="3.1"/&gt;
	        &lt;/fragment&gt;
	    &lt;/fragment&gt;
	&lt;/fragment&gt;
	&lt;fragment name="row2" type="row"&gt;
	    &lt;fragment name="col2" type="column"&gt;
	        &lt;fragment name="p2" type="portlet"&gt;
	            &lt;property name="portlet" value="4.1"/&gt;
	        &lt;/fragment&gt;
	    &lt;/fragment&gt;
	&lt;/fragment&gt;
				</source>
				</p>
				<p>The section
				<source>
    &lt;fragment name="p1" type="portlet"&gt;
        &lt;property name="portlet" value="3.1"/&gt;
    &lt;/fragment&gt;
    			</source>
    			</p>
    			<p>defines which portlet to display. <tt>&lt;property name="portlet" value="3.1"/&gt;</tt> tells the Portal
				to lookup the Portlet "3.1" and display it in this location. The value "3.1" means refers to the ids given
				in <i>portletentityregistry.xml</i> (discussed previously). In this case, it mean application id "3",
				portlet id "1".
				</p>
			</subsection>
		</section>

		<section name="Advanced Customization">
			<subsection name="JSP Templates">
				<p>It is possible to customize the JSP templates Pluto uses. This is beyond the scope of this document,
				but a brief outline follows to get you started.</p>

				<p>By default, Pluto uses JSP templates from the directory
				${TOMCAT_HOME}/webapps/pluto/WEB-INF/aggregation directory. This can be overridden by
				adding a line like
				<source>
aggregation.base.dir=/WEB-INF/templates/
				</source>
				to the file ${TOMCAT_HOME}/webapps/pluto/WEB-INF/config/services/ConfigService.properties.
				</p>
				<p>The following JSP files are used by the Portal:
					<ul>
						<li>Banner.jsp - The blue title bar which says "Pluto - Reference Implementation". Only called from RootFragment.jsp</li>
						<li>ColumnFragment.jsp - Called for each column fragment.</li>
						<li>Head.jsp - The HTML header. Only called from RootFragment.jsp</li>
						<li>PageFragment.jsp - Called for each Portal page displayed.</li>
						<li>PortletFragmentFooter.jsp - The footer of each Portlet.</li>
						<li>PortletFragmentHeader.jsp - The header of each Portlet.</li>
						<li>RootFragment.jsp - Defines the layout of the Portal. This is the file to modify if you need
							to modify the width of the navigation bar, for instance.</li>
						<li>RowFragment.jsp - Called for each row fragment.</li>
						<li>TabNavigation.jsp - Displays the navigation menu.</li>
					</ul>
				</p>
				<p>
				Most customization of the Portal can be done in RootFragment.jsp,
				PortletFragmentHeader.jsp and PortletFragmentFooter.jsp.
				</p>
			</subsection>
			<subsection name="Internationalization">
				<p>The Pluto portal supports non latin-1 character-sets in its output. To enable this, uncomment the section
				<source>
	 &lt;init-param&gt;
	     &lt;param-name&gt;charset&lt;/param-name&gt;
	     &lt;param-value&gt;utf-8&lt;/param-value&gt;
	 &lt;/init-param&gt;
				</source>
				from the "pluto" Servlet section in the file ${TOMCAT_HOME}/webapps/pluto/WEB-INF/web.xml.</p>
			</subsection>
			<subsection name="Further Information">
				<p>
				Further information can be found in the <a href="../faq.html">FAQ</a>, on the <a href="../../mail-lists.html">Mailing Lists</a>
				and on the <a href="../../wiki.html">Wiki</a>
				</p>
			</subsection>
		</section>
	</body>
</document>

