Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/deploying-jetspeed-to-websphere.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/deploying-jetspeed-to-websphere.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/deploying-jetspeed-to-websphere.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/deploying-jetspeed-to-websphere.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,755 @@
+<?xml version="1.0"?>
+<document>
+       <!--
+               Licensed to the Apache Software Foundation (ASF) under one or 
more
+               contributor license agreements. See the NOTICE file distributed 
with
+               this work for additional information regarding copyright 
ownership.
+               The ASF licenses this file to You 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.
+       -->
+       <properties>
+               <title>Deploying Jetspeed to Websphere</title>
+               <subtitle>With Websphere 6.1</subtitle>
+               <authors>
+                       <person name="David Sean Taylor" 
email="[email protected]" />
+               </authors>
+       </properties>
+       <body>
+               <section name='Deploying Jetspeed to Websphere - With Websphere 
6.1'>
+                       <ol>
+                               <li>
+                                       <a href="#section_1">Introduction</a>
+                                       <ol>
+                                               <li><a 
href="#section_1_1">Purpose</a></li>
+                                               <li><a 
href="#section_1_2">Should I deploy Jetspeed as a WAR file or embedded in an 
EAR file?</a></li>
+                                       </ol>
+                               </li>
+                               <li>
+                                       <a href="#section_2">Getting Started 
with Websphere 6.1 and Jetspeed</a>
+                                       <ol>
+                                               <li><a 
href="#section_2_1">Required Fix Pack</a></li>
+                                               <li><a 
href="#section_2_2">Verifying Websphere Version</a></li>
+                                               <li><a 
href="#section_2_3">Debugging</a></li>
+                                       </ol>
+                               </li>
+                               <li><a href="#section_3">Database 
Configuration</a>
+                                       <ol>
+                                               <li><a 
href="#section_3_1">Creating a JAAS User Identity in Websphere</a></li>
+                                               <li><a 
href="#section_3_2">Creating a JDBC Data Provider</a></li>
+                                               <li><a 
href="#section_3_3">Creating an Oracle JDBC Provider</a></li>
+                                               <li><a 
href="#section_3_4">Configuring an Oracle Data Source</a></li>
+                                               <li><a 
href="#section_3_5">Restart Websphere (optional)</a></li>
+                                       </ol>
+                               </li>
+                               <li><a href="#section_4">WAR Deployment</a>
+                                       <ol>
+                                               <li><a href="#section_4_1">The 
WAR Files</a></li>
+                                               <li><a 
href="#section_4_2">Shared Libraries</a></li>
+                                               <li><a href="#section_4_3">Add 
a Shared Library Reference to the Application Server Class Loader</a></li>
+                                               <li><a 
href="#section_4_4">Install the Jetspeed Portal WAR file</a></li>
+                                               <li><a 
href="#section_4_5">Install the Jet Express Demo Portlet Application</a></li>
+                                               <li><a 
href="#section_4_6">Install the Jetspeed Admin Portlet Application</a></li>
+                                               <li><a 
href="#section_4_7">Starting the Applications</a></li>
+                                       </ol>
+                               </li>
+                               <li><a href="#section_5">EAR Deployment</a>
+                                       <ol>
+                                               <li><a href="#section_5_1">The 
EAR File</a></li>
+                                               <li><a 
href="#section_5_2">Shared Libraries</a></li>
+                                               <li><a 
href="#section_5_3">Remove any old shared libraries</a></li>
+                                               <li><a 
href="#section_5_4">Installing the EAR File</a></li>
+                                       </ol>
+                               </li>
+                               <li><a href="#section_6">Two or more EAR 
Deployment Files</a></li>
+                               <li><a href="#section_7">Websphere Application 
Server Additional Information</a>
+                                       <ol>
+                                               <li><a 
href="#section_7_1">Websphere Application Server Portlet Extensions</a></li>
+                                               <li><a 
href="#section_7_2">Patch to Portlet and Servlet Names being different</a></li>
+                                       </ol>
+                               </li>
+                               <li><a href="#section_8">Revision 
History</a></li>
+                       </ol>
+               </section>
+                       <section name='Introduction'>
+                               <p>
+                                       <a name="section_1"></a>
+                                       This document is a step by step guide 
to deploying your custom Apache Jetspeed-2 portal and portlet applications on a 
Websphere Application Server. This solution provided here is tested on 
Websphere version 6.1.
+                               </p>
+                               <p>
+                               For building a Jetspeed Portal, please read the 
accompanying documents "Building Jetspeed for Websphere with Maven-1" and 
"Building Jetspeed for Websphere with Maven-2".
+                               </p>
+                               <p>
+                               Jetspeed is an open source project, thus all 
source code is freely available from Apache. See the website for more details: 
<a 
href="http://portals.apache.org/jetspeed-2/";>http://portals.apache.org/jetspeed-2/</a>.
+                               </p>
+                               <subsection name='Purpose'>
+                                       <p>
+                                       <a name="section_1_1"></a>
+                                       This document will teach you how to 
deploy a Jetspeed Portal and one or more portlet applications to Websphere in a 
web application archive or an enterprise archive (EAR).
+                                       </p>
+                                       <p>
+                                       The custom portal used in this document 
is an example tutorial portal named Jet Express. Jet Express is a customized 
version of the Jetspeed portal. Additionally, we will deploy the Jetspeed 
Administrative portlet application and a sample portlet application named 
Express Demo. The purpose of using a sample custom portal is to teach you how 
to deploy your own custom portal for a production system.
+                                       </p>
+                               </subsection>
+                               <subsection name='Should I deploy Jetspeed as a 
WAR fiel or embedded in an EAR file?'>
+                               <p>
+                               <a name="section_1_2"></a>
+                               There are benefits to both approaches. 
Deploying the Jetspeed portal as a WAR may be a better approach for incremental 
development of portlet applications. By deploying Jetspeed as a WAR file once, 
you will not have to redeploy it as often as your portlet application(s). This 
can separate the deployment cycle of your portlet application from the Jetspeed 
portal’s deployment cycle.
+                               </p>
+                               <p>
+                               The benefits of deploying an EAR are:
+                               <ul>
+                                       <li>You only have to deal with one 
deployment unit</li>
+                                       <li>In a production environment, this 
may make more sense</li>
+                                       <li>The shared libraries are easier to 
configure</li>
+                                       <li>You can configure resources such as 
JDBC data sources in the EAR</li>
+                               </ul>
+                               </p>
+                               <p>
+                               The procedure for deploying as all WAR files is 
different from the procedure for deploying in a single EAR file.
+                               </p>
+                               <p>
+                               The WAR procedure is defined in <a 
href="#">section 4</a>.
+                               </p>
+                               <p>
+                               The EAR procedure is defined in <a 
href="#">section 5</a>.
+                               </p>
+                               <p>
+                               The third choice is to deploy Jetspeed and the 
Jetspeed Administrative application as an EAR file, and then deploy your 
portlet applications as external EAR files. See <a href="#">section 6</a> for 
details on deploying two or more EAR files.
+                               </p>
+                               </subsection>
+                       </section>
+                       <section name='Getting Started with Websphere 6.1 and 
Jetspeed'>
+                       <p>
+                       <a name="section_2"></a>
+                       This guide assumes that you are using Websphere version 
6.1. Although Jetspeed run on Websphere 5.x, and Websphere Express, this guide 
is targeted specifically to the Websphere 6.1 environment.
+                       </p>
+                       <subsection name='Required Fix Pack'>
+                       <a name="section_2_1"></a>
+                       <p>
+                       If you are running version 6.1.0.0 or version 6.1.0.1, 
Fix Pack 2 must be installed in order for Jetspeed to run. Without this fix 
pack, portlets can not be correctly rendered. Download the fix pack from here:
+                       <br/><br/>
+                       <a 
href="http://www-1.ibm.com/support/docview.wss?rs=180&amp;uid=swg27004980#ver61";>http://www-1.ibm.com/support/docview.wss?rs=180&amp;uid=swg27004980#ver61</a>
+                       <br/><br/>
+                       Installing the fix pack will require the installing the 
IBM Update Installer program.
+                       </p>
+                       </subsection>
+                       <subsection name='Verifying Websphere Version'>
+                       <a name="section_2_2"></a>
+                       <p>
+                       Start up Websphere. Go to the administrative console 
with a web browser, and verify that you are running the correct version of 
Websphere.
+                       </p>
+                       <p>
+                       <code>http://localhost:9060/ibm/console/</code>
+                       </p>
+                       <p>
+                       You should a split page, with navigations on the left, 
and details on the right. Click on the first navigation on the left-hand-side: 
"Welcome".
+                       </p>
+                       <p>
+                       <img src="images/websphere/22-1.png"/>
+                       </p>
+                       <p>
+                       Ensure that you are running the correct version of 
Websphere, 6.1.0.2 or higher:
+                       </p>
+                       <p>
+                       <img src="images/websphere/22-2.png"/>
+                       </p>
+                       <p>
+                       Websphere must be running version 6.1.0.2 or higher. If 
you are on version 6.1.0.1 or lower, then please follow the instructions in 
section 2.1 before continuing.
+                       </p>
+                       </subsection>
+                       <subsection name='Debugging'>
+                       <p>
+                       <a name="section_2_3"></a>
+                       If you would like to attach to Websphere with Eclipse 
or RAD, you can turn on debugging to debug your portlets. Navigate to the 
<i>Servers -> Application servers</i> menu; select the server you would like to 
debug. Under the <i>Additional Properties</i> section, click on <i>Debugging 
Service</i> link.
+                       </p>
+                       <p>
+                       <img src="images/websphere/23-1.png"/>
+                       </p>
+                       <p>
+                       From here you can enable debugging by clicking 
<i>Enable service at server startup</i>, press OK, and then restarting your 
server:
+                       </p>
+                       <p>
+                       <img src="images/websphere/23-2.png"/>
+                       </p>
+                       </subsection>
+                       </section>
+                       <section name='Database Configuration'>
+                       <p>
+                       <a name="section_3"></a>
+                       Jetspeed requires a relational database for storing 
portlet information such as portlet preferences, pages, and the portlet 
registry. Jetspeed supports many of the most popular commercial and open source 
databases including:
+                       <ul>
+                               <li>Oracle</li>
+                               <li>DB2</li>
+                               <li>MySQL</li>
+                               <li>MS SQL Server</li>
+                               <li>Derby</li>
+                               <li>SAP DB</li>
+                               <li>PostgreSQL</li>
+                       </ul>
+                       Documentation for configuration MySQL data providers 
with Websphere can be found here:
+                       <br/><br/>
+                       <a 
href="http://www.devx.com/Java/Article/31571";>http://www.devx.com/Java/Article/31571</a><br/>
+                       <a 
href="http://www.hackedby.us/2006/04/discovering-portals-jetspeed-with.html";>http://www.hackedby.us/2006/04/discovering-portals-jetspeed-with.html</a>
+                       <br/><br/>
+                       WAS 5.x<br/>
+                       <a 
href="http://www.webspherepower.com/issuesprint/issue200403/00001236.html";>http://www.webspherepower.com/issuesprint/issue200403/00001236.html</a>
+                       </p>
+                       <p>
+                       In this example, we will configure an Oracle JDBC data 
provider. Before proceeding, please configure a Jetspeed database in an Oracle 
instance.  Make sure that you have already:
+                       <ol>
+                               <li>Created an Oracle user (schema) configured 
to hold the Jetspeed tables.</li>
+                               <li>Built the Custom Portal. The Jetspeed 
tables must be pre-created and pre-populated with default data. The Custom 
Portal build does this for you. See the build guides for more information on 
pre-populating the database.</li>
+                               <li>The Oracle/JDBC connection string to 
connect to the database.</li>
+                       </ol>
+                       <i>Note</i>: if you are sharing schemas amongst one or 
more developers, you could be overwriting the development environment of 
another developer. Thus it is recommended that each developer has an allocated 
schema. Developers configure their database configuration in their build 
properties file. See the Jetspeed build documents for more information
+                       </p>
+                       <p>
+                       <source>
+org.apache.jetspeed.production.database.default.name = oracle
+org.apache.jetspeed.production.database.url = 
jdbc:oracle:thin:@localhost:1521:fep
+org.apache.jetspeed.production.database.driver = 
oracle.jdbc.driver.OracleDriver
+org.apache.jetspeed.production.database.user = fep
+org.apache.jetspeed.production.database.password = xxxxx
+org.apache.jetspeed.production.jdbc.drivers.path = 
${was.root}/lib/OptionalLibraries/oracle/ojdbc14.jar
+                       </source>
+                       </p>
+                       <subsection name='Creating a JAAS User Identity in 
Websphere'>
+                       <p>
+                       <a name="section_3_1"></a>
+                       First, create a user identity and password in the JAAS 
Java 2 connector. Navigate to the "Security" menu in the LHS menu of Websphere:
+                       <br/>
+                       <img src="images/websphere/31-1.png"/>
+                       </p>
+                       <p>
+                       Select "Secure administration, applications, and 
infrastructure", which leads to the Authentication page. Expand the "Java 
Authentication and Authorization Service" section:
+                       <br/>
+                       <img src="images/websphere/31-2.png"/>
+                       </p>
+                       <p>
+                       Select "J2C authentication data"... to create a new 
JAAS J2C User identity, select "New":
+                       <br/>
+                       <img src="images/websphere/31-3.png"/>
+                       </p>
+                       <p>
+                       And then enter your credentials. Note we have called 
the user alias "JetExpressLogin". It is not required to name it 
"JetExpressLogin"; but make sure you use the same name when configuring your 
JDBC data source in the next section.
+                       <br/>
+                       <img src="images/websphere/31-4.png"/>
+                       </p>
+                       <p>
+                       Press OK, and complete the Save dialogs.
+                       </p>
+                       </subsection>
+                       <subsection name='Creating a JDBC Data Provider'>
+                       <p>
+                       <a name="section_3_2"></a>
+                       In the default configuration of Jetspeed, Jetspeed 
prefers to get its database connections from a connection pool provided by the 
application server using a JNDI name. This section demonstrates how to 
configure a Websphere 6.1 JDBC Data Provider. In Websphere, a data provider can 
hold one or more data sources. Jetspeed actually connects to the data source, 
but first we need to define a generalize data provider.
+                       </p>
+                       </subsection>
+                       <subsection name='Creating an Oracle JDBC Data 
Provider'>
+                       <p>
+                       <a name="section_3_3"></a>
+                       Second, navigate to the "Resources" menu in the LHS 
menu of Websphere:
+                       <br/>
+                       <img src="images/websphere/33-1.png"/>
+                       </p>
+                       <p>
+                       Click on JDBC Providers, you should see some a list of 
all your pre-installed JDBC providers. If you have already installed an Oracle 
JDBC provider, skip to the next section on configuring a JDBC Data Source. 
Otherwise, click "New" as shown below:
+                       <br/>
+                       <img src="images/websphere/33-2.png"/>
+                       </p>
+                       <p>
+                       We can then create a new Oracle JDBC provider:
+                       <br/><img src="images/websphere/33-3.png"/>
+                       </p>
+                       <p>
+                       Select the "Database type" of Oracle, provider type of 
"Oracle JDBC driver", and "Connection pool data source". Give the provider a 
name or use the default values (Oracle JDBC Driver).
+                       <br/><br/>
+                       Make sut that you have a driver configured in Websphere:
+                       <br/><img src="images/websphere/33-4.png"/>
+                       <br/>
+                       Here we hard-coded the path to a driver that we 
downloaded from Oracle and installed onto our system:
+                       <br/><br/>
+                       
<code>/opt/IBM/WebSphere/AppServer/lib/ext/ojdbc14.jar</code>
+                       <br/><br/>
+                       Click next, and go with the default values for 
everything else. When you get to the end, press "Finish" and then "Save" as 
shown below:
+                       <br/><img src="images/websphere/33-5.png"/><br/><br/>
+                       You should now see Oracle in the list of known JDBC 
providers on Websphere:
+                       <br/><img src="images/websphere/33-6.png"/>
+                       </p>
+                       </subsection>
+                       <subsection name='Configuring an Oracle Data Source'>
+                       <p>
+                       <a name="section_3_4"></a>
+                       Next, we will need to create an Oracle data source. 
Before continuing with this step, please make sure to properly configure your 
Oracle database as described in section 3. Navigate to the Oracle JDBC 
provider, and click on "Data sources" in the Additional Properties area:
+                       <br/><img src="images/websphere/34-1.png"/>
+                       </p>
+                       <p>
+                       Enter:
+                       <ol>
+                               <li>Data source name -rename it to 
<b>jetspeed</b></li>
+                               <li>JNDI name - this value must be 
<b>jdbc/jetspeed</b></li>
+                               <li>Select the default CMA alias <br/>
+                               <img src="images/websphere/34-2.png"/></li>
+                               <li>Enter the Oracle JDBC URL connection 
string, usually the string looks something like:<br/><br/>
+                               
<code>jdbc:oracle:thin:@localhost:1521:XE</code><br/><br/></li>
+                               <li>Select a Data store helper class for either 
Oracle 9i or Oracle 10g</li>
+                               <li>Select the JAAC J2C identity configured in 
section 3.1 from the Component-managed authentication alias:<br/>
+                               <img src="images/websphere/34-3.png"/>
+                               </li>
+                       </ol>
+                       Press the <b>"Test connection"</b> button to ensure 
that your connection is correct. Do not proceed to section 4 until you can 
connect to the database with the Test connection button. Press <b>"Save"</b> at 
the top of the page to complete the JDBC Data source configuration and complete 
the Save dialogs.
+                       <br/>
+                       <img src="images/websphere/34-4.png"/>
+                       </p>
+                       </subsection>
+                       <subsection name='Restart Websphere'>
+                       <p>
+                       <a name="section_3_5"></a>
+                       On Websphere 5.1.1.3, it was required to restart 
Websphere after installing the data source definitions. Otherwise, the data 
source definitions were not available to Jetspeed when first deployed. With 
version 6.1.0.2 or greater, restarting is not required.
+                       </p>
+                       </subsection>
+                       </section>
+                       <section name='WAR Deployment'>
+                       <p>
+                       <a name="section_4"></a>
+                       This section covers deploying Jetspeed to Websphere 
with WAR files. If you prefer to deploy using EAR files, skip down to <a 
href="#">section 5</a>.
+                       </p>
+                       <p>
+                       The deployment artifacts are created developers or a 
build team. In this example, we will assume that you have used the demo custom 
portal "Jet Express". See the accompanying build documents for instructions on 
how to build the Jet Express portal artifacts.
+                       </p>
+                       <subsection name='The WAR Files'>
+                       <p>
+                       <a name="section_4_1"></a>
+                       The WAR file deployment for Jet Express consists of 
three war files:
+                       <ul>
+                               <li><b>jetexpress.war</b> - the custom Jetspeed 
portal</li>
+                               <li><b>j2-admin.war</b> - the administrative 
portlets that come with Jetspeed</li>
+                               <li><b>expressdemo.war</b> - the sample portlet 
application</li>
+                       </ul>
+                       These three war files must be deployed in the order 
above to Websphere using the administrative console.
+                       </p>
+                       </subsection>
+                       <subsection name='Shared Libraries'>
+                       <p>
+                       <a name="section_4_2"></a>
+                       The following jar files must be in a shared class 
loader used by Jetspeed and all portlet applications:
+                       <ol>
+                               <li>jetspeed-api-2.1-dev.jar</li>
+                               <li>jetspeed-commons-2.1-dev.jar</li>
+                               <li>pluto-1.0.1.jar</li>
+                               <li>portals-bridges-common-1.0.jar</li>
+                               <li>portlet-api-1.0.jar</li>
+                       </ol>
+                       </p>
+                       <p>
+                       The 6th jar file, derby-10.1.1.0.jar, should not be 
copied in. If you are going to use the Derby (Cloudscape) database with 
Jetspeed, <br/>create a JDBC data source in Websphere and connect it into 
Jetspeed via the JNDI procedure described in <a href="#">section 3</a>.
+                       <br/><br/>
+                       These 6 files are creating during the build process 
described in the accompanying build document.
+                       <br/><br/>
+                       Websphere 6 has a new feature specifically for sharing 
libraries (jars) amongst applications. Websphere has a directory for storing 
shared libraries. Your Websphere installation should have a directory: 
<b>${WAS_INSTALL_ROOT}/optionalLibraries/Apache/</b>.  
+                       <br/><br/>
+                       Create a directory underneath the Apache directory 
named "Jetspeed-2":
+                       <br/><br/>
+                       
<code>${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/jetspeed-api-2.1-dev.jar</code>
+                       <br/>
+                       <source>
+cd ${WAS_INSTALL_ROOT}/optionalLibraries/Apache
+mkdir Jetspeed-2</source>
+                       Copy the five jar files above into the Jetspeed-2 
shared library directory. Then from the Websphere Admin, go to the LHS menu 
option <i>Environment -> Shared Libraries</i>, and click "New":
+                       <br/><img src="images/websphere/42-1.png"/>
+                       </p>
+                       <p>
+                       Here we create a new Shared Library for use by deployed 
applications:<br/>
+                       <img src="images/websphere/42-2.png"/>
+                       </p>
+                       <p>
+                       Make sure to enter the five jars into the Classpath 
multi-line edit as shown above, with a CRLF to separate each jar file:
+                       <source>
+${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/jetspeed-api-2.1-dev.jar
+${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/jetspeed-commons-2.1-dev.jar
+${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/pluto-1.0.1.jar
+${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/portals-bridges-common-1.0.jar
+${WAS_INSTALL_ROOT}/optionalLibraries/Apache/Jetspeed-2/portlet-api-1.0.jar</source>
+                       Notice that we have named the Shared Library 
"JetspeedSharedLib". Don’t forget to reference this shared library when 
installing the Jetspeed application and all other portlet applications.
+                       </p>
+                       </subsection>
+                       <subsection name='Add a Shared Library Reference to the 
Application Server Class Loader'>
+                       <p>
+                       <a name="section_4_3"></a>
+                       In order to share the Jetspeed shared libraries 
installed in <a href="#">section 4.2</a> system-wide across WAR or EAR 
deployments, you will need to add a shared library reference to the application 
server’s class loader. This shared library reference points to 
<i>JetspeedSharedLib</i> shared library configured in <a href="#">section 
4.2</a>.
+                       </p>
+                       <p>
+                       To install a shared library reference, go to the 
<i>Server -> Application</i> servers menu:<br/>
+                       <img src="images/websphere/43-1.png"/>
+                       </p>
+                       <p>
+                       Select the server to install Jetspeed on, and then 
expand the <i>Java and Process Management</i> item on the right side of the 
page, then click <i>Class loader</i>:
+                       <br/> <img src="images/websphere/43-2.png"/>
+                       </p>
+                       <p>
+                       From the Class loader page, click New:<br/>
+                       <img src="images/websphere/43-3.png"/>
+                       </p>
+                       <p>
+                       On General Properties, set <i>Class loader order</i> to 
<i>Classes loaded with parent class loader last</i>:
+                       <br/> <img src="images/websphere/43-4.png"/>
+                       </p>
+                       <p>
+                       Click OK, and then Save. Click on your new Class 
loader: 
+                       <br/> <img src="images/websphere/43-5.png"/>
+                       </p>
+                       <p>
+                       Click on the <i>Shared libraries references</i> link:
+                       <br/> <img src="images/websphere/43-6.png"/>
+                       </p>
+                       <p>
+                       Created a new shared library reference by clicking New:
+                       <br/> <img src="images/websphere/43-7.png"/>
+                       </p>
+                       <p>
+                       Select the <i>JetspeedSharedLib</i> library name, press 
OK and continue with saving to the master configuration.
+                       <br/> <img src="images/websphere/43-8.png"/>
+                       </p>
+                       <p>
+                       You are now ready to deploy the Jetspeed portal and 
portlet application WAR files.
+                       </p>
+                       </subsection>
+                       <subsection name='Install the Jetspeed Portal WAR file'>
+                       <p>
+                       <a name="section_4_4"></a>
+                       The next step is to install the Jetspeed Portal WAR 
file. Jetspeed must always be installed and running before attempting to 
install any portlet applications. In our example, the name of the jetspeed war 
file is <i>"jetexpress.war"</i>.
+                       </p>
+                       <p>
+                       Navigate to <i>Applications -> Install New 
Application</i>:
+                       <br/> <img src="images/websphere/44-1.png"/>
+                       <br/><br/>
+                       <ol>
+                               <li>Select the browse button, and load the 
<b>jetexpress.war</b> file from your local file system.</li>
+                               <li>Enter a Context Root of 
<b>/jetexpress</b></li>
+                               <li>Press Next, leading to a series of 
dialogs</li>
+                               <li>On the Step 1 dialog, go with the defaults 
and press Next</li>
+                               <li>On the Step 2 dialog, go with the defaults 
and press Next</li>
+                               <li>On theStep 3 dialog, specify authentication 
method as “none” and select your JDBC data source:
+                               <br/> <img src="images/websphere/44-2.png"/> 
<br/>
+                               Hit Browse and select the preconfigured Oracle 
JDBC data source from section 3, and Apply then Next:
+                               </li>
+                               <li>On the Step 4 dialog, "Map Virtual 
hosts..", click the check box, and press Next</li>
+                               <li>On the Step 5 dialog, press Finish, then on 
the next dialog, press Save</li>
+                       </ol>
+                       </p>
+                       <p>
+                       If you go to the <i>Applications -> Enterprise 
Applications</i> page, you should see your application deployed: 
+                       <br/> <img src="images/websphere/44-3.png"/>    
+                       </p>
+                       </subsection>
+                       <subsection name='Install the Jet Express Demo Portlet 
Application'>
+                       <p>
+                       <a name="section_4_5"></a>
+                       Here we will install the Jet Express demo portlet 
application. This procedure is the same for all portlet applications.
+                       In our example, the name of the application war file is 
<i>"expressdemo.war"</i>. 
+                       </p>
+                       <p>
+                       Navigate to Applications->Install New Application: <br/>
+                       <img src="images/websphere/45-1.png"/>
+                       <ol>
+                               <li>Select the browse button, and load the 
<b>expressdemo.war</b> file from your local file system.</li>
+                               <li>Enter a Context Root of 
<b>/expressdemo</b></li>
+                               <li>Press Next, leading to a series of 
dialogs</li>
+                               <li>On the Steps 1 through 4 dialogs, go with 
the defaults and press Next and then Finish</li>
+                               <li>Save the changes to the Master 
Configuration</li>
+                       </ol>
+                       </p>
+                       <p>
+                       If you go to the <i>Applications -> Enterprise 
Applications</i> page, you should see your application deployed:<br/>
+                       <img src="images/websphere/45-2.png"/>
+                       </p>
+                       </subsection>
+                       <subsection name='Install the Jetspeed Admin Portlet 
Application'>
+                       <p>
+                       <a name="section_4_6"></a>
+                       Here we will install the Jetspeed Admin portlet 
application. This procedure is the same for all portlet applications. In our 
example, the name of the jetspeed war file is <i>"j2-admin.war"</i>.
+                       </p>
+                       <p>
+                       Navigate to <i>Applications -> Install New 
Application</i>:<br/>
+                       <img src="images/websphere/46-1.png"/>
+                       <ol>
+                               <li>Select the browse button, and load the 
<b>j2-admin.war</b> file from your local file system.</li>
+                               <li>Enter a Context Root of 
<b>/j2-admin</b></li>
+                               <li>Press Next, leading to a series of 
dialogs</li>
+                               <li>On the Steps 1 through 4 dialogs, go with 
the defaults and press Next and then Finish</li>
+                               <li>Save the changes to the Master 
Configuration</li>
+                       </ol>
+                       </p>
+                       <p>
+                       If you go to the <i>Applications -> Enterprise 
Applications</i> page, you should see your application deployed: <br/>
+                       <img src="images/websphere/46-2.png"/>
+                       </p>
+                       </subsection>
+                       <subsection name='Starting the Applications'>
+                       <p>
+                       From the <i>Applications -> Enterprise Applications</i> 
menu, you can start and stop all of your deployed applications. Start the 
Jetspeed application (<i>jetexpress_war</i>) first by clicking the checkbox 
next to it then pressing <i>Start</i>.
+                       <br/>
+                       <img src="images/websphere/46-3.png"/>
+                       </p>
+                       <p>
+                       Once you see all "green statuses", you are then ready 
to test your portal.
+                       </p>
+                       <p>
+                       Go to this link:
+                       </p>
+                       <p>
+                       <a 
href="http://localhost:9080/jetexpress/portal";>http://localhost:9080/jetexpress/portal</a>
+                       </p>
+                       <p>
+                       You should see the example Jet Express custom 
portal:<br/>
+                       <img src="images/websphere/46-4.png"/>
+                       </p>
+                       </subsection>
+                       </section>
+                       <section name='EAR Deployment'>
+                       <p>
+                       <a name="section_5"></a>
+                       This section covers deploying Jetspeed to Websphere 
within one EAR file. If you prefer to deploy using WAR files, go to <a 
href="#section_4">section 4</a>.
+                       </p>
+                       <p>
+                       The deployment artifacts are created by developers or a 
build team. In this example, we will assume that you have used the demo custom 
portal "Jet Express". See the accompanying build documents for instructions on 
how to build the Jet Express portal artifacts.
+                       </p>
+                       <subsection name='The EAR File'>
+                       <p>
+                       <a name="section_5_1"></a>
+                       The EAR file deployment for Jet Express consists of one 
EAR file:
+                       <ul>
+                               <li><b>jetexpress.ear</b> - the custom Jetspeed 
portal and sample portlet application</li>
+                       </ul>
+                       </p>
+                       <p>
+                       The EAR File contains:<br/>
+                       <ul>
+                               <li><b>jetexpress.war</b> - the custom Jetspeed 
portal</li>
+                               <li><b>j2-admin.war</b> - the administrative 
portlets that come with Jetspeed</li>
+                               <li><b>expressdemo.war</b> - the sample portlet 
application</li>
+                               <li><b>shared library files</b> - the shared 
libraries used by the three war files above</li>
+                               <li><b>application.xml</b> - the EAR deployment 
descriptor</li>                         
+                       </ul>
+                       </p>
+                       </subsection>
+                       <subsection name='Shared Libraries'>
+                       <p>
+                       <a name="section_5_2"></a>
+                       The following jar files must be in a shared class 
loader used by Jetspeed and all portlet applications:
+                       <ol>
+                               <li>jetspeed-api-2.1-dev.jar</li>
+                               <li>jetspeed-commons-2.1-dev.jar</li>
+                               <li>pluto-1.0.1.jar</li>
+                               <li>portals-bridges-common-1.0.jar</li>
+                               <li>portlet-api-1.0.jar</li>
+                       </ol>
+                       </p>
+                       <p>
+                       With an EAR file, shared jar files can simply be placed 
in the root of the EAR distribution. These files are then shared in the same 
class loader across all web applications deployed in this EAR distribution.
+                       </p>
+                       <p>
+                       The 6th jar file, derby-10.1.1.0.jar, should not be 
copied in. If you are going to use the Derby (Cloudscape) database with 
Jetspeed, create a JDBC data source in Websphere and connect it into Jetspeed 
via the JNDI procedure described in section 3.
+                       </p>
+                       <p>
+                       The shared jar files are creating during the build 
process described in the accompanying build document. The build will 
automatically place the shared jar files into the root of the EAR file. In 
fact, all three WAR files are also contained in the root of the EAR file. Thus 
the EAR file contains 5 jar files and 3 war files in the root directory, and 
one deployment descriptor under the META-INF directory (<i>application.xml</i>).
+                       </p>
+                       <p>
+                       The EAR file should look something like this:
+                       </p>
+                       <p>
+                       <source>
+META-INF/
+META-INF/MANIFEST.MF
+expressdemo.war
+j2-admin.war
+jetexpress.war
+jetspeed-api-2.1-dev.jar
+jetspeed-commons-2.1-dev.jar
+pluto-1.0.1.jar
+portals-bridges-common-1.0.jar
+portlet-api-1.0.jar
+META-INF/application.xml
+                       </source>
+                       </p>
+                       </subsection>
+                       <subsection name='Remove any old shared libraries'>
+                       <p>
+                       <a name="section_5_3"></a>
+                       If you deploy the shared jar files into your EAR file, 
you will want to remove any application server-wide shared libraries such as 
the one configured in <a href="#section_4_3">section 4.3</a> #Add a Shared 
Library Reference to the Application Server Class Loader.
+                       </p>
+                       </subsection>
+                       <subsection name='Installing the EAR File'>
+                       <p>
+                       <a name="section_5_4"></a>
+                       EAR files are installed in the same manner as WAR files.
+                       </p>
+                       <p>
+                       Navigate to <i>Applications -> Install New 
Application</i>: <br/>
+                       <img src="images/websphere/54-1.png"/>
+                       <ol>
+                               <li>Select the browse button, and load the 
<b>jetexpress.ear</b> file from your local file system.</li>
+                               <li>Leave the context root blank</li>
+                               <li>Press Next, leading to a series of 
dialogs</li>
+                               <li>On the Step 1 dialog, go with the defaults 
and press Next</li>
+                               <li>On the Step 2, select the three web 
applications to map them to the server
+                               <br/> 
+                               <img src="images/websphere/54-2.png"/>
+                               </li>
+                               <li>On the Step 3 dialog, specify 
authentication method as "none" and select your JDBC data source:<br/>
+                               <img src="images/websphere/54-3.png"/> <br/>
+                               Hit Browse and select the preconfigured Oracle 
JDBC data source from section 3, and Apply then Next: <br/> 
+                               <img src="images/websphere/54-4.png"/></li>
+                               <li>On the Step 4 dialog, select the three web 
applications to map the to a virtual host:<br/>
+                               <img src="images/websphere/54-5.png"/>
+                               </li>
+                               <li>On the Step 5 dialog, press Finish, then on 
the next dialog, press Save</li>
+                       </ol>
+                       </p>
+                       <p>
+                       If you go to the <i>Applications -> Enterprise 
Applications</i> page, you should see your application deployed:<br/>
+                       <img src="images/websphere/54-6.png"/>
+                       </p>
+                       <p>
+                       If the Application Status is not started (red, not 
green), then click on the checkbox next to <b>jetexpress</b> link, and click 
the Start button to start it. Once you see all "green statuses", you are then 
ready to test your portal. 
+                       </p>
+                       <p>
+                       Go to this link:
+                       </p>
+                       <p>
+                       <a 
href="http://localhost:9080/jetexpress/portal";>http://localhost:9080/jetexpress/portal</a>
+                       </p>
+                       <p>
+                       You should see the example Jet Express custom 
portal:<br/>
+                       <img src="images/websphere/54-7.png"/>
+                       </p>
+                       </subsection>
+                       </section>
+                       <section name='Two or more EAR Deployment Files'>
+                       <p>
+                       <a name="section_6"></a>
+                       In section 5, we demonstrated how to deploy all WAR 
file. In section 6, we demonstrated how to deploy in a single EAR file. The 
third choice is to deploy Jetspeed and your portlet applications in two or more 
EAR deployment files. 
+                       </p>
+                       <p>
+                       Advantages:
+                       <ol>
+                               <li>Don't have to redeploy Jetspeed and the 
Jetspeed Administrative Portlets every time</li>
+                               <li>For development, a smaller footprint for 
deployment of portlet applications</li>
+                       </ol>
+                       Disadvantages:
+                       <ol>
+                               <li>Still need to setup one shared library and 
the shared references.</li>
+                       </ol>
+                       </p>
+                       <p>
+                       The deployment of two or more EAR files is not covered 
by this document. All the steps required can be found in sections 3, 4, and 5. 
You will still need to install the shared libraries as defined in section 4. 
Additionally, you will need shared library references for each EAR deployment 
file. Follow the directions in section 4 for configuring shared libraries and 
shared library references, as they apply to EAR files in the same way as for 
WAR  files.
+                       </p>
+                       </section>
+                       <section name='Websphere Application Server Additional 
Information'>
+                       <a name="section_7"></a>
+                       <subsection name='Websphere Application Server Portlet 
Extensions'>
+                       <p>
+                       <a name="section_7_1"></a>
+                       Extensions for the portlet deployment descriptor 
specific to Websphere Application Server are defined within a file called 
<i>ibm-portlet-ext.xmi</i>. This deployment descriptor is an optional 
descriptor that you can use to configure WebSphere extensions for the portlet 
application and its portlets. For example, you can disable the 
<i>PortletServingServlet</i> servlet for the portlet application in the 
extended portlet deployment descriptor. 
+The <i>ibm-portlet-ext.xmi</i> extension file is loaded during application 
startup. If there are no extension-files specified with this setting, the 
portlet container's default values are used.
+The default for the <i>portletServingEnabled</i> attribute is true. The 
following is an example of how to configure that a <i>PortletServingServlet</i> 
servlet is not created for any portlet on the portlet application.
+                       </p>
+                       <p>
+                       <source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<portletappext:PortletApplicationExtension xmi:version="1.0"
+    xmlns:xmi="http://www.omg.org/XMI";
+    xmlns:portletappext="portletapplicationext.xmi"
+    xmlns:portletapplication="portletapplication.xmi"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xmi:id="PortletApp_ID_Ext"
+    portletServingEnabled="false">
+  <portletappext:portletApplication href="WEB-INF/portlet.xml#myPortletApp"/>
+</portletappext:PortletApplicationExtension>
+]]>
+                       </source>
+                       </p>
+                       <p>
+                       Find more information about Websphere porlet extensions 
here:
+                       </p>
+                       <p>
+                       <a 
href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rport_depdesc_ext.html";>
+                       
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rport_depdesc_ext.html
+                       </a>
+                       </p>
+                       </subsection>
+                       <subsection name='Patch to Portlet Names and Servlet 
Names being different'>
+                       <p>
+                       <a name="section_7_2"></a>
+                       When URL addressability is enabled, portlet names must 
not be the same as any servlet in the same web application. If URL 
Addressability is not needed, this name requirement is not needed. A fix is 
required to switch off name validation if URL addressability is disabled.
+                       </p>
+                       <h3>Problem conclusion</h3>
+                       <p>
+                       When URL addressability is disabled, the validation 
test if port let names match servlet names must also be disabled. With this fix 
and URL addressability disabled, a portlet application can be installed also if 
having the same portlet name as a servlet.
+                       </p>
+                       <p>
+                       The fix for this APAR is currently targeted for 
inclusion in fix pack 6.1.0.4.
+                       </p>
+                       <p>
+                       <a 
href="http://www-1.ibm.com/support/docview.wss?uid=swg1PK31467";>http://www-1.ibm.com/support/docview.wss?uid=swg1PK31467</a>
+                       </p>
+                       </subsection>
+                       </section>
+                       <section name='Revision History' id="rev">
+                       <a name="section_8"></a>
+                       <table>
+                               <tr>
+                                       <td>Revision</td>
+                                       <td>Date</td>
+                                       <td>Author</td>
+                                       <td>Comments</td>
+                               </tr>
+                               <tr>
+                                       <td>0.1</td>
+                                       <td>2005-01-21</td>
+                                       <td>David Sean Taylor</td>
+                                       <td>Initial draft</td>
+                               </tr>
+                               <tr>
+                                       <td>0.2</td>
+                                       <td>2006-01-10</td>
+                                       <td>Ate Douma</td>
+                                       <td>Further refinements and cleanout of 
unused sections</td>
+                               </tr>
+                               <tr>
+                                       <td>0.3</td>
+                                       <td>2006-01-10</td>
+                                       <td>David Sean Taylor</td>
+                                       <td>Express refinements</td>
+                               </tr>
+                               <tr>
+                                       <td>0.4</td>
+                                       <td>2006-10-16</td>
+                                       <td>David Sean Taylor</td>
+                                       <td>Websphere 6.1 testing</td>
+                               </tr>
+                               <tr>
+                                       <td>0.5</td>
+                                       <td>2006-10-16</td>
+                                       <td>David Sean Taylor</td>
+                                       <td>Upgrade to 6.1.0.2, complete WAR 
section, start on EAR section</td>
+                               </tr>
+                               <tr>
+                                       <td>0.6</td>
+                                       <td>2006-10-23</td>
+                                       <td>David Sean Taylor</td>
+                                       <td>Complete EAR sections</td>
+                               </tr>
+                       </table>
+                       </section>
+       </body>
+</document>
+

Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/distributed-cache.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/distributed-cache.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/distributed-cache.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/distributed-cache.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,308 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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>
+    <title>Guide to Distributed Cache</title>
+    <subtitle>How to configure Jetspeed Distributed Cache.</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="[email protected]" />
+    </authors>
+  </properties>
+  <body>
+
+<section name="Jetspeed Distributed Cache Configuration">
+       <p>
+               Jetspeed can be optionally configured to use distributed cache 
replication with ehcache.
+               By default, distributed cache replication is disabled but it 
can be enabled through the Jetspeed configuration.
+               The assembly folder contains 
<strong><code>cache.xml</code></strong> to control the ehcache configuration 
via Spring.
+       </p>
+       <p>
+               Jetspeed uses cache-replication for managing all of its 
distributed caches, such as the page-manager and preferences caches.  
+               The <strong><code>ehcache.xml</code></strong> (found in 
<strong><code>/WEB-INF/classes/</code></strong>) has more detailed cache 
configuration details. 
+               It has been modified to enable distributed cache replication 
for all caches including the page manager and preferences caches.
+       </p>
+       <p>
+               The following examples are taken from the 
<strong><code>distributed-ehcache.xml</code></strong> (in 
<strong><code>/WEB-INF/classes/</code></strong>).  
+               If you want to switch to complete distributed cache usage, it 
is easier to swap the usages of <strong><code>ehache.xml</code></strong> with 
+               the <strong><code>distributed.ehcache.xml</code></strong> 
completely in <strong><code>cache.xml</code></strong> (in 
<strong><code>/WEB-INF/assembly/</code></strong>) as shown below.
+       </p>
+       <p>
+<source><![CDATA[
+<!-- Cache Manager -->
+<bean id="cacheManagerConfig" 
class="org.apache.jetspeed.cache.impl.EhCacheConfigResource">
+       <!-- <property name="defaultConfigResource" 
value="distributed-ehcache.xml"/> -->
+       <property name="defaultConfigResource" value="ehcache.xml"/>
+</bean>
+]]></source>
+       </p>
+       <p>
+               The Listener and Provider factory caches are required for cache 
replication. You shouldn't have to enter values in this file but instead use 
the jetspeed override.properties to set them.
+                Below are parameters which can be set for configuring the 
distributed cache.
+               The port and hostname can be the same for all nodes in the 
cluster under most default configurations.
+       </p>
+
+       <subsection name="ListenerFactory">
+               <p>
+<source><![CDATA[
+<cacheManagerPeerListenerFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
+                                 
properties="hostName=${org.apache.jetspeed.ehcache.hostname},
+                                 port=${org.apache.jetspeed.ehcache.port}"/>
+]]></source>
+               </p>
+       </subsection>
+       
+       <subsection name="ProviderFactory">
+               <p>
+<source><![CDATA[
+<cacheManagerPeerProviderFactory 
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+                                 properties="peerDiscovery=automatic,
+                                 
multicastGroupAddress=${org.apache.jetspeed.ehcache.group.address},
+                                 
multicastGroupPort=${org.apache.jetspeed.ehcache.group.port},
+                                 
timeToLive=${org.apache.jetspeed.ehcache.group.ttl}"/>
+]]></source>
+               </p>
+       </subsection>
+       
+       <subsection name="preferencesCache">
+               <p>
+<source><![CDATA[
+<cache name="preferencesCache"
+       maxElementsInMemory="10000"
+       maxElementsOnDisk="1000"
+       eternal="false"
+       overflowToDisk="false"
+       timeToIdleSeconds="28800"
+       timeToLiveSeconds="28800"
+       memoryStoreEvictionPolicy="LFU">
+       <cacheEventListenerFactory
+               class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
+               properties="replicateAsynchronously=true, replicatePuts=false,
+                           replicateUpdates=false, 
replicateUpdatesViaCopy=false,
+                           replicateRemovals=true"/>
+ </cache>
+]]></source>
+               </p>
+       </subsection>
+       
+       <subsection name="pageManagerPathCache">
+               <p>
+<source><![CDATA[
+<cache name="pageManagerPathCache"
+       
maxElementsInMemory="${org.apache.jetspeed.ehcache.pagemanager.maxelements}"
+       eternal="false"
+       overflowToDisk="false"
+       
timeToIdleSeconds="${org.apache.jetspeed.ehcache.pagemanager.element.ttl}"
+       
timeToLiveSeconds="${org.apache.jetspeed.ehcache.pagemanager.element.ttl}"
+       memoryStoreEvictionPolicy="LFU">
+       <cacheEventListenerFactory 
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
+                                  properties="replicateAsynchronously=true,
+                                              replicatePuts=false,
+                                              replicateUpdates=false,
+                                              replicateUpdatesViaCopy=false,
+                                              replicateRemovals=true"/>
+</cache>
+]]></source>
+               </p>
+       </subsection>
+       <subsection name='Hostnames'>
+       <p>
+   The host name, represented by the 
<code>org.apache.jetspeed.ehcache.hostname</code> property, is the host the 
listener is running on. 
+   The host name defaults to the host name of the default interface if not 
specified.
+   You will be required to specify a host name for each node when the host is 
multi-homed and you want to control the interface over which cluster messages 
are received. 
+   For instance, if you happen to setup your network so that the cache to 
cache communication is not on the default interface, then you have to set that 
host name property on each machine.
+   This requires a custom jetspeed.property file for each node.        
+       </p>
+       <p>Configuring a different hostname per node can be done through the 
Cache Manager configuration Spring bean combined with setting a Java System 
property. 
+       In the <code>cache.xml</code>, you can configure the 
<code>CacheManagerConfig</code> to use a system property, in this case a 
property named <code>server.ref</code>.
+       This argument is populated at runtime in the portal framework via the 
following setting in cache.xml:</p>
+<source><![CDATA[
+    <!-- Cache Manager -->
+    <bean id="cacheManagerConfig" 
class="org.apache.jetspeed.cache.impl.EhCacheConfigResource">
+        <!-- <property name="defaultConfigResource" 
value="distributed-ehcache.xml"/> -->
+        <property name="defaultConfigResource" 
value="ehcache${server.ref}.xml"/>
+    </bean>    
+]]></source>
+       <p>Make sure to set the system property, for example at startup:</p>
+<source><![CDATA[
+java .... -Dserver.ref=_NODE56 
+]]></source>
+       </subsection>
+       <subsection name='Cache Properties'>
+       <p>
+               Following are the default settings for using the distributed 
cache.  These can be set/modified in the 
<strong><code>jetspeed.properties</code></strong> or 
<strong><code>override.properties</code></strong>:
+       </p>
+
+       <table>
+               <tr>
+                       <th colspan="3">Cache (commented out by default)</th>
+               </tr>
+               <tr>
+                       <td colspan="3">Cache page manager override 
properties.</td>
+               </tr>
+               <tr>
+                       <th>Property</th>
+                       <th>Default</th>
+                       <th>Description</th>
+               </tr>
+               <tr>
+                       
<td>#org.apache.jetspeed.ehcache.pagemanager.maxelements</td>
+                       <td>128</td>
+                       <td>Database page manager cache size</td>
+               </tr>
+               <tr>
+                       
<td>#org.apache.jetspeed.ehcache.pagemanager.element.ttl</td>
+                       <td>150</td>
+                       <td>Database page manager cache element expiration in 
seconds, (infinite = 0)</td>
+               </tr>
+               <tr>
+                       
<td>#org.apache.jetspeed.ehcache.pagemanager.maxfiles</td>
+                       <td>1000</td>
+                       <td>PSML page manager file cache size</td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.config.resource</td>
+                       <td>ehcache.xml</td>
+                       <td>Cache configuration resource, ('ehcache.xml' or 
'distributed-ehcache.xml' supported by default)</td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.group.address</td>
+                       <td>230.0.0.1</td>
+                       <td>Distributed cache peer discovery multicast 
address</td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.group.port</td>
+                       <td>4446</td>
+                       <td>Distributed cache peer discovery multicast port</td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.group.ttl</td>
+                       <td>1</td>
+                       <td>Distributed cache peer discovery multicast TTL. 
Choose based on the nodes locations.
+                               <ul>    
+                                       <li>0   - restricted to the same 
host</li>
+                                       <li>1   - restricted to the same 
subnet</li>
+                                       <li>32  - restricted to the same 
site</li>
+                                       <li>64  - restricted to the same 
region</li>
+                                       <li>128 - restricted to the same 
continent</li>
+                                       <li>255 - unrestricted</li>
+                               </ul>
+                       </td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.hostname</td>
+                       <td></td>
+                       <td>Distributed cache peer hostname, (set to listen on 
specific interface). Hostname will need to be entered for every node in some 
cases, see section above on <code>Hostnames</code>, otherwise leave blank.</td>
+               </tr>
+               <tr>
+                       <td>#org.apache.jetspeed.ehcache.port</td>
+                       <td>40001</td>
+                       <td>Distributed cache peer port. Port should be 
different for each node if they are running on the same machine.</td>
+               </tr>
+       </table><br/>   
+
+       <p>
+               These settings are specific for the page manger cache:<br />
+               <ul>    
+                       
<li>#org.apache.jetspeed.ehcache.pagemanager.maxelements=128</li>
+                       
<li>#org.apache.jetspeed.ehcache.pagemanager.element.ttl=150</li>
+                       
<li>#org.apache.jetspeed.ehcache.pagemanager.maxfiles=1000</li>
+               </ul>
+       </p>
+       </subsection>
+</section>
+
+<section name="Testing Jetspeed Distributed Cache">
+       <p>
+               First, verify that the following page-manager test works on 
your development machine:
+       </p>
+       <p>
+<source><![CDATA[
+mvn test -P test -Dtest=TestDatabasePageManagerCache
+]]></source>           
+       </p>
+       <p>             
+               Not only must this test pass, but the following message should 
not appear in the
+               console/shell or in the test log files:
+       </p>
+       <p><strong>             
+               "Server page managers not distributed: possible system 
limitation... test skipped"
+       </strong></p>
+       <p>             
+               If you see the above message, check firewall settings to allow 
UDP/4446. That is
+               sometimes needed on Lunix systems if firewalls are enabled to 
allow UDP multicast
+               loopback. Some older TCP stacks do not support UDP multicast 
loopback at all. This
+               is why this test does not outright fail even though distributed 
caches can not be setup.
+       </p>
+       <p>
+               Now for the full test: setup two independent tomcat J2 images.
+       Edit 
<strong><code>webapps/jetspeed/WEB-INF/assembly/cache.xml</code></strong> for 
Tomcat image #1:
+       </p>
+<source><![CDATA[
+<bean id="cacheManagerConfig" 
class="org.apache.jetspeed.cache.impl.EhCacheConfigResource">
+    <property name="defaultConfigResource" value="distributed-ehcache.xml"/>
+    <property name="defaultHostname" value="localhost"/>
+    <property name="defaultPort" value="40001"/>
+</bean>
+]]></source>
+       <p>
+               Edit 
<strong><code>webapps/jetspeed/WEB-INF/assembly/cache.xml</code></strong> for 
Tomcat image #2:
+       </p>
+<source><![CDATA[
+<bean id="cacheManagerConfig" 
class="org.apache.jetspeed.cache.impl.EhCacheConfigResource">
+    <property name="defaultConfigResource" value="distributed-ehcache.xml"/>
+    <property name="defaultHostname" value="localhost"/>
+    <property name="defaultPort" value="40002"/>
+</bean>
+]]></source>
+       
+       <p>
+               Startup browsers against each server.  Use different host names 
to
+               ensure cookies are managed separately (i.e. '127.0.0.1' and 
'localhost').
+               View the same page in each browser. Edit the page in one 
browser. Upon refresh, changes should be
+               visible in second browser.
+       </p>
+       <p>
+               When distributed caches are run on multiple virtual or physical 
servers, the default
+               port assigned above does not need to be incremented for each 
machine. If the servers
+               are deployed on multiple networks, care must be taken to ensure 
multicast traffic on
+               UDP/4446/230.0.0.1 and TCP/40001 is routed between the servers. 
Additionally,
+               multicast propagation TTL may have to be specified to enable 
the UDP packets to
+               jump between networks. The default value is "1", which is 
supposed to limit packets
+               to one subnet. (See the org.apache.jetspeed.ehcache.group.ttl 
property).
+       </p>
+       <p>
+               Here is a fully specified cacheManagerConfig bean with its 
distributed cache default
+               values for normal installation:
+       </p>
+<source><![CDATA[
+<bean id="cacheManagerConfig" 
class="org.apache.jetspeed.cache.impl.EhCacheConfigResource">
+       <property name="defaultConfigResource" value="distributed-ehcache.xml"/>
+       <property name="defaultGroupAddress" value="230.0.0.1"/>
+       <property name="defaultGroupPort" value="4446"/>
+       <property name="defaultGroupTTL" value="1"/>
+       <property name="defaultHostname" value="localhost"/>
+       <property name="defaultPort" value="40001"/>
+</bean>
+]]></source>
+       <p>
+               Any of these can be configured to reflect requirements of the 
production network.
+       </p>
+</section>
+
+</body>
+</document>

Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-aggregation.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-aggregation.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-aggregation.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-aggregation.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,262 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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>
+        <title>Jetspeed 2 Aggregation</title>
+        <subtitle>Guide to Jetspeed Aggregation</subtitle>
+        <authors>
+            <person name="David Sean Taylor" email="[email protected]" />
+        </authors>
+    </properties>
+    <body>
+        <section name="What is Aggregation?">
+            <p>
+                The portal provides a consolidated view of multiple content 
sources, or portlets, in a single browser display.
+                The process of consolidating and rendering this content 
together is known as aggregation.      
+                In Jetspeed, the aggregator is made up of several pluggable 
Spring components that plug into the Jetspeed engine.       
+            </p>
+        </section>
+        <section name='Supported Aggregators'> 
+            <p>List of Aggregators:</p>
+            <table>
+                <tr>
+                    <th>Component Name</th>
+                    <th>Description</th>                
+                    <th>Multithreaded?</th>
+                    <th>JSR-168 Caching?</th>
+                </tr>
+                <tr>
+                    <td>PageAggregator</td>
+                    <td>Given a PSML page, aggregates the content of all 
portlets on that page.</td>                
+                    <td>no</td>
+                    <td>yes</td>
+                </tr>
+                <tr>
+                    <td>AsyncPageAggregator</td>
+                    <td>A multi-threaded, asynchronous PSML page 
aggregator.</td>
+                    <td>yes</td>
+                    <td>yes</td>
+                </tr>
+                <tr>
+                    <td>PortletAggregator</td>
+                    <td>Renders the content of one single portlet.</td>
+                    <td>no*</td>
+                    <td>yes</td>
+                </tr>
+                <tr>
+                    <td>AsyncPageAggregator + CommonJ</td>
+                    <td>A multi-threaded, asynchronous PSML page aggregator 
running CommonJ Work Monitor threads, tested only with IBM Websphere 6.1 
only.</td>
+                    <td>yes</td>
+                    <td>yes</td>
+                </tr>                                
+            </table>            
+            <i>* multi-threading is accomplished with the Jetspeed Desktop 
combined with the PortletAggregator</i>
+        </section>
+        <section name="Aggregator Spring Configuration">
+            <p>
+            </p>
+            <source test="">
+                <![CDATA[
+        <!-- Default portlet timeout in milliseconds:
+        Zero means no portlet timeout option by default.
+        -->
+        <constructor-arg>
+            <value>0</value>
+        </constructor-arg>                             
+]]>
+            </source>
+            <p>
+            </p>
+            
+        </section>
+        
+        <section name="Changing the Page Aggregator to Multithreaded">
+            <p>
+                The default aggregator is single-threaded. To switch to 
multi-threaded,
+                edit the <b>pipelines.xml</b> spring configuration file:
+            </p>
+            <source test="">
+                <![CDATA[
+<!-- Before -->
+  <bean id="aggregatorValve"
+        class="org.apache.jetspeed.aggregator.AggregatorValve"
+        init-method="initialize"
+
+   <constructor-arg>
+       <ref bean="org.apache.jetspeed.aggregator.PageAggregator"/>
+   </constructor-arg>
+  </bean> 
+
+  <!-- After -->
+  <bean id="aggregatorValve"
+        class="org.apache.jetspeed.aggregator.AggregatorValve"
+        init-method="initialize"
+
+   <constructor-arg>
+       <ref bean="org.apache.jetspeed.aggregator.AsyncPageAggregator"/>
+   </constructor-arg>
+  </bean> 
+]]>
+            </source>
+            <p>
+            </p>
+            
+        </section>
+        <section name="jetspeed-portlet.xml Parameters">
+            <p>
+                For the multithreaded aggregator, you can override the default 
setting
+                for rendering timeout for a specific portlet. This value is 
set in milliseconds
+                and represents the timeout value that Jetspeed will give the 
portlet to complete 
+                rendering before it gives up. 
+            </p>
+            <p> 
+            IMPORTANT: This parameter serves two purposes: (1) the presence of 
it enables parallel rendering for a portlet, and (2) the value determines how 
long Jetspeed will
+give this portlet to complete rendering before it times out and abandons 
rendering the portlet. Future versions will relax the first requirement. Beware 
that even if parallel
+rendering is enabled, portlets will not be rendered outside the main thread 
group, i.e. in sequential, unless this timeout parameter exists in the 
jetspeed-portlet.xml.
+                       </p>
+
+            <source test="">
+                <![CDATA[
+<portlet>
+        <portlet-name>PickANumberPortlet</portlet-name>
+        <js:metadata name="timeout">3000</js:metadata>
+</portlet>
+]]>
+            </source>
+            <p>
+            </p>
+            
+        </section>
+        <section name="Multithreaded Aggregation with Websphere">
+            <p>Running mulithreaded aggregation with Jetspeed requires the 
following configuration steps.
+            Note that steps 1 and 2 are required for all Websphere 
installations and are not specific to multithreaded aggregation.           
+            </p>
+            <subsection name='1. Login Filter'>
+            <p>Configure the WEB-INF/web.xml to use the PortalFilter for 
logging in by uncommented  the PortalFilter and its mapping:</p>
+            <source test="">
+                <![CDATA[
+  <filter>
+    <filter-name>PortalFilter</filter-name>
+    <filter-class>org.apache.jetspeed.login.filter.PortalFilter</filter-class> 
  
+  </filter>
+...
+  <filter-mapping>
+    <filter-name>PortalFilter</filter-name>
+    <url-pattern>/*</url-pattern>    
+  </filter-mapping>               
+]]>            
+            </source>
+            </subsection>
+            <subsection name='2.Portal Login Portlet'>
+            <p>Edit the default-page.psml, changing the login portlet to the 
filter-based login portlet as shown below.
+            Make sure to also change the fragment id. Change:</p>
+            <source test="">
+                <![CDATA[
+    <fragment id="dp-12" type="portlet" name="j2-admin::LoginPortlet">
+    ...
+]]>            
+            </source>
+                       <p>to ..</p>
+            <source test="">
+                <![CDATA[
+    <fragment id="dp-12a" type="portlet" name="j2-admin::PortalLoginPortlet">
+    ...
+]]>                                                
+            </source>
+            </subsection>
+            <subsection name='3. Use the Jetspeed Portal Request Factory'>     
       
+            <p>
+Some webcontainers like WebSphere 5.x derive critical information of the 
HttpServletRequest dynamically from the current application context.
+This means that in an invoked portlet application, the original Portal 
request, as stored in the RequestContext, for example doesn't returns the 
Portal contextPath, servletPath and HttpSession of the Portal application. 
You'll get the same object references as in the current application 
HttpServletRequest.
+Because of this, simple things as portal level login through a custom portlet 
isn't possible in these web containers.
+                       </p>
+                       <p>
+To solve this, an additional PortalRequest wrapper will be used which 
registers the initial (portal) object references from a supplied request and 
always returns those,
+instead of delagating to the wrapped request.
+Which wrapper is used is handled by a new PortalRequestFactory which can be 
specified in the springframework configuration.
+For other web containers like Tomcat which doesn't have this "problem", 
nothing has to be specified (none is by default), in which case the request 
will be wrapped in an HttpServletRequestWrapper to maintain the same level of 
wrapping (needed for easy access to the original request in 
ServletPortletInvoker.            
+            </p>
+            <p>Edit WEB-INF/assembly/wps.xml, and uncomment the one bean found 
there</p>
+            <source test="">
+<![CDATA[            
+<beans>   
+    <!-- required for websphere, uncomment if running under websphere
+         see:  http://issues.apache.org/jira/browse/JS2-355 -->
+    <bean id="org.apache.jetspeed.request.PortalRequestFactory" 
class="org.apache.jetspeed.request.PortalRequestFactoryImpl"/>   
+</beans>
+]]>                                    
+            </source>
+            </subsection>
+            <subsection name='4. Turn on the Multithreaded Aggregation Engine'>
+            <p>Swap out the (org.apache.jetspeed.aggregator.PageAggregator) 
with the multithreaded aggregation engine in WEB-INF/assembly/pipelines.xml:
+            </p>
+            <source test="">
+<![CDATA[            
+  <bean id="aggregatorValve"
+        class="org.apache.jetspeed.aggregator.AggregatorValve"
+        init-method="initialize"
+  >
+   <constructor-arg>
+       <ref bean="org.apache.jetspeed.aggregator.AsyncPageAggregator"/>
+   </constructor-arg>
+  </bean> 
+]]>                                                            
+          </source>
+               </subsection>
+               <subsection name='Optional Replacement for Portlet 
Request/Response Unwrapper'>
+          <p>You can replace the default portlet request/response unwrapper 
with a third-party module in WEB-INF/assembly/pluto-factories.xml.</p>
+          <p>Because the servlet request object of a servlet container could 
not be thread-safe under Jetspeed parallel rendering mode, the third-party 
unwrapper module can provide a thread-safe implementation by decorating the 
original request object.</p>
+          <p>Here's an example setting for third-party unwrapper module:</p>
+          <source test="">
+<![CDATA[              
+  <!--  
+  PortletRequestResponseUnwrapper finds servlet request or servlet response 
from portlet request or portlet response by unwrapping.
+  Third-party module can provide an implementation to decorate the real 
request or response object of a servlet container.
+  For example, the real request object of a servlet container can be decorated 
because it is not thread-safe under Jetspeed parallel rendering mode.
+  -->
+  <bean id="PortletRequestResponseUnwrapper"
+        
class="com.bluesunrise.jetspeed.container.invoker.WebspherePortletRequestResponseUnwrapper"
 />
+]]>                                                                            
+          </source>
+               </subsection>            
+               <subsection name='Optional CommonJ Work Manager'>
+               <p> If you want to use Commonj Work Manager provided by the 
container, uncomment the followings in WEB-INF/assembly/aggregation.xml:</p>
+          <source test="">
+<![CDATA[                              
+    <bean id="JetspeedWorkManager" 
class="org.springframework.jndi.JndiObjectFactoryBean">
+        <property name="resourceRef"><value>false</value></property> 
+        <property name="jndiName">
+            <value>java:comp/env/wm/jetspeed</value>
+        </property>
+    </bean>
+    <bean id="org.apache.jetspeed.aggregator.CommonjWorkerMonitor"
+          class="org.apache.jetspeed.aggregator.impl.CommonjWorkerMonitorImpl"
+          init-method="start"  destroy-method="stop" >
+        <constructor-arg index="0">
+            <ref bean="JetspeedWorkManager" />           
+        </constructor-arg>
+    </bean>
+]]>                                    
+          </source>
+<p>                                                    
+    Also replace all references to 
org.apache.jetspeed.aggregator.WorkerMonitor with 
org.apache.jetspeed.aggregator.CommonjWorkerMonitor in 
WEB-INF/assembly/aggregation.xml.
+</p>
+               </subsection>
+        </section>
+    </body>
+</document>

Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-caching.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-caching.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-caching.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-caching.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,204 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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>
+        <title>Portlet Caching</title>
+        <subtitle>Portlet Caching</subtitle>
+        <authors>
+            <person name="David Sean Taylor" email="[email protected]" />
+        </authors>
+    </properties>
+    <body>
+        <section name="Portlet Expiration Caching">
+            <p>
+                               The Expiration Cache for specific portlets is 
declared in your portlet.xml deployment descriptor. 
+                               At runtime, you can also modify the cache in 
the <a href='../adminguide/pam.html'>Registry admin</a> for your portlet. 
+                               Caching content helps improve the Portal 
response time for users. An expiration
+                               mechanism is provided on a per portlet basis. 
Be careful with this feature as cached content, in the Portlet 1.0 
specification, the cache is not shared across users.
+                               Each user will receive their own cached 
content. This feature can use up a lot of memory when you have thousands of 
users.
+                               The real advantage to using portlet caching is 
when you have content that is very expensive, performance-wise, to produce.
+                               </p>
+                               <p>
+                               Expiration times are defined in the portlet.xml 
and are specified in seconds:
+<source><![CDATA[
+<portlet>
+       <expiration-cache>300</expiration-cache>
+</portlet>
+]]></source>
+                               <ul>
+                                       <li>A value of 0 indicates information 
is never cached.</li>
+                                       <li>A value of -1 indicates the cache 
never expires.</li>
+                               </ul>
+            </p>
+
+               <subsection name="Jetspeed Caches">
+               <p>The Jetspeed portal maintains its several system caches to 
increase portal performance. These caches can be made <a 
href='distributed-cache.html'>distributed</a>, but n the default deployment, 
they are not distributed.
+                The <code>ehcache.xml</code> file, found under 
<code>WEB-INF/classes</code>, configures the Jetspeed system caches.
+                </p>
+                <p>
+<table>
+       <tr>
+               <th colspan="3">Jetspeed Caches</th>
+       </tr>                           
+       <tr>
+               <th>Cache</th>
+               <th>Description</th>
+               <th>Parameters</th>
+       </tr>                           
+       <tr>
+               <td>portletContentCache</td>
+               <td>JSR-168 Portlet Content Cache
+    This cache implements the JSR-168 caching specification (see Portlet 
Expiration Caching above).
+    The timeToIdle and timeToLive are set to defaults here, but are
+    always overriden on a per cache-element basis based on the portlet 
deployment
+    descriptor value. If there are more than 10000 elements it will not by 
default, overflow to the
+    disk cache, which in this configuration will go to wherever java.io.tmp is
+    defined on your system. On a standard Linux system this will be /tmp
+    timeToIdleSeconds and timeToLiveSeconds to live are both set at 8 hours 
(28800) 
+    this is the default setting for portlets who set their expiration cache as 
-1
+    </td>
+    <td>10,000 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>
+       </tr>
+       <tr>
+               <td>preferencesCache</td>
+               <td>Caches all preference nodes as elements, including user and 
default preferences. A single user preference can be represented by as many as 
8 nodes in memory per user. When calculating
+               your cache size, also consider the default preferences along 
with the per user preferences requirements. Also see the section below on 
<code>Preferences Cache Preloading</code> for instructions on preloading the 
preferences cache.</td>
+        <td>10,000 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>
+       </tr>
+       <tr>
+               <td>portletApplicationNameCache</td>
+               <td>Portlet Applications are cached by application name. This 
cache is hooked into the object-relational database cache and is essential for 
reasonable performance of the portal.</td>
+       <td>500 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>               
+       </tr>
+       <tr>
+               <td>portletApplicationOidCache</td>
+               <td>Portlet Applications are cached by object id. This cache is 
hooked into the object-relational database cache and is essential for 
reasonable performance of the portal.</td>
+       <td>500 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>               
+       </tr>
+       <tr>
+               <td>portletDefinitionNameCache</td>
+               <td>Portlet Definition are cached by portlet unique name. This 
cache is hooked into the object-relational database cache and is essential for 
reasonable performance of the portal.</td>
+       <td>2000 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>              
+       </tr>
+       <tr>
+               <td>portletDefinitionOidCache</td>
+               <td>Portlet Definition are cached by object id. This cache is 
hooked into the object-relational database cache and is essential for 
reasonable performance of the portal.</td>
+       <td>2000 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>              
+       </tr>
+       <tr>
+               <td>decorationConfigurationCache</td>
+               <td></td>
+           <td>500 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>           
+       </tr>
+       <tr>
+               <td>portletWindowCache</td>
+               <td>Caches portlet window accessor objects to speed up access 
for portlet fragment to window lookups</td>
+           <td>200 elements, time to idle/live = 8 hours, overflow to disk = 
false, LFU</td>           
+       </tr>
+       <tr>
+               <td>pageManagerOidCache</td>
+               <td>Pages are cached by object id. This cache is hooked into 
the object-relational database cache and is essential for reasonable 
performance of the portal.</td>
+           <td>128 elements, time to idle/live = 150 seconds, overflow to disk 
= false, LFU</td>               
+       </tr>
+       <tr>
+               <td>pageManagerPathCache</td>
+               <td>Pages are cached by the page full path. This cache is 
hooked into the object-relational database cache and is essential for 
reasonable performance of the portal.</td>
+           <td>128 elements, time to idle/live = 150 seconds, overflow to disk 
= false, LFU</td>               
+       </tr>
+</table>                
+</p>
+
+                <p>
+<table>
+       <tr>
+               <th colspan="2">General Cache Settings in ehcache.xml</th>
+       </tr>                           
+       <tr>
+               <th>Setting</th>
+               <th>Description</th>
+       </tr>                           
+       <tr>
+               <td>maxElementsInMemory</td>
+               <td>Sets the maximum number of objects that will be created in 
memory</td>
+       </tr>
+       <tr>
+               <td>maxElementsOnDisk</td>
+               <td>Sets the maximum number of objects that will be maintained 
in the DiskStore
+        The default value is zero, meaning unlimited.</td>
+       </tr>
+       <tr>
+               <td>eternal</td>
+               <td> Sets whether elements are eternal. If eternal,  timeouts 
are ignored and the
+    element is never expired.</td>
+       </tr>
+       <tr>
+               <td>overflowToDisk</td>
+               <td>Sets whether elements can overflow to disk when the memory 
store
+    has reached the maxInMemory limit.</td>
+       </tr>
+       <tr>
+               <td>timeToIdleSeconds (optional)</td>
+               <td> Sets the time to idle for an element before it expires.
+    i.e. The maximum amount of time between accesses before an element expires
+    Is only used if the element is not eternal.
+    Optional attribute. A value of 0 means that an Element can idle for 
infinity.
+    The default value is 0.</td>
+       </tr>
+       <tr>
+               <td>timeToLiveSeconds (optional)</td>
+               <td>Sets the time to live for an element before it expires.
+    i.e. The maximum time between creation time and when an element expires.
+    Is only used if the element is not eternal.
+    Optional attribute. A value of 0 means that and Element can live for 
infinity.
+    The default value is 0.</td>
+       </tr>
+       <tr>
+               <td>memoryStoreEvictionPolicy</td>
+               <td>Policy would be enforced upon reaching the 
maxElementsInMemory limit. Default
+    policy is Least Recently Used (specified as LRU). Other policies available 
-
+    First In First Out (specified as FIFO) and Less Frequently Used
+    (specified as LFU)</td>
+       </tr>
+       </table>
+                </p>
+
+               </subsection>
+               <subsection name='Preferences Cache Preloading'>
+               <p>To help with preferences performance, preferences can be 
preloaded at system started. See the Spring configuration file 
<code>prefs.xml</code> to modify the loading
+               of preferences into the preference cache at Jetspeed startup. 
Both default and user (entity) preferences can be optionally preloaded. The 
default setting is to 
+               preload all all preferences for the j2-admin portlet 
application. See the constructor argument 2 on the 
<code>PreferencesProviderImpl</code> service, to modify the 
+               list of portlet applications default preferences to preload. 
Leave the list empty to not preload default preferences. The third constructor 
argument determines 
+               whether all user (entity) preferences are preloaded or not. The 
default is to not preload. Be very careful with this setting as it can result 
in quickly running out
+               of memory at startup.  
+               </p>
+
+<source><![CDATA[      
+        <!-- list of portlet applications default preferences to preload, 
leave list empty to not preload -->
+        <constructor-arg index='2'>
+           <list>
+               <value>j2-admin</value>
+        </list>
+        </constructor-arg>
+        <!--  preload ALL Entities: warning this can chew up lots of memory -->
+        <constructor-arg index='3'><value 
type="boolean">false</value></constructor-arg>
+]]></source>
+               
+               </subsection>
+        </section>
+    </body>
+</document>

Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-content-mapping-psml.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-content-mapping-psml.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-content-mapping-psml.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-content-mapping-psml.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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>
+    <title>Guide to Content Mapping for PSML</title>
+    <subtitle>Guide to Content Mapping for PSML</subtitle>
+    <authors>
+      <person name="Randy Watler" email="[email protected]"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Content and Request URL Mapping">
+<p>
+The Jetspeed Portal implements request URL mapping features to support 
portlets designed to display content from repositories or other web sites. This 
makes it possible to augment the portal URL space with virtual PSML pages and 
hierarchies that mirror the paths or URL structure of the content source. These 
features are implemented by the <a 
href="guide-menus-declarative-psml.html#Portal_Site_Component">Portal Site 
Component</a> within the portal.
+</p>
+<p>
+While accessing and displaying content is a responsibility left to portlets, 
the <a href="guide-menus-declarative-psml.html#Portal_Site_Component">Portal 
Site Component</a> allows <a 
href="../devguide/guide-psml.html#Dynamic_Page">dynamic page</a> templates with 
these portlets to present content as portal pages. In addition, the request URL 
is mapped into a content access path that is passed as a request attribute to 
portlets, (see <a 
href="../apidocs/org/apache/jetspeed/PortalReservedParameters.html"><code>PortalReservedParameters.PATH_ATTRIBUTE</code></a>
 and <a 
href="../apidocs/org/apache/jetspeed/PortalReservedParameters.html"><code>PortalReservedParameters.CONTENT_PATH_ATTRIBUTE</code></a>).
 By default, matching <a href="../devguide/guide-psml.html#Page">concrete 
pages</a> defined in the PSML are matched by requests first. If unmatched, 
requests are then classified by the <a 
href="#Content_and_Request_URL_Mapping_Configuration">Content Type Mapper</a> 
implementation registered 
 with the Portal Site Component. The provided implementation decomposes the 
request URL into a content access path and content type if it is recognized as 
a content request. This information is subsequently used by the Portal Site 
Component to find the most specific <a 
href="../devguide/guide-psml.html#Dynamic_Page">dynamic page</a> that can be 
addressed by the path on the request URL. Fallback <a 
href="../devguide/guide-psml.html#Dynamic_Page">dynamic page</a> selection is 
performed by searching in parent PSML <a 
href="../devguide/guide-psml.html#Folder">folders</a> and matching wildcard, 
'*', dynamic page content types.
+</p>
+</section>
+<section name="Content and Request URL Mapping Configuration">
+<p>
+The Portal Site content mapping is configured using a Content Type Mapper 
implementation specified in the portal Spring configuration, (typically in the 
page-manager.xml assembly file). The provided implementation matches request 
URLs using Perl regular expression patterns to determine content and system 
request access paths and dynamic page content types. As with other portal 
configurations, this object can be replaced with a custom implementation that 
might leverage external repository or web site information to classify the 
portal request. 
+</p>
+<p>Example provided Content Type Mapper configuration:</p>
+<source><![CDATA[
+  <bean id="org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper" 
+       name="portalSiteContentTypeMapper"
+       
class="org.apache.jetspeed.portalsite.impl.PortalSiteContentTypeMapperImpl">
+       <!-- content type mapping -->
+       <constructor-arg index="0">
+           <list>
+               <bean 
class="org.apache.jetspeed.portalsite.impl.ContentTypeMapping">
+                   <constructor-arg 
index="0"><value>\w[.](\w+)&#36;</value></constructor-arg> <!-- use &#36; for 
'$' -->
+                   <constructor-arg 
index="1"><value>&#36;1</value></constructor-arg> <!-- use &#36; for '$' -->
+               </bean>
+           </list>
+       </constructor-arg>
+       <!-- dynamic page path mapping -->
+       <constructor-arg index="1">
+           <list>
+               <bean 
class="org.apache.jetspeed.portalsite.impl.RequestPathMapping">
+                   <constructor-arg 
index="0"><value>/preview/</value></constructor-arg>
+                   <constructor-arg 
index="1"><value>/</value></constructor-arg>
+               </bean>
+               <bean 
class="org.apache.jetspeed.portalsite.impl.RequestPathMapping">
+                   <constructor-arg 
index="0"><value>.domain.com</value></constructor-arg>
+                   <constructor-arg 
index="1"><value>doc</value></constructor-arg>
+                   <constructor-arg 
index="2"><value>/(?:draft|scratch)/</value></constructor-arg>
+                   <constructor-arg 
index="3"><value>/pub/</value></constructor-arg>
+               </bean>
+           </list>
+       </constructor-arg>
+       <!-- system page path mapping -->
+       <constructor-arg index="2">
+           <list>
+               <bean 
class="org.apache.jetspeed.portalsite.impl.RequestPathMapping">
+                   <constructor-arg 
index="0"><value>/preview/</value></constructor-arg>
+                   <constructor-arg 
index="1"><value>/</value></constructor-arg>
+               </bean>
+           </list>
+       </constructor-arg>
+       <!-- external content path mapping -->
+       <constructor-arg index="3">
+           <list>
+               <bean 
class="org.apache.jetspeed.portalsite.impl.RequestPathMapping">
+                   <constructor-arg 
index="0"><value>[.](\w+)&#36;</value></constructor-arg> <!-- use &#36; for '$' 
-->
+                   <constructor-arg index="1"><value></value></constructor-arg>
+               </bean>
+           </list>
+       </constructor-arg>
+       <!-- enable content type fallback -->
+       <constructor-arg index="4"><value>true</value></constructor-arg>
+  </bean>
+]]></source>
+<p>
+The above configuration specifies the following content and request URL 
mapping:
+<ul>
+  <li>Content types are taken from the request URL file extension.</li>
+  <li>Dynamic page request paths are modified by stripping the '/preview' 
prefix.</li>
+  <li>Dynamic page request paths for 'doc' content types against the 
'.domain.com' servers are modified by replacing the '/draft' and '/scratch' 
prefix with '/pub'.</li>
+  <li>Concrete portal page and folder request paths, (i.e. system pages), are 
also modified by stripping the '/preview' prefix</li>
+  <li>Content page content access paths types are constructed from the request 
URL by stripping the file extension.</li>
+  <li>Wildcard dynamic page content type fallback is enabled.</li>
+</ul>
+See the <a href="../apidocs/index.html">javadoc</a> for the following classes 
for more information on configuring these Spring beans:
+<ul>
+  <li><a 
href="../apidocs/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.html"><code>org.apache.jetspeed.portalsite.impl.ContentTypeMapping</code></a></li>
+  <li><a 
href="../apidocs/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.html"><code>org.apache.jetspeed.portalsite.impl.PortalSiteContentTypeMapperImpl</code></a></li>
+  <li><a 
href="../apidocs/org/apache/jetspeed/portalsite/impl/RequestPathMapping.html"><code>org.apache.jetspeed.portalsite.impl.RequestPathMapping</code></a></li>
+</ul>
+</p>
+</section>
+</body>
+</document>

Added: 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-device-capabilities.xml
URL: 
http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-device-capabilities.xml?rev=1691449&view=auto
==============================================================================
--- 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-device-capabilities.xml
 (added)
+++ 
portals/site/jetspeed/jetspeed-2.3/jetspeed-guide-deploy/src/site/xdoc/guide-device-capabilities.xml
 Thu Jul 16 21:01:09 2015
@@ -0,0 +1,113 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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>
+        <title>Jetspeed 2 Device Capabilities</title>
+        <subtitle>Guide to Jetspeed Device Capabilities</subtitle>
+        <authors>
+            <person name="David Sean Taylor" email="[email protected]" />
+        </authors>
+    </properties>
+    <body>
+        <section name="Device Capabilities">
+            <p>
+                               Jetspeed capabilities provides a mechanism for 
mapping the client
+                               (browser) used to access the portal to media 
types for page rendering.
+                       </p>
+                       <p>
+                               A device is associated with a list of 
capabilities, allowing the portal
+                               to know what kind of content the device can 
handle (such as
+                               Javascript, DHTML..)
+                       </p>
+                       <p>
+                               The rules for mapping devices to media types 
and capabilities are
+                               stored in the database. The original values for 
these are first populated with
+                               XML data.
+                       </p>
+                       <p>
+                               Your custom build should be setup with the 
default XML data for
+                               devices and media types. Currently there is no 
administrative portlets for editing device information.
+                       </p>
+                       <p>
+                               A full set of capabilities, devices, media 
types and mime types are
+                               supplied with the XML test data.
+                       </p>
+                       <p>
+                               The Jetspeed-2 capability engine maps clients 
to media types to
+                               mime types. Here are some more detailed 
definitions:
+                               <ul>
+                                       <li>Clients: The application that 
initiates a request to the Jetspeed-2
+                                       portal engine. Jetspeed-2 uses the 
User-Agent to determine the
+                                       client that initiates a request.</li>
+                                       <li>Media Type: The type of media 
requesting the content (HTML,
+                                       WML, etc.). Content in Jetspeed-2 can 
be requested by different
+                                       type of devices through different 
media.</li>
+                                       <li>Mime Type: The type of content 
being requested.</li>
+                                       <li>Supported Media Types: HTML, 
XHTML-BASIC, XML, WML, VXML</li>
+                               </ul>
+                       </p>
+                       
+                       <p>
+Define the default mime types
+<source><![CDATA[
+<MimeTypes>
+       <MimeType>application/xhtml+xml</MimeType>
+       <MimeType>text/html</MimeType>
+       <MimeType>text/vnd.wap.wml</MimeType>
+       <MimeType>text/vxml</MimeType>
+       <MimeType>text/xhtml</MimeType>
+       <MimeType>text/xml</MimeType>
+</MimeTypes>
+]]></source>
+                       </p>
+
+                       <p>
+Define media types (used in special _control folder processing) and preferred 
mime type:
+<source><![CDATA[
+<MediaType name="html">
+       <charcterSet value="UTF-8"/>
+       <title value="HTML"/>
+       <description value="Rich HTML for HTML 4.0 compliants browsers"/>
+       <capabilities></capabilities>
+       <mimeTypes>text/html</mimeTypes>
+</MediaType>
+]]></source>
+                       </p>
+
+
+                       <p>
+Defines supported Clients (browsers) by the portal and their device
+capabilities. Clients are mapped to media types via the preferred
+mime type
+<source><![CDATA[
+<Client name="ie5mac" evalOrder="1" preferredMimeTypeID="text/html">
+       <userAgentPattern value=".*MSIE 5.*Mac.*"/>
+       <version value="5.*"/>
+       <model value="None"/>
+       <manufacturer value="Microsoft"/>
+       <capabilities>
+               HTML_3_2,HTML_JAVA,HTML_JAVASCRIPT, 
HTML_TABLE,HTML_FORM,HTML_FRAME,HTML_IMAGE,HTML_PLUGIN,HTML_CSS1,HTML_DOM_NS4, 
HTTP_COOKIE
+       </capabilities>
+       <mimeTypes>text/html</mimeTypes>
+</Client>
+]]></source>
+                       </p>                    
+
+        </section>
+    </body>
+</document>


Reply via email to