[gatein-commits] gatein SVN: r9119 - epp/docs/branches/6.0/Developer_Guide/en-US.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Feb 4 21:42:19 EST 2013


Author: jaredmorgs
Date: 2013-02-04 21:42:19 -0500 (Mon, 04 Feb 2013)
New Revision: 9119

Removed:
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-1-GDG_Introduction.xml
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-2-GDG_Architectural_choices.xml
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-3-GDG_Design_choices.xml
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-4-GDG_Portal_Development.xml
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-5-GDG_Application_development.xml
   epp/docs/branches/6.0/Developer_Guide/en-US/chapter-6-GDG_JavaScript_Development.xml
Log:
Removing obsolete files now the book restructure has been done

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-1-GDG_Introduction.xml
===================================================================
--- epp/docs/branches/6.0/Developer_Guide/en-US/chapter-1-GDG_Introduction.xml	2013-02-05 02:39:38 UTC (rev 9118)
+++ epp/docs/branches/6.0/Developer_Guide/en-US/chapter-1-GDG_Introduction.xml	2013-02-05 02:42:19 UTC (rev 9119)
@@ -1,8 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
-<chapter id="Introduction">
-  <title>Introduction</title>
-  <para>
-         This is the JBoss Portal Platform Developer Guide. This document is intended for those developing applications and gadgets for the JBoss Portal Platform product and outlines options and strategies for successful deployment.
-      </para>
-</chapter>

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-2-GDG_Architectural_choices.xml
===================================================================
--- epp/docs/branches/6.0/Developer_Guide/en-US/chapter-2-GDG_Architectural_choices.xml	2013-02-05 02:39:38 UTC (rev 9118)
+++ epp/docs/branches/6.0/Developer_Guide/en-US/chapter-2-GDG_Architectural_choices.xml	2013-02-05 02:42:19 UTC (rev 9119)
@@ -1,134 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
-<chapter id="Architectural_Choices">
-  <title>Architectural Choices</title>
-  <para>
-         Depending on environment and goals, decisions have to be made regarding the components that will make up the final website. Some elements may already be in place (such as an identity server) and some elements may still be free to choose. This section aims at helping taking the right decisions.
-      </para>
-  <section id="Identity_Server">
-    <title>Identity server</title>
-    <para>
-JBoss Portal Platform &VY; comes with a component named PicketLink IDM, which is made to adapt to store and retrieve users and groups from various identity servers. We can separate the different options into three:
-         </para>
-    <orderedlist>
-      <listitem>
-        <para>
-                  <emphasis role="strong">Database</emphasis> : users, groups and their relationships are stored in a RDBMS database. Table names and column names can be changed, but the overall relationship between tables remains the same. This solution is particularly adapted to a new identity server that will handle thousands of users.
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  <emphasis role="strong">LDAP</emphasis> : users, groups and their relationships are stored in an LDAP (or ActiveDirectory) server, the directory structure can be adapted by configuration to the most common scenarios. This solution is particularly suited to infrastructures that already use an LDAP server, infrastructures that will share the server identity among multiple services (and the website being one of them) or for very large sets of users (millions). When using LDAP with large number of users, it is recommended to use LDAP tools to do the provisioning of users.
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  <emphasis role="strong">Custom</emphasis> : when retrieving users, groups and their relationship cannot be done by configuration, it is possible to use the Picketlink IDM SPI to implement the methods which control retrieving and storing user information.
-               </para>
-      </listitem>
-    </orderedlist>
-    <para>
-            Picketlink IDM also supports mix environments, which is very useful when an LDAP infrastructure is provided in a read-only mode. Since a website may need to store additional information about users (such as their preferred language or skin), it can combine LDAP and database services to retrieve users from LDAP and store additional properties in a database. During the calls to the identity API, the information from both sources will be transparently merged.
-         </para>
-    <para>
-            For more information about PicketLink IDM, please check the JBoss Portal Platform &VY; reference guide and the PicketLink IDM documentation.
-         </para>
-  </section>
-  <section id="Storage">
-    <title>Storage</title>
-    <para>
-            The portal framework stores page compositions, portlet preferences, gadget code in a database through a Java Content Repository (JCR) API. A set of database servers and JDBC connectors are part of our quality assurance cycles and the certified environments are mentioned <ulink url="http://www.jboss.com/products/platforms/portals/testedconfigurations/">here</ulink> .
-         </para>
-    <para>
-            It is important to choose one of the combinations or check with a Red Hat contact for specific environments that would differ from this list.
-         </para>
-    <para>
-            The database schema will be automatically created during the very first start up of a website and then it is required that the database users have sufficient rights to create tables. This privilege can be revoked after the initial start up, also the database content can be exported and imported in a new server. This makes the installation of the product very easy in most cases.
-         </para>
-    <para>
-            We do not provide additional recommendations to choose one database server over another as long as it is one of the certified environments.
-         </para>
-    <para>
-            As said earlier, content is stored through a JCR API, RDBMS aren&apos;t a great fit to store large files and it is possible to configure eXo JCR to store such files in the filesystem instead of a database, whereas metadata about the files would still be stored in the database. Note that if the website is running on a cluster, the filesystem will need to be accessible from all the nodes and a NFS solution needs to be set up. For more details see the notion of &quot;value storage&quot; in the reference guide.
-         </para>
-  </section>
-  <section id="Cluster">
-    <title>Cluster</title>
-    <para>
-            Clustering for failover or load-balancing requirements requires spending more time configuring it for your environment, we made it easy to handle common situations though. There is a cost associated with clustering (JBoss Portal Platform &VY; has some optimizations when running on a single node), but the product is designed to linearly scale up so that the same performance is added every time a new node is added. All critical parts are kept in sync among nodes and the less critical ones are left aside to achieve better performance. It will be equally critical that applications developed for the final websites pay the same attention when it comes to replicating data across a cluster of nodes.
-         </para>
-    <para>
-            The number of nodes will vary a lot depending on the applications developed and used on the final website. We recommend to do early performance analysis with tools such as JMeter, Grinder or similar to measure the impact of heavy loads.
-         </para>
-    <para>
-            It is usually recommended to run a cluster to achieve high availability.
-         </para>
-  </section>
-  <section id="SSO">
-    <title>SSO</title>
-    <para>
-            If a website is a part of a more global infrastructure with various components (the website being one of several), it may be in the benefit of users to use a Single-Sign-On solution. Various SSO solutions are supported by JBoss Portal Platform &VY;, documented on the  <ulink url="http://www.jboss.com/products/platforms/portals/testedconfigurations/">Supported Configurations</ulink> page. In some cases it can be better to have the token manager service on a specific server.
-         </para>
-    <section id="Summary">
-      <title>Summary</title>
-      <para>
-               By now you should know what infrastructure you will need:
-            </para>
-      <itemizedlist>
-        <listitem>
-          <para>
-                     A database
-                  </para>
-        </listitem>
-        <listitem>
-          <para>
-                     Optionally LDAP, depending on your choice
-                  </para>
-        </listitem>
-        <listitem>
-          <para>
-                     Optionally NFS, depending on the configuration (mandatory on a cluster with default settings)
-                  </para>
-        </listitem>
-        <listitem>
-          <para>
-                     Optionally an SSO token service
-                  </para>
-        </listitem>
-        <listitem>
-          <para>
-                     Optionally a cluster of nodes
-                  </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-               Here is an example of the simplest set-up:
-            </para>
-      <figure id="fig-Simple_SSO_Setup">
-        <title>Simple SSO Example</title>
-        <mediaobject>
-          <imageobject role="html">
-            <imagedata align="center" scale="100" fileref="images/7372876/simpleinfra.png" format="PNG"/>
-          </imageobject>
-          <textobject>
-            <para>Simple SSO Setup, featuring users connecting to a single JPP Node with a shared folder and a Database server.</para>
-          </textobject>
-        </mediaobject>
-      </figure>
-      <para>
-               Here is an example of a more complex set-up:
-            </para>
-      <figure id="fig-Multi-node_SSO_Example">
-        <title>Multi-node SSO Example</title>
-        <mediaobject>
-          <imageobject role="html">
-            <imagedata align="center" scale="100" fileref="images/7372876/complexinfra.png" format="PNG"/>
-          </imageobject>
-          <textobject>
-            <para>Multi-node cluster consisting of three nodes, a primary database, LDAP server, SSO ticket server, load balancer, with NFS share connecting the three nodes.</para>
-          </textobject>
-        </mediaobject>
-      </figure>
-    </section>
-  </section>
-</chapter>

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-3-GDG_Design_choices.xml
===================================================================
--- epp/docs/branches/6.0/Developer_Guide/en-US/chapter-3-GDG_Design_choices.xml	2013-02-05 02:39:38 UTC (rev 9118)
+++ epp/docs/branches/6.0/Developer_Guide/en-US/chapter-3-GDG_Design_choices.xml	2013-02-05 02:42:19 UTC (rev 9119)
@@ -1,156 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
-<chapter id="Design_Choices">
-  <title>Design Choices</title>
-  <para>
-         Now that the main components of the architecture have been decided, choices must be made on the overall design.
-      </para>
-  <section id="Dashboards">
-    <title>Dashboards</title>
-    <para>
-            User dashboards may be very costly in a website. Each user has an opportunity to design his own personal website, it comes with the cost of storing all that information. Efforts have been made (and are still being made) to reduce this cost, but there will always be an overhead.
-         </para>
-    <para>
-            This overhead might be hard to estimate as this will depend a lot on how the users will navigate through the website. Maybe only a minority will use this functionality, or maybe the website is only made of dashboards. In any case the impact of making this feature available must be measured by:
-         </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-                  estimating the number of dashboards and pages that will be created
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  observing the impact on the database (through JCR) in terms of size
-               </para>
-      </listitem>
-    </itemizedlist>
-  </section>
-  <section id="JCR_Index_Replication_for_Cluster_Set-up">
-    <title>JCR Index Replication for Cluster Set-up</title>
-    <para>
-            The JCR implementation uses Apache Lucene for indexing the data. The indexes are used to search for content (It can be page nodes or WCM content for instance).
-         </para>
-    <para>
-            Lucene isn&apos;t cluster-ready, but on a cluster, each node will need to be able to search for content and will need to have access to the lucene indexes.
-         </para>
-    <para>
-            When it comes to searching, there is always a tradeoff. Everyone would want to achieve all of the following:
-         </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-                  Fast to search
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  Fast to index
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  Same search result on each node at the same time
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  No need to rebuild the index ever (No inconsistency)
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  No impact on overall performance
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  Easy to set-up (no infrastructure change)
-               </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-            But there are choices to be made. The JCR implementation used by JBoss Portal Platform (eXo JCR) makes it possible to configure the storage and retrieval of indexes according to architect&apos;s choice on where it is acceptable to relax some constraints. For configuration details please refer to the JBoss Portal Platform Reference Guide.
-         </para>
-    <section id="Standalone_Index">
-      <title>Standalone Index</title>
-      <para>
-               This is only for a non-cluster environment, this is obviously the easiest set-up, with a combination of in-memory and file based indexes. There is no replication involved so any entry can be found by a search as soon as it is created.
-            </para>
-      <figure id="fig-Standalone_Index">
-        <title>Standalone Index</title>
-        <mediaobject>
-          <imageobject role="html">
-            <imagedata align="center" scale="100" fileref="images/7372952/diagram-standalone-index.png" format="PNG"/>
-          </imageobject>
-          <textobject>
-            <para>Diagram explaining the basic premise of a Standalone Index.</para>
-          </textobject>
-        </mediaobject>
-      </figure>
-    </section>
-    <section id="Local_Index">
-      <title>Local Index</title>
-      <para>
-               This environment is easy to set up, each node keeps a local copy of the full indexes so that when a search is requested on a node, there is no network communication required. The downside is that when a node indexes an item, it is required to replicate that index on each and every node. If a node is unavailable at that time, it may miss an index update request and then the different nodes may be inconsistent.
-            </para>
-      <para>
-               Also when a node is added, it has to recreate it&apos;s own full index.
-            </para>
-      <para>
-               An alternative to this set-up is to ask a node to retrieve the info from a coordinator on each search, which makes the startup of the new node faster, but impacts its performance during the runtime.
-            </para>
-      <figure id="fig-Local_Index">
-        <title>Local Index</title>
-        <mediaobject>
-          <imageobject role="html">
-            <imagedata align="center" scale="100" fileref="images/7372952/diagram-local-index.png" format="PNG"/>
-          </imageobject>
-          <textobject>
-            <para>Diagram explaining JCR volatile indexes across multiple indexes.</para>
-          </textobject>
-        </mediaobject>
-      </figure>
-    </section>
-    <section id="Shared_Index">
-      <title>Shared Index</title>
-      <para>
-               In this set-up there is a unique index created and shared among all the nodes. It is required to configure the infrastructure so that a network file system is installed where all nodes can read content.
-            </para>
-      <para>
-               Advantages:
-            </para>
-      <itemizedlist>
-        <listitem>
-          <para>
-                     Consistency: all the nodes see the same data.
-                  </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-               Drawback:
-            </para>
-      <itemizedlist>
-        <listitem>
-          <para>
-                     Requires a highly available NFS set-up (NFS 3 is recommended).                  </para>
-        </listitem>
-        <listitem>
-          <para>
-                     More network communication.                  </para>
-        </listitem>
-      </itemizedlist>
-      <figure id="fig-Shared_Index">
-        <title>Shared Index</title>
-        <mediaobject>
-          <imageobject role="html">
-            <imagedata align="center" scale="100" fileref="images/7372952/diagram-shared-index.png" format="PNG"/>
-          </imageobject>
-          <textobject>
-            <para>Diagram explaining the shared index across all JCR instances.</para>
-          </textobject>
-        </mediaobject>
-      </figure>
-    </section>
-  </section>
-</chapter>

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-4-GDG_Portal_Development.xml
===================================================================
--- epp/docs/branches/6.0/Developer_Guide/en-US/chapter-4-GDG_Portal_Development.xml	2013-02-05 02:39:38 UTC (rev 9118)
+++ epp/docs/branches/6.0/Developer_Guide/en-US/chapter-4-GDG_Portal_Development.xml	2013-02-05 02:42:19 UTC (rev 9119)
@@ -1,757 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
-<chapter id="sid-8094155">
-  <title>Portal Development</title>
-  <section id="sid-7372962">
-    <title>Portal containers</title>
-    <para>
-            In a single instance (or cluster) of JBoss Portal Platform, multiple portals can be running and share resources with other portals with two levels of granularity:
-         </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-                  Portal Containers: A portal container can host multiple sites, and a JBoss Portal Platform instance can host multiple portal containers
-               </para>
-      </listitem>
-      <listitem>
-        <para>
-                  Site: A site can have a unique identity, with its own skin applied to a set of pages.
-               </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-            The biggest granularity is what is called &quot;Portal Containers&quot;. A Portal Container can host multiple &quot;Sites&quot;. Those two components have a unique identifier that can be found in the default URL mapping according to the following scheme: <code><ulink url="http://localhost:8080/"/>&lt;portalcontainer&gt;/&lt;site&gt; </code>
-         </para>
-    <para>
-            When creating a website, you can either create a portal container or extend an existing one. Extending an existing portal container, such as the default one provided with JBoss Portal Platform, is the recommended option because you only need to customize it to suit your requirements. Another benefit of the extension method is that upgrades consist of copying the newer distribution archives in place of the originals. This upgrade method is not possible if the distribution archives have been modified.
-         </para>
-    <para>
-            While running multiple portal containers is possible, it&apos;s recommended to keep those on separate installations. Note that multiple websites can run in a single portal container and share some services.
-         </para>
-    <para>
-            The procedure for creating portal containers and extending existing portal containers is similar: create an enterprise archive (EAR) containing configuration details, runnable code and static resources.
-         </para>
-    <figure>
-      <title>Example</title>
-      <mediaobject>
-        <imageobject role="html">
-          <imagedata align="center" scale="100" fileref="images/portalextensionstructure.png" format="PNG"/>
-        </imageobject>
-      </mediaobject>
-    </figure>
-    <section id="Portal_Extension">
-      <title>Portal Extension</title>
-      <remark>Source taken from: https://docs.jboss.org/author/display/GTNPORTAL35/Portal+Extension</remark>
-      <para>When extending an existing Portal Container, the name of the portal in the Extension configuration is  the same as the name of the existing Portal Container. The configuration (and other aspects) of the existing Portal Container can therefore be shadowed by the Extension. Using this approach, many aspects of an available Portal Container can be customized, such as (but not limited to) the following topics described in the indicated sections:</para>
-      <itemizedlist>
-        <listitem>
-          <para>
-              <xref linkend="Custom_Groovy_Template_For_Portlet"/>
-            </para>
-        </listitem>
-        <listitem>
-          <para>
-              <xref linkend="Custom_Skin_For_Portlet"/>
-            </para>
-        </listitem>
-        <listitem>
-          <para><xref linkend="CSS_and_Images"/></para>
-        </listitem>
-        <listitem>
-          <para>
-              <xref linkend="Custom_Navigation_And_Pages"/>
-            </para>
-        </listitem>
-        <listitem>
-          <para>
-              <xref linkend="Internationalization_Navigation_Nodes"/>
-            </para>
-        </listitem>
-      </itemizedlist>
-      <section id="How_The_Shadowing_Mechanism_Works">
-        <title>How the Shadowing Mechanism Works</title>
-        <para>A schematic representation of the shadowing mechanism can be seem in <xref linkend="fig-Shadowing_Mechanism"/>.</para>
-        <figure id="fig-Shadowing_Mechanism">
-          <title>Shadowing Mechanism</title>
-          <mediaobject>
-            <imageobject>
-              <imagedata fileref="images/portalextensionstructure.png"/>
-            </imageobject>
-          </mediaobject>
-        </figure>
-        <para>
-            The Extension EAR&apos;s  <code>conf/configuration.xml</code> file plays a crucial role in shadowing. Consider the following code extract present in the 
-            <ulink url="https://github.com/gatein/gatein-portal-quickstart/tree/master/gatein-portal-extension">Portal Extension Quickstart</ulink>
-            . In this code extract, the
-            <code>name</code>
-            parameter of the
-            <code>PortalContainerDefinition</code>
-            is set to
-            <code>&quot;portal&quot;</code>
-            . Because a portal container called &quot;portal&quot; already exists in the default JBoss Portal Platform 6 installation, the container name is redefined in this file:
-          </para>
-        <example>
-          <title>configuration.xml</title>
-          <programlisting language="XML">&lt;configuration xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd&quot; xmlns=&quot;http://www.exoplaform.org/xml/ns/kernel_1_2.xsd&quot;&gt;
-     &lt;external-component-plugins&gt;
-         &lt;!-- The full qualified name of the PortalContainerConfig --&gt;
-         &lt;target-component&gt;org.exoplatform.container.definition.PortalContainerConfig&lt;/target-component&gt;
-         &lt;component-plugin&gt;
-             &lt;!-- The name of the plugin --&gt;
-             &lt;name&gt;Add PortalContainer Definitions&lt;/name&gt;
-             &lt;!-- The name of the method to call on the PortalContainerConfig in order to register the PortalContainerDefinitions --&gt;
-             &lt;set-method&gt;registerPlugin&lt;/set-method&gt;
-             &lt;!-- The full qualified name of the PortalContainerDefinitionPlugin --&gt;
-             &lt;type&gt;org.exoplatform.container.definition.PortalContainerDefinitionPlugin&lt;/type&gt;
-             &lt;init-params&gt;
-                 &lt;object-param&gt;
-                     &lt;name&gt;portal&lt;/name&gt;
-                     &lt;object type=&quot;org.exoplatform.container.definition.PortalContainerDefinition&quot;&gt;
-                         &lt;!-- The name of the Portal Container: note that a Portal Container called &quot;portal&quot; 
-                              already exists in the default GateIn installation. Therefore, we actually redefine 
-                              that existing Portal Container here. --&gt;
-                         &lt;field name=&quot;name&quot;&gt;
-                             &lt;string&gt;portal&lt;/string&gt;
-                         &lt;/field&gt;
-                         &lt;!-- The name of the context name of the rest web application --&gt;
-                         &lt;field name=&quot;restContextName&quot;&gt;
-                             &lt;string&gt;rest&lt;/string&gt;
-                         &lt;/field&gt;
-                         &lt;!-- The name of the realm --&gt;
-                         &lt;field name=&quot;realmName&quot;&gt;
-                             &lt;string&gt;gatein-domain&lt;/string&gt;
-                         &lt;/field&gt;
-                         &lt;field name=&quot;externalSettingsPath&quot;&gt;
-                             &lt;string&gt;configuration.properties&lt;/string&gt;
-                         &lt;/field&gt;
-                         &lt;!--
-                             The list of all the context names that are needed to initialize the Portal Container properly.
-                             The order of the dependencies will define the initialization order and also the order for 
-                             loading resources. When a resource with the same path, say /dir/subdir/resource, is available 
-                             in more than one of the listed contexts, the one from the context closest to the end of this list 
-                             will be chosen. Here we want the resources available in gatein-portal-extension to win over all 
-                             other resources. Therefore we have added gatein-portal-extension as the last element of the list.
-                         --&gt;
-                         &lt;field name=&quot;dependencies&quot;&gt;
-                             &lt;collection type=&quot;java.util.ArrayList&quot;&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;eXoResources&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;portal&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;dashboard&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;exoadmin&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;eXoGadgets&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;gwtGadgets&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;eXoGadgetServer&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;rest&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                    &lt;string&gt;web&lt;/string&gt;
-                                 &lt;/value&gt;
-                                 &lt;value&gt;
-                                     &lt;string&gt;gatein-portal-extension&lt;/string&gt;
-                                 &lt;/value&gt;
-                             &lt;/collection&gt;
-                         &lt;/field&gt;
-                     &lt;/object&gt;
-                 &lt;/object-param&gt;
-             &lt;/init-params&gt;
-         &lt;/component-plugin&gt;
-     &lt;/external-component-plugins&gt;
-&lt;/configuration&gt;</programlisting>
-        </example>
-        <para>Other resources available in an existing Portal Container can be customized in a similar way.  Please refer to the following sections for more details.</para>
-      </section>
-      <section id="Custom_Groovy_Template_For_Portlet">
-        <title>Custom Groovy Template for a Portlet</title>
-        <remark>Source: https://docs.jboss.org/author/display/GTNPORTAL35/Custom+Groovy+Template+for+a+Portlet</remark>
-        <para>
-            After having set up the
-            <code>conf/configuration.xml</code>
-            file as described in 
-            <xref linkend="How_The_Shadowing_Mechanism_Works"/> you can proceed with customizing the Groovy templates of portlets.
-          </para>
-        <para>Shadowing of built-in Groovy templates is controlled by the order of
-            <code>&lt;dependencies&gt;</code>
-            in the configuration of the Portal Container (or Extension) as described in <xref linkend="How_The_Shadowing_Mechanism_Works"/>. </para>
-        <para>If a template with the same path (for example, 
-            <filename>/dir/subdir/template.gtmpl</filename>) is available                             in more than one of the dependencies, the template from the context closest to the end of the list of dependencies is chosen. To ensure that the template created in <xref linkend="proc-Customizing_HomePagePortlet"/> is chosen, 
-            <code>gatein-portal-extension</code>
-is added            as the last element in the list.
-          </para>
-        <note>
-          <para>            This section mentions code directly available from the Portal Extension Example in the
-            JBoss Portal Platform  Quickstarts
-            collection.
-          </para>
-        </note>
-        <procedure id="proc-Customizing_HomePagePortlet">
-          <title>Customizing HomePagePortlet</title>
-          <para>Complete this procedure to change the text and layout used in the default HomePagePortlet shipped with the platform in a custom Extension. </para>
-          <step>
-            <para>Copy <filename><replaceable>JPP_HOME</replaceable>/gatein/gatein.ear/portal.war/templates/groovy/webui/component/UIHomePagePortlet.gtmpl</filename> </para>
-          </step>
-          <step>
-            <para>Paste the file into  the <filename>war/src/main/webapp/templates/groovy/webui/component/</filename> folder of the Extension EAR. </para>
-            <important>
-              <para>The file location in the custom extension must mirror the original location of the file for shadowing to work correctly.</para>
-            </important>
-          </step>
-          <step>
-            <para>Make the desired changes to the text and layout of the HomePagePortlet in the custom extension.</para>
-          </step>
-          <step>
-            <para>Deploy the extension EAR to the portal platform. The HomePagePortlet mirrors the changes made in the custom extension.</para>
-          </step>
-        </procedure>
-      </section>
-      <section id="Custom_Skin_For_Portlet">
-        <title>Custom Skin for a Portlet</title>
-        <remark>Source: https://docs.jboss.org/author/display/GTNPORTAL35/Custom+Skin+for+a+Portlet</remark>
-        <para>
-            This section mentions code from the Portal Extension Examples available for download from <ulink url="https://access.redhat.com/"/> as part of your JBoss Portal Platform subscription.
-          </para>
-        <para>The same guidelines that apply when creating a new portlet skin also apply when creating a custom skin for a built-in portlet distributed with JBoss Portal Platform. </para>
-        <para>Declare the skin first in the
-            <code>gatein-resources.xml</code>
-            file, and then create the CSS and other supporting files such as backgrounds.
-          </para>
-        <para>Shadowing of built-in Groovy templates is controlled by the order of
-            <code>&lt;dependencies&gt;</code>
-            in the configuration of the Portal Container (or Extension) as described in <xref linkend="How_The_Shadowing_Mechanism_Works"/>. </para>
-        <para>When the 
-            <code>HomePagePortlet</code>
-skin             defined in
-            <code>web.war</code>
-is available in more than one of the dependencies, the template from the context closest to the end of the list of dependencies is chosen. To ensure that the skin available in
-            <code>gatein-portal-extension</code> is  chosen, 
-            <code>gatein-portal-extension</code>
-is added            as the last element in the list.
-          </para>
-        <section id="gatein-resources-xml">
-          <title>gatein-resources.xml</title>
-          <para>             <code>gatein-resources.xml</code>
-              is located in the
-              <filename>war/src/main/webapp/WEB-INF</filename>
-              sub-folder of the Portal Extension Quickstart project.
-            </para>
-          <example>
-            <title>gatein-resources.xml</title>
-            <programlisting language="XML">
-&lt;gatein-resources xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_resources_1_3 http://www.gatein.org/xml/ns/gatein_resources_1_3&quot;
-    xmlns=&quot;http://www.gatein.org/xml/ns/gatein_resources_1_3&quot;&gt;
-
-    &lt;!-- GateIn will load this CSS for HomePagePortlet instead of the default one. --&gt;
-    &lt;portlet-skin&gt;
-        &lt;!-- 
-            The name of the web application containing the portlet.xml file in which
-            BannerPortlet is definded. The application name is usually the same as 
-            the name of the WAR through which the application was deployed. 
-        --&gt;
-        &lt;application-name&gt;web&lt;/application-name&gt;
-        &lt;!-- &lt;portlet-name&gt; value from the portlet.xml referenced above --&gt;
-        &lt;portlet-name&gt;HomePagePortlet&lt;/portlet-name&gt;
-        &lt;skin-name&gt;Default&lt;/skin-name&gt;
-        &lt;css-path&gt;/templates/skin/webui/component/UIHomePagePortlet/DefaultStylesheet.css&lt;/css-path&gt;
-    &lt;/portlet-skin&gt;</programlisting>
-          </example>
-        </section>
-        <section id="CSS_and_Images">
-          <title>CSS and Images</title>
-          <para>
-              In the 
-              <code>gatein-resources.xml</code> file in <xref linkend="gatein-resources-xml"/>, the  custom skin is set to use the CSS file
-              <filename>/templates/skin/webui/component/UIHomePagePortlet/DefaultStylesheet.css</filename>
-              which translates to the Portal Extension Quickstart project 
-              <filename>war/src/main/webapp/templates/skin/webui/component/UIHomePagePortlet/DefaultStylesheet.css</filename>
-file.
-              
-              In the CSS file itself, image files use relative paths as demonstrated in <xref linkend="exam-DefaultStylesheetCss"/>:
-            </para>
-          <example id="exam-DefaultStylesheetCss">
-            <title>DefaultStylesheet.css</title>
-            <programlisting>.UIHomePagePortlet .TRContainer .DotLine {
-     background: url(&quot;DefaultSkin/background/Line.gif&quot;) no-repeat -2px top;
-     height: 1px;
-     width: 182px;
-     margin: 7px auto;
-}</programlisting>
-          </example>
-          <note>
-            <para>For further information about creating portlets skins, refer to<citetitle> Skinning the Portal</citetitle> in the JBoss Portal Platform <citetitle>Reference Guide</citetitle>.</para>
-          </note>
-        </section>
-      </section>
-      <section id="Custom_Navigation_And_Pages">
-        <title>Custom Navigation and Pages</title>
-        <remark>Source: https://docs.jboss.org/author/display/GTNPORTAL35/Custom+Navigation+and+Pages</remark>
-        <para>
-            This section mentions code from the Portal Extension Examples available for download from <ulink url="https://access.redhat.com/"/> as part of your JBoss Portal Platform subscription.
-          </para>
-        <section id="portal-configuration-xml">
-          <title>portal-configuration.xml</title>
-          <para>This configuration file is located in
-              <filename>war/src/main/webapp/WEB-INF/conf/sample-ext/portal</filename>
-              directory of the Portal Extension quickstart. It is the starting point for navigation customization. Generally, there is no need to change any configuration in this file, although it is useful to know of it&apos;s location.</para>
-          <para>For more information about <filename>portal-configuration.xml</filename>, refer to the &quot;Portal Navigation Configuration&quot; section  in the JBoss Portal Platform <citetitle>Reference Guide</citetitle>.
-            </para>
-        </section>
-      </section>
-      <section id="Three_Kinds_Of_Navigation">
-        <title>Navigation Node Types</title>
-        <para>There are three types of navigation nodes, as described in <xref linkend="fig-Types_of_Navigation_Nodes"/> :</para>
-        <figure id="fig-Types_of_Navigation_Nodes">
-          <title>Types of Navigation Nodes</title>
-          <mediaobject>
-            <imageobject>
-              <imagedata fileref="images/Kinds+of+Navigation.png"/>
-            </imageobject>
-            <textobject>
-              <para>The JBoss Portal Platform home screen, with the Home tab, Group menu, and Dashboard menu called-out.</para>
-            </textobject>
-          </mediaobject>
-        </figure>
-        <variablelist>
-          <varlistentry>
-            <term>1 (Site)</term>
-            <listitem>
-              <para>Navigation nodes of the current site.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>2 (User Group)</term>
-            <listitem>
-              <para>Navigation nodes of <emphasis>user groups</emphasis>  which the current user is a member.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>3 (User)</term>
-            <listitem>
-              <para>Navigation nodes of the current user.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-        <example id="exam-Adding_Navigation_Node_Site">
-          <title>Adding a Navigation Node to a Site Navigation</title>
-          <para>The file
-              <code>war/src/main/webapp/WEB-INF/conf/sample-ext/portal/portal/classic/navigation.xml</code>
-contains the 
-              <emphasis role="italics">classic</emphasis> site  navigation which can be modified.
-            </para>
-          <programlisting language="XML">&lt;node-navigation xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-   xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3 http://www.gatein.org/xml/ns/gatein_objects_1_3&quot; xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-     &lt;!-- Priority has no significance in site navigations. But it is required. See GTNPORTAL-2751 --&gt;
-     &lt;priority&gt;1&lt;/priority&gt;
-     
-     &lt;!-- 
-         In this file, we are adding a navigation node to the navigation of the site called &quot;classic&quot;. 
-         The site-wide navigation is used e.g. in NavigationPortlet. 
-         Visibility of navigation nodes depends on &lt;access-permissions&gt; set in the sibling pages.xml file.
-         See also portal.configuration section of the file ../../portal-configuration.xml. 
-     --&gt;
-     &lt;page-nodes&gt;
-         &lt;node&gt;
-             &lt;name&gt;page-just-added&lt;/name&gt;
-             &lt;!-- 
-                 #{portal.extension.justAddedPage} is  place holder for an internationalized string.
-                 See WEB-INF/classes/locale/navigation/portal/classic_en.properties
-             --&gt;
-             &lt;label&gt;#{portal.extension.justAddedPage}&lt;/label&gt;
-         &lt;/node&gt;
-    &lt;/page-nodes&gt;
-&lt;/node-navigation&gt;</programlisting>
-          <para>By appending the 
-              <code>page-just-added</code>
-              navigation node into the portal navigation, the new site navigation node is now visible in the navigation bar.
-            </para>
-          <mediaobject>
-            <imageobject>
-              <imagedata fileref="images/navigation-bar.png"/>
-            </imageobject>
-            <textobject>
-              <para>Navigation menu, with Page Just Added now visible as a site navigation option.</para>
-            </textobject>
-          </mediaobject>
-          <para>
-              The
-              <code>page-just-added</code>
-              navigation node refers to
-              <code>portal::classic::justAddedPage</code>
-              which is defined the 
-              <code>pages.xml</code>
-              file located in the same directory as the 
-              <code>navigation.xml</code> file.
-            </para>
-          <programlisting language="XML">&lt;page-set xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3 http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;
-     xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-     &lt;page&gt;
-         &lt;name&gt;justAddedPage&lt;/name&gt;
-         &lt;title&gt;Page Just Added&lt;/title&gt;
-         &lt;!-- This page and any navigation nodes refering to it will be visible to all visitors (signed in or anonymous). --&gt;
-         &lt;access-permissions&gt;Everyone&lt;/access-permissions&gt;
-         &lt;edit-permission&gt;*:/platform/administrators&lt;/edit-permission&gt;
-         &lt;portlet-application&gt;
-             &lt;portlet&gt;
-                 &lt;application-ref&gt;gatein-portal-extension&lt;/application-ref&gt;
-                 &lt;portlet-ref&gt;JustAddedPortlet&lt;/portlet-ref&gt;
-             &lt;/portlet&gt;
-             &lt;title&gt;Just Added Portlet&lt;/title&gt;
-             &lt;access-permissions&gt;Everyone&lt;/access-permissions&gt;
-             &lt;show-info-bar&gt;false&lt;/show-info-bar&gt;
-             &lt;show-application-state&gt;false&lt;/show-application-state&gt;
-             &lt;show-application-mode&gt;false&lt;/show-application-mode&gt;
-         &lt;/portlet-application&gt;
-     &lt;/page&gt;
-&lt;/page-set&gt;</programlisting>
-          <para>
-              Note that
-              <code>page-just-added</code>
-              navigation node and the related pages are visible to all portal visitors (signed in or anonymous) due to
-              <code>&lt;access-permissions&gt;</code>
-              set to
-              <code>Everyone</code>
-              in the above file.
-            </para>
-        </example>
-        <example id="exam-Adding_Navigation_Node_Group">
-          <title>Adding a Navigation Node to a Group Navigation</title>
-          <para>
-              To add a new navigation node visible to the members of
-              <code>/platform/administrators</code>
-              group, create a                       <code>navigation.xml</code>
-              file located in
-              <code>war/src/main/webapp/WEB-INF/conf/sample-ext/portal/group/platform/administrators/navigation.xml</code>
-              . The name of the user group
-              <code>/platform/administrators</code> forms part of the path.
-            </para>
-          <programlisting>&lt;node-navigation xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3 http://www.gatein.org/xml/ns/gatein_objects_1_3&quot; xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-    &lt;!-- Priority is currently ignored for importMode merge. But it is required. See GTNPORTAL-2751 --&gt;
-    &lt;priority&gt;1&lt;/priority&gt;
-
-    &lt;page-nodes&gt;
-        &lt;node&gt;
-            &lt;name&gt;admins-sitemap&lt;/name&gt;
-            &lt;!-- 
-                #{platform.administrators.adminsSitemap} is  place holder for an internationalized string.
-                See WEB-INF/classes/locale/navigation/group/platform/administrators_en.properties
-            --&gt;
-            &lt;label&gt;#{platform.administrators.adminsSitemap}&lt;/label&gt;
-            &lt;page-reference&gt;group::/platform/administrators::adminsSitemap&lt;/page-reference&gt;
-        &lt;/node&gt;
-    &lt;/page-nodes&gt;
-&lt;/node-navigation&gt;</programlisting>
-          <para>
-              The navigation node
-              <code>admins-sitemap</code>
-              refers to
-              <code>adminsSitemap</code>
-              page defined in the sibling
-              <code>pages.xml</code>
-              file:
-            </para>
-          <programlisting>   xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-    &lt;!-- 
-        adminsSitemap page contains just SiteMapPortlet. There is nothing special about it. 
-        It is here just to demonstrate the adding of nodes to group navigation in the sibling 
-        navigation.xml file.
-    --&gt;
-    &lt;page&gt;
-        &lt;name&gt;adminsSitemap&lt;/name&gt;
-        &lt;title&gt;Admins&apos; Sitemap&lt;/title&gt;
-        &lt;access-permissions&gt;*:/platform/administrators&lt;/access-permissions&gt;
-        &lt;edit-permission&gt;*:/platform/administrators&lt;/edit-permission&gt;
-        &lt;portlet-application&gt;
-            &lt;portlet&gt;
-                &lt;application-ref&gt;web&lt;/application-ref&gt;
-                &lt;portlet-ref&gt;SiteMapPortlet&lt;/portlet-ref&gt;
-            &lt;/portlet&gt;
-            &lt;title&gt;Sitemap&lt;/title&gt;
-            &lt;access-permissions&gt;*:/platform/administrators&lt;/access-permissions&gt;
-            &lt;show-info-bar&gt;false&lt;/show-info-bar&gt;
-        &lt;/portlet-application&gt;
-    &lt;/page&gt;
-&lt;/page-set&gt;</programlisting>
-        </example>
-        <example id="exam-Adding_Navigation_Node_User">
-          <title>Adding a Navigation Node to a User Navigation</title>
-          <para>
-              To add a new navigation node visible to a particular user, say
-              <code>root</code>
-              we need to create a
-              <code>navigation.xml</code>
-              file located in
-              <code>war/src/main/webapp/WEB-INF/conf/sample-ext/portal/user/root/navigation.xml</code>
-              . Note that the name of the user
-              <code>root</code>
-              is a part of the path.
-            </para>
-          <programlisting>&lt;node-navigation xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3 http://www.gatein.org/xml/ns/gatein_objects_1_3&quot; xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-    &lt;!-- Priority has no significance in user navigations. But it is required. See GTNPORTAL-2751 --&gt;
-    &lt;priority&gt;1&lt;/priority&gt;
-
-    &lt;page-nodes&gt;
-        &lt;node&gt;
-            &lt;name&gt;roots-extra-dashboard&lt;/name&gt;
-            &lt;label&gt;#{user.root.RootsExtraDashboard}&lt;/label&gt;
-            &lt;page-reference&gt;user::root::roots-dashboard&lt;/page-reference&gt;
-        &lt;/node&gt;
-    &lt;/page-nodes&gt;
-&lt;/node-navigation&gt;</programlisting>
-          <para>
-              The navigation node
-              <code>roots-extra-dashboard</code>
-              refers to
-              <code>roots-dashboard</code>
-              page defined in the sibling
-              <code>pages.xml</code>
-              file:
-            </para>
-          <programlisting>&lt;page-set xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3 http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;
-    xmlns=&quot;http://www.gatein.org/xml/ns/gatein_objects_1_3&quot;&gt;
-    &lt;!-- 
-        roots-dashboard page contains just DashboardPortlet. There is nothing special about it. 
-        It is here just to demonstrate the adding of nodes to user navigation in the sibling 
-        navigation.xml file.
-    --&gt;
-    &lt;page&gt;
-        &lt;name&gt;roots-dashboard&lt;/name&gt;
-        &lt;title&gt;Root&apos;s Extra Dashboard&lt;/title&gt;
-        &lt;access-permissions&gt;*:/platform/users&lt;/access-permissions&gt;
-        &lt;edit-permission&gt;*:/platform/administrators&lt;/edit-permission&gt;
-        &lt;portlet-application&gt;
-            &lt;portlet&gt;
-                &lt;application-ref&gt;dashboard&lt;/application-ref&gt;
-                &lt;portlet-ref&gt;DashboardPortlet&lt;/portlet-ref&gt;
-            &lt;/portlet&gt;
-            &lt;title&gt;Root&apos;s Extra Dashboard&lt;/title&gt;
-            &lt;access-permissions&gt;*:/platform/users&lt;/access-permissions&gt;
-            &lt;show-info-bar&gt;false&lt;/show-info-bar&gt;
-        &lt;/portlet-application&gt;
-    &lt;/page&gt;
-&lt;/page-set&gt;</programlisting>
-        </example>
-      </section>
-      <section id="Internationalization_Navigation_Nodes">
-        <title>Internationalization of Navigation Nodes</title>
-        <para>
-              As you can see in the above
-              <code>navigation.xml</code>
-              files the labels of navigation nodes can be internationalized. The files containing translation resources live under
-              <code>war/src/main/webapp/WEB-INF/classes/locale/navigation</code>
-              . The directory layout is similar to the one used for
-              <code>navigation.xml</code>
-              and
-              <code>pages.xml</code>
-              files:
-            </para>
-        <para>
-              Note that the navigation resource bundles also need to be named in
-              <code>init.resources</code>
-              parameter of
-              <code>BaseResourceBundlePlugin</code>
-              in
-              <code>war/src/main/webapp/WEB-INF/conf/sample-ext/common/common-configuration.xml</code>
-              :
-            </para>
-        <example>
-          <title>common-configuration.xml containing declarations of navigation resource bundles</title>
-          <programlisting>&lt;configuration xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd&quot; xmlns=&quot;http://www.exoplaform.org/xml/ns/kernel_1_2.xsd&quot;&gt;
-    &lt;external-component-plugins&gt;
-        &lt;!-- The full qualified name of the ResourceBundleService --&gt;
-        &lt;target-component&gt;org.exoplatform.services.resources.ResourceBundleService&lt;/target-component&gt;
-        &lt;component-plugin&gt;
-            &lt;!-- The name of the plugin --&gt;
-            &lt;name&gt;Sample ResourceBundle Plugin&lt;/name&gt;
-            &lt;!-- The name of the method to call on the ResourceBundleService in order to register the ResourceBundles --&gt;
-            &lt;set-method&gt;addResourceBundle&lt;/set-method&gt;
-            &lt;!-- The full qualified name of the BaseResourceBundlePlugin --&gt;
-            &lt;type&gt;org.exoplatform.services.resources.impl.BaseResourceBundlePlugin&lt;/type&gt;
-            &lt;init-params&gt;
-                &lt;values-param&gt;
-                    &lt;name&gt;init.resources&lt;/name&gt;
-                    &lt;description&gt;Initiate the following resources during the first launch.&lt;/description&gt;
-                    &lt;value&gt;locale.portal.extension&lt;/value&gt;
-                    &lt;value&gt;locale.navigation.user.root&lt;/value&gt;
-                    &lt;!-- 
-                        Note that we actually do not need to name locale.navigation.portal.classic and 
-                        locale.navigation.group.platform.administrators here as they are in init.resources 
-                        of the default GateIn installation. But it makes no harm to include them once again here.
-                    --&gt;
-                    &lt;value&gt;locale.navigation.portal.classic&lt;/value&gt;
-                    &lt;value&gt;locale.navigation.group.platform.administrators&lt;/value&gt;
-               &lt;/values-param&gt;
-            &lt;/init-params&gt;
-        &lt;/component-plugin&gt;</programlisting>
-        </example>
-      </section>
-      <section id="Custom_Internationalization_Resource_Bundles">
-        <title>Custom Internationalization Resource Bundles</title>
-        <remark>Source: https://docs.jboss.org/author/display/GTNPORTAL35/Custom+Internationalization+Resource+Bundles</remark>
-        <para>
-            This section mentions code from the Portal Extension Examples available for download from <ulink url="https://access.redhat.com/"/> as part of your JBoss Portal Platform subscription.
-          </para>
-        <para>There are two resource bundle customization scenarios possible with a Portal Extension:</para>
-        <itemizedlist>
-          <listitem>
-            <para>to add  new resource bundle items to the ones available in the default JBoss Portal Platform installation.</para>
-          </listitem>
-          <listitem>
-            <para>to assign new values to resource bundle items available in default JBoss Portal Platform installation.</para>
-          </listitem>
-        </itemizedlist>
-        <para>
-            Both scenarios can be demonstrated using the
-            <code>locale.portal.extension</code>
-            resource bundle. To use this bundle, include  both
-            <code>init.resources</code>
-            and
-            <code>portal.resource.names</code>
-            parameters for the 
-            <code>BaseResourceBundlePlugin</code>
-&lt;type&gt; directive            in
-            <code>war/src/main/webapp/WEB-INF/conf/sample-ext/common/common-configuration.xml</code>
-            :
-          </para>
-        <example>
-          <title>common-configuration.xml containing declarations of navigation resource bundles</title>
-          <programlisting language="XML">&lt;configuration xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd&quot; xmlns=&quot;http://www.exoplatform.org/xml/ns/kernel_1_2.xsd&quot;&gt;
-    &lt;external-component-plugins&gt;
-        &lt;!-- The full qualified name of the ResourceBundleService --&gt;
-        &lt;target-component&gt;org.exoplatform.services.resources.ResourceBundleService&lt;/target-component&gt;
-        &lt;component-plugin&gt;
-            &lt;!-- The name of the plugin --&gt;
-            &lt;name&gt;Sample ResourceBundle Plugin&lt;/name&gt;
-            &lt;!-- The name of the method to call on the ResourceBundleService in order to register the ResourceBundles --&gt;
-            &lt;set-method&gt;addResourceBundle&lt;/set-method&gt;
-            &lt;!-- The full qualified name of the BaseResourceBundlePlugin --&gt;
-            &lt;type&gt;org.exoplatform.services.resources.impl.BaseResourceBundlePlugin&lt;/type&gt;
-            &lt;init-params&gt;
-                &lt;values-param&gt;
-                    &lt;name&gt;init.resources&lt;/name&gt;
-                    &lt;description&gt;Initiate the following resources during the first launch.&lt;/description&gt;
-                    &lt;value&gt;locale.portal.extension&lt;/value&gt;
-                    &lt;value&gt;locale.navigation.user.root&lt;/value&gt;
-                    &lt;!-- 
-                        Note that we actually do not need to name locale.navigation.portal.classic and 
-                        locale.navigation.group.platform.administrators here as they are in init.resources 
-                        of the default GateIn installation. But it makes no harm to include them once again here.
-                    --&gt;
-                    &lt;value&gt;locale.navigation.portal.classic&lt;/value&gt;
-                    &lt;value&gt;locale.navigation.group.platform.administrators&lt;/value&gt;
-                &lt;/values-param&gt;
-                &lt;values-param&gt;
-                    &lt;name&gt;portal.resource.names&lt;/name&gt;
-                    &lt;description&gt;These resources are merged to a single resource bundle which is accessible from anywhere 
-                        in GateIn. All these keys are located in the same bundle, which is separated from the navigation 
-                        resource bundles.&lt;/description&gt;
-                    &lt;value&gt;locale.portal.extension&lt;/value&gt;
-                &lt;/values-param&gt;
-            &lt;/init-params&gt;
-        &lt;/component-plugin&gt;
-    &lt;/external-component-plugins&gt;
-&lt;/configuration&gt;</programlisting>
-        </example>
-        <para>
-            The English version of
-            <code>locale.portal.extension</code> is located in 
-            <filename>war/src/main/webapp/WEB-INF/classes/locale/portal/extension_en.properties</filename>.          </para>
-        <example>
-          <title>English version of locale.portal.extension</title>
-          <programlisting>UIHomePagePortlet.Label.Slogan=Congratulations!
-UIHomePagePortlet.Label.SubSlogan=You have just installed the GateIn Portal Extension
-UIHomePagePortlet.Label.Title=Sign in as:</programlisting>
-        </example>
-        <para>
-            <code>UIHomePagePortlet.Label.SubSlogan</code>
-            is a new key which is not normally available in the  default JBoss Portal Platform installation.
-
-            However,
-            <code>UIHomePagePortlet.Label.Slogan</code>
-            is redefined in
-            <code>extension_en.properties</code>
-            shown above.           </para>
-        <para>In
-            <filename>JPP_HOME/gatein/gatein.ear/web.war/WEB-INF/classes/locale/portlet/web/GroovyPortlet_en.properties</filename>
-            it is already defined as:          </para>
-        <programlisting>UIHomePagePortlet.Label.Slogan=The Best of eXo and JBoss Portal&lt;div&gt;GateIn #{gatein.version}&lt;/div&gt;</programlisting>
-        <para>Within the Portal Extension, the new value
-            <code>Congratulations!</code>
-is appended            to it.
-          </para>
-        <para>Refer to the <xref linkend="exam-Adding_Navigation_Node_Group"/>
-                        for more details on internationalization of navigation nodes.
-          </para>
-      </section>
-      <section id="Custom_Sign_In_Page">
-        <title>Custom Sign in Page</title>
-        <para>When accessing a page that requires privileges, a Sign in page is shown and it can be customized by using an extension. To do so, it would be enough to copy the file located at:</para>
-        <example>
-          <title>Login JSP</title>
-          <programlisting>
-gatein.ear/portal.war/login/jsp/login.jsp
-</programlisting>
-        </example>
-        <para>and include it in a portal extension such as myExtension.ear/myWar.war/login/jsp/login.jsp</para>
-        <para>All the logic must be carefully kept in the login page so that the portal will keep working as it should.</para>
-        <para>To modify the modal window which pops up when the user decides to sign-in, the extension would have a modified copy of:</para>
-        <example>
-          <title>Login Form</title>
-          <programlisting>
-gatein.ear/portal.war/groovy/portal/webui/UILoginForm.gtmpl
-</programlisting>
-        </example>
-      </section>
-    </section>
-  </section>
-  <section id="Visual_Identity">
-    <title>Visual identity</title>
-    <para>
-            A portal visual identity is made of HTML produced as a result of portal aggregation (the components that make a page like columns and rows combined with the content produced by the portlets) and associated CSS files.
-         </para>
-    <para>
-            JBoss Portal Platform allows to deploy multiple skins consisting of CSS files, which makes it possible to apply styling to the page compositions and components of a page (portlets). Different skins can be applied to the different websites, also if made available to the users, they can choose their preferred skin.
-         </para>
-    <section id="Customizing_Login_Page">
-      <title>Customizing the login page</title>
-      <para>
-               When accessing a page that requires privileges, a login page is shown and it can be customized by using an extension. To do so, it would be enough to copy the file located at:
-            </para>
-      <example>
-        <title>Login JSP</title>
-        <programlisting>gatein.ear/02portal.war/login/jsp/login.jsp</programlisting>
-      </example>
-      <para>
-               and include it in a portal extension such as myExtension.ear/myWar.war/login/jsp/login.jsp
-            </para>
-      <para>
-               All the logic must be carefully kept in the login page so that the portal will keep working as it should.
-            </para>
-      <para>
-               To modify the modal window which pops up when the user decides to sign-in, the extension would have a modified copy of:
-            </para>
-      <example>
-        <title>Login Form</title>
-        <programlisting>gatein.ear/02portal.war/groovy/portal/webui/UILoginForm.gtmpl</programlisting>
-      </example>
-    </section>
-  </section>
-</chapter>

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-5-GDG_Application_development.xml
===================================================================
--- epp/docs/branches/6.0/Developer_Guide/en-US/chapter-5-GDG_Application_development.xml	2013-02-05 02:39:38 UTC (rev 9118)
+++ epp/docs/branches/6.0/Developer_Guide/en-US/chapter-5-GDG_Application_development.xml	2013-02-05 02:42:19 UTC (rev 9119)
@@ -1,1080 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
-<chapter id="sid-819803">
-  <title>Application development</title>
-  <section id="sid-819807">
-    <title>Gadget Development</title>
-    <section id="sid-819807_GDG-GadgetDevelopment-Introduction">
-      <title>Introduction</title>
-      <remark>Source: https://docs.jboss.org/author/display/GTNPORTAL35/GDG-Portlet+Development, incorporated changes up to version 10</remark>
-      <para>
-               In the context of JBoss Portal Platform, gadgets are defined by the Google OpenSocial specifications. Since JBoss Portal Platform &VY;, the portal framework includes Apache Shindig 2.0 which is made to support the version 0.9 and 1.0 of OpenSocial.
-            </para>
-      <para>
-               Within a portal, it is possible to embed any OpenSocial gadget in a page or in a user&apos;s dashboard. Gadgets can be added to the application registry and links can be added to the mini-composer (see the JBoss Portal Platform <citetitle>User Guide</citetitle>).
-            </para>
-    </section>
-    <section id="sid-819807_GDG-GadgetDevelopment-DevelopingGadgets">
-      <title>Developing Gadgets</title>
-      <para>
-               OpenSocial gadgets are made of standard HTML and JavaScript. The container offers an API, the documentation for which is available at <ulink url="http://opensocial-resources.googlecode.com/svn/spec/1.0/Core-Gadget.xml">http://opensocial-resources.googlecode.com/svn/spec/1.0/Core-Gadget.xml</ulink>.
-            </para>
-      <para>
-               Note that, unlike portlets, a gadget has very little knowledge of its context (the portal) and its integration within the portal may be more limited (in terms of visual integration for instance).
-            </para>
-      <para>
-               While Google Web Toolkit (GWT) applications can also technically be used as gadgets and GWT makes it easy to write user-friendly applications, its usage is not recommended as its support can be limited and Google&apos;s strategy to keep GWT applications running as gadgets cannot clearly be established. Consequently, GWT applications are not supported by the JBoss Portal Platform support agreement.
-            </para>
-    </section>
-  </section>
-  <section id="sid-819805">
-    <title>Portlet Development</title>
-    <para>
-            JBoss Portal Platform&apos;s interface is fully customizable with applications called portlets. Application development can be done by using the plain Portlet specification JSR286 (refer to the &quot;Portlet Primer&quot; chapter in the JBoss Portal Platform <citetitle>Reference Guide</citetitle> for more information), but it is also possible to use the JBoss Portlet Bridge to write applications with JavaServerFaces (JSF), RichFaces or Seam (refer to the &quot;Getting started with JBoss Portlet Bridge&quot; chapter of the JBoss Portal Platform <citetitle>Reference Guide)</citetitle>.
-         </para>
-    <para>
-            Whichever technology you choose, refer to <link linkend="sid-55378991">Starting a Portlet Project</link> to learn how to set up your project in a robust and effective way using the JBoss Portal Platform Bill of Materials (BOM).
-         </para>
-    <section id="sid-55378991">
-      <title>Starting a Portlet Project</title>
-      <section id="sid-55378991_StartingaPortletProject-TheBOMConcept">
-        <title>The BOM Concept</title>
-        <para>
-            To make the management of dependencies easier, JBoss Portal Platform Team has prepared the Bill of Materials (BOM) needed for developing typical portlet applications. BOM is a Maven <code>pom.xml</code> file which specifies the versions, types and scopes of dependencies which are granted to be compatible with (or indeed in many cases provided by) JBoss Portal Platform.
-          </para>
-      </section>
-      <section id="sid-55378991_StartingaPortletProject-HowtoUseBOM">
-        <title>How to Use JBoss Portal Platform BOM</title>
-        <para>
-            Let us look at the <code>pom.xml</code> file from Simplest Hello World Portket example below, which contains all necessary details.
-          </para>
-        <para>
-            In its <code>&lt;dependencyManagement&gt;</code> section, it declares 
-            <code>&lt;dependency&gt;</code>
-            <code>gatein-3.5-bom</code>
-            with
-            <code>&lt;scope&gt;</code>
-            <code>import</code>
-            . It indicates that the dependency will <emphasis role="italics">de facto</emphasis> be replaced with the dependencies in its <code>dependencyManagement</code>      section. Due to this fact, in the <code>&lt;dependencies&gt;</code> section of the Simplest Hello World <code>pom.xml</code>, we can declare the <code>javax.portlet:portlet-api</code> dependency without specifying its <code>&lt;version&gt;</code>, <code>&lt;type&gt;</code> or <code>&lt;scope&gt;</code>. All those details are managed by <code>gatein-3.5-bom</code>.
-          </para>
-        <example>
-          <title>Simplest Hello World Portlet</title>
-          <programlisting language="XML">
-&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
-    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-
-    &lt;artifactId&gt;simplest-hello-world-portlet&lt;/artifactId&gt;
-    &lt;groupId&gt;org.gatein.portal.quickstarts&lt;/groupId&gt;
-    &lt;name&gt;Simplest Hello World Portlet&lt;/name&gt;
-    &lt;version&gt;3.5.0.Final&lt;/version&gt;
-    &lt;packaging&gt;war&lt;/packaging&gt;
-    &lt;description&gt;The very essence of every possible portlet.&lt;/description&gt;
-    &lt;url&gt;http://www.gatein.org&lt;/url&gt;
-    &lt;licenses&gt;
-        &lt;license&gt;
-            &lt;name&gt;Apache License, Version 2.0&lt;/name&gt;
-            &lt;distribution&gt;repo&lt;/distribution&gt;
-            &lt;url&gt;http://www.apache.org/licenses/LICENSE-2.0.html&lt;/url&gt;
-        &lt;/license&gt;
-    &lt;/licenses&gt;
-
-    &lt;properties&gt;
-        &lt;!-- GateIn Bill of Materials (BOM) version --&gt;
-        &lt;org.jboss.bom.gatein-bom.version&gt;1.0.0.Final&lt;/org.jboss.bom.gatein-bom.version&gt;
-        
-        &lt;!-- Plugin versions and settings --&gt;
-        &lt;jboss.as.plugin.version&gt;7.1.1.Final&lt;/jboss.as.plugin.version&gt;
-        &lt;!-- maven-compiler-plugin --&gt;
-        &lt;maven.compiler.plugin.version&gt;2.5.1&lt;/maven.compiler.plugin.version&gt;
-        &lt;maven.compiler.target&gt;1.6&lt;/maven.compiler.target&gt;
-        &lt;maven.compiler.source&gt;1.6&lt;/maven.compiler.source&gt;
-        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
-    &lt;/properties&gt;
-
-    &lt;dependencyManagement&gt;
-        &lt;dependencies&gt;
-            &lt;!--
-                Define the version of JBoss Portal Platform we build for. In its dependencyManagement,
-                JBoss Portal Platform Bill of Materials (BOM) specifies the versions, types and scopes
-                of dependencies which are granted to be compatible with (or indeed in many cases
-                provided by) JBoss Portal Platform.
-            --&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;org.jboss.bom&lt;/groupId&gt;
-                &lt;artifactId&gt;gatein-3.5-bom&lt;/artifactId&gt;
-                &lt;version&gt;${org.jboss.bom.gatein-bom.version}&lt;/version&gt;
-                &lt;type&gt;pom&lt;/type&gt;
-                &lt;scope&gt;import&lt;/scope&gt;
-            &lt;/dependency&gt;
-        &lt;/dependencies&gt;
-    &lt;/dependencyManagement&gt;
-
-    &lt;dependencies&gt;
-        &lt;!-- 
-            The versions, scopes and types of these dependencies are managed in gatein-*-bom.
-            You need to name only groupId and artifactId here.
-            Name only those artifacts you refer to in your code.
-            Look at gatein-*-bom POM file for the complete list of available artifacts.
-        --&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;javax.portlet&lt;/groupId&gt;
-            &lt;artifactId&gt;portlet-api&lt;/artifactId&gt;
-        &lt;/dependency&gt;
-    &lt;/dependencies&gt;
-
-    &lt;build&gt;
-        &lt;finalName&gt;${project.artifactId}&lt;/finalName&gt;
-        &lt;plugins&gt;
-            &lt;plugin&gt;
-                &lt;groupId&gt;org.jboss.as.plugins&lt;/groupId&gt;
-                &lt;artifactId&gt;jboss-as-maven-plugin&lt;/artifactId&gt;
-                &lt;version&gt;${jboss.as.plugin.version}&lt;/version&gt;
-            &lt;/plugin&gt;
-            &lt;plugin&gt;
-                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
-                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
-                &lt;version&gt;${maven.compiler.plugin.version}&lt;/version&gt;
-                &lt;configuration&gt;
-                    &lt;source&gt;${maven.compiler.source}&lt;/source&gt;
-                    &lt;target&gt;${maven.compiler.target}&lt;/target&gt;
-                &lt;/configuration&gt;
-            &lt;/plugin&gt;
-        &lt;/plugins&gt;
-    &lt;/build&gt;
-
-&lt;/project&gt;
-</programlisting>
-        </example>
-        <para>
-            Further steps, after you have set up the <code>pom.xml</code> file for your project, depend on the technology you have chosen for writing portlets.
-          </para>
-      </section>
-    </section>
-    <section id="sid-55477012">
-      <title>Standard Portlet Development (JSR286)</title>
-      <section id="sid-55477012_StandardPortletDevelopmentJSR286-TheJavaPart">
-        <title>The Java Part</title>
-        <para>
-            After setting up the the Maven <code>pom.xml</code> file as shown in the previous section, we can continue with implementing a basic JSR286 compatible portlet. An example of such a portlet is contained in the JBoss Portal Platform Quickstart &quot;Simplest Hello World Portlet&quot;
-          </para>
-        <example>
-          <title>SimplestHelloWorldPortlet.java</title>
-          <programlisting language="Java">
-package org.jboss.portal.portlet.samples;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.portlet.GenericPortlet;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-/**
- * The simplest posible Portlet.
- * 
- * @author Peter Palaga
- */
-public class SimplestHelloWorldPortlet extends GenericPortlet {
-    /**
-     * Serves the VIEW mode. Writes &quot;Hello World !&quot; to the response writer.
-     * 
-     * @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
-     */
-    @Override
-    public void doView(RenderRequest request, RenderResponse response) throws IOException {
-        PrintWriter writer = response.getWriter();
-        writer.write(&quot;Hello World !&quot;);
-        writer.close();
-    }
-}
-</programlisting>
-        </example>
-        <para>As you can see in the listing, we have done two important things:</para>
-        <itemizedlist>
-          <listitem>
-            <para>
-                We extended
-                <code>javax.portlet.GenericPortlet</code>
-                from
-                <code>javax.portlet:portlet-api</code>
-                artifact.
-              </para>
-          </listitem>
-          <listitem>
-            <para>
-                We have overriden the
-                <code>doView()</code>
-                method.
-              </para>
-          </listitem>
-        </itemizedlist>
-        <para>
-            In this simplest portlet variant, EDIT and HELP portlet modes are not supported. To add them, override the <code>doEdit()</code> and <code>doHelp</code> from <code>javax.portlet.GenericPortlet</code> and configure the <code>portlet.xml</code> file accordingly.
-          </para>
-      </section>
-      <section id="sid-55477012_StandardPortletDevelopmentJSR286-portlet.xml">
-        <title>portlet.xml</title>
-        <para>
-            The
-            <code>portlet.xml</code>
-            file for a plain JSR286 portlet is as follows:
-          </para>
-        <example>
-          <title>portlet.xml</title>
-          <programlisting language="XML">
-&lt;portlet-app xmlns=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot; version=&quot;2.0&quot;
-    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot;&gt;
-    &lt;portlet&gt;
-        &lt;description&gt;Simplest Hello World Portlet is the very essence of every possible Portlet.&lt;/description&gt;
-        &lt;portlet-name&gt;SimplestHelloWorldPortlet&lt;/portlet-name&gt;
-        &lt;display-name&gt;Simplest Hello World Portlet&lt;/display-name&gt;
-        &lt;portlet-class&gt;org.jboss.portal.portlet.samples.SimplestHelloWorldPortlet&lt;/portlet-class&gt;
-        &lt;supports&gt;
-            &lt;mime-type&gt;text/html&lt;/mime-type&gt;
-            &lt;portlet-mode&gt;view&lt;/portlet-mode&gt;
-            &lt;!-- You can uncomment the other modes when your portlet-class supports them
-            &lt;portlet-mode&gt;edit&lt;/portlet-mode&gt;
-            &lt;portlet-mode&gt;help&lt;/portlet-mode&gt;
-            --&gt;
-        &lt;/supports&gt;
-        &lt;portlet-info&gt;
-            &lt;title&gt;Simplest Hello World Portlet&lt;/title&gt;
-        &lt;/portlet-info&gt;
-    &lt;/portlet&gt;
-&lt;/portlet-app&gt;
-</programlisting>
-        </example>
-      </section>
-      <section id="sid-55477012_StandardPortletDevelopmentJSR286-web.xml">
-        <title>web.xml</title>
-        <para>
-            There is no need to configure filters, servlets or mapping for a plain JSR286 portlet to work but maven-war-plugin by default requires the
-            <code>web.xml</code>. To solve it, include a <code>web.xml</code> file which contains solely the root element:
-          </para>
-        <example>
-          <title>web.xml</title>
-          <programlisting language="XML">
-&lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;
-        version=&quot;2.5&quot;&gt;
-        &lt;!-- 
-            There is no need to configure any filters, servlets, mapping &amp; co. for this demo to work
-            but maven-war-plugin by default requires this file.
-        --&gt;
-&lt;/web-app&gt;
-</programlisting>
-        </example>
-      </section>
-      <section id="sid-55477012_StandardPortletDevelopmentJSR286-FurtherSteps">
-        <title>Further Steps</title>
-        <para>
-            After having done all the above, it is time to
-            <link linkend="sid-55379158">build and deploy the portlet</link>
-            ,
-            <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264662">import it</ulink>
-            and
-            <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264655">add it to a page</ulink>
-            so that you can test its functionality.
-          </para>
-      </section>
-      <section id="sid-55477012_StandardPortletDevelopmentJSR286-Seealso">
-        <title>See also</title>
-        <itemizedlist>
-          <listitem>
-            <para>
-                <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264602">Portlet Primer</ulink>
-              </para>
-          </listitem>
-          <listitem>
-            <para>
-                <ulink url="http://jcp.org/en/jsr/detail?id=286">JSR286</ulink>
-              </para>
-          </listitem>
-        </itemizedlist>
-      </section>
-    </section>
-    <section id="sid-55477014">
-      <title>JSF2 Portlet Development</title>
-      <para>
-          The Portlet Bridge pre-installed in JBoss Portal Platform allows for implementing portlets with JavaServer Faces (JSF) 2.1 and RichFaces (RF) 4.2.3. As RichFaces is a component library for JavaServer Faces, the guidelines for using both of them are very similar. More precisely, the setup for a JavaServer Faces portlet project is a superset of a RichFaces project setup. In accordance with that, you need to read both
-          <xref linkend="sid-55477016"/>
-          and
-          <xref linkend="sid-55477018"/>
-          when developing with RichFaces.
-        </para>
-      <section id="sid-55477016">
-        <title>Basic JSF Portlet Development</title>
-        <para>JSF stands for JavaServer Pages. The JSF version delivered by the built-in Portlet Bridge is 2.1.</para>
-        <section id="sid-55477016_BasicJSFPortletDevelopment-ExampleCode">
-          <title>Example Code</title>
-          <para>
-            This section mentions code from the JSF2 Hello World Portlet example in the JBoss Portal Platform Quickstarts,  available for download from <ulink url="https://access.redhat.com/"/> as part of your JBoss Portal Platform subscription.
-          </para>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-pom.xml">
-            <title>pom.xml</title>
-            <para>
-                There is only one noticeable difference in <filename>pom.xml</filename> against what we have shown as a general case in the <link linkend="sid-55378991">Starting a Portlet Project</link> section. The dependencies are different for JSF:
-              </para>
-            <example>
-              <title>pom.xml</title>
-              <programlisting language="XML">
-     &lt;dependencies&gt;
-         &lt;!-- 
-             The versions, scopes and types of these dependencies are managed in gatein-*-bom.
-             You need to name only groupId and artifactId here.
-             Name only those artifacts you refer to in your code.
-             Look at gatein-*-bom POM file for the complete list of available artifacts.
-         --&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.jboss.spec.javax.faces&lt;/groupId&gt;
-             &lt;artifactId&gt;jboss-jsf-api_2.1_spec&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.jboss.portletbridge&lt;/groupId&gt;
-             &lt;artifactId&gt;portletbridge-api&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-     &lt;/dependencies&gt;
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-JSFTemplateFiles">
-            <title>JSF Template Files</title>
-            <para>
-                In the following listing you can see the beginning of a typical JSF portlet template. It is taken from
-                <code>main.xhtml</code>
-                file located in
-                <code>src/main/webapp/pages</code>
-                directory.
-              </para>
-            <para>Code Snippet error: Read timed out.</para>
-            <para>
-                Note that
-                <code>&lt;f:view&gt;</code>
-                as a root element of the portlet template above prevents an erroneous
-                <code>&lt;html&gt;</code>
-                within
-                <code>&lt;body&gt;</code>
-                coming from portal. Moreover, the
-                <code>&lt;h:head&gt;</code>
-                and
-                <code>&lt;h:body&gt;</code>
-                elements are always needed for JSF Facelets to work.
-              </para>
-            <para>
-                The following listing shows the use of several JSF elements, such as
-                <code>&lt;h:outputLabel&gt;</code>
-                ,
-                <code>&lt;h:inputText&gt;</code>
-                and
-                <code>&lt;h:commandButton&gt;</code>
-                within
-                <code>&lt;h:form&gt;</code>
-                .
-              </para>
-            <para>Code Snippet error: Read timed out.</para>
-            <para>
-                The complete source code of the above template can be found in
-                <code>src/main/webapp/pages/main.xhtml</code>
-                of JSF2 Hello World Portlet project.
-              </para>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-JavaBeans">
-            <title>Java Beans</title>
-            <para>
-                In the JSF template file shown above, we refer to
-                <code>helloBean</code>
-                . This bean is implemented in Java as follows:
-              </para>
-            <informalexample>
-              <programlisting language="Java">
- /**
-  * {@link HelloBean} is the JSF backing bean for the application, holding the input data to be re-displayed.
-  */
- @ManagedBean(name = &quot;helloBean&quot;)
- @SessionScoped
- public class HelloBean implements Serializable {
- 
-     private static final long serialVersionUID = -6239437588285327644L;
- 
-     /**
-      * Stores the name which will be used to greet the application user.
-      */
-     private String name;
- 
-     /**
-      * Initializes {@link #name} with the value {@code &quot;World&quot;}.
-      */
-     @PostConstruct
-     public void postContruct() {
-         this.name = &quot;World&quot;;
-     }
- 
-     /**
-      * Returns {@link #name}.
-      * 
-      * @return {@link #name}
-      */
-     public String getName() {
-         return name;
-     }
- 
-     /**
-      * Set {@link #name}.
-      * 
-      * @param name
-      */
-     public void setName(String name) {
-         this.name = name;
-     }
- 
-     /**
-      * Resets {@link #name} to the default value {@code &quot;World&quot;}.
-      * 
-      * @param ae ignored
-      */
-     public void reset(ActionEvent ae) {
-         this.name = &quot;World&quot;;
-     }
- 
- }
-</programlisting>
-            </informalexample>
-            <para>
-                The
-                <code>@ManagedBean</code>
-                and
-                <code>@SessionScoped</code>
-                annotations allow for omitting of equivalent declarations in the
-                <code>faces-config.xml</code>
-                file.
-              </para>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-portlet.xml">
-            <title>portlet.xml</title>
-            <para>portlet.xml is the place where we tie the JSF templates with the portlet.</para>
-            <example>
-              <title>portlet.xml</title>
-              <programlisting language="XML">
-&lt;portlet-app xmlns=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot; version=&quot;2.0&quot;
-    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
-   http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot;&gt;
-    &lt;portlet&gt;
-        &lt;description&gt;A simple JSF2 portlet.&lt;/description&gt;
-        &lt;portlet-name&gt;jsf2HelloWorldPortlet&lt;/portlet-name&gt;
-        &lt;display-name&gt;JSF2 Hello World Portlet&lt;/display-name&gt;
-        &lt;portlet-class&gt;javax.portlet.faces.GenericFacesPortlet&lt;/portlet-class&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.view&lt;/name&gt;
-            &lt;value&gt;/pages/main.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.edit&lt;/name&gt;
-            &lt;value&gt;/pages/edit.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.help&lt;/name&gt;
-            &lt;value&gt;/pages/help.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.preserveActionParams&lt;/name&gt;
-            &lt;value&gt;true&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;expiration-cache&gt;0&lt;/expiration-cache&gt;
-        &lt;supports&gt;
-            &lt;mime-type&gt;text/html&lt;/mime-type&gt;
-            &lt;portlet-mode&gt;VIEW&lt;/portlet-mode&gt;
-            &lt;portlet-mode&gt;EDIT&lt;/portlet-mode&gt;
-            &lt;portlet-mode&gt;HELP&lt;/portlet-mode&gt;
-        &lt;/supports&gt;
-        &lt;portlet-info&gt;
-            &lt;title&gt;JSF2 Hello World Portlet&lt;/title&gt;
-        &lt;/portlet-info&gt;
-        &lt;container-runtime-option&gt;
-            &lt;name&gt;org.gatein.pc.remotable&lt;/name&gt;
-            &lt;value&gt;true&lt;/value&gt;
-        &lt;/container-runtime-option&gt;
-    &lt;/portlet&gt;
-&lt;/portlet-app&gt;
-
-   
-</programlisting>
-            </example>
-            <para>
-                Note that the
-                <code>javax.portlet.faces.defaultViewId.*</code>
-                <code>init-params</code>
-                are used to bind the JSF templates with the respective portlet view modes.
-                <code>javax.portlet.faces.GenericFacesPortlet</code>
-                as a
-                <code>&lt;portlet-class&gt;</code>
-                will serve the purpose for most JSF portlets.
-              </para>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-web.xml">
-            <title>web.xml</title>
-            <para>
-                JSF portlets require a few tweaks in the
-                <code>web.xml</code>
-                file:
-              </para>
-            <example>
-              <title>web.xml</title>
-              <programlisting language="XML">
-&lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:web=&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;
-    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot; version=&quot;2.5&quot;&gt;
-    &lt;display-name&gt;jsf2-hello-world-portlet&lt;/display-name&gt;
-    &lt;context-param&gt;
-        &lt;description&gt;See https://docs.jboss.org/author/display/PBR/Render+Policy&lt;/description&gt;
-        &lt;param-name&gt;javax.portlet.faces.RENDER_POLICY&lt;/param-name&gt;
-        &lt;param-value&gt;ALWAYS_DELEGATE&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    
-    &lt;!-- The following params are documented here: http://myfaces.apache.org/core21/myfaces-impl/webconfig.html --&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.FACELETS_VIEW_MAPPINGS&lt;/param-name&gt;
-        &lt;param-value&gt;*.xhtml&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;facelets.DEVELOPMENT&lt;/param-name&gt;
-        &lt;param-value&gt;false&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt;
-        &lt;param-value&gt;.xhtml&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    
-    &lt;servlet&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
-        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
-    &lt;/servlet&gt;
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-&lt;/web-app&gt;
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-CustomCSS">
-            <title>Custom CSS</title>
-            <para>
-                Portlet Bridge supports loading of CSS resources in the &quot;JSF way&quot;. Use the
-                <code>&lt;h:outputStylesheet library=&quot;css&quot; name=&quot;jsf2-hello-world-portlet.css&quot; /&gt;</code>
-                as in the
-                <code>main.xhtml</code>
-                file above. The
-                <code>jsf2-hello-world-portlet.css</code>
-                file needs to be placed in
-                <code>resources/css</code>
-                folder of the web application.
-              </para>
-            <para>
-                Note that relative paths like
-                <code>url(&apos;css/background/jsf-logo.png&apos;)</code>
-                do not work when used in CSS loaded via
-                <code>&lt;h:outputStylesheet ...&gt;</code>
-                . Rather a JSF Expression Language expression
-                <code>#{resource[&apos;/css/background/jsf-logo.png&apos;]</code>
-                } needs to be used. This expression is dynamically evaluated to a proper public URL. The path
-                <code>&apos;/css/background/jsf-logo.png&apos;</code>
-                used in the expression is relative to
-                <code>resources</code>
-                folder of the web application. See also
-                <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=51806374">Resource Serving</ulink>
-                .
-              </para>
-            <example>
-              <title>jsf2-hello-world-portlet.css</title>
-              <programlisting>
- div.jsf2HelloWorldPortlet {
-     padding: 10px;
-     /* In the following we use a JSF Expression Language expression rather then plain relative path. 
-        Plain relative paths do not work in JSF portlets. The expression #{resource[&apos;...&apos;]} is 
-        dynamically evaluated to a proper public URL. The path &apos;/css/background/jsf-logo.png&apos; 
-        used in the expression is relative to  resources folder of this web application.
-        See https://docs.jboss.org/author/display/PBR/Resource+Serving */
-     background: url(#{resource[&apos;/css/background/jsf-logo.png&apos;]}) no-repeat;
-     background-position-x: 753px;
-     background-position-y: 10px;
- }
- div.jsf2HelloWorldPortlet p {
-     width: 713px; 
- }
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477016_BasicJSFPortletDevelopment-Internationalization">
-            <title>Internationalization</title>
-            <para>
-                Internationalization is supported via standard Java Resource bundles. In our example project the
-                <code>*.property</code>
-                files of
-                <code>org.jboss.as.quickstarts.jsf.messages</code>
-                resource bundle are stored under
-                <code>src/main/resources/org/jboss/as/quickstarts/jsf</code>
-                . The following settings in
-                <filename>faces-config.xml</filename>
-                are needed so that this bundle can be used in JSF templates.
-              </para>
-            <example>
-              <title>faces-config.xml</title>
-              <programlisting language="XML">
-&lt;faces-config xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd&quot; version=&quot;2.0&quot;&gt;
-    &lt;application&gt;
-        &lt;!-- Declare the internationalization resources --&gt;
-        &lt;resource-bundle&gt;
-            &lt;!-- The resource bundle property files are in src/main/resources/org/jboss/as/quickstarts/jsf --&gt;
-            &lt;base-name&gt;org.jboss.as.quickstarts.jsf.messages&lt;/base-name&gt;
-            &lt;var&gt;msgs&lt;/var&gt;
-        &lt;/resource-bundle&gt;
-        &lt;locale-config&gt;
-            &lt;default-locale&gt;en&lt;/default-locale&gt;
-            &lt;supported-locale&gt;de&lt;/supported-locale&gt;
-        &lt;/locale-config&gt;
-    &lt;/application&gt;
-&lt;/faces-config&gt;
-</programlisting>
-            </example>
-            <para>
-                Note that in the above faces-config.xml, we have made our bundle visible in JSF templates under the variable
-                <code>msgs</code>
-                . Its individual entries can then be accessed using the usual Expression Language dot notation: e.g.
-                <code>#{msgs.Name</code>
-                }.
-              </para>
-          </section>
-        </section>
-        <section id="sid-55477016_BasicJSFPortletDevelopment-FurtherSteps">
-          <title>Further Steps</title>
-          <para>
-              After having done all the above, it is time to
-              <link linkend="sid-55379158">build and deploy the portlet</link>
-              ,
-              <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264662">import it</ulink>
-              and
-              <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264655">add it to a page</ulink>
-              so that you can test its functionality.
-            </para>
-        </section>
-        <section id="sid-55477016_BasicJSFPortletDevelopment-Seealso">
-          <title>See also</title>
-          <itemizedlist>
-            <listitem>
-              <para>
-                  <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264602">Portlet Primer</ulink>
-                </para>
-            </listitem>
-          </itemizedlist>
-        </section>
-      </section>
-      <section id="sid-55477018">
-        <title>JSF Portlet Development with RichFaces</title>
-        <para>
-            As we have already noted, RichFaces (RF) is just a component library for JavaServer Faces (JSF). Therefore, everything said in the
-            <xref linkend="sid-55477016"/>
-            chapter applies here too.
-          </para>
-        <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-ExampleCode">
-          <title>Example Code</title>
-          <para>
-            This section mentions code from the JSF2+RF4 Hello World Portlet example in the JBoss Portal Platform Quickstarts,  available for download from <ulink url="https://access.redhat.com/"/> as part of your JBoss Portal Platform subscription.
-          </para>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-pom.xml">
-            <title>pom.xml</title>
-            <para>We need to add several RF-specific dependencies to the general JSF ones:</para>
-            <example>
-              <title>pom.xml</title>
-              <programlisting language="XML">
-     &lt;dependencies&gt;
-         &lt;!-- 
-             The versions, scopes and types of these dependencies are managed in gatein-*-bom.
-             You need to name only groupId and artifactId here.
-             Name only those artifacts you refer to in your code.
-             Look at gatein-*-bom POM file for the complete list of available artifacts.
-         --&gt;
-         &lt;!-- General JSF dependencies --&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.jboss.spec.javax.faces&lt;/groupId&gt;
-             &lt;artifactId&gt;jboss-jsf-api_2.1_spec&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.jboss.portletbridge&lt;/groupId&gt;
-             &lt;artifactId&gt;portletbridge-api&lt;/artifactId&gt;
-         &lt;/dependency&gt;
- 
-         &lt;!-- RF-sprecific dependencies --&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.jboss.portletbridge&lt;/groupId&gt;
-             &lt;artifactId&gt;portletbridge-extension-richfaces&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.richfaces.ui&lt;/groupId&gt;
-             &lt;artifactId&gt;richfaces-components-api&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.richfaces.ui&lt;/groupId&gt;
-             &lt;artifactId&gt;richfaces-components-ui&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-         &lt;dependency&gt;
-             &lt;groupId&gt;org.richfaces.core&lt;/groupId&gt;
-             &lt;artifactId&gt;richfaces-core-impl&lt;/artifactId&gt;
-         &lt;/dependency&gt;
-     &lt;/dependencies&gt;
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-JSFTemplateFiles">
-            <title>JSF Template Files</title>
-            <para>
-                We use
-                <code>&lt;rich:*&gt;</code>
-                components in the templates:
-              </para>
-            <example>
-              <title>Form with rich: components in main.xhtml</title>
-              <programlisting language="XML">
-         &lt;/p&gt;
-         &lt;h:form id=&quot;jsf2HelloWorldPortlet&quot;&gt;
-             &lt;h:panelGrid columns=&quot;2&quot;&gt;
-                 &lt;h:outputLabel value=&quot;#{msgs.Greeting}&quot; for=&quot;greeting&quot;/&gt;
-                 &lt;rich:select id=&quot;greeting&quot; value=&quot;#{helloBean.greeting}&quot;&gt;
-                     &lt;f:selectItems value=&quot;#{helloBean.greetings}&quot; /&gt;
-                     &lt;f:ajax render=&quot;output&quot; event=&quot;selectitem&quot;/&gt;
-                 &lt;/rich:select&gt;
-                 
-                 &lt;h:outputLabel value=&quot;#{msgs.Name}&quot; for=&quot;nameInput&quot;/&gt;
-                 &lt;h:inputText id=&quot;nameInput&quot; value=&quot;#{helloBean.name}&quot;&gt;
-                     &lt;f:validateLength minimum=&quot;1&quot; maximum=&quot;50&quot; /&gt;
-                     &lt;f:ajax render=&quot;output&quot; event=&quot;keyup&quot;/&gt;
-                 &lt;/h:inputText&gt;
-             &lt;/h:panelGrid&gt;
-             &lt;p&gt;
-                 &lt;h:panelGroup id=&quot;output&quot;&gt;
-                     &lt;strong&gt;&lt;h:outputText value=&quot;#{helloBean.greeting} #{helloBean.name}!&quot; rendered=&quot;#{not empty helloBean.name}&quot;/&gt;&lt;/strong&gt;
-                 &lt;/h:panelGroup&gt;
-             &lt;/p&gt;
-             &lt;p&gt;
-                 &lt;h:commandButton id=&quot;reset&quot; value=&quot;#{msgs.Reset}&quot; actionListener=&quot;#{helloBean.reset}&quot;&gt;
-                     &lt;f:ajax render=&quot;@form&quot; /&gt;
-                 &lt;/h:commandButton&gt; - #{msgs.ResetComment}
-             &lt;/p&gt;
-             &lt;p&gt;
-                 &lt;h:commandButton id=&quot;reload&quot; value=&quot;#{msgs.Reload}&quot; /&gt; - #{msgs.ReloadComment}
-             &lt;/p&gt;
-</programlisting>
-            </example>
-            <para>The complete source code of the above template can be found in src/main/webapp/pages/main.xhtml of JSF2+RF4 Hello World Portlet quickstart.</para>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-JavaBeans">
-            <title>Java Beans</title>
-            <para>
-                The HelloBean presented in the
-                <xref linkend="sid-55477016"/>
-                chapter was extended firstly to provide a list of greeting phrases selectable in the drop-down box on the main.xhtml page and secondly to be able to store the greeting phrase selected in the drop-down box.
-              </para>
-            <example>
-              <title>HelloBean.java</title>
-              <programlisting language="Java">
-     /**
-      * Static list of greetings. Contains {@code &quot;Hello&quot;} and {@code &quot;Hi&quot;}.
-      */
-     private static final List&lt;SelectItem&gt; GREETINGS;
- 
-     static {
-         List&lt;SelectItem&gt; l = new ArrayList&lt;SelectItem&gt;(2);
-         l.add(new SelectItem(&quot;Hello&quot;));
-         l.add(new SelectItem(&quot;Hi&quot;));
-         GREETINGS = Collections.unmodifiableList(l);
-     }
- 
-     /**
-      * Stores the greeting phrase which will be used to greet the application user.
-      */
-     private String greeting;
-</programlisting>
-            </example>
-            <example>
-              <title>HelloBean.java</title>
-              <programlisting language="Java">
-     /**
-      * Returns {@link #greeting}.
-      * 
-      * @return {@link #greeting}
-      */
-     public String getGreeting() {
-         return greeting;
-     }
- 
-     /**
-      * Set {@link #greeting}.
-      * 
-      * @param greeting
-      */
-     public void setGreeting(String greeting) {
-         this.greeting = greeting;
-     }
- 
-     /**
-      * Returns {@link #GREETINGS}.
-      * 
-      * @return {@link #GREETINGS}
-      */
-     public List&lt;SelectItem&gt; getGreetings() {
-         return GREETINGS;
-     }
- 
- 
-     /**
-      * Resets {@link #name} to the default value {@code &quot;World&quot;} and {@link #greeting} with the default value {@code &quot;Hello&quot;}.
-      * 
-      * @param ae ignored
-      */
-     public void reset(ActionEvent ae) {
-         this.name = &quot;World&quot;;
-         this.greeting = &quot;Hello&quot;;
-     }
- 
- }
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-portlet.xml">
-            <title>portlet.xml</title>
-            <para>
-                There is no substantial change in portlet.xml against the
-                <xref linkend="sid-55477016"/>
-                chapter. Only
-                <code>&lt;description&gt;</code>
-                ,
-                <code>&lt;portlet-name&gt;</code>
-                ,
-                <code>&lt;display-name&gt;</code>
-                and
-                <code>&lt;title&gt;</code>
-                have been changed.
-              </para>
-            <example>
-              <title>portlet.xml</title>
-              <programlisting language="XML">
-&lt;portlet-app xmlns=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot; version=&quot;2.0&quot;
-    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
-   http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd&quot;&gt;
-    &lt;portlet&gt;
-        &lt;description&gt;A simple portlet usinf JSF2 and RF4.&lt;/description&gt;
-        &lt;portlet-name&gt;jsf2Rf4HelloWorldPortlet&lt;/portlet-name&gt;
-        &lt;display-name&gt;JSF2+RF4 Hello World Portlet&lt;/display-name&gt;
-        &lt;portlet-class&gt;javax.portlet.faces.GenericFacesPortlet&lt;/portlet-class&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.view&lt;/name&gt;
-            &lt;value&gt;/pages/main.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.edit&lt;/name&gt;
-            &lt;value&gt;/pages/edit.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.defaultViewId.help&lt;/name&gt;
-            &lt;value&gt;/pages/help.xhtml&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;init-param&gt;
-            &lt;name&gt;javax.portlet.faces.preserveActionParams&lt;/name&gt;
-            &lt;value&gt;true&lt;/value&gt;
-        &lt;/init-param&gt;
-        &lt;expiration-cache&gt;0&lt;/expiration-cache&gt;
-        &lt;supports&gt;
-            &lt;mime-type&gt;text/html&lt;/mime-type&gt;
-            &lt;portlet-mode&gt;VIEW&lt;/portlet-mode&gt;
-            &lt;portlet-mode&gt;EDIT&lt;/portlet-mode&gt;
-            &lt;portlet-mode&gt;HELP&lt;/portlet-mode&gt;
-        &lt;/supports&gt;
-        &lt;portlet-info&gt;
-            &lt;title&gt;JSF2+RF4 Hello World Portlet&lt;/title&gt;
-        &lt;/portlet-info&gt;
-        &lt;container-runtime-option&gt;
-            &lt;name&gt;org.gatein.pc.remotable&lt;/name&gt;
-            &lt;value&gt;true&lt;/value&gt;
-        &lt;/container-runtime-option&gt;
-    &lt;/portlet&gt;
-&lt;/portlet-app&gt;
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-web.xml">
-            <title>web.xml</title>
-            <para>
-                We set a few more
-                <code>init-params</code>
-                in web.xml for RichFaces components to work:
-              </para>
-            <example>
-              <title>web.xml</title>
-              <programlisting language="XML">
-&lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xmlns:web=&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;
-    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot; version=&quot;2.5&quot;&gt;
-    &lt;display-name&gt;jsf2-rf4-hello-world-portlet&lt;/display-name&gt;
-    &lt;context-param&gt;
-        &lt;description&gt;See https://docs.jboss.org/author/display/PBR/Installing+Portlet+Bridge#InstallingPortletBridge-DisableautomaticinclusionofPortletBridge&lt;/description&gt;
-        &lt;param-name&gt;org.gatein.portletbridge.WAR_BUNDLES_PORTLETBRIDGE&lt;/param-name&gt;
-        &lt;param-value&gt;true&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;description&gt;See https://docs.jboss.org/author/display/PBR/Render+Policy&lt;/description&gt;
-        &lt;param-name&gt;javax.portlet.faces.RENDER_POLICY&lt;/param-name&gt;
-        &lt;param-value&gt;ALWAYS_DELEGATE&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    
-    &lt;!-- The following params are documented here: http://myfaces.apache.org/core21/myfaces-impl/webconfig.html --&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.FACELETS_VIEW_MAPPINGS&lt;/param-name&gt;
-        &lt;param-value&gt;*.xhtml&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;facelets.DEVELOPMENT&lt;/param-name&gt;
-        &lt;param-value&gt;false&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt;
-        &lt;param-value&gt;.xhtml&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
-        &lt;param-value&gt;server&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;param-name&gt;javax.faces.PROJECT_STAGE&lt;/param-name&gt;
-        &lt;!-- Change to Production to compress js files, etc. --&gt;
-        &lt;param-value&gt;Development&lt;/param-value&gt;
-    &lt;/context-param&gt;
-
-    &lt;context-param&gt;
-        &lt;description&gt;http://docs.jboss.org/richfaces/latest_4_X/Developer_Guide/en-US/html/chap-Developer_Guide-Skinning_and_theming.html&lt;/description&gt;
-        &lt;param-name&gt;org.richfaces.skin&lt;/param-name&gt;
-        &lt;param-value&gt;#{skinBean.skin}&lt;/param-value&gt;
-    &lt;/context-param&gt;
-    &lt;context-param&gt;
-        &lt;description&gt;See http://docs.jboss.org/richfaces/latest_4_X/Developer_Guide/en-US/html/chap-Developer_Guide-Advanced_features.html&lt;/description&gt;
-        &lt;param-name&gt;org.richfaces.resourceOptimization.enabled&lt;/param-name&gt;
-        &lt;param-value&gt;true&lt;/param-value&gt;
-    &lt;/context-param&gt;
-
-    &lt;servlet&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
-        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
-    &lt;/servlet&gt;
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-    &lt;servlet-mapping&gt;
-        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
-        &lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;
-    &lt;/servlet-mapping&gt;
-
-    &lt;mime-mapping&gt;
-        &lt;extension&gt;xcss&lt;/extension&gt;
-        &lt;mime-type&gt;text/css&lt;/mime-type&gt;
-    &lt;/mime-mapping&gt;
-
-&lt;/web-app&gt;
-</programlisting>
-            </example>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-CustomCSS">
-            <title>Custom CSS</title>
-            <para>
-                Fully analogous with
-                <link linkend="sid-55477016">plain JSF portlets</link>
-                .
-              </para>
-          </section>
-          <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-Internationalization">
-            <title>Internationalization</title>
-            <para>
-                Fully analogous with
-                <link linkend="sid-55477016">plain JSF portlets</link>
-                .
-              </para>
-          </section>
-        </section>
-        <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-FurtherSteps">
-          <title>Further Steps</title>
-          <para>
-              After having done all the above, it is time to
-              <link linkend="sid-55379158">build and deploy the portlet</link>
-              ,
-              <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264662">import it</ulink>
-              and
-              <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264655">add it to a page</ulink>
-              so that you can test its functionality.
-            </para>
-        </section>
-        <section id="sid-55477018_JSFPortletDevelopmentwithRichFaces-Seealso">
-          <title>See also</title>
-          <itemizedlist>
-            <listitem>
-              <para>
-                  <ulink url="https://docs.jboss.org/author/pages/viewpage.action?pageId=54264602">Portlet Primer</ulink>
-                </para>
-            </listitem>
-          </itemizedlist>
-        </section>
-      </section>
-    </section>
-    <section id="sid-55379158">
-      <title>Building and Deploying Portlets</title>
-      <orderedlist>
-        <listitem>
-          <para>Make sure you have your JBoss Portal Platform instance is running.</para>
-        </listitem>
-        <listitem>
-          <para>Open a command line and navigate to the root directory of your portlet project.</para>
-        </listitem>
-        <listitem>
-          <para>Type this command to build and deploy the archive:</para>
-          <informalexample>
-            <programlisting>mvn clean package jboss-as:deploy</programlisting>
-          </informalexample>
-          <para>
-              To deploy to other than default
-              <code>localhost:9999</code>
-              JBoss Portal Platform instance, copy the following configuration just after
-              <code>&lt;version&gt;${jboss.as.plugin.version}&lt;/version&gt;</code>
-              in the
-              <filename>pom.xml</filename>
-              file and adjust it to suit your needs.
-              
-              Note that
-              <code>&lt;username&gt;</code>
-              and
-              <code>&lt;password&gt;</code>
-              elements can be omitted sometimes, depending on JBoss Portal Platform&apos;s security settings.
-              
-            </para>
-          <informalexample>
-            <programlisting language="XML">&lt;configuration&gt;
-    &lt;hostname&gt;127.0.0.1&lt;/hostname&gt;
-    &lt;port&gt;9999&lt;/port&gt;
-    &lt;username&gt;admin&lt;/username&gt;
-    &lt;password&gt;secret&lt;/password&gt;
-&lt;/configuration&gt;</programlisting>
-          </informalexample>
-          <para>
-              This will deploy
-              <code>target/simplest-hello-world-portlet.war</code>
-              to the running instance of the portal.
-            </para>
-        </listitem>
-      </orderedlist>
-    </section>
-  </section>
-</chapter>

Deleted: epp/docs/branches/6.0/Developer_Guide/en-US/chapter-6-GDG_JavaScript_Development.xml
===================================================================
(Binary files differ)



More information about the gatein-commits mailing list