Modified: portals/site-live/applications/webcontent2/war-module.html
URL: 
http://svn.apache.org/viewvc/portals/site-live/applications/webcontent2/war-module.html?rev=1901430&r1=1901429&r2=1901430&view=diff
==============================================================================
--- portals/site-live/applications/webcontent2/war-module.html (original)
+++ portals/site-live/applications/webcontent2/war-module.html Tue May 31 
02:23:06 2022
@@ -1,677 +1,888 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-
-
-
-
-
-
-
-
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 26 May 2022 -->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <title>Apache Portals Applications - 
+    Apache Portals Web Content Application 2 - WAR Module</title>
+    <style type="text/css" media="all">
+      @import url("../css/maven-base.css");
+      @import url("../css/maven-theme.css");
+      @import url("../css/site.css");
+    </style>
+    <link rel="stylesheet" href="../css/print.css" type="text/css" 
media="print" />
+    <meta name="Date-Revision-yyyymmdd" content="20220526" />
+    <meta http-equiv="Content-Language" content="en" />
+        
+        </head>
+  <body class="composite">
+    <div id="banner">
+                        <a href="http://portals.apache.org/"; id="bannerLeft">
+                                                <img 
src="../images/apache-portals.gif" alt="Apache Software Foundation" />
+                </a>
+                              <a 
href="http://portals.apache.org/applications/"; id="bannerRight">
+                Apache Portals Applications
+                </a>
+            <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="breadcrumbs">
+            
+                    
+                <div class="xleft">
+        <span id="publishDate">Last Published: 26 May 2022</span>
+                  &nbsp;| <span id="projectVersion">Version: 1.0</span>
+                      </div>
+            <div class="xright">                    <a 
href="http://portals.apache.org/"; class="externalLink" target="_nw" 
title="Portals">Portals</a>
+            |
+                        <a href="http://portals.apache.org/jetspeed-2"; 
class="externalLink" target="_nw" title="Jetspeed-2">Jetspeed-2</a>
+            |
+                        <a href="http://portals.apache.org/bridges"; 
class="externalLink" target="_nw" title="Bridges">Bridges</a>
+              
+                    
+      </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+    <div id="leftColumn">
+      <div id="navcolumn">
+             
+                    
+                                <h5>Essentials</h5>
+                  <ul>
+                  <li class="none">
+                          <a href="../index.html" title="Welcome">Welcome</a>
+            </li>
+                  <li class="none">
+                          <a href="../news.html" title="News and Status">News 
and Status</a>
+            </li>
+                  <li class="none">
+                          <a href="../download.html" 
title="Download">Download</a>
+            </li>
+                  <li class="none">
+                          <a href="../getting-started.html" title="Getting 
Started">Getting Started</a>
+            </li>
+          </ul>
+                       <h5>Subprojects</h5>
+                  <ul>
+                  <li class="none">
+                          <a href=".././portals-gems/index.html" 
title="Gems">Gems</a>
+            </li>
+                  <li class="none">
+                          <a href=".././demo/index.html" title="Demo">Demo</a>
+            </li>
+                  <li class="none">
+                          <a href=".././rss-main/index.html" 
title="RSS">RSS</a>
+            </li>
+                                                                               
                                                                                
                             <li class="expanded">
+                          <a href=".././webcontent2/index.html" 
title="WebContent-2">WebContent-2</a>
+                    <ul>
+                      <li class="none">
+                          <a href=".././webcontent2/modules-overview.html" 
title="Modules Overview">Modules Overview</a>
+            </li>
+                      <li class="none">
+                          <a 
href=".././webcontent2/content-rewriter-module.html" title="Content Rewriter 
Module">Content Rewriter Module</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/reverse-proxy-module.html" 
title="Reverse Proxy Module">Reverse Proxy Module</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/portlets-module.html" 
title="Portlets Module">Portlets Module</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/war-module.html" 
title="WAR Module">WAR Module</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/build-from-source.html" 
title="Build from source">Build from source</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/apidocs/index.html" 
title="JavaDocs">JavaDocs</a>
+            </li>
+                      <li class="none">
+                          <a href=".././webcontent2/faq.html" 
title="FAQ">FAQ</a>
+            </li>
+              </ul>
+        </li>
+                  <li class="none">
+                          <a href=".././webcontent/index.html" 
title="WebContent-1">WebContent-1</a>
+            </li>
+                  <li class="none">
+                          <a href=".././dbbrowser/index.html" title="DB 
Browser">DB Browser</a>
+            </li>
+                  <li class="none">
+                          <a href=".././logging/index.html" 
title="Logging">Logging</a>
+            </li>
+          </ul>
+                       <h5>Support</h5>
+                  <ul>
+                  <li class="none">
+                          <a href="../team-list.html" title="Project 
Team">Project Team</a>
+            </li>
+                  <li class="none">
+                          <a href="../license.html" title="Project 
License">Project License</a>
+            </li>
+                  <li class="none">
+                          <a 
href="http://wiki.apache.org/portals/applications"; class="externalLink" 
title="Project Wiki">Project Wiki</a>
+            </li>
+                  <li class="none">
+                          <a href="../mail-lists.html" title="Mailing 
List">Mailing List</a>
+            </li>
+                  <li class="none">
+                          <a href="../issue-tracking.html" title="Issue 
Tracking">Issue Tracking</a>
+            </li>
+          </ul>
+                             <a href="http://maven.apache.org/"; title="Built 
by Maven" class="poweredBy">
+        <img class="poweredBy" alt="Built by Maven" 
src="../images/logos/maven-feather.png" />
+      </a>
+                   
+                    
+            </div>
+    </div>
+    <div id="bodyColumn">
+      <div id="contentBox">
+        <!-- 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. -->
+  
 
+    <div class="section">
+<h2>WAR Module<a name="WAR_Module"></a></h2>
+      
+<p>
+        The Web Content Application 2 WAR Module packages all the other modules
+        with default servlet/filter/portlet configurations and 
demonstration-purpose examples.
+      </p>
 
-<html xmlns="http://www.w3.org/1999/xhtml";>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-    <title>Apache Portals Applications - Apache Portals Web Content 
Application 2 - WAR Module</title>
-    <style type="text/css" media="all">
-      @import url("../css/maven-base.css");
-      @import url("../css/maven-theme.css");
-      @import url("../css/site.css");
-    </style>
-    <link rel="stylesheet" href="../css/print.css" type="text/css" 
media="print" />
-          </head>
-  <body class="composite">
-    <div id="banner">
-                  <a href="http://portals.apache.org/"; id="bannerLeft">
-    
-                                            <img 
src="../images/apache-portals.gif" alt="" />
-    
-            </a>
-                        <a href="http://portals.apache.org/applications/"; 
id="bannerRight">
-    
-            Apache Portals Applications
-    
-            </a>
-            <div class="clear">
-        <hr/>
+      
+<div class="section">
+<h3>Installtion<a name="Installtion"></a></h3>
+        
+<p>
+          If you use <a class="externalLink" href="http://maven.apache.org/"; 
target="_blank">Apache Maven</a> in your project,
+          then you can add the following dependency to use this module in your 
project.
+        </p>
+        
+<p>
+          </p>
+<div class="source">
+<pre>
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.portals.applications&lt;/groupId&gt;
+      &lt;artifactId&gt;apa-webcontent2-war&lt;/artifactId&gt;
+      &lt;type&gt;war&lt;/type&gt;
+      &lt;version&gt;${webcontent2.version}&lt;/version&gt;
+    &lt;/dependency&gt;
+          </pre></div>
+        
       </div>
+
     </div>
-    <div id="breadcrumbs">
-          
-  
 
-  
-    
-  
-  
     
-            <div class="xleft">
-        Last Published: 4 March 2015
-                      </div>
-            <div class="xright">            <a 
href="http://portals.apache.org/"; class="externalLink">Portals</a>
-            |
-                <a href="http://portals.apache.org/jetspeed-2"; 
class="externalLink">Jetspeed-2</a>
-            |
-                <a href="http://portals.apache.org/bridges"; 
class="externalLink">Bridges</a>
-            
-  
+<div class="section">
+<h2>Default Reverse Proxy Servlet/Filter Definition(s)<a 
name="Default_Reverse_Proxy_ServletFilter_Definitions"></a></h2>
+      
+<p>
+        The Web Content Application 2 WAR Module contains a reverse proxy 
servlet definition
+        like the following in /WEB-INF/web.xml by default.
+      </p>
 
-  
-    
-  
-  
-    
-  </div>
-      <div class="clear">
-        <hr/>
-      </div>
+      
+<div class="source">
+<pre>
+  &lt;!-- Default Reverse Proxy Servlet --&gt;
+  &lt;servlet&gt;
+    &lt;servlet-name&gt;ReverseProxyServlet&lt;/servlet-name&gt;
+    
&lt;servlet-class&gt;org.apache.portals.applications.webcontent2.proxy.servlet.SimpleReverseProxyServlet&lt;/servlet-class&gt;
+    &lt;init-param&gt;
+      &lt;param-name&gt;mappings&lt;/param-name&gt;
+      &lt;param-value&gt;
+        /WEB-INF/rproxy-mappings.yaml
+      &lt;/param-value&gt;
+    &lt;/init-param&gt;
+    &lt;init-param&gt;
+      &lt;param-name&gt;ssl-hostname-verifier&lt;/param-name&gt;
+      &lt;param-value&gt;ALLOW_ALL_HOSTNAME_VERIFIER&lt;/param-value&gt;
+    &lt;/init-param&gt;
+  &lt;/servlet&gt;
+
+  &lt;!-- Map /rproxy path to the Default Reverse Proxy Servlet --&gt;
+  &lt;servlet-mapping&gt;
+    &lt;servlet-name&gt;ReverseProxyServlet&lt;/servlet-name&gt;
+    &lt;url-pattern&gt;/rproxy/*&lt;/url-pattern&gt;
+  &lt;/servlet-mapping&gt;
+      </pre></div>
+
+      
+<p>
+        The mapping configuration for the servlet is configured in 
<tt>/WEB-INF/rproxy-mappings.yaml</tt> by default:
+      </p>
+      
+<div class="source">
+<pre>
+--- !regex
+localPattern: ^/localhost_(\d+)/(.*)$
+remoteReplace: http://localhost:$1/$2
+remotePattern: ^http://localhost:(\d+)/(.*)$
+localReplace: /localhost_$1/$2
+contentRewriters:
+    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
+
+--- !simple
+local: /portals/applications/
+remote: http://portals.apache.org/applications/
+contentRewriters:
+    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
+
+--- !simple
+local: /portals/bridges/
+remote: http://portals.apache.org/bridges/
+contentRewriters:
+    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
+
+--- !regex
+localPattern: ^/apache/(\w+)/(.*)$
+remoteReplace: http://$1.apache.org/$2
+remotePattern: ^http://(\w+)\.apache\.org/(.*)$
+localReplace: /apache/$1/$2
+contentRewriters:
+    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
+
+--- !simple
+local: /
+remote: http://apache.org/
+contentRewriters:
+    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
+      </pre></div>
     </div>
-    <div id="leftColumn">
-      <div id="navcolumn">
-           
-  
 
-  
     
-  
-  
-    
-                   <h5>Essentials</h5>
-            <ul>
-              
-    <li class="none">
-                    <a href="../index.html">Welcome</a>
-          </li>
-              
-    <li class="none">
-                    <a href="../news.html">News and Status</a>
-          </li>
-              
-    <li class="none">
-                    <a href="../download.html">Download</a>
-          </li>
-              
-    <li class="none">
-                    <a href="../getting-started.html">Getting Started</a>
-          </li>
-          </ul>
-              <h5>Subprojects</h5>
-            <ul>
-              
-    <li class="none">
-                    <a href=".././portals-gems/index.html">Gems</a>
-          </li>
-              
-    <li class="none">
-                    <a href=".././demo/index.html">Demo</a>
-          </li>
-              
-    <li class="none">
-                    <a href=".././rss-main/index.html">RSS</a>
-          </li>
-              
+<div class="section">
+<h2>Portlet Definitions<a name="Portlet_Definitions"></a></h2>
+
+      
+<p>
+        The Web Content Application 2 WAR Module contains several portlet 
definitions
+        in /WEB-INF/portlet.xml:
+        </p>
+<ul>
           
-              
+<li>IFrame Portlet 2</li>
+          
+<li>ReverseProxy IFrame Portlet 2</li>
+          
+<li>Web Content Portlet 2</li>
+          
+<li>SimpleReverseProxyPortlet</li>
+        </ul>
+        All the portlets host content from a different website or local
+        servlet inside a portlet window. 
       
-            
       
-            
+<p>
+        The IFrame Portet 2 achieves this
+        by embedding an HTML
+        <a class="externalLink" 
href="http://en.wikipedia.org/wiki/HTML_element#Frames";>iframe</a>
+        within a portlet.
+      </p>
       
-            
+<p>
+        The ReverseProxy IFrame Portlet 2 behaves in the same way as IFrame 
Portlet 2 does,
+        except that it uses reverse proxy service URLs
+        instead of the original SRC URLs.
+        By using Reverse Proxy service component, more sophisticated content 
can be
+        served by setting content rewriting configurations or Cross-Domain 
Scripting can be enabled. 
+        The Web Content Application includes Reverse Proxy Service servlet and 
component.
+      </p>
       
-            
+<p>
+        The Web Content Portlet 2 takes a more complicated approach: it 
actually
+        embeds the content of the remote website inside the HTML payload
+        delivered by the portal, without the help of the browser.
+        This approach is more complicated since it may require rewriting
+        all links within the hosted website, that is, if you want to
+        keep the website navigation inside the portlet window.
+        While a noble cause, this approach is far from perfect and does not
+        always work correctly.
+      </p>
       
-            
+<p>
+        The SimpleReverseProxyPortlet behaves in the same way as Reverse Proxy 
Servlet or Filter by itself
+        without having to depend on an external reverse proxy servlet or 
filter.
+        This portlet also rewrite all the links to portlet action URLs like 
Web Content Portlet 2 does.
+        This simple reverse proxying portlet can be used as a base class that 
you can extend or as an example.
+      </p>
       
-            
+<p>
+        If you are interested in secure versions of these portlets, see
+        the Jetspeed-specific versions of the IFrame 2, ReverseProxyIFrame 2, 
or WebContent 2
+        portlets found at the
+        <a class="externalLink" 
href="http://portals.apache.org/jetspeed-2/applications/j2-admin.html";>Jetspeed 
J2-Admin</a>
+        website.
+        The SSOIFrame, SSOReverseProxyIFrame and SSOWebContent portlets 
leverage the Jetspeed SSO
+        Services, and are not portable to other portal servers.
+      </p>
       
+<p>Here are the classes to declare when using the portlets:</p>
+      
+<div class="source">
+<pre>
+&lt;portlet-class&gt;org.apache.portals.applications.webcontent2.portlet.IFrameGenericPortlet&lt;/portlet-class&gt;
        
+      </pre></div>
+      
+<p>
+        <i>Note: The ReverseProxyIFramePortlet uses the same class, but has 
different preferences configurations.</i>
+      </p>
+      
+<p>or</p>
+      
+<div class="source">
+<pre>
+&lt;portlet-class&gt;org.apache.portals.applications.webcontent2.portlet.WebContentPortlet&lt;/portlet-class&gt;
        
+      </pre></div>
+      
+<div class="section">
+<h3>Web Content Portlet Preferences or Init Parameters<a 
name="Web_Content_Portlet_Preferences_or_Init_Parameters"></a></h3>
+        
+<table border="0" class="bodyTable">
+          
+<tr class="a">
+            
+<th>Name</th>
+            
+<th>Type</th>
             
+<th>Example Value</th>
+            
+<th>Description</th>
+          </tr>
+          
+<tr class="b">
+            
+<td>SRC</td>
+            
+<td>Preference</td>
+            
+<td>http://www.google.com</td>
+            
+<td>The URL of the remote or local site to be hosted.
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>PROXYHOST</td>
+            
+<td>Preference</td>
+            
+<td>proxyserver1.mycompany.com</td>
+            
+<td>The proxy server host name.</td>
+          </tr>
+          
+<tr class="b">
+            
+<td>PROXYPORT</td>
+            
+<td>Preference</td>
+            
+<td>8000</td>
+            
+<td>The proxy server port.</td>
+          </tr>
+        </table>
+      </div>
       
+<div class="section">
+<h3>IFrame Portlet Preferences or Init Parameters<a 
name="IFrame_Portlet_Preferences_or_Init_Parameters"></a></h3>
+        
+<table border="0" class="bodyTable">
+          
+<tr class="a">
+            
+<th>Name</th>
+            
+<th>Type</th>
+            
+<th>Example Value</th>
+            
+<th>Description</th>
+          </tr>
+          
+<tr class="b">
+            
+<td>SRC</td>
+            
+<td>Preference</td>
+            
+<td>
+              http://portals.apache.org/index.html<br />
+            </td>
+            
+<td>
+              The URL of the remote or local site to be hosted.
+              <br />
+              
+<p>
+                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
+                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
+                the following configurations are equivalent:<br />
+                </p>
+<ul>
+                  
+<li>http://localhost:8080/webcontent/index.html</li>
+                  
+<li>http://localhost:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
+                </ul>
               
-        <li class="expanded">
-                    <a href=".././webcontent2/index.html">WebContent-2</a>
-                  <ul>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/modules-overview.html">Modules 
Overview</a>
-          </li>
-                  
-    <li class="none">
-                    <a 
href=".././webcontent2/content-rewriter-module.html">Content Rewriter Module</a>
-          </li>
-                  
-    <li class="none">
-                    <a 
href=".././webcontent2/reverse-proxy-module.html">Reverse Proxy Module</a>
-          </li>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/portlets-module.html">Portlets 
Module</a>
-          </li>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/war-module.html">WAR Module</a>
-          </li>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/build-from-source.html">Build 
from source</a>
-          </li>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/apidocs/index.html">JavaDocs</a>
-          </li>
-                  
-    <li class="none">
-                    <a href=".././webcontent2/faq.html">FAQ</a>
-          </li>
-              </ul>
-        </li>
-              
-    <li class="none">
-                    <a href=".././webcontent/index.html">WebContent-1</a>
-          </li>
-              
-    <li class="none">
-                    <a href=".././dbbrowser/index.html">DB Browser</a>
-          </li>
-              
-    <li class="none">
-                    <a href=".././logging/index.html">Logging</a>
-          </li>
-          </ul>
-              <h5>Support</h5>
-            <ul>
-              
-    <li class="none">
-                    <a href="../team-list.html">Project Team</a>
-          </li>
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>AUTORESIZE</td>
+            
+<td>Preference</td>
+            
+<td>true</td>
+            
+<td>
+              If this preference value is set to true, then
+              this portlet tries to resize the height of the IFRAME tag based 
on the rendered content.
+              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
+            </td>
+          </tr>
+          
+<tr class="b">
+            
+<td>VISITLASTPAGE</td>
+            
+<td>Preference</td>
+            
+<td>true</td>
+            
+<td>
+              If this preference value is set to true, then
+              this last visited page in this portlet is stored in the session 
and the page will be revisited
+              when the portlet is rendered again.
+              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>HEIGHT</td>
+            
+<td>Preference</td>
+            
+<td>300</td>
+            
+<td>The height of the IFrame window when in Normal Window State</td>
+          </tr>
+          
+<tr class="b">
+            
+<td>WIDTH</td>
+            
+<td>Preference</td>
+            
+<td>100%</td>
+            
+<td>The width of the IFrame window when in Normal Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
+          </tr>
+          
+<tr class="a">
+            
+<td>MAX-HEIGHT</td>
+            
+<td>Preference</td>
+            
+<td>800</td>
+            
+<td>The height of the IFrame window when in Maximized Window State</td>
+          </tr>
+          
+<tr class="b">
+            
+<td>MAX-WIDTH</td>
+            
+<td>Preference</td>
+            
+<td>100%</td>
+            
+<td>The width of the IFrame window when in Maximized Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
+          </tr>
+          
+<tr class="a">
+            
+<td>SCROLLING</td>
+            
+<td>Preference</td>
+            
+<td>AUTO | YES | NO</td>
+            
+<td>Specifies whether or not to display scrollbars in an iframe</td>
+          </tr>
+        </table>
+      </div>
+      
+<div class="section">
+<h3>ReverseProxyIFrame Portlet Preferences or Init Parameters<a 
name="ReverseProxyIFrame_Portlet_Preferences_or_Init_Parameters"></a></h3>
+        
+<p>
+          <i>
+            Note: The ReverseProxyService should be able to access application 
level session attribute
+                  shared by a portlet of IFrameGenericPortlet or its 
descendant, which is conforming
+                  with the Portlet Specification.
+                  If you are using Tomcat, then be sure to set the following 
in the server.xml to enable
+                  this proper Portlet API session management requirements.
+                  Modify the Connector element (default on port 8080) by 
adding the folowing attribute:
+            </p>
+<div class="source">
+<pre>emptySessionPath=&quot;true&quot;</pre></div>
+          </i>
+        
+        
+<table border="0" class="bodyTable">
+          
+<tr class="a">
+            
+<th>Name</th>
+            
+<th>Type</th>
+            
+<th>Example Value</th>
+            
+<th>Description</th>
+          </tr>
+          
+<tr class="b">
+            
+<td>SRC</td>
+            
+<td>Preference</td>
+            
+<td>http://portals.apache.org/index.html</td>
+            
+<td>
+              The URL of the remote or local site to be hosted.
+              <br />
+              
+<p>
+                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
+                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
+                the following configurations are equivalent:<br />
+                </p>
+<ul>
+                  
+<li>http://localhost:8080/webcontent/index.html</li>
+                  
+<li>http://localhost:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
+                </ul>
               
-    <li class="none">
-                    <a href="../license.html">Project License</a>
-          </li>
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>PROXYREMOTEURL</td>
+            
+<td>Preference</td>
+            
+<td>http://portals.apache.org/</td>
+            
+<td>
+              The base URL of the remote site.
+              If 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set,
+              then this portlet translates the 'SRC' url into a reverse proxy 
url
+              by replacing the value of 'PROXYREMOTEURL' by the value of 
'PROXYLOCALPATH'.
+              If you use the default reverse proxy component, then you should 
configure
+              the path mappings in the configuration file. (e.g., 
/WEB-INF/conf/reverseproxy.properties)
+              <br />
+              
+<p>
+                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
+                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
+                the following configurations are equivalent:<br />
+                </p>
+<ul>
+                  
+<li>http://localhost:8080/webcontent/index.html</li>
+                  
+<li>http://localhost:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
+                  
+<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
+                </ul>
               
-    <li class="none">
-                    <a href="http://wiki.apache.org/portals/applications"; 
class="externalLink">Project Wiki</a>
-          </li>
+            </td>
+          </tr>
+          
+<tr class="b">
+            
+<td>PROXYLOCALPATH</td>
+            
+<td>Preference</td>
+            
+<td>${contextPath}/rproxy/portals/</td>
+            
+<td>
+              The base URL of the local proxy URL.
+              If the value of 'PROXYLOCALPATH' doesn't starts with '/', then
+              this portlet prepends the context path of the local servlet 
application.
+              By default, this web application contains reverse proxy servlet 
mapped by '/rproxy' path.
+              For some cases, you can use other external proxy server by 
setting a context relative path
+              or absolute url such as '/apache' or 
'http://www.localhost.com/apache'.
+              If you use the default reverse proxy component, then you should 
configure
+              the path mappings in the configuration file. (e.g., 
/WEB-INF/conf/reverseproxy.properties)
+              <br />
+              
+<p>
+                You can use the predefined variable, ${contextPath}, to set 
local paths.<br />
+                So, if the request context path is '/webcontent', then
+                the following configurations are equivalent:<br />
+                </p>
+<ul>
+                  
+<li>/webcontent/rproxy/portals</li>
+                  
+<li>${contextPath}/rproxy/portals</li>
+                </ul>
               
-    <li class="none">
-                    <a href="../mail-lists.html">Mailing List</a>
-          </li>
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>AUTORESIZE</td>
+            
+<td>Preference</td>
+            
+<td>true</td>
+            
+<td>
+              If this preference value is set to true, then
+              this portlet tries to resize the height of the IFRAME tag based 
on the rendered content.
+              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
+              Also, if 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set to use a 
proxy url in the same domain,
+              then this option can be applied as well.
+            </td>
+          </tr>
+          
+<tr class="b">
+            
+<td>VISITLASTPAGE</td>
+            
+<td>Preference</td>
+            
+<td>true</td>
+            
+<td>
+              If this preference value is set to true, then
+              this last visited page in this portlet is stored in the session 
and the page will be revisited
+              when the portlet is rendered again.
+              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
+              Also, if 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set to use a 
proxy url in the same domain,
+              then this option can be applied as well.
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>HEIGHT</td>
+            
+<td>Preference</td>
+            
+<td>300</td>
+            
+<td>The height of the IFrame window when in Normal Window State</td>
+          </tr>
+          
+<tr class="b">
+            
+<td>WIDTH</td>
+            
+<td>Preference</td>
+            
+<td>100%</td>
+            
+<td>The width of the IFrame window when in Normal Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
+          </tr>
+          
+<tr class="a">
+            
+<td>MAX-HEIGHT</td>
+            
+<td>Preference</td>
+            
+<td>800</td>
+            
+<td>The height of the IFrame window when in Maximized Window State</td>
+          </tr>
+          
+<tr class="b">
+            
+<td>MAX-WIDTH</td>
+            
+<td>Preference</td>
+            
+<td>100%</td>
+            
+<td>The width of the IFrame window when in Maximized Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
+          </tr>
+          
+<tr class="a">
+            
+<td>SCROLLING</td>
+            
+<td>Preference</td>
+            
+<td>AUTO | YES | NO</td>
+            
+<td>Specifies whether or not to display scrollbars in an iframe</td>
+          </tr>
+        </table>
+      </div>
+      
+<div class="section">
+<h3>SimpleReverseProxyPortlet Preferences or Init Parameters<a 
name="SimpleReverseProxyPortlet_Preferences_or_Init_Parameters"></a></h3>
+        
+<table border="0" class="bodyTable">
+          
+<tr class="a">
+            
+<th>Name</th>
+            
+<th>Type</th>
+            
+<th>Example Value</th>
+            
+<th>Description</th>
+          </tr>
+          
+<tr class="b">
+            
+<td>remote.uri</td>
+            
+<td>Preference, Request Parameter or Init Parameter</td>
+            
+<td>http://portals.apache.org/news.html</td>
+            
+<td>
+              The remote URL to be served through the internal reverse proxy 
components.
+            </td>
+          </tr>
+          
+<tr class="a">
+            
+<td>xpath.expression</td>
+            
+<td>Init Parameter</td>
+            
+<td>//div[@id='bodyColumn']</td>
+            
+<td>
+              The XPath expression string which is used by the internal 
reverse proxy components
+              (using HtmlCleaner library)
+              after retrieving the remote content in order to extract only the 
portion filtered by
+              this XPath expression.
+            </td>
+          </tr>
+          
+<tr class="b">
+            
+<td>html.cleaner.transformation</td>
+            
+<td>Init Parameter</td>
+            
+<td>
               
-    <li class="none">
-                    <a href="../issue-tracking.html">Issue Tracking</a>
-          </li>
-          </ul>
-                                           <a href="http://maven.apache.org/"; 
title="Built by Maven" class="poweredBy">
-            <img alt="Built by Maven" 
src="../images/logos/maven-feather.png"></img>
-          </a>
-                       
-  
+<div>
+<pre>cfoutput |
+c:block=div,false |
+font=span,true |
+font.size |
+font.face |
+font.style=${style};font-family=${face};font-size=${size};</pre></div>
+            </td>
+            
+<td>
+              HtmlCleaner transformation setting configurations,
+              separated by '|'.
+              <br />
+              For detail, see <a class="externalLink" 
href="http://htmlcleaner.sourceforge.net/parameters.php"; 
target="_blank">http://htmlcleaner.sourceforge.net/parameters.php</a>.
+            </td>
+          </tr>
+        </table>
+      </div>
 
-  
-    
-  
-  
-    
-        </div>
-    </div>
-    <div id="bodyColumn">
-      <div id="contentBox">
-        <subtitle></subtitle><authors><person name="Woonsan Ko" 
email="[email protected]"></authors><div class="section"><h2><a 
name="WAR_Module"></a>WAR Module</h2>
-<p>
-        The Web Content Application 2 WAR Module packages all the other modules
-        with default servlet/filter/portlet configurations and 
demonstration-purpose examples.
-      </p>
-<div class="section"><h3><a name="Installtion"></a>Installtion</h3>
-<p>
-          If you use <a class="externalLink" 
href="http://maven.apache.org/";>Apache Maven</a> in your project,
-          then you can add the following dependency to use this module in your 
project.
-        </p>
-<p><div class="source"><pre>
-    &lt;dependency&gt;
-      &lt;groupId&gt;org.apache.portals.applications&lt;/groupId&gt;
-      &lt;artifactId&gt;apa-webcontent2-war&lt;/artifactId&gt;
-      &lt;type&gt;war&lt;/type&gt;
-      &lt;version&gt;${webcontent2.version}&lt;/version&gt;
-    &lt;/dependency&gt;
-          </pre>
-</div>
-</p>
-</div>
-</div>
-<div class="section"><h2><a 
name="Default_Reverse_Proxy_ServletFilter_Definitions"></a>Default Reverse 
Proxy Servlet/Filter Definition(s)</h2>
-<p>
-        The Web Content Application 2 WAR Module contains a reverse proxy 
servlet definition
-        like the following in /WEB-INF/web.xml by default.
-      </p>
-<div class="source"><pre>
-  &lt;!-- Default Reverse Proxy Servlet --&gt;
-  &lt;servlet&gt;
-    &lt;servlet-name&gt;ReverseProxyServlet&lt;/servlet-name&gt;
-    
&lt;servlet-class&gt;org.apache.portals.applications.webcontent2.proxy.servlet.SimpleReverseProxyServlet&lt;/servlet-class&gt;
-    &lt;init-param&gt;
-      &lt;param-name&gt;mappings&lt;/param-name&gt;
-      &lt;param-value&gt;
-        /WEB-INF/rproxy-mappings.yaml
-      &lt;/param-value&gt;
-    &lt;/init-param&gt;
-    &lt;init-param&gt;
-      &lt;param-name&gt;ssl-hostname-verifier&lt;/param-name&gt;
-      &lt;param-value&gt;ALLOW_ALL_HOSTNAME_VERIFIER&lt;/param-value&gt;
-    &lt;/init-param&gt;
-  &lt;/servlet&gt;
-
-  &lt;!-- Map /rproxy path to the Default Reverse Proxy Servlet --&gt;
-  &lt;servlet-mapping&gt;
-    &lt;servlet-name&gt;ReverseProxyServlet&lt;/servlet-name&gt;
-    &lt;url-pattern&gt;/rproxy/*&lt;/url-pattern&gt;
-  &lt;/servlet-mapping&gt;
-      </pre>
-</div>
-<p>
-        The mapping configuration for the servlet is configured in 
<code>/WEB-INF/rproxy-mappings.yaml</code> by default:
-      </p>
-<div class="source"><pre>
---- !regex
-localPattern: ^/localhost_(\d+)/(.*)$
-remoteReplace: http://localhost:$1/$2
-remotePattern: ^http://localhost:(\d+)/(.*)$
-localReplace: /localhost_$1/$2
-contentRewriters:
-    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
-
---- !simple
-local: /portals/applications/
-remote: http://portals.apache.org/applications/
-contentRewriters:
-    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
-
---- !simple
-local: /portals/bridges/
-remote: http://portals.apache.org/bridges/
-contentRewriters:
-    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
-
---- !regex
-localPattern: ^/apache/(\w+)/(.*)$
-remoteReplace: http://$1.apache.org/$2
-remotePattern: ^http://(\w+)\.apache\.org/(.*)$
-localReplace: /apache/$1/$2
-contentRewriters:
-    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
-
---- !simple
-local: /
-remote: http://apache.org/
-contentRewriters:
-    text/html: 
!!org.apache.portals.applications.webcontent2.proxy.rewriter.DefaultReverseProxyTextLineContentRewriter
 []
-      </pre>
-</div>
-</div>
-<div class="section"><h2><a name="Portlet_Definitions"></a>Portlet 
Definitions</h2>
-<p>
-        The Web Content Application 2 WAR Module contains several portlet 
definitions
-        in /WEB-INF/portlet.xml:
-        <ul><li>IFrame Portlet 2</li>
-<li>ReverseProxy IFrame Portlet 2</li>
-<li>Web Content Portlet 2</li>
-<li>SimpleReverseProxyPortlet</li>
-</ul>
-
-        All the portlets host content from a different website or local
-        servlet inside a portlet window. 
-      </p>
-<p>
-        The IFrame Portet 2 achieves this
-        by embedding an HTML
-        <a class="externalLink" 
href="http://en.wikipedia.org/wiki/HTML_element#Frames";>iframe</a>
-        within a portlet.
-      </p>
-<p>
-        The ReverseProxy IFrame Portlet 2 behaves in the same way as IFrame 
Portlet 2 does,
-        except that it uses reverse proxy service URLs
-        instead of the original SRC URLs.
-        By using Reverse Proxy service component, more sophisticated content 
can be
-        served by setting content rewriting configurations or Cross-Domain 
Scripting can be enabled. 
-        The Web Content Application includes Reverse Proxy Service servlet and 
component.
-      </p>
-<p>
-        The Web Content Portlet 2 takes a more complicated approach: it 
actually
-        embeds the content of the remote website inside the HTML payload
-        delivered by the portal, without the help of the browser.
-        This approach is more complicated since it may require rewriting
-        all links within the hosted website, that is, if you want to
-        keep the website navigation inside the portlet window.
-        While a noble cause, this approach is far from perfect and does not
-        always work correctly.
-      </p>
-<p>
-        The SimpleReverseProxyPortlet behaves in the same way as Reverse Proxy 
Servlet or Filter by itself
-        without having to depend on an external reverse proxy servlet or 
filter.
-        This portlet also rewrite all the links to portlet action URLs like 
Web Content Portlet 2 does.
-        This simple reverse proxying portlet can be used as a base class that 
you can extend or as an example.
-      </p>
-<p>
-        If you are interested in secure versions of these portlets, see
-        the Jetspeed-specific versions of the IFrame 2, ReverseProxyIFrame 2, 
or WebContent 2
-        portlets found at the
-        <a class="externalLink" 
href="http://portals.apache.org/jetspeed-2/applications/j2-admin.html";>Jetspeed 
J2-Admin</a>
-        website.
-        The SSOIFrame, SSOReverseProxyIFrame and SSOWebContent portlets 
leverage the Jetspeed SSO
-        Services, and are not portable to other portal servers.
-      </p>
-<p>Here are the classes to declare when using the portlets:</p>
-<div class="source"><pre>
-&lt;portlet-class&gt;org.apache.portals.applications.webcontent2.portlet.IFrameGenericPortlet&lt;/portlet-class&gt;
        
-      </pre>
-</div>
-<p><em>Note: The ReverseProxyIFramePortlet uses the same class, but has 
different preferences configurations.</em></p>
-<p>or</p>
-<div class="source"><pre>
-&lt;portlet-class&gt;org.apache.portals.applications.webcontent2.portlet.WebContentPortlet&lt;/portlet-class&gt;
        
-      </pre>
-</div>
-<div class="section"><h3><a 
name="Web_Content_Portlet_Preferences_or_Init_Parameters"></a>Web Content 
Portlet Preferences or Init Parameters</h3>
-<table class="bodyTable"><tr class="a"><th>Name</th>
-<th>Type</th>
-<th>Example Value</th>
-<th>Description</th>
-</tr>
-<tr class="b"><td>SRC</td>
-<td>Preference</td>
-<td>http://www.google.com</td>
-<td>The URL of the remote or local site to be hosted.
-            </td>
-</tr>
-<tr class="a"><td>PROXYHOST</td>
-<td>Preference</td>
-<td>proxyserver1.mycompany.com</td>
-<td>The proxy server host name.</td>
-</tr>
-<tr class="b"><td>PROXYPORT</td>
-<td>Preference</td>
-<td>8000</td>
-<td>The proxy server port.</td>
-</tr>
-</table>
-</div>
-<div class="section"><h3><a 
name="IFrame_Portlet_Preferences_or_Init_Parameters"></a>IFrame Portlet 
Preferences or Init Parameters</h3>
-<table class="bodyTable"><tr class="a"><th>Name</th>
-<th>Type</th>
-<th>Example Value</th>
-<th>Description</th>
-</tr>
-<tr class="b"><td>SRC</td>
-<td>Preference</td>
-<td>
-              http://portals.apache.org/index.html<br />
-</td>
-<td>
-              The URL of the remote or local site to be hosted.
-              <br />
-<p>
-                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
-
-                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
-                the following configurations are equivalent:<br />
-<ul><li>http://localhost:8080/webcontent/index.html</li>
-<li>http://localhost:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
-</ul>
-</p>
-</td>
-</tr>
-<tr class="a"><td>AUTORESIZE</td>
-<td>Preference</td>
-<td>true</td>
-<td>
-              If this preference value is set to true, then
-              this portlet tries to resize the height of the IFRAME tag based 
on the rendered content.
-              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
-            </td>
-</tr>
-<tr class="b"><td>VISITLASTPAGE</td>
-<td>Preference</td>
-<td>true</td>
-<td>
-              If this preference value is set to true, then
-              this last visited page in this portlet is stored in the session 
and the page will be revisited
-              when the portlet is rendered again.
-              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
-            </td>
-</tr>
-<tr class="a"><td>HEIGHT</td>
-<td>Preference</td>
-<td>300</td>
-<td>The height of the IFrame window when in Normal Window State</td>
-</tr>
-<tr class="b"><td>WIDTH</td>
-<td>Preference</td>
-<td>100%</td>
-<td>The width of the IFrame window when in Normal Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
-</tr>
-<tr class="a"><td>MAX-HEIGHT</td>
-<td>Preference</td>
-<td>800</td>
-<td>The height of the IFrame window when in Maximized Window State</td>
-</tr>
-<tr class="b"><td>MAX-WIDTH</td>
-<td>Preference</td>
-<td>100%</td>
-<td>The width of the IFrame window when in Maximized Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
-</tr>
-<tr class="a"><td>SCROLLING</td>
-<td>Preference</td>
-<td>AUTO | YES | NO</td>
-<td>Specifies whether or not to display scrollbars in an iframe</td>
-</tr>
-</table>
-</div>
-<div class="section"><h3><a 
name="ReverseProxyIFrame_Portlet_Preferences_or_Init_Parameters"></a>ReverseProxyIFrame
 Portlet Preferences or Init Parameters</h3>
-<p><em>
-            Note: The ReverseProxyService should be able to access application 
level session attribute
-                  shared by a portlet of IFrameGenericPortlet or its 
descendant, which is conforming
-                  with the Portlet Specification.
-                  If you are using Tomcat, then be sure to set the following 
in the server.xml to enable
-                  this proper Portlet API session management requirements.
-                  Modify the Connector element (default on port 8080) by 
adding the folowing attribute:
-            <div class="source"><pre>emptySessionPath=&quot;true&quot;</pre>
-</div>
-</em></p>
-<table class="bodyTable"><tr class="b"><th>Name</th>
-<th>Type</th>
-<th>Example Value</th>
-<th>Description</th>
-</tr>
-<tr class="a"><td>SRC</td>
-<td>Preference</td>
-<td>http://portals.apache.org/index.html</td>
-<td>
-              The URL of the remote or local site to be hosted.
-              <br />
-<p>
-                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
-
-                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
-                the following configurations are equivalent:<br />
-<ul><li>http://localhost:8080/webcontent/index.html</li>
-<li>http://localhost:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
-</ul>
-</p>
-</td>
-</tr>
-<tr class="b"><td>PROXYREMOTEURL</td>
-<td>Preference</td>
-<td>http://portals.apache.org/</td>
-<td>
-              The base URL of the remote site.
-              If 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set,
-              then this portlet translates the 'SRC' url into a reverse proxy 
url
-              by replacing the value of 'PROXYREMOTEURL' by the value of 
'PROXYLOCALPATH'.
-              If you use the default reverse proxy component, then you should 
configure
-              the path mappings in the configuration file. (e.g., 
/WEB-INF/conf/reverseproxy.properties)
-              <br />
-<p>
-                You can use predefined variables, ${serverName}, ${serverPort} 
or ${contextPath}, to set local URLs.<br />
-
-                So, if the requested server name is 'localhost', the requested 
server port is '8080' and the request context path is '/webcontent', then
-                the following configurations are equivalent:<br />
-<ul><li>http://localhost:8080/webcontent/index.html</li>
-<li>http://localhost:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/webcontent/index.html</li>
-<li>http://${serverName}:${serverPort}/${contextPath}/index.html</li>
-</ul>
-</p>
-</td>
-</tr>
-<tr class="a"><td>PROXYLOCALPATH</td>
-<td>Preference</td>
-<td>${contextPath}/rproxy/portals/</td>
-<td>
-              The base URL of the local proxy URL.
-              If the value of 'PROXYLOCALPATH' doesn't starts with '/', then
-              this portlet prepends the context path of the local servlet 
application.
-              By default, this web application contains reverse proxy servlet 
mapped by '/rproxy' path.
-              For some cases, you can use other external proxy server by 
setting a context relative path
-              or absolute url such as '/apache' or 
'http://www.localhost.com/apache'.
-              If you use the default reverse proxy component, then you should 
configure
-              the path mappings in the configuration file. (e.g., 
/WEB-INF/conf/reverseproxy.properties)
-              <br />
-<p>
-                You can use the predefined variable, ${contextPath}, to set 
local paths.<br />
-
-                So, if the request context path is '/webcontent', then
-                the following configurations are equivalent:<br />
-<ul><li>/webcontent/rproxy/portals</li>
-<li>${contextPath}/rproxy/portals</li>
-</ul>
-</p>
-</td>
-</tr>
-<tr class="b"><td>AUTORESIZE</td>
-<td>Preference</td>
-<td>true</td>
-<td>
-              If this preference value is set to true, then
-              this portlet tries to resize the height of the IFRAME tag based 
on the rendered content.
-              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
-              Also, if 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set to use a 
proxy url in the same domain,
-              then this option can be applied as well.
-            </td>
-</tr>
-<tr class="a"><td>VISITLASTPAGE</td>
-<td>Preference</td>
-<td>true</td>
-<td>
-              If this preference value is set to true, then
-              this last visited page in this portlet is stored in the session 
and the page will be revisited
-              when the portlet is rendered again.
-              However, this option is applied only when the 'SRC' url is in 
the same domain of the portal URL.
-              Also, if 'PROXYREMOTEURL' and 'PROXYLOCALPATH' are set to use a 
proxy url in the same domain,
-              then this option can be applied as well.
-            </td>
-</tr>
-<tr class="b"><td>HEIGHT</td>
-<td>Preference</td>
-<td>300</td>
-<td>The height of the IFrame window when in Normal Window State</td>
-</tr>
-<tr class="a"><td>WIDTH</td>
-<td>Preference</td>
-<td>100%</td>
-<td>The width of the IFrame window when in Normal Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
-</tr>
-<tr class="b"><td>MAX-HEIGHT</td>
-<td>Preference</td>
-<td>800</td>
-<td>The height of the IFrame window when in Maximized Window State</td>
-</tr>
-<tr class="a"><td>MAX-WIDTH</td>
-<td>Preference</td>
-<td>100%</td>
-<td>The width of the IFrame window when in Maximized Window State. Can be a 
percentage of available space to the portlet, or a constant value</td>
-</tr>
-<tr class="b"><td>SCROLLING</td>
-<td>Preference</td>
-<td>AUTO | YES | NO</td>
-<td>Specifies whether or not to display scrollbars in an iframe</td>
-</tr>
-</table>
-</div>
-<div class="section"><h3><a 
name="SimpleReverseProxyPortlet_Preferences_or_Init_Parameters"></a>SimpleReverseProxyPortlet
 Preferences or Init Parameters</h3>
-<table class="bodyTable"><tr class="a"><th>Name</th>
-<th>Type</th>
-<th>Example Value</th>
-<th>Description</th>
-</tr>
-<tr class="b"><td>remote.uri</td>
-<td>Preference, Request Parameter or Init Parameter</td>
-<td>http://portals.apache.org/news.html</td>
-<td>
-              The remote URL to be served through the internal reverse proxy 
components.
-            </td>
-</tr>
-<tr class="a"><td>xpath.expression</td>
-<td>Init Parameter</td>
-<td>//div[@id='bodyColumn']</td>
-<td>
-              The XPath expression string which is used by the internal 
reverse proxy components
-              (using HtmlCleaner library)
-              after retrieving the remote content in order to extract only the 
portion filtered by
-              this XPath expression.
-            </td>
-</tr>
-<tr class="b"><td>html.cleaner.transformation</td>
-<td>Init Parameter</td>
-<td><pre>cfoutput |
-c:block=div,false |
-font=span,true |
-font.size |
-font.face |
-font.style=${style};font-family=${face};font-size=${size};</pre></td>
-<td>
-              HtmlCleaner transformation setting configurations,
-              separated by '|'.
-              <br />
-
-              For detail, see <a class="externalLink" 
href="http://htmlcleaner.sourceforge.net/parameters.php";>http://htmlcleaner.sourceforge.net/parameters.php</a>.
-            </td>
-</tr>
-</table>
-</div>
-<p>Here are examples of the Web Content, IFrame, ReverseProxyIFrame and 
SimpleReverseProxy Portlets:</p>
-<p></p>
-<img src="../images/wc.png" /><p></p>
-<img src="../images/iframe.png" /><p></p>
-<img src="../images/rproxyif.png" /><p></p>
-<img src="../images/simplereverseproxy.png" /><p></p>
-</div>
+      
+<p>Here are examples of the Web Content, IFrame, ReverseProxyIFrame and 
SimpleReverseProxy Portlets:</p>
+
+      
+<p> </p>
+
+      <img src="../images/wc.png" alt="" />
+
+      
+<p> </p>
+
+      <img src="../images/iframe.png" alt="" />
+
+      
+<p> </p>
+
+      <img src="../images/rproxyif.png" alt="" />
+
+      
+<p> </p>
+
+      <img src="../images/simplereverseproxy.png" alt="" />
+
+      
+<p> </p>
 
-      </div>
-    </div>
-    <div class="clear">
-      <hr/>
     </div>
-    <div id="footer">
-      <div class="xright">&#169;  
-          2004-2015
-    
-          Apache Software Foundation
-          
-  
 
   
-    
-  
-  
-    
-  </div>
-      <div class="clear">
-        <hr/>
-      </div>
-    </div>
-  </body>
-</html>
+
+
+      </div>
+    </div>
+    <div class="clear">
+      <hr/>
+    </div>
+    <div id="footer">
+      <div class="xright">
+              Copyright &#169;                    2004-2022
+                        <a href="http://www.apache.org/";>Apache Software 
Foundation</a>.
+            All Rights Reserved.      
+                    
+                  </div>
+      <div class="clear">
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>


Reply via email to