portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From woon...@apache.org
Subject svn commit: r722405 [9/17] - in /portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade: ./ src/ src/site/ src/site/resources/ src/site/resources/css/ src/site/resources/images/ src/site/resources/images/layouts/ src/site/resources/images/portlet...
Date Tue, 02 Dec 2008 08:53:28 GMT
Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,528 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<document>
+  <properties>
+    <title>Guide to Declarative Menus in PSML</title>
+    <subtitle>Guide to Declarative Menus in PSML</subtitle>
+    <authors>
+      <person name="Randy Watler" email="rwatler@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Declarative Menus">
+<p>
+Declarative menus are used to add new or customize default navigation elements in displayed portal pages.
+These PSML declarations are part of the <a href="guide-psml.html#Page">page</a> and <a href="guide-psml.html#Folder">folder</a> elements.
+As with other PSML elements, effective menu declarations available for a given page are those that are explicity
+defined in the page along with all defined in parent folders. For this reason, global site menus are defined in
+the PSML associated with the site root folder. Menu definitions in a specific page or folder override
+menus with the same name found in parent folders.
+</p>
+<p>
+Portal layout decorators access page menu declarations by name while rendering portal content. Menus are
+used to create dynamic navigation panes, portal page tabs, bread crumb links, and pull downs.
+The Portal Site Component is responsible for fleshing out the dynamic menu definition options with page specific PSML
+elements from the site. For instance, a global menu declaration would typically be involved in the following
+sequence of events while a portal page is being composed:
+<ol>
+	<li>The portal layout decorator would request a menu definition by name,</li>
+	<li>the definition would be inherited by the current page and located in the root folder PSML,</li>
+	<li>the Portal Site Component would interpret the menu definition in the context of the current page and populate <a href="guide-psml.html#Page">page</a>, <a href="guide-psml.html#Folder">folder</a>, and <a href="guide-psml.html#Link">link</a> menu options,</li>
+	<li>the decorator would display the menu rendering titles and text from the menu definition itself and the computed menu options into portal navigation content.</li>
+</ol>
+</p>
+<p>
+There are default global menu declarations supported internally by the Portal Site Component that do not need to
+be explicitly defined in any page or folder PSML elements of the site: 
+<ul>
+	<li><b>pages</b>: relative pages menu used to define the page tabs above the portal.</li>
+	<li><b>breadcrumbs</b>: paths to page used to provide history links below the page tabs.</li>
+	<li><b>navigations</b>: relative subfolders and root level links menu used to define the navigation pane beside the portal.</li>
+	<li><b>back</b>: parent folder menu used to define the single "back" link above the portal page tabs.</li>
+</ul>
+As one would expect, these built in menu definitions can be overridden by declaring menus in the site PSML with the same name. 
+</p>
+<p>
+The remainder of this guide provides more information on specifying and using declarative menu definitions within Jetspeed2:
+<ul>
+	<li><a href="#Menu_Definition">Menu Definition</a></li>
+    <ul>
+	    <li><a href="#Menu_Options_Definition">Options</a></li>
+	    <li><a href="#Menu_Separator_Definition">Separator</a></li>
+	    <li><a href="#Menu_Include_Definition">Include</a></li>
+	    <li><a href="#Menu_Exclude_Definition">Exclude</a></li>
+    </ul>
+	<li><a href="#Page_Layout_Decorators">Page Layout Decorators</a></li>
+	<li><a href="#Portal_Site_Component">Portal Site Component</a></li>
+    <li><a href="guide-psml-dtd.html#PSML_DTDs">PSML Document DTDs</a></li>        
+</ul>
+</p>
+</section>
+
+<section name='Menu Definition'>
+<p>
+The &lt;menu&gt; element defines a menu to be used by the layout decorators or a nested menu within another menu.
+There are many valid attributes for the menu element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>name</td>
+    <td>Identifies menu name for retrieval from template code and/or menu reference. This attribute is required for top level nodes and ignored for nested menus.</td>
+    </tr>
+    <tr>
+    <td>options</td>
+    <td>Specifies root document path for this menu if deep inclusion of documents and folders is specified by this menu. This attribute may also define document paths that specify page, folder, or link menu options. Paths specified in this attribute are <a href="#Portal_Site_Component">Page URIs</a>; these URIs may or may not directly reflect the folder and page hierarchy. The <a href="#Portal_Site_Component">Portal Site Component</a> maps these options paths to PSML folder and page elements. Multiple option paths can be specified as a comma separated list of paths and/or regular expression patterns. Relative paths are interpreted as relative to the current page. Special patterns, '~' or '@', can be used to reference the current page.</td>
+    </tr>
+    <tr>
+    <td>depth</td>
+    <td>Specifies deep inclusion of documents from option folders, (depth &lt; 0 specifies infinite depth). Menu options are created to represent each visible page or link in the site; folders are converted into nested menus constrained by this setting.</td>
+    </tr>
+    <tr>
+    <td>paths</td>
+    <td>Boolean attribute to enable the "path" expansion of options: specified options are expanded to include paths from the root to the specified options. For example, if options is specified to be "/folder/page.psml", setting this attribute would result in the menu containing options for "/", "/folder", and "/folder/page.psml". This setting is typically used to generate "history" or "bread crumb" menus.</td>
+    </tr>
+    <tr>
+    <td>regexp</td>
+    <td>A boolean attribute the specifies whether wild card/regular expression processing be performed on options values. File system command line regular expression syntax is supported.</td>
+    </tr>
+    <tr>
+    <td>profile</td>
+    <td>Specified name of Profile Locator to be used when evaluating option values. This attribute also sets the default profile value for options and nested menus. Specifying '*' forces the acceptance of all Profile Locator names; this can be used to override parent menu selects a profile name.</td>
+    </tr>
+    <tr>
+    <td>order</td>
+    <td>Comma separated list of regexp patterns matched against list or regular expression document path values to determine order of matched options. This attribute will be applied as a default options value for any options elements, but is not used to reorder multiple options children matches. If not specified, multiple options are included in the order returned by the underlying folder document orderings. Option paths not matched by this attribute are appended after ordered matches.</td>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>Optional decorator defined layout hint for the menu. This attribute is also used as the default skin value for options and nested menus. This hint is not currently used by Jetspeed2 decorators.</td>
+    </tr>
+</table>
+<p>
+The &lt;menu&gt; element contains a number of other menu definition PSML elements. With the exception of the title and metadata elements, the relative order of these elements determines the order that the layout decorators present them:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Simple element text specifies default locale-independent title for the menu. The title of the menu is considered its long description and is used as rollover text in some decorators if the short title is available for the menu text. If not specified, the name of the menu will be used.</td>
+    </tr>
+    <tr>
+    <td>short-title?</td>
+    <td>Simple element text specifies default locale-independent short title for the menu. The short title, if available, is used as menu text in some decorators. If not specified, the title text is used.</td>
+    </tr>
+    <tr>
+    <td><a href="guide-psml.html#PSML_Titles_and_Metadata">metadata</a>*</td>
+    <td>Optionally specifies additional locale-specific titles and short titles.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menu_Options_Definition">options</a>*</td>
+    <td>This ordered menu element specifies content elements for this menu definition.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menu_Separator_Definition">separator</a>*</td>
+    <td>An ordered menu element used to specify text lines to be included inline in this menu definition.</td>
+    </tr>
+    <tr>
+    <td>menu*</td>
+    <td>Another ordered menu element used to define a nested menu contained in this menu definition.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menu_Include_Definition">include</a>*</td>
+    <td>Specifies a menu to nest within or options from a another menu to be included in this menu definition. The name of the menu to include is the text of this ordered menu element.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menu_Exclude_Definition">exclude</a>*</td>
+    <td>Specifies options and nested menus from another menu to be excluded from this menu definition. The name of the menu with elements to exclude is the text of this ordered menu element.</td>
+    </tr>
+</table>
+<p>Examples:</p>
+<source><![CDATA[
+<!-- simple menu composed of 2 pages -->
+<menu name="simple">
+    <options>/some-top-page.psml,/custom/some-other-page.psml</options>
+</menu>
+]]></source>
+<source><![CDATA[
+<!-- site menu for the top 2 levels: folders result in nested menus -->
+<menu name="top-2-levels" options="/" depth="2" skin="dhtml-pull-down"/>
+]]></source>
+<source><![CDATA[
+<!-- menu containing top level elements profiled by roles -->
+<menu name="top-role-pages" regexp="true" options="/*" profile="roles"/>
+]]></source>
+<source><![CDATA[
+<!-- contrived example demonstrating element syntax -->
+<menu name="top-custom">
+    <title>Top Menu</title>
+    <metadata name="title" xml:lang="fr">Haut</metadata>
+    <options regexp="true" profile="groups">/group-pages/*</options>
+    <menu options="/" profile="page">
+        <separator>
+            <text>-- Top Pages --</text>
+            <title>Top Pages</title>
+        </separator>
+        <options regexp="true">/*</options>
+        <separator>
+            <title>Custom Pages</title>
+        </separator>
+        <options depth="2">/custom-folder/</options>
+    </menu>
+    <exclude>top-role-pages</exclude>
+    <separator>More Top Pages</separator>
+    <include nest="true">top-role-pages</include>
+</menu>
+]]></source>
+<p>The definitions for the default global menu declarations supported internally by the Portal Site Component:</p>  
+<source><![CDATA[
+<!-- standard pages tabs menu -->
+<menu name="pages" regexp="true" options="*.psml"/>
+]]></source>
+<source><![CDATA[
+<!-- standard history breadcrumbs menu -->
+<menu name="breadcrumbs" options="~" paths="true"/>
+]]></source>
+<source><![CDATA[
+<!-- standard navigations panel menu -->
+<menu name="navigations">
+  <separator>Folders</separator>
+  <options regexp="true">./*/</options>
+  <include>page-navigations</include>
+  <separator>Additional Links</separator>
+  <options regexp="true">/*.link</options>
+</menu>
+]]></source>
+<source><![CDATA[
+<!-- standard parent folder link menu -->
+<menu name="back" options="../"/>
+]]></source>
+<p>Note that the separator text of these definitions is localized internally.</p>  
+</section>
+
+<section name='Menu Options Definition'>
+<p>
+The &lt;options&gt; element defines a single or multiple options within a <a href="#Menu_Definition">menu</a>. The text of this simple element specifies document paths that yield page, folder, or link menu options. Paths specified in this element are <a href="#Portal_Site_Component">Page URIs</a>; these URIs may or may not directly reflect the folder and page hierarchy. The <a href="#Portal_Site_Component">Portal Site Component</a> maps these options paths to PSML folder and page elements. Multiple option paths can be specified as a comma separated list of paths and/or regular expression patterns. Relative paths are interpreted as relative to the current page. Special patterns, '~' or '@', can be used to reference the current page. This element shares many attributes in common with the menu element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>depth</td>
+    <td>Specifies deep inclusion of documents from option folders, (depth &lt; 0 specifies infinite depth). Menu options are created to represent each visible page or link in the site; folders are converted into nested menus constrained by this setting.</td>
+    </tr>
+    <tr>
+    <td>paths</td>
+    <td>Boolean attribute to enable the "path" expansion of options: specified options are expanded to include paths from the root to the specified options. For example, if options is specified to be "/folder/page.psml", setting this attribute would result in the menu containing options for "/", "/folder", and "/folder/page.psml". This setting is typically used to generate "history" or "bread crumb" menus.</td>
+    </tr>
+    <tr>
+    <td>regexp</td>
+    <td>A boolean attribute the specifies whether wild card/regular expression processing be performed on options values. File system command line regular expression syntax is supported.</td>
+    </tr>
+    <tr>
+    <td>profile</td>
+    <td>Specified name of Profile Locator to be used when evaluating option values. This attribute also sets the default profile value for options and nested menus. Specifying '*' forces the acceptance of all Profile Locator names; this can be used to override parent menu selects a profile name.</td>
+    </tr>
+    <tr>
+    <td>order</td>
+    <td>Comma separated list of regexp patterns matched against list or regular expression document path values to determine order of matched options. This attribute will be applied as a default options value for any options elements, but is not used to reorder multiple options children matches. If not specified, multiple options are included in the order returned by the underlying folder document orderings. Option paths not matched by this attribute are appended after ordered matches.</td>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>Optional decorator defined layout hint for the menu options. Skin attribute values from each page, folder, or link will be used to populate menu options if this hint is not specified here. Otherwise, the skin hint from the containing menu will be used. This hint is not currently used by Jetspeed2 decorators.</td>
+    </tr>
+</table>
+<p>Example:</p>
+<source><![CDATA[
+<menu>
+    ...
+    <options regexp="true" order="*.psml,*.link">/some-top-page.psml,/custom/some-other-page.psml,/*.link</options>
+    ...
+</menu>
+]]></source>
+</section>
+
+<section name='Menu Separator Definition'>
+<p>
+The &lt;separator&gt; element defines a separator to be included in a <a href="#Menu_Definition">menu</a>. The separator will be included only if <a href="#Menu_Options_Definition">options</a> or nested menus appear below this element within a menu definition. The text of the separator can be specified in the contained text of this element or in the text menu definition element.
+There is only one attribute accepted by the separator element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>Optional decorator defined layout hint for the menu separator. This hint is not currently used by Jetspeed2 decorators.</td>
+    </tr>
+</table>
+<p>
+The &lt;separator&gt; element contains a number of other menu definition PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Simple element text specifies default locale-independent title for the separator. The title of the separator is considered its long description and is used as rollover text in some decorators if the separator text is available.</td>
+    </tr>
+    <tr>
+    <td>text?</td>
+    <td>Simple element text specifies default locale-independent text for the separator. The required separator text, whether specified by this attribute or as the contained text of the separator element, is the text to be inserted in the menu by the layout decorator.</td>
+    </tr>
+    <tr>
+    <td><a href="guide-psml.html#PSML_Titles_and_Metadata">metadata</a>*</td>
+    <td>Optionally specifies additional locale-specific titles and separator text.</td>
+    </tr>
+</table>
+<p>Examples:</p>  
+<source><![CDATA[
+<menu>
+    ...
+    <separator>-------------</separator>
+    ...
+    <separator>
+        <text>-- Top 10 Pages --</text>
+        <metadata name="text" xml:lang="fr">Haut Pages</metadata>
+        <title>Top 10 pages as voted by the Jetspeed2 users!</title>
+    </separator>
+    ...
+</menu>
+]]></source>
+</section>
+
+<section name='Menu Include Definition'>
+<p>
+The &lt;include&gt; element includes <a href="#Menu_Options_Definition">options</a> or nested <a href="#Menu_Definition">menus</a> from another menu. The name of the menu to include is specified as the text value of this element.
+There is only one valid attribute for the include element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>nest</td>
+    <td>Boolean flag that controls whether the specified menu is to be nested. If this attribute is set to 'true', the included menu will be nested as a submenu; otherewise, all options and nested menus from the specified menu will be inserted inline into this menu.</td>
+    </tr>
+</table>
+<p>Examples:</p>  
+<source><![CDATA[
+<menu>
+    ...
+    <include nest="true">navigations</include>
+    ...
+</menu>
+]]></source>
+</section>
+
+<section name='Menu Exclude Definition'>
+<p>
+The &lt;exclude&gt; element excludes <a href="#Menu_Options_Definition">options</a> or nested <a href="#Menu_Definition">menus</a> from another menu. This option is used primarily to remove menu options that already appear on the portal page in another menu from this menu. Matching options or menus will be excluded only if they appear above this element within a menu definition. The name of the menu to include is specified as the text value of this simple element.
+</p>
+<p>Examples:</p>  
+<source><![CDATA[
+<menu>
+    ...
+    <exclude>pages</exclude>
+    ...
+</menu>
+]]></source>
+</section>
+
+<section name='Page Layout Decorators'>
+<p>
+The page layout decorators request menus from the Portal Site Component when the page is being rendered in the Jetspeed2 pipeline.
+The decorators expect certain menus to be provided by the PSML declarations. Before custom menus can be displayed in the portal,
+the decorators need to be modified to render the custom menu. Here is an example taken from a Velocity layout decorator header.vm file:
+</p>
+<source><![CDATA[
+...
+#set($pagesStandardMenu = $site.getMenu("pages"))
+#if(!$pagesStandardMenu.empty)
+  <div class="tabs">
+#includeTabsNavigation($pagesStandardMenu $LEFT_TO_RIGHT)
+  </div>
+#end
+...
+]]></source>
+<p>
+This code block renders the standard pages tabs menu within a portal page. The Portal Site Component is exposed as the <i>$site</i>
+Velocity context variable. The test for an empty menu definition is designed to ensure that empty menus are not rendered into the page
+content. Finally, a decorator macro is executed to expand the menu content. This approach is taken in general to support the rendering
+of nested menus with recursive invocations of the macro. In this case, the decorator is expecting only page options. Here is the
+macro implementation used to render the pages tabs menu:
+</p>
+<source><![CDATA[
+#macro (includeTabsNavigation $_menu $_orientation)
+  <table border="0" cellpadding="0" cellspacing="0">
+  <tr>
+    #foreach($element in $_menu.elements.iterator())
+      #if($element.elementType == "option")
+        #set($tabTitle = $element.getTitle($preferedLocale))
+        #set($tabName = $element.getShortTitle($preferedLocale))
+        #if($_orientation == $LEFT_TO_RIGHT)
+          #if($element.isSelected($site))
+            <td class="LTabLeft" nowrap="true">&nbsp;</td>
+            <td class="LTab" align="center" valign="middle" nowrap="true" title="$!tabTitle">${tabName}</td>
+            <td class="LTabRight"  nowrap="true">&nbsp;</td>
+          #else
+            #set($tabUrl = $jetspeed.getAbsoluteUrl($element.url))
+            <td class="LTabLeftLow"  nowrap="true">&nbsp;</td>
+            <td class="LTabLow" align="center" valign="middle" nowrap="true" title="$!tabTitle"><a href="$tabUrl">${tabName}</a></td>
+            <td class="LTabRightLow"  nowrap="true">&nbsp;</td>
+          #end
+        #end
+      #end
+    #end
+  </tr>
+  </table>
+#end
+]]></source>
+<p>
+This macro iterates over the computed page menu options supplied by the Portal Site Component, rendering a series of table
+data HTML elements that make up each displayed tab. The whole menu is rendered as a HTML table with a single row.
+</p>
+<p>
+The declarative menu Portal Site Component objects exposed to the layout decorators are documented in the 
+<a href="../multiproject/jetspeed-api/apidocs/index.html">Jetspeed API</a>. Here is a list of the primary interfaces
+that make up this interface:
+<ul>
+	<li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/Menu.html">org.apache.jetspeed.portalsite.Menu</a></li>
+	<li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuElement.html">org.apache.jetspeed.portalsite.MenuElement</a></li>
+	<li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuOption.html">org.apache.jetspeed.portalsite.MenuOption</a></li>
+	<li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/MenuSeparator.html">org.apache.jetspeed.portalsite.MenuSeparator</a></li>
+	<li><a href="../multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/PortalSiteRequestContext.html">org.apache.jetspeed.portalsite.PortalSiteRequestContext</a></li>
+</ul>
+Please refer to the <a href="../multiproject/jetspeed-api/apidocs/index.html">javadocs</a> for these interfaces and
+sample Velocity decorators for more information.
+</p>
+<p>
+Jetspeed2 provides many sample decorators including those that will render tabs, navigation panes with nested submenus,
+history breadcrumb links, and even DHTML JSCookMenu nested pulldown menus... all from the declarative menu elements
+documented here. 
+</p>
+</section>
+
+<section name='Portal Site Component'>
+<p>
+In conjunction with the <a href="guide-profiler.html">Jetspeed Profiler Component</a>, the Portal Site Component
+performs two closely related functions:
+<ol>
+	<li>Map portal request URLs from a user to PSML <a href="guide-psml.html#Page">page</a> or <a href="guide-psml.html#Folder">folder</a> elements in the site, and</li>
+    <li>construct site navigational menus and their options that reflect what is available to the user from the site.</li>
+</ol>
+At first glance, these functions seem relatively simple: searching within and traversing the <a href="guide-psml.html">PSML site definition</a>.
+However, once the complexities of Profiler composition and <a href="guide-security-declarative-psml.html">Security Constraints</a>
+filtering are taken into account, the mapping is often not trivial.
+</p>
+<p>
+Menu definition options paths are specified as Page URIs to leverage this mapping functionality. A Page URI is essentially
+the tail portion of a portal request URL that is used to address a page or folder. Using Page URIs for options allows menu
+definitions to be shared by all users of the portal: the user specific profile and effective security constraints are applied
+to generate the menu options. This implies that the physical paths used internally within the Page Manager file system
+or database cannot be specified to directly address a specific PSML element.
+</p>
+<p>
+For example, suppose the following:
+<ul>
+    <li>the default "j2" profiling rules are in effect for the 'someone' user,</li>
+    <li>the following physical PSML site structure is available in the Page Manager,</li>
+    <ul>
+        <li>.../page0.psml</li>
+        <li>.../page1.psml</li>
+        <li>.../page2.psml</li>
+        <li>.../hidden-page0.psml</li>
+        <li>.../_user/someone/page0.psml</li>
+    </ul>
+    <li>security constraints denied access to '/page2.psml' for the user, and</li>
+    <li>'/hidden-page.psml' is declared hidden in the page PSML.</li>
+</ul>
+The current <a href="guide-profiler.html">Profile Locator</a> for the user would specify that the Portal Site Component map the
+following portal request URLs to the specific PSML elements:
+<table>
+    <tr>
+    <th>Portal Request URL</th>
+    <th>PSML Element Selected</th>
+    </tr>
+    <tr>
+    <td>http://.../jetspeed/portal/page0.psml</td>
+    <td>.../_user/someone/page0.psml</td>
+    </tr>
+    <tr>
+    <td>http://.../jetspeed/portal/page1.psml</td>
+    <td>.../page0.psml</td>
+    </tr>
+    <tr>
+    <td>http://.../jetspeed/portal/page2.psml</td>
+    <td><b>Fails security test.</b></td>
+    </tr>
+    <tr>
+    <td>http://.../jetspeed/portal/hidden-page.psml</td>
+    <td>.../hidden-page.psml</td>
+    </tr>
+</table>
+The same Profile Locator is used to evaluate menu options. Here are several valid menu options paths and how they are resolved:
+<table>
+    <tr>
+    <th>Menu Options Page URIs</th>
+    <th>PSML Elements Included in Menu</th>
+    </tr>
+    <tr>
+    <td>/page0.psml</td>
+    <td>.../_user/someone/page0.psml</td>
+    </tr>
+    <tr>
+    <td>/page0.psml,/page1.psml</td>
+    <td>.../_user/someone/page0.psml,.../page1.psml</td>
+    </tr>
+    <tr>
+    <td>/*.psml</td>
+    <td>.../_user/someone/page0.psml,.../page1.psml</td>
+    </tr>
+    <tr>
+    <td>/*</td>
+    <td>.../_user/someone/page0.psml,.../page1.psml</td>
+    </tr>
+    <tr>
+    <td>/_user/someone/page0.psml</td>
+    <td><b>Not a valid Page URI.</b></td>
+    </tr>
+</table>
+Notes:
+<ul>
+    <li>Menu options attempting to use invalid Page URIs are ignored. Invalid URIs include those containing reserved folders such as '_user', '_role', etc. or other physical paths specific to the the Page Manager implementation.</li>
+    <li>Security constrained pages or folders cannot be referenced by requests and will not appear in menus.</li>
+    <li>Hidden pages and/or folders can be requested, but are not visible in menus. There is one exception for pages: a hidden page is considered visible if it is the request page.</li>
+</ul>
+</p>
+</section>
+
+</body>
+</document>

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-menus-declarative-psml.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,912 @@
+<?xml version="1.0"?>
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements.  See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version 2.0
+	(the "License"); you may not use this file except in compliance with
+	the License.  You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+-->
+<document>
+	<properties>
+		<title>Migration Guide</title>
+		<subtitle>Migration Guide</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+		    <person name="Ate Douma" email="ate@douma.nu" />
+		</authors>
+	</properties>
+	<body>
+      <section name="Data Migrating from Jetspeed 2.1.3 to 2.2">
+        <p>The following tables describe database schema changes from version 2.1.3 to version 2.2.</p>
+        <subsection name="Removed Tables">
+          <table>
+            <tr>
+              <th>Table</th>
+            </tr>
+            <tr>
+              <td>SECURITY_USER_ROLE</td>
+            </tr>
+            <tr>
+              <td>SECURITY_USER_GROUP</td>
+            </tr>
+            <tr>
+              <td>SECURITY_GROUP_ROLE</td>
+            </tr>
+            <tr>
+              <td>PREFS_NODE</td>
+            </tr>
+            <tr>
+              <td>PREFS_PROPERTY_VALUE</td>
+            </tr>
+          </table>
+        </subsection>
+        <subsection name="Added Tables">
+          <table>
+            <tr>
+              <th>Table</th>
+            </tr>
+            <tr>
+              <td>PORTLET_PREFERENCE</td>
+            </tr>
+            <tr>
+              <td>PORTLET_PREFERENCE_VALUE</td>
+            </tr>
+            <tr>
+              <td>SECURITY_ATTRIBUTE</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL_ASSOC</td>
+            </tr>
+          </table>
+        </subsection>            
+        <subsection name="Columns Altering">
+          <table>
+            <tr>
+              <th>Table</th>
+              <th>Column</th>
+              <th>Altering Action</th>
+              <th>2.1.3</th>
+              <th>2.2</th>
+            </tr>
+            <tr>
+              <td>PARAMETER</td>
+              <td>PARAMETER_VALUE</td>
+              <td>MODIFY</td>
+              <td>LONGVARCHAR, Required</td>
+              <td>LONGVARCHAR, Not required</td>
+            </tr>
+            <tr>
+              <td>PORTLET_ENTITY</td>
+              <td>ID</td>
+              <td>MODIFY</td>
+              <td>VARCHAR(255), Required</td>
+              <td>VARCHAR(80), Required</td>
+            </tr>
+            <tr>
+              <td>PORTLET_ENTITY</td>
+              <td>APP_NAME</td>
+              <td>MODIFY</td>
+              <td>VARCHAR(255), Required</td>
+              <td>VARCHAR(80), Required</td>
+            </tr>
+            <tr>
+              <td>PORTLET_ENTITY</td>
+              <td>PORTLET_NAME</td>
+              <td>MODIFY</td>
+              <td>VARCHAR(255), Required</td>
+              <td>VARCHAR(80), Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>CLASSNAME</td>
+              <td>DROP</td>
+              <td>VARCHAR(254), Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_MAPPING_ONLY</td>
+              <td>DROP</td>
+              <td>BOOLEANINT, Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_ENABLED</td>
+              <td>DROP</td>
+              <td>BOOLEANINT, Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>FULL_PATH</td>
+              <td>DROP</td>
+              <td>VARCHAR(254), Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>PRINCIPAL_TYPE</td>
+              <td>ADD</td>
+              <td></td>
+              <td>VARCHAR(20), Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>PRINCIPAL_NAME</td>
+              <td>ADD</td>
+              <td></td>
+              <td>VARCHAR(200), Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_MAPPED</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_ENABLED</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_READONLY</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td>
+              <td>IS_REMOVABLE</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PERMISSION</td>
+              <td>CLASSNAME</td>
+              <td>DROP</td>
+              <td>VARCHAR(254), Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PERMISSION</td>
+              <td>PERMISSION_TYPE</td>
+              <td>ADD</td>
+              <td></td>
+              <td>VARCHAR(30), Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_PERMISSION</td>
+              <td>CREATION_DATE</td>
+              <td>DROP</td>
+              <td>TIMESTAMP, Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_PERMISSION</td>
+              <td>MODIFIED_DATE</td>
+              <td>DROP</td>
+              <td>TIMESTAMP, Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_CREDENTIAL</td>
+              <td>COLUMN_VALUE</td>
+              <td>DROP</td>
+              <td>VARCHAR(254), Required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_CREDENTIAL</td>
+              <td>CREDENTIAL_VALUE</td>
+              <td>ADD</td>
+              <td></td>
+              <td>VARCHAR(254), Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_CREDENTIAL</td>
+              <td>CLASSNAME</td>
+              <td>DROP</td>
+              <td>VARCHAR(254), Not required</td>
+              <td></td>
+            </tr>
+            <tr>
+              <td>SECURITY_CREDENTIAL</td>
+              <td>UPDATE_ALLOWED</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+            <tr>
+              <td>SECURITY_CREDENTIAL</td>
+              <td>IS_STATE_READONLY</td>
+              <td>ADD</td>
+              <td></td>
+              <td>BOOLEANINT, Required</td>
+            </tr>
+          </table>
+        </subsection>
+        <subsection name="Added Indexes">
+          <table>
+            <tr>
+              <th>Table</th>
+              <th>Index</th>
+              <th>Type</th>
+              <th>Column(s)</th>
+            </tr>
+            <tr>
+              <td>SECURITY_PERMISSION</td> 
+              <td>UIX_SECURITY_PERMISSION</td> 
+              <td>unique</td> 
+              <td>PERMISSION_TYPE, NAME</td>                                                            
+            </tr>
+          </table>
+        </subsection>
+        <subsection name="Indexes Altering">
+          <table>
+            <tr>
+              <th>Table</th>
+              <th>Index</th>
+              <th>2.1.3 - Type</th>
+              <th>2.1.3 - Column(s)</th>
+              <th>2.2 - Type</th>
+              <th>2.2 - Column(s)</th>
+            </tr>
+            <tr>
+              <td>SECURITY_PRINCIPAL</td> 
+              <td>UIX_SECURITY_PRINCIPAL</td> 
+              <td>unique</td> 
+              <td>FULL_PATH</td>
+              <td>unique</td> 
+              <td>PRINCIPAL_TYPE, PRINCIPAL_NAME</td>
+            </tr>
+          </table>
+        </subsection>
+        <subsection name="Removed Foreign Key">
+            <table>
+                <tr>
+                    <th>Table</th>                
+                    <th>Name</th>
+                    <th>Column(s)</th>                    
+                    <th>Referencing table</th>
+                    <th>Referencing column(s)</th>
+                    <th>Cascade</th>
+                </tr>
+                <tr>
+                    <td>PORTLET_PREFERENCE_VALUE</td> 
+                    <td>FK_PORTLET_ENTITY</td>
+                    <td>ENTITY_ID</td>
+                    <td>PORTLET_ENTITY</td>
+                    <td>ID</td>
+                    <td>CASCADE DELETE</td>
+                </tr>
+            </table>
+        </subsection>                         
+      </section>    
+	  <section name="Data Migrating from Jetspeed 2.1.2 to 2.1.3">
+	    <p>The following tables describe database schema changes from version 2.1.2 to version 2.1.3.                                  
+	    </p>
+         <subsection name="Added Indexes">
+            <table>
+                <tr>
+                <th>Table</th>
+                <th>Index</th>                    
+                <th>type</th>                    
+                <th>column(s)</th>
+                </tr>
+                <tr>
+                 <td>PREFS_NODE</td> 
+                 <td>IX_PREFS_NODE_1</td> 
+                 <td>non unique</td> 
+                 <td>PARENT_NODE_ID</td>                                                            
+                </tr>
+                <tr>
+                 <td>PREFS_NODE</td> 
+                 <td>IX_PREFS_NODE_2</td> 
+                 <td>non unique</td> 
+                 <td>FULL_PATH</td>                                                            
+                </tr>                
+                <tr>
+                 <td>PREFS_PROPERTY_VALUE</td> 
+                 <td>IX_FKPPV_1</td> 
+                 <td>non unique</td> 
+                 <td>NODE_ID</td>                                                            
+                </tr>                
+                
+             </table>
+         </subsection>            
+         <subsection name="Foreign Key Altering">
+            <table>
+                <tr>
+                <th>Table</th>                
+                <th>Name</th>
+                <th>Column(s)</th>                    
+                <th>Referencing table</th>
+                <th>Referencing column(s)</th>
+                <th>2.1.2</th>
+                <th>2.1.3</th>                    
+                </tr>
+                <tr>
+                 <td>PREFS_NODE</td> 
+                 <td>FK_PREFS_NODE_1</td>
+                 <td>PARENT_NODE_ID</td> 
+                 <td>PREFS_NODE</td>                                                            
+                 <td>NODE_ID</td>                                                            
+                 <td>(not casade delete)</td>                                                            
+                 <td>CASCADE DELETE</td>                                                            
+                </tr>
+                <tr>
+                 <td>PREFS_PROPERTY_VALUE</td> 
+                 <td>(not named)</td> 
+                 <td>NODE_ID</td>
+                 <td>PREFS_NODE</td>
+                 <td>NODE_ID</td> 
+                 <td>(not casade delete)</td>                                                            
+                 <td>CASCADE DELETE</td>                                                            
+                </tr>                
+            </table>
+            </subsection>                         
+	  </section>	
+	  <section name="Data Migrating from Jetspeed 2.1 to 2.1.2">
+			<p>The following tables describe database schema changes from version 2.1 to version 2.1.2.                                  
+			</p>
+			<subsection name="Added Tables">
+				<table>
+					<tr>
+						<th>Table</th>
+					</tr>
+					<tr>
+						<td>ADMIN_ACTIVITY</td>
+					</tr>
+					<tr>
+						<td>USER_ACTIVITY</td>
+					</tr>                
+				</table>
+			</subsection>            
+		</section>	
+	 <section name="Configuration Migrating from Jetspeed 2.0 to 2.1">
+	  <p>The following items describe important functional changes in Jetspeed 2.1
+	  </p>
+	  <subsection name="Portlet API Caching">
+	  <p>Version 2.1 is the first Jetspeed version to support Portlet API Caching. In 2.0 the expiration-cache was set to -1 (infinity time) 
+	  for all layouts in the file WEB-INF\apps\jetspeed-layouts\WEB-INF\portlet.xml. When upgrading to version 2.1 or greater from 2.0, you will need 
+	  to update your database to disable portlet caching on the Jetspeed layouts. Updating the layouts can be achieved by either redeploying the jetspeed-layouts portlet application,
+	  or by updating your database as shown below (assuming the APPLICATION_ID value is 2) for the jetspeed-layouts application.
+<source><![CDATA[
+UPDATE PORTLET_DEFINITION P SET EXPIRATION_CACHE = 0 WHERE P.APPLICATION_ID = 2
+]]></source>
+	  </p>
+      </subsection>	  
+	  <subsection name="Portlet Preferences">
+	   <p>Portlet Preferences are now by default user specific on all pages. In Jetspeed 2.0, for shared pages, the Portlet Preferences were shared as well.</p>
+	   <p>To retain most of the old Jetspeed 2.0 behavior, allowing an administrator to still set/modify <i>initial</i> Preferences for other users,<br/> 
+	   modify the following setting in the registry.xml spring assembly configuration for the portletEntityAccessImpl component:
+	   <source>
+&lt;!-- 
+  All preferences were shared. With JS2-449, preferences are now
+  stored 'per user'. The username is stored in the preferences FULL_PATH
+  To turn on mergeSharedPreferences configure this property to true 
+  This will NOT turn off per user prefs, 
+  but instead merge with them, where user prefs override.
+  boolean
+--&gt;    
+&lt;constructor-arg type="boolean"&gt;
+&lt;value&gt;false&lt;/value&gt;
+&lt;/constructor-arg&gt;        
+	   </source>
+	   As is commented in the assembly configuration also, setting <i>mergeSharedPreferences</i> to <i>true</i> will <i>NOT</i> turn off per user Preferences.<br/>
+	   Once a user sets its own Preference values (if allowed), those will override the shared Preference values.<br/>
+	   See for further information: <a href="http://issues.apache.org/jira/browse/JS2-449" target="_blank">JS2-449</a>
+	   </p>
+	  </subsection>
+	 </section>  
+	 <section name="Data Migrating from Jetspeed 2.0 to 2.1">
+	    <p>The following tables describe database schema changes from version 2.0 to version 2.1.                                  
+		   </p>
+         <subsection name="Added Tables">
+            <table>
+                <tr>
+                <th>Table</th>
+                </tr>
+                <tr>
+                    <td>CUSTOM_PORTLET_MODE</td>
+                </tr>
+                <tr>
+                    <td>CUSTOM_WINDOW_STATE</td>
+                </tr>                
+            </table>
+         </subsection>            
+         <subsection name="Column Altering">
+            <table>
+                <tr>
+                <th>Table</th>
+                <th>Column</th>                    
+                <th>2.0</th>
+                <th>2.1</th>                    
+                </tr>
+                <tr>
+                 <td>PORTLET_STATISTICS</td> 
+                 <td>ELAPSED_TIME</td> 
+                 <td>INTEGER</td> 
+                 <td>BIGINT</td>                                                            
+                </tr>
+                <tr>
+                 <td>PAGE_STATISTICS</td> 
+                 <td>ELAPSED_TIME</td> 
+                 <td>INTEGER</td> 
+                 <td>BIGINT</td>                                                            
+                </tr>
+                <tr>
+                 <td>USER_STATISTICS</td> 
+                 <td>ELAPSED_TIME</td> 
+                 <td>INTEGER</td> 
+                 <td>BIGINT</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER</td> 
+                 <td>SKIN</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(80)</td>                                                            
+                </tr>
+                <tr>
+                 <td>FOLDER</td> 
+                 <td>DEFAULT_LAYOUT_DECORATOR</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(80)</td>                                                            
+                </tr>
+                <tr>
+                 <td>FOLDER</td> 
+                 <td>DEFAULT_PORTLET_DECORATOR</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(80)</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>STATE</td> 
+                 <td>VARCHAR(40)</td> 
+                 <td>VARCHAR(10)</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>PMODE</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(10)</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>LAYOUT_X</td> 
+                 <td></td> 
+                 <td>NEW: REAL</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>LAYOUT_Y</td> 
+                 <td></td> 
+                 <td>NEW: REAL</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>LAYOUT_Z</td> 
+                 <td></td> 
+                 <td>NEW: REAL</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>LAYOUT_WIDTH</td> 
+                 <td></td> 
+                 <td>NEW: REAL</td>                                                            
+                </tr>
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>LAYOUT_HEIGHT</td> 
+                 <td></td> 
+                 <td>NEW: REAL</td>                                                            
+                </tr>
+                <tr>
+                 <td>LINK</td> 
+                 <td>SKIN</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(80)</td>                                                            
+                </tr>
+                <tr>
+                 <td>PORTLET_DEFINITION</td> 
+                 <td>SECURITY_REF</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(40)</td>                                                            
+                </tr>
+                <tr>
+                 <td>PORTLET_DEFINITION</td> 
+                 <td>SECURITY_REF</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(40)</td>                                                            
+                </tr>
+                <tr>
+                 <td>PORTLET_APPLICATION</td> 
+                 <td>SECURITY_REF</td> 
+                 <td></td> 
+                 <td>NEW: VARCHAR(40)</td>                                                            
+                </tr>
+                <tr>
+                 <td>SSO_COOKIE</td> 
+                 <td>COOKIE</td> 
+                 <td>VARCHAR(250)</td> 
+                 <td>VARCHAR(1024)</td>                                                            
+                </tr>                
+            </table>
+            </subsection>                         
+         <subsection name="Index Altering">
+            <table>
+                <tr>
+                <th>Table</th>
+                <th>Index</th>                    
+                <th>2.0</th>
+                <th>2.1</th>                    
+                </tr>
+                <tr>
+                 <td>FOLDER_MENU</td> 
+                 <td>UN_FOLDER_MENU_1</td> 
+                 <td>unique</td> 
+                 <td>(non unique) index</td>                                                            
+                </tr>
+                <tr>
+                 <td>PAGE_MENU</td> 
+                 <td>UN_PAGE_MENU_1</td> 
+                 <td>unique</td> 
+                 <td>(non unique) index</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>UN_FRAGMENT_1</td> 
+                 <td>unique</td> 
+                 <td>(non unique) index</td>                                                            
+                </tr>                
+                
+             </table>
+         </subsection>            
+         <subsection name="Foreign Key Altering">
+            <table>
+                <tr>
+                <th>Table</th>
+                <th>Column</th>                    
+                <th>2.0</th>
+                <th>2.1</th>                    
+                </tr>
+                <tr>
+                 <td>FOLDER</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_1"</td>                                                            
+                </tr>
+                <tr>
+                 <td>FOLDER_METADATA</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_METADATA_1"</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER_CONSTRAINT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_CONSTRAINT_1"</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER_CONSTRAINTS_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_CONSTRAINT_REF_1"</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER_ORDER</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_ORDER_1"</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER_MENU</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_MENU_1"</td>                                                            
+                </tr>                
+                <tr>
+                 <td>FOLDER_MENU</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_MENU_2"</td>                                                            
+                </tr>                                
+                <tr>
+                 <td>FOLDER_MENU_METADATA</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FOLDER_MENU_METADATA_1"</td>
+                </tr>                                                
+                <tr>
+                 <td>PAGE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_1"</td>
+                </tr>                                                                
+                <tr>
+                 <td>PAGE_METADATA</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_METADATA_1"</td>
+                </tr>                                                                
+                <tr>
+                 <td>PAGE_CONSTRAINT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_CONSTRAINT_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_CONSTRAINT_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_CONSTRAINTS_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_MENU</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_MENU_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_MENU</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "PM_M_FK_PAGE_ID_PAGE"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_MENU_METADATA</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_MENU_METADATA_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_2"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT_CONSTRAINT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_CONSTRAINT_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT_CONSTRAINT_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_CONSTRAINT_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT_PREF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_PREF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>FRAGMENT_PREF_VALUE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_FRAGMENT_PREF_VALUE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>LINK</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_LINK_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>LINK_METADATA</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_LINK_METADATA_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>LINK_CONSTRAINT</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_LINK_CONSTRAINT_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>LINK_CONSTRAINT_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_LINK_CONSTRAINT_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_SECURITY</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_SECURITY_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_SEC_CONSTRAINTS_DEF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_SEC_CONSTRAINTS_DEF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_SEC_CONSTRAINT_DEF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_SEC_CONSTRAINT_DEF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_SEC_CONSTRAINTS_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_SEC_CONSTRAINTS_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PAGE_SEC_CONSTRAINT_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PAGE_SEC_CONSTRAINT_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>RULE_CRITERION</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_RULE_CRITERION_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PREFS_NODE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PREFS_NODE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PA_METADATA_FIELDS</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PA_METADATA_FIELDS_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PD_METADATA_FIELDS</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PD_METADATA_FIELDS_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>USER_ATTRIBUTE_REF</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_USER_ATTRIBUTE_REF_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>USER_ATTRIBUTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_USER_ATTRIBUTE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PRINCIPAL_PERMISSION</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PRINCIPAL_PERMISSION_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>PRINCIPAL_PERMISSION</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_PRINCIPAL_PERMISSION_2"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_CREDENTIAL</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_CREDENTIAL_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SSO_SITE_TO_PRINCIPALS</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "SSO_SITE_TO_PRINC_FK1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SSO_SITE_TO_PRINCIPALS</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "SSO_SITE_TO_PRINC_FK2"</td>
+                </tr>                                                                                                
+                <tr>
+                 <td>SSO_PRINCIPAL_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SSO_PRINCIPAL_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_2"</td>
+                </tr>                                                                                                
+                <tr>
+                 <td>SSO_SITE_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_SITE_TO_REMOTE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SSO_SITE_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_SITE_TO_REMOTE_2"</td>
+                </tr>                                                                                                
+                <tr>
+                 <td>SSO_COOKIE_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_COOKIE_TO_REMOTE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SSO_COOKIE_TO_REMOTE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SSO_COOKIE_TO_REMOTE_2"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_USER_ROLE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_USER_ROLE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_USER_ROLE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_USER_ROLE_2"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_USER_GROUP</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_USER_GROUP_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_USER_GROUP</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_USER_GROUP_2"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_GROUP_ROLE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_GROUP_ROLE_1"</td>
+                </tr>                                                                                
+                <tr>
+                 <td>SECURITY_GROUP_ROLE</td> 
+                 <td>(FK constraint)</td> 
+                 <td>(not named)</td> 
+                 <td>named FK constraint "FK_SECURITY_GROUP_ROLE_2"</td>
+                </tr>                                                                                
+            </table>
+            </subsection>                         
+            
+		</section>
+	</body>
+</document>
+

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-migration.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<document>
+  <properties>
+    <title>Guide to using NTLM Authentication</title>
+    <subtitle>How to configure NTLM authentication with an optional fallback authentication method.</subtitle>
+    <authors>
+      <person name="Dennis Dam" email="d.dam@hippo.nl" />
+    </authors>
+  </properties>
+  <body>
+    <section name="NTLM Authentication in Jetspeed">
+      <p>
+      NTLM Authentication can be used for Single Sign On (SSO) from a Windows client/browser. A nice explanation about NTLM can be found <a href="http://jcifs.samba.org/src/docs/ntlmhttpauth.html">here</a>.
+        Jetspeed-2 supports NTLM Authentication based on the <a href="http://jcifs.samba.org">jCIFS</a> Servlet filter. With the approach described below
+      you can use NTLM Authentication with an optional fallback to the default active authentication and as such this solution can be used as a drop-in replacement.
+      A typical application for a fallback login method would be when users log on to an intranet from a different domain: these users can
+      be redirected to a login screen.<br/>
+      The solution below can also be used as a replacement for the default Security Valve: 
+      if you don't configure the filters, then Jetspeed's default authorization will be applied.
+      </p>      
+    </section>
+    <section name="Configuring NTLM Authentication">
+      <p>
+        Jetspeed-2 security configuration is explained  
+        <a href="guide-security.html">
+          here
+        </a>
+        .
+      </p>
+      <subsection name="Configuring NTLM servlet filters">
+        <p>
+          The first step is to configure jCIFS NTLM HTTP Authentication, which is explained <a href="http://jcifs.samba.org/">here</a>.
+          You configure jCIFS as a filter in the web.xml of your webapp. Next, you must configure
+          a second Jetspeed servlet filter, which must be placed right <i>after</i> the jCIFS filter. An example configuration:
+        </p>
+        <source><![CDATA[
+<filter>
+  <filter-name>NtlmHttpFilter</filter-name>
+  <filter-class>jcifs.http.NtlmHttpFilter</filter-class>
+  <init-param>
+    <param-name>jcifs.smb.client.domain</param-name>
+    <param-value>SOME_DOMAIN</param-value>
+  </init-param>
+</filter>
+
+<filter>
+  <filter-name>NtlmHttpServletRequestFilter</filter-name>
+  <filter-class>org.apache.jetspeed.security.impl.ntlm.NtlmHttpServletRequestFilter</filter-class>
+  <init-param>
+    <param-name>org.apache.jetspeed.security.ntlm.ignoreUrls</param-name>
+    <param-value>/login/login</param-value>
+  </init-param>
+</filter>
+
+<filter-mapping>
+  <filter-name>NtlmHttpFilter</filter-name>
+  <url-pattern>/*</url-pattern>
+</filter-mapping>
+
+<filter-mapping>
+  <filter-name>NtlmHttpServletRequestFilter</filter-name>
+  <url-pattern>/*</url-pattern>
+</filter-mapping>]]></source>
+      </subsection>
+      <subsection name="Configuring NTLM Security Valve">
+        <p>
+          The above filters set the correct credentials on the request. To use these credentials, you
+          have to configure the <code>org.apache.jetspeed.security.impl.ntlm.NtlmSecurityValve</code> in the
+          Jetspeed pipelines you want to secure. This Valve can be used as a <i>replacement</i> for the default <code>SecurityValveImpl</code>. For explanation about how to set up pipelines, see
+          <a href="guide-pipeline.html">here</a>. An example of how to configure the NtlmSecurityValve bean:          
+        </p>
+        <source>
+        <![CDATA[
+<bean id="securityValve" class="org.apache.jetspeed.security.impl.ntlm.NtlmSecurityValve" init-method="initialize">
+  <constructor-arg>
+    <ref bean="org.apache.jetspeed.security.UserManager" />
+  </constructor-arg>
+  <!-- Network domain. This value is optionally stripped from the authenticated user name -->
+  <constructor-arg><value>SOME_DOMAIN</value></constructor-arg>
+  <!-- Omit domain in user principal -->
+  <constructor-arg><value>true</value></constructor-arg>
+  <!-- 
+     NTLM Authorization required. 
+     If set to true, only users authenticated by NTLM authentication will be authorized. 
+  -->
+  <constructor-arg><value>false</value></constructor-arg>
+</bean>]]></source>        
+      </subsection>
+    </section>
+  </body>
+</document>
\ No newline at end of file

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-ntlm.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements.  See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version 2.0
+	(the "License"); you may not use this file except in compliance with
+	the License.  You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+-->
+<document>
+	<properties>
+		<title>Jetspeed-2 Pipeline</title>
+		<subtitle>Documentation for Jetspeed-2 Pipeline</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Jetspeed-2 Pipeline">
+			<p>As described below, one of key component of the Jetspeed-2 portal engine is its request pipeline.
+			<br/><br/>
+			<img src="images/j2-overview.gif" border="0"/>
+			<br/>
+			In Jetspeed-2 request are processed through a series of <code>Valve</code> assembled together as a
+			pipeline.  For detailed information about Jetspeed-2 pipeline, 
+			<a href="../components/jetspeed-portal/pipeline.html">click here</a>.
+			</p>
+		</section>
+
+	</body>
+</document>
+

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-pipeline.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements.  See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version 2.0
+	(the "License"); you may not use this file except in compliance with
+	the License.  You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
+-->
+<document>
+	<properties>
+		<title>Jetspeed 2 Home Page</title>
+		<subtitle>Welcome to Jetspeed 2</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Welcome to Jetspeed-2">
+			
+		</section>
+	</body>
+</document>
\ No newline at end of file

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-assembly.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,175 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<document>
+  <properties>
+    <title>Guide to Portal Design</title>
+    <subtitle>Documentation for Designers working with Jetspeed Portal Design</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Portal Design Introduction">
+<p>
+The Java Portlet API (JSR-168) defines the Java standard interface for programming portlets. 
+The Java Portlet API specification enables interoperability between Portlets and Portals. 
+It is the standard specification for developing Java portlets. However the Java Portlet API
+does not define standards for laying out and aggregating portlets and markup on a page.
+The documentation here under "Portal Design" covers:
+<ul>
+  <li><a href='guide-psml.html'>Page Aggregation - see the section on PSML</a></li>    
+  <li><a href='guide-decorators.html'>Page and Portlet Decorators</a></li>    
+  <li><a href='guide-layouts.html'>Page Layouts</a></li>    
+  <li><a href='guide-jpt.html'>The Jetspeed Power Tool</a></li>    
+  <li><a href='guide-site.html'>The Site Content Model</a></li>        
+  <li><a href='#Template Locators'>Template Locators</a></li>          
+  <li><a href='#Terminology'>Terminology</a></li>          
+</ul>
+</p>
+</section>
+<section name='Templates'>
+<p>
+Rendering one or more portlets into a portlet page is largely made up of the process of aggregating
+portlets as dynamic content with templates. Jetspeed-2 makes use of Velocity templates in 
+creating a page layout. Although the Jetspeed-2 architecture fully supports the use of JSP templates for
+decorators and layouts, the developers thus far have chosen Velocity as the tool of choice for writing
+templates. There are two types of templates in Jetspeed: layouts and decorators. 
+The process of rendering a page is the combined aggregation of a layout template, 
+a page decorator template, a PSML definition, and one or more portlet decorator templates.
+</p>
+<subsection name='Layout Templates'>
+<p>
+Layout templates are packaged in special Jetspeed-specific and deployable portlet applications. 
+Layout templates control the overall aggregation of a portal page. Layout templates are 
+combined with portlets, providing a component model for aggregation. Jetspeed-2 comes out 
+of the box with several layout components including one, two and three column layouts. 
+See the <a href='layouts.html'>Layout Documentation</a> for all available Layouts in the 
+default Jetspeed-2 system. Of course you can define and derive your own layouts. 
+</p>
+</subsection>
+<subsection name='Decorators'>
+ <p>
+Decorator templates are packaged in special Jetspeed-specific and deployable archives. 
+Layout templates control the overall aggregation of a portal page. Layout templates are 
+combined with portlets, providing a component model for aggregation. Jetspeed-2 comes out 
+of the box with several layout components including one, two and three column layouts. 
+See the <a href='guide-decorators.html'>Decorator Documentation</a> for all available Layouts in the 
+default Jetspeed-2 system. Of course you can define and derive your own layouts. 
+</p>
+</subsection>
+</section>
+<section name='Template Locators'>
+<p>
+Templates are located by the Jetspeed Template (and Decorator) Locator Component. These components 
+locates templates using a normalized name/value pair URL scheme. 
+using this scheme in what is called a 'normalized' URL to either a decorator or layout.
+However, templating engines such as  Velocity need to work with templates using paths to templates that are
+relative of a document root. The <a href='guide-jpt.html'>Jetspeed Power Tool</a> facilitates conversion between normalized
+and relative paths. Typically in the Spring configuration, the template root of all decorators is defined as:
+<source test=""><![CDATA[
+${applicationRoot}/WEB-INF/decorations
+]]></source>
+and the root of all layouts (per portlet application) is defined as:
+<source test=""><![CDATA[
+${applicationRoot}/WEB-INF/templates
+]]></source>
+The Normalized Path is defined with named pair values. Examples:
+<source test=""><![CDATA[
+type/layout/media-type/html/name/tigris/decorator.vm
+type/decorator/media-type/html/language/en/country/US/name/metal/decorator.vm
+]]></source>
+<table>
+    <tr>
+        <th>Name</th>
+        <th>Value</th>
+        <th>Description</th>
+    </tr>
+    <tr>
+        <td>type</td>
+        <td>layout | portlet | generic</td>
+        <td>The type of template locator. Expected to be either one of the following values 
+            <b>layout</b>, <b>portlet</b> (decorator) or <b>generic</b> (decorator). Layouts can be for either page layouts 
+            or decorators. Generic type decorators can be used
+            for either portlets or page decorations.</td>
+    </tr>
+    <tr>
+        <td>media-type</td>
+        <td>html | wml | dhtml | ...</td>
+        <td>The markup media type to be located. Should be a valid media type (html, dhtml, wml...)</td>
+    </tr>
+    <tr>
+        <td>name</td>
+        <td>A valid decorator or layout name</td>
+        <td>The name of the decorator or layout. Usually corresponds to a 
+            sub-directory holding the decorator or layout templates, images and stylesheets.</td>
+    </tr>
+    <tr>
+        <td>language</td>
+        <td>A valid ISO-639 standard two-character language abbreviation</td>
+        <td>ISO-639 (http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt) defines a standard for language abbreviations.
+            Typical abbreviations are en for english, fr for french, de for German, ...</td>
+    </tr>
+    <tr>
+        <td>country</td>
+        <td>A valid ISO-3166 standard two-character country code abbreviation</td>
+        <td>ISO-3166 (http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html) defines a standard for country code abbreviations.
+            Typical abbreviations are US for United States, FR for France, ...</td>
+    </tr>
+    
+</table>
+
+</p>
+</section>
+
+<section name='Terminology'>
+<table>
+    <tr>
+        <th>
+            Term
+        </th>
+        <th>
+            Definition            
+        </th>
+    </tr>
+    <tr>
+        <td>
+            Layout
+        </td>
+        <td>
+Defines the fashion in which grouping of Fragments
+will organized relative to the final, aggregated
+content of a request to the portal. Layouts are defined by 
+a portlet which applies an algorithm to a template to 
+generate the aggregated content of a page. Typical
+algorithms are two column, three column, nested.           
+        </td>
+    </tr>
+    <tr>
+        <td>
+            TODO: left off here: 
+        </td>
+        <td>
+            fragment, decoration, page, page decorator, portlet decorator, 
+            application relative, normalized template path, absolute URL
+        </td>
+    </tr>    
+</table>
+</section>
+</body>
+</document>
+

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-portal-design.xml
------------------------------------------------------------------------------
    svn:keywords = Id



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message