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 [11/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/portle...
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-psml.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-psml.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-psml.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-psml.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,742 @@
+<?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>PSML</title>
+    <subtitle>Documentation for Designers working with PSML</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+      <person name="Randy Watler" email="rwatler@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="PSML">
+<ul>
+    <li><a href="#Page">Page</a></li>          
+    <ul>
+        <li><a href="#Layout_Fragments">Layout Fragments</a></li>    
+        <li><a href="#Portlet_Fragments">Portlet Fragments</a></li>    
+        <li><a href="#Fragment_Properties">Fragment Properties</a></li>
+        <li><a href="#Preferences">Portlet Preferences</a></li>
+    </ul>
+    <li><a href="#Folder">Folder</a></li>          
+    <li><a href="#Link">Link</a></li>          
+    <li><a href="#Global_Page_Security">Global Page Security</a></li>          
+    <li><a href="#PSML_Titles_and_Metadata">Titles and Metadata</a></li>
+    <li><a href="#PSML_Defaults">Defaults</a></li>     
+    <li><a href="#PSML_Security_Constraints">Security Constraints</a></li>        
+    <li><a href="#PSML_Menus">Menus</a></li>        
+    <li><a href="guide-psml-dtd.html#PSML_DTDs">PSML Document DTDs</a></li>        
+</ul>
+    
+<p>
+PSML is an acronym for Portal Structure Markup Language. It was created to allow content structure and abstraction within Jetspeed.
+PSML defines how portlets are aggregated, layed out, and decorated on a portal page. Note that page layout is not a part of the Java
+Portlet Standard API. Thus PSML is a Jetspeed-specific implementation. Also note that PSML in Jetspeed-2 is different from PSML in 
+Jetspeed-1. This document can be used as a reference guide to the elements of a PSML resource.
+</p>
+<p>
+PSML files also capture other portal site information related to pages, folders, links, and global security constraints.
+Each of these primary PSML elements are captured in separate documents arranged in a hierarchy of directories in the file system.
+Typically, this directory is accessed as a resource at /WEB-INF/pages within the jetspeed web application.
+</p>
+<p>
+Here is an example PSML file for a portal site <a href="#Page">page</a>, (*.psml):
+</p>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<page>
+  <!-- page info -->
+  <title>Welcome to Jetspeed 2</title>
+  <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata>
+  <metadata name="title" xml:lang="es">¡Bienvenido a Jetspeed 2!</metadata>
+  <metadata name="title" xml:lang="hu">Köszönti a Jetspeed 2!</metadata>
+
+  <!-- page decoration -->
+  <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/>
+
+  <!-- page fragments -->
+  <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn">
+    <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector">
+      <property layout="OneColumn" name="row" value="0"/>
+    </fragment>                                
+    <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
+      <property layout="OneColumn" name="row" value="1"/>
+      <property layout="TwoColumns" name="sizes" value="33%,66%"/>
+      <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet">
+        <property layout="TwoColumns" name="row" value="0"/>
+        <property layout="TwoColumns" name="column" value="0"/>
+      </fragment>                                
+      <fragment id="100171" type="portlet" name="demo::UserInfoTest">
+        <property layout="TwoColumns" name="row" value="0"/>
+        <property layout="TwoColumns" name="column" value="1"/>
+      </fragment>    
+    </fragment>
+  </fragment>
+
+  <!-- security constraints -->
+  <security-constraints>
+    <security-constraints-ref>public-view</security-constraints-ref>
+  </security-constraints>
+</page>
+]]></source>
+<p>
+Here is an example PSML file that defines portal site <a href="#Folder">folder</a>, (folder.metadata):
+</p>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<folder>
+  <!-- folder description -->
+  <title>Root Folder</title>  
+  <metadata name="title" xml:lang="fr">Répertoire racine</metadata>
+  <metadata name="title" xml:lang="es">Carpeta raiz</metadata>
+
+  <!-- default page decorations -->
+  <defaults layout-decorator="tigris" portlet-decorator="tigris"/>
+
+  <!-- order of documents in folder -->
+  <document-order>Jetspeed2.link</document-order>
+  <document-order>Jetspeed2Wiki.link</document-order>
+  <document-order>apache_portals.link</document-order>
+  <document-order>apache.link</document-order>
+
+  <!-- portal site menus -->
+  <menu name="page-navigations">
+    <separator>
+      <text>Top Pages</text>
+      <metadata name="text" xml:lang="fr">Page haut</metadata>
+      <metadata name="text" xml:lang="es">Páginas más populares</metadata>
+    </separator>
+    <options>/Administrative</options>
+    <separator>
+      <text>Profiled Pages</text>
+      <metadata name="text" xml:lang="es">Páginas del Perfil</metadata>
+    </separator>
+    <options regexp="true">/p[0-9][0-9][0-9].psml</options>
+    <separator>
+      <text>Non Java Pages</text>
+      <metadata name="text" xml:lang="es">Ejemplos sin java</metadata>
+    </separator>
+    <options>/non-java</options>
+  </menu>
+
+  <!-- security constraints -->
+  <security-constraints>
+    <security-constraints-ref>public-view</security-constraints-ref>
+  </security-constraints>
+</folder>
+]]></source>
+<p>
+Here is an example PSML file for a portal site <a href="#Link">link</a>, (*.link):
+</p>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<link target="top">
+  <!-- link description -->
+  <title>Jetspeed 2 Home Page</title>
+  <url>http://portals.apache.org/jetspeed-2/</url>
+  <metadata name="title" xml:lang="es">Jetspeed 2</metadata>
+</link>
+]]></source>
+<p>
+Here is an example PSML file for the portal site <a href="#Global_Page_Security">page security</a>, (page.security):
+</p>
+<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<page-security>
+  <!-- global admin constraints -->
+  <security-constraints-def name="admin">
+    <security-constraint>
+      <roles>admin</roles>
+      <permissions>view, edit</permissions>
+    </security-constraint>
+  </security-constraints-def>
+  <global-security-constraints-ref>admin</global-security-constraints-ref>
+
+  <!-- public constraints -->
+  <security-constraints-def name="public-view">
+    <security-constraint>
+      <users>*</users>
+      <permissions>view</permissions>
+    </security-constraint>
+  </security-constraints-def>
+  <security-constraints-def name="public-edit">
+    <security-constraint>
+      <users>*</users>
+      <permissions>view, edit</permissions>
+    </security-constraint>
+  </security-constraints-def>
+</page-security>
+]]></source>
+</section>
+<section name='Page'>
+<p>
+The &lt;page&gt; element is a simple container to hold other PSML elements associated with a portal site page.
+This element is persisted as a file with a '.psml' extension in the appropriate file system directory associated with the parent <a href="#Folder">folder</a>.
+There are two valid attributes for the page element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>hidden</td>
+    <td>A boolean attribute used to indicate that a page should not appear in portal site menus or other navigational elements.</td>
+    </tr>
+    <tr>
+    <td>version</td>
+    <td>A general purpose version tracking attribute. Not currently used by Jetspeed2.</td>
+    </tr>
+</table>
+<p>
+The &lt;page&gt; element contains a number of other PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Simple element containing text for the default page title. The title of the page 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, Jetspeed2 will attempt to define a title from the name of the file that contains the page element.</td>
+    </tr>
+    <tr>
+    <td>short-title?</td>
+    <td>Optional simple element containing text of the default short title for the page. 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="#PSML_Defaults">defaults?</a></td>
+    <td>Specifies the decorations for the page and its fragments. Optional defaults can be inherited from parent folders, but layout decorations are required for each page either specified explicitly or in a parent folder.</td>
+    </tr>
+    <tr>
+    <td><a href="#Layout_Fragments">fragment</a></td>
+    <td>The root of the fragment hierarchy. All pages require a root Fragment.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td>
+    <td>Optionally specifies locale specific titles and short titles for the page.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menus">menu</a>*</td>
+    <td>Optionally specifies additional or overrides inherited menu definitions for the page.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td>
+    <td>Optionally defines inline security constraints for the page. If not specified, the page inherits the security constraints effective in the parent <a href="#Folder">folder</a>.</td>
+    </tr>
+</table>
+<p>Example: <a href="#PSML">see intoductory examples above.</a></p>  
+</section>
+
+<section name='Layout Fragments'>
+<p>
+The <a href="#Page">page</a> layout &lt;fragment&gt; element is a hierarchical container used to hold <a href="#Portlet_Fragments">portlet fragments</a> and nested layout fragments.
+The root fragment of a <a href="#Page">page</a> must be a layout fragment, even when only one portlet fragment is part of the page.
+Layout fragments are subject to layout of the parent layout fragment and thus support the 'row' and 'column' <a href="#Fragment_Properties">layout properties</a>.
+In addition, they also support the 'sizes' layout property used to control multicolumn layout proportions.
+There are 3 required attributes for this element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>id</td>
+    <td>The required id is used to identify a fragment and <b>must</b> be unique across all fragments defined within the site. The value is opaque to Jetspeed2 and can follow any convention to guarantee uniqueness. Since fragments may be cached internally by Jetspeed2, any edits to exiting pages may require new ids to ensure the modifications are taken by Jetspeed2.</td>    
+    </tr>
+    <tr>
+    <td>type</td>
+    <td>This required attribute must be set to 'layout' for all layout fragments.</td>    
+    </tr>
+    <tr>
+    <td>name</td>
+    <td>The required name of the portlet used to implement the fragment layout. The portlet name generally takes the form of 'portlet-app-name:portlet-name' where portlet-app-name is the web context name, as specified in the portlet.xml files. Here are the supported Jetspeed2 layout portlet names:
+        <ul>
+            <li>jetspeed-layouts::FrameLayoutPortlet</li>
+            <li>jetspeed-layouts::VelocityOneColumn</li>
+            <li>jetspeed-layouts::VelocityOneColumnNoActions</li>
+            <li>jetspeed-layouts::VelocityThreeColumns</li>
+            <li>jetspeed-layouts::VelocityThreeColumnsNoActions</li>
+            <li>jetspeed-layouts::VelocityThreeColumnsTable</li>
+            <li>jetspeed-layouts::VelocityTwoColumns</li>
+            <li>jetspeed-layouts::VelocityTwoColumns2575</li>
+            <li>jetspeed-layouts::VelocityTwoColumns2575NoActions</li>
+            <li>jetspeed-layouts::VelocityTwoColumnsNoActions</li>
+            <li>jetspeed-layouts::VelocityTwoColumnsSmallLeft</li>
+            <li>jetspeed-layouts::VelocityTwoColumnsSmallLeftNoActions</li>
+            <li>jetspeed-layouts::VelocityTwoColumnsTable</li>
+        </ul>
+    </td>
+    </tr>
+</table>
+<p>
+The layout &lt;fragment&gt; element contains a number of other PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td><a href="#Portlet_Fragments">fragment*</a></td>
+    <td>Specified fragment elements can be either portlet fragments to be laid out by this layout fragment or nested layout fragments. All child fragments will have required <a href="#Fragment_Properties">property</a> elements to specify their positions in this layout. Specifying no fragments within a layout fragment will result in no content being generated.</td>
+    </tr>
+    <tr>
+    <td><a href="#Fragment_Properties">property*</a></td>
+    <td>Layout fragments can have an optional 'sizes' property that can be used to specify multicolumn layout proportions. Nested layout fragments may also have 'row' and/or 'column' properties to identify its positional location in the parent layout.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td>
+    <td>Optionally defines inline security constraints for the fragment and its child fragments. Unlike, page, folder, and link constraints, only 'view' permissions can be constrained. If not specified, the fragment inherits the security constraints effective in the <a href="#Page">page</a>.</td>
+    </tr>
+</table>
+<p>Example:</p>  
+<source><![CDATA[
+<page>
+  ...
+  <fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn">
+    <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector">
+      <property layout="OneColumn" name="row" value="0"/>
+    </fragment>                                
+    <fragment id="100345" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
+      <property layout="OneColumn" name="row" value="1"/>
+      <property layout="TwoColumns" name="sizes" value="33%,66%"/>
+      <fragment id="100121" type="portlet" name="j2-admin::LoginPortlet">
+        <property layout="TwoColumns" name="row" value="0"/>
+        <property layout="TwoColumns" name="column" value="0"/>
+      </fragment>                                
+      <fragment id="100171" type="portlet" name="demo::UserInfoTest">
+        <property layout="TwoColumns" name="row" value="0"/>
+        <property layout="TwoColumns" name="column" value="1"/>
+      </fragment>    
+    </fragment>
+  </fragment>
+  ...
+</page>
+]]></source>
+</section>
+
+<section name='Portlet Fragments'>
+<p>
+The portlet &lt;fragment&gt; element is used to identify portlets on the page. Portlet fragments are subject to layout of the parent layout fragment and thus support the 'row' and 'column' <a href="#Fragment_Properties">layout properties</a> as required by the layout.
+There are many valid attributes for this element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>id</td>
+    <td>The required id is used to identify a fragment and <b>must</b> be unique across all fragments defined within the site. The value is opaque to Jetspeed2 and can follow any convention to guarantee uniqueness. Since fragments may be cached internally by Jetspeed2, any edits to exiting pages may require new ids to ensure the modifications are taken by Jetspeed2.</td>    
+    </tr>
+    <tr>
+    <td>type</td>
+    <td>This required attribute must be set to 'portlet' for all portlet fragments.</td>    
+    </tr>
+    <tr>
+    <td>name</td>
+    <td>The required name of the portlet used to populate the fragment content. The portlet name generally takes the form of 'portlet-app-id:portlet-id' as specified in the portlet.xml files.</td>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>A general purpose decorator attribute that can be referenced in the portlet decorators to control fragment presentation. Not currently used by Jetspeed2.</td>    
+    </tr>
+    <tr>
+    <td>decorator</td>
+    <td>The name of the default portlet decorator used to render the fragments. This attribute is optional, but if it is not specified, the <a href="#PSML_Defaults">defaults</a> for the page must specify a default portlet decorator.</td>
+    </tr>
+    <tr>
+    <td>state</td>
+    <td>The initial state of the fragment portlet; 'hidden' is currently the only valid value for this attribute.</td>
+    </tr>
+</table>
+<p>
+The portlet &lt;fragment&gt; element contains other PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td><a href="#Fragment_Properties">property*</a></td>
+    <td>Parent fragments may have 'row' and/or 'column' properties to identify positional location in the parent layout.</td>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Optional simple text element containing title for fragment portlet, overridding titles set in portlet.xml.</td>
+    </tr>
+    <tr>
+    <td><a href="#Preferences">preference*</a></td>
+    <td>Specifies initial user preference settings for fragment portlet, overridding any portlet preferences set in portlet.xml. User preferences, in turn, override these values.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td>
+    <td>Optionally defines inline security constraints for the fragment. Unlike, page, folder, and link constraints, only 'view' permissions can be constrained. If not specified, the fragment inherits the security constraints effective in the <a href="#Page">page</a>.</td>
+    </tr>
+</table>
+<p>Example:</p>  
+<source><![CDATA[
+<fragment id="100393" type="layout" name="jetspeed-layouts::VelocityOneColumn">
+  ...
+  <fragment id="100939" type="portlet" name="j2-admin::LocaleSelector">
+    <property layout="OneColumn" name="row" value="0"/>
+  </fragment>                                
+  ...
+</fragment>
+]]></source>
+</section>
+
+<section name='Fragment Properties'>
+<p>
+The <a href="#Portlet_Fragments">fragment</a> &lt;property&gt; element is use to specify named properties for fragments. These properties are used commonly to specify layout portlet parameters and portlet positional location within the page. The property element has 3 supported attributes:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>layout <i>(deprecated)</i> </td>
+    <td>The symbolic name of the layout fragment portlet the property is associated with. This attribute is supported for compatibility reasons. The strictly hierarchical structure of layout and portlet fragments implies that any single fragment and its properties can be subject to one layout fragment portlet.</td>
+    </tr>
+    <tr>
+    <td>name</td>
+    <td>The fragment property name. Jetspeed2 layout portlets support the 'row', 'column' and 'sizes' properties.</td>
+    </tr>
+    <tr>
+    <td>value</td>
+    <td>The fragment property value. The 'row' and 'column' properties accept 0-based indicies values. The 'sizes' property accepts HTML frameset tag 'rows' and 'cols' attributes sytax, (i.e. '25%,75%').</td>    
+    </tr>
+</table>
+<p>Examples:</p>  
+<source><![CDATA[
+<fragment id="100876" type="portlet" name="j2-admin::LoginPortlet">
+  ...
+  <property layout="TwoColumns" name="row" value="2"/>
+  <property layout="TwoColumns" name="column" value="1"/>
+  ...
+</fragment>
+]]></source>
+<source><![CDATA[
+<fragment id="103456" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
+  ...
+  <property layout="TwoColumns" name="sizes" value="33%,66%"/>
+  ...
+</fragment>
+]]></source>
+</section>
+
+<section name='Preferences'>
+<p>
+The <a href="#Portlet_Fragments">portlet fragment</a> &lt;preference&gt; elements allow for the defining of default
+portlet preference values.  
+This provides an easier avenue for the setting of default portlet preferences for a portlet
+instance on a page without having to duplicate portlet definitions within
+the portlet application's portlet.xml.
+</p>
+<p>
+Preference precedence: User Defined > Fragment Defined > portlet.xml Defined.
+</p>
+<p>The &lt;preference&gt; element attributes:</p>  
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>name</td>
+    <td>The name of the preference.</td>
+    </tr>
+    <tr>
+    <td>readOnly</td>
+    <td>Boolean indicating whether or not the user can change the value of this preference.</td>
+    </tr>
+</table>
+<p>The &lt;preference&gt; element contains these elements:</p>  
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>value+</td>
+    <td>Simple text element containing a value associated with the named preference.</td>    
+    </tr>
+</table>
+<p>Example:</p>  
+<source><![CDATA[
+<fragment id="uhtemp-1012" type="portlet" name="demo::BookmarkPortlet">
+  ...
+  <preference name="Google" readOnly="false">
+    <value>http://www.google.com</value>
+  </preference>
+  ...
+</fragment>
+]]></source>
+</section>
+
+<section name='Folder'>
+<p>
+The &lt;folder&gt; element is a simple container to hold other PSML elements associated with a portal site folder.
+This element is persisted as a folder.metadata file in the associated file system directory.
+There are two valid attributes for the folder element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>hidden</td>
+    <td>A boolean attribute used to indicate that a folder should not appear in portal site menus or other navigational elements.</td>
+    </tr>
+    <tr>
+    <td>version</td>
+    <td>A general purpose version tracking attribute. Not currently used by Jetspeed2.</td>
+    </tr>
+</table>
+<p>
+The &lt;folder&gt; element contains a number of other PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Simple element containing text for the default folder title. The title of the folder 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, Jetspeed2 will attempt to define a title from the name of the file that contains the folder element.</td>
+    </tr>
+    <tr>
+    <td>short-title?</td>
+    <td>Optional simple element containing text of the default short title for the folder. 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="#PSML_Defaults">defaults?</a></td>
+    <td>Optionally specifies the decorations for the folder or subfolder pages and their fragments. Layout decorations are required for each page either specified explicitly in the individual pages or in a parent folder.</td>
+    </tr>
+    <tr>
+    <td>default-page?</td>
+    <td>Optional simple element containing text with the default page or subfolder name for the folder. The default page is used when the folder is directly referenced in the portal. The name of any <a href="#Page">page</a> or folder in this folder, (including '..' for the parent folder), can be specified. If no default page is set, the page named 'default-page.psml' will be used; if 'default-page.psml' does not exist, the first page in the folder will become the default.</td>
+    </tr>
+    <tr>
+    <td>document-order*</td>
+    <td>An optional collection of simple elements containing text names used to define a sort order for <a href="#Page">page</a>, subfolder, and <a href="#Link">link</a> members. Members with matching names will be arranged in the order these elements are defined. Other members will be sorted by their names and will appear in menus and other lists after the matching members. Regular expressions for name matching are not supported.</td>
+    </tr>
+
+    <tr>
+    <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td>
+    <td>Optionally specifies locale specific titles and short titles for the folder.</td>
+    </tr>
+    <tr>
+    <td><a href="#Menus">menu</a>*</td>
+    <td>Optionally specifies additional or overrides inherited menu definitions for the folder.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td>
+    <td>Optionally defines inline security constraints for the folder. If not specified, the folder inherits the security constraints effective in the parent folder.</td>
+    </tr>
+</table>
+<p>Example: <a href="#PSML">see intoductory examples above.</a></p>  
+</section>
+
+<section name='Link'>
+<p>
+The &lt;link&gt; element is a simple container to hold other PSML elements associated with a portal link used to reference content external to the portal site.
+This element is persisted as a file with a '.link' extension in the appropriate file system directory associated with the parent <a href="#Folder">folder</a>.
+There are three valid attributes for the link element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>target</td>
+    <td>An optional target frame name in which to open the external content. If not specified, the linked content will replace the portal in the browser.</td>
+    </tr>
+    <tr>
+    <td>version</td>
+    <td>A general purpose version tracking attribute. Not currently used by Jetspeed2.</td>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>A general purpose decorator attribute that can be referenced in the portlet decorators to control link presentation. <a href="#Menus">Menu</a> option elements for the link will adopt this skin value if not otherwise specified. Not currently used by Jetspeed2.</td>    
+    </tr>
+</table>
+<p>
+The &lt;link&gt; element contains a number of other PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>title?</td>
+    <td>Simple element containing text for the default link title. The title of the link 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, Jetspeed2 will attempt to define a title from the name of the file that contains the link element.</td>
+    </tr>
+    <tr>
+    <td>short-title?</td>
+    <td>Optional simple element containing text of the default short title for the link. 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>url</td>
+    <td>The required content url element. The text of this element will be used to navigate the specified target frame in the browser.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Titles_and_Metadata">metadata</a>*</td>
+    <td>Optionally specifies locale specific titles and short titles for the link.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints</a>?</td>
+    <td>Optionally defines inline security constraints for the link. If not specified, the link inherits the security constraints effective in the parent <a href="#Folder">folder</a>.</td>
+    </tr>
+</table>
+<p>Example: <a href="#PSML">see intoductory examples above.</a></p>  
+</section>
+
+<section name='Global Page Security'>
+<p>
+The &lt;page-security&gt; element is a simple container to hold other PSML elements used to declare global security constraints and their definitions..
+This element is persisted as the page.security file and is always located in the root directory of the PSML file system directories.
+There is only one valid attribute for the page security element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>version</td>
+    <td>A general purpose version tracking attribute. Not currently used by Jetspeed2.</td>
+    </tr>
+</table>
+<p>
+The &lt;page-security&gt; element contains two security constraints related PSML elements:
+</p>
+<table>
+    <tr>
+    <th>Element</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">security-constraints-def</a>*</td>
+    <td>Optionally defines a collection of security constraints defined by name. These security constraints are referenced in <a href="#Page">pages</a>, <a href="#Layout_Fragments">fragments</a>, <a href="#Folder">folders</a>, and <a href="#Link">links</a> and in this element to facilitate reuse and security maintenance.</td>
+    </tr>
+    <tr>
+    <td><a href="#PSML_Security_Constraints">global-security-constraints-ref</a>*</td>
+    <td>Optionally defines security constraints references to be applied to all security constraints in the site. The text of each simple element references a named security constraints definition specified here in this element.</td>
+    </tr>
+</table>
+<p>Example: <a href="#PSML">see intoductory examples above.</a></p>  
+</section>
+
+<section name='PSML Titles and Metadata'>
+<p>
+The <a href="#Page">page</a>, <a href="#Folder">folder</a>, and <a href="#Link">link</a> &lt;metadata&gt; element is used to define locale specific title and short title text.
+Any number of these elements may appear within a containing PSML element, but multiple named values should not be specified for a single locale.
+The PSML xml documents are normally declared with the UTF-8 encoding to support a wide variety of character sets.
+</p>
+<table>
+    <tr>
+    </tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    <tr>
+    <td>name</td>
+    <td>Name of the metadata text. This name should be either 'title' or 'short-title' to specify locale specific title text.</td>
+    </tr>
+    <tr>
+    <td>xml:lang</td>
+    <td>The locale language or language/country selector for the metadata text. The conventional Java Locale names are expected, (ISO-639 and ISO-3166). Valid values would include 'en' and 'en_US'.</td>
+    </tr>
+</table>
+<p>Example:</p>  
+<source><![CDATA[
+<page>
+  ...
+  <metadata name="title" xml:lang="fr">Ma Premiere Page de PSML</metadata>
+  <metadata name="title" xml:lang="es">¡Bienvenido a Jetspeed 2!</metadata>
+  <metadata name="title" xml:lang="hu">Köszönti a Jetspeed 2!</metadata>
+  ...
+</page>
+]]></source>
+</section>
+
+<section name='PSML Defaults'>
+<p>
+The <a href="#Page">page</a> and <a href="#Folder">folder</a> &lt;defaults&gt; element defines the default layout
+decorator and default portlet decorator. The default layout decorator is applied to all top level layout fragments
+which do NOT have a decorator attribute. The default portlet decorator is applied to all portlet fragments which do NOT
+have a decorator attribute. Defaults may be inherited from parent folder default elements. There are three valid
+attributes on the defaults element:
+</p>
+<table>
+    <tr>
+    <th>Attribute</th>
+    <th>Description</th>
+    </tr>
+    <tr>
+    <td>layout-decorator</td>
+    <td>The name of the layout decorator used to render the page. This attribute is required, but may be inherited from a parent folder..</td>
+    </tr>
+    <tr>
+    <td>portlet-decorator</td>
+    <td>The name of the default portlet decorator used to render the page fragments. This attribute is optional, but is almost always set. This attribute too may be inherited from parent folders.</td>
+    </tr>
+    <tr>
+    <td>skin</td>
+    <td>A general purpose decorator attribute that can be referenced in the decorators to control page and folder presentation. <a href="#Menus">Menu</a> option elements for the page and folder will adopt this skin value if not otherwise specified. Not currently used by Jetspeed2.</td>    
+    </tr>
+</table>
+<p>Example:</p>  
+<source><![CDATA[
+<page>
+  ...
+  <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris"/>
+  ...
+</page>
+]]></source>
+</section>
+
+<section name="PSML Security Constraints">
+<p>
+The &lt;security-constraints&gt;, &lt;security-constraints-def&gt;, and &lt;global-security-constraints-ref&gt; elements that appear in <a href="#Page">pages</a>, <a href="#Layout_Fragments">fragments</a>, <a href="#Folder">folders</a>, <a href="#Link">links</a>, and the <a href="#Global_Page_Security">page security</a> elements above are documented separately in the the Declarative Security Constraints Guide.
+</p>
+<p>
+<a href='guide-security-declarative-psml.html'>Declarative Security Constraints Guide</a>
+</p>
+</section>
+
+<section name="PSML Menus">
+<p>
+The &lt;menu&gt; element that appears in <a href="#Page">page</a> and <a href="#Folder">folder</a> elements above are documented separately in the the Declarative Menus Guide.
+</p>
+<p>
+<a href='guide-menus-declarative-psml.html'>Declarative Menus Guide</a>
+</p>
+</section>
+
+</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security-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-security-declarative-psml.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security-declarative-psml.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security-declarative-psml.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,347 @@
+<?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 Security through PSML</title>
+    <subtitle>Guide to Declarative Security through PSML</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+      <person name="Randy Watler" email="rwatler@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Security Constraints">
+<p>
+<ul>
+	<li><a href="#The Security Constraint">Security Constraint</a></li>	      
+	<li><a href="#Declarative and Global Constraints">Declarative and Global Constraints</a></li>	 
+    <li><a href="#Folder Constraints">Folder Constraints</a></li>
+    <li><a href="#Page Constraints">Page Constraints</a></li>    
+    <li><a href="#Fragment Constraints">Fragment Constraints</a></li>    
+    <li><a href="#Spring Configuration">Spring Configuration</a></li>    
+    <li><a href="guide-psml-dtd.html#PSML_DTDs">PSML Document DTDs</a></li>        
+</ul>
+</p>
+<p>
+Security Constraints are applied to pages and folders.  Security Constraints either grant or deny 
+access to pages and folders.  Constraints can be defined in one or all of these four places:
+<ul>
+    <li>1. <b>Global:</b> As declarations in the <b><i>page.security</i></b> file found in the root of the PSML tree.</li>
+    <li>2. <b>Folder:</b> In the <b><i>folder.metadata</i></b> file optionally located in every directory.</li>    
+    <li>3. <b>Page:</b> In PSML files to constrain access to specific pages.</li>
+    <li>4. <b>Fragment:</b> In page PSML files to constrain access to a specific fragment within a page.</li>
+</ul>
+</p>
+<subsection name='Grants'>
+<p>
+Grants are associated with permissions, authorizing, or granting, a principal list 
+access to a page or folder.    
+A granting security constraint is the association of a list of one 
+or more security principals combined with one or more permissions. Grant constraints grant access to a page or folder
+for the associated list of permissions. 
+</p>
+</subsection>
+<subsection name='Denies'>
+<p>
+A deny security constraint is declared 
+with one or more security principals; with no associated permissions. Deny constraints prohibit access
+to the page or folder for the given list of principals. Note that deny constraints
+must be listed before grant constraints.
+</p>
+</subsection>
+<subsection name='Declarative and Referential Constraints'>
+<p>
+When working with pages and folder resource constraints, a constraint can be either 
+a <b><i>declarative constraint</i></b> or a <b><i>referential</i></b> constraint.
+Declarative constraints are declared and put to use right in place for the particular
+page or folder resource. Where as referential constraints refer to a constraint declared
+in a centralized security constraint resource: the <b><i>page.security</i></b> file. Each
+site or subsite can have one <b><i>page.security</i></b> resource for declaring constraints
+to be referenced in any page or folder.
+</p>
+</subsection>
+</section>
+<section name='The Security Constraint'>
+<p>
+A security constraint is an XML element found in a PSML file, a folder metadata file, or in the global security declarations.
+A security constraint has one attribute: the name. A security constraint has the following elements:
+</p>
+<ul>
+    <li>roles - a comma-separated list of one or more role principals or * for all roles</li>
+    <li>groups - a comma-separated list of one or more group principals or * for all groups</li>
+    <li>users - a comma-separated list of one or more user principals or * for all users</li>
+    <li>owner - a single user principal</li>
+    <li>permissions - a comma-separated list of one or permissions (view,edit,help)</li>
+</ul>    
+<p>
+The first four elements (roles, groups, users, owner) all define the principals who will either have a permission granted or denied.
+</p>
+<subsection name='Permissions'>
+<p>
+Permissions are the portal modes that are granted by the security constraint. Note that permissions are only granted, not denied.
+The <b><i>view</i></b> permission is similiar to the <b><i>read</i></b> permission found in operating systems.
+The <b><i>edit</i></b> permission is similiar to the <b><i>write</i></b> permission found in operating systems.
+The <b><i>help</i></b> permission is similiar to the <b><i>info</i></b> permission found in some portals.
+</p>
+</subsection>
+
+<subsection name='Roles'>
+<p>
+Constraints can be granted to one or more role principals for a set of permissions on a given resource.
+Roles are derived from the authorized users list of role principals, i.e. the roles that the user is a member of.
+If the authorized user is a member of any of the listed roles, the permission to the resource will be granted.
+</p>
+<source><![CDATA[
+    <security-constraint>
+      <roles>adminstrator, manager</roles>    
+      <permissions>view, edit</permissions>
+    </security-constraint>
+]]></source>
+Constraints can also deny role principals access to the entire resource.
+If the authorized user is a member of any of the listed roles, all access to the resource is denied.
+<source><![CDATA[
+    <security-constraint>
+      <roles>adminstrator, manager</roles>    
+    </security-constraint>
+]]></source>
+</subsection>
+<subsection name='Groups'>
+    <p>
+Constraints can be granted to one or more group principals for a set of permissions on a given resource.
+Groups are derived from the authorized users list of group principals, i.e. the groups that the user is a member of.
+If the authorized user is a member of any of the listed groups, the permission to the resource will be granted.
+<source><![CDATA[
+    <security-constraint>
+      <groups>accounting, development</groups>    
+      <permissions>view</permissions>
+    </security-constraint>
+]]></source>
+Constraints can also deny group principals access to the entire resource.
+If the authorized user is a member of any of the listed groups, all access to the resource is denied.
+<source><![CDATA[
+    <security-constraint>
+      <groups>accounting, development</groups>    
+    </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Users'>
+    <p>
+Constraints can be granted to one or more user principals for a set of permissions on a given resource:
+The current user must be one of the listed principals in the comma-separated list in order to grant permission to the resource.
+<source><![CDATA[
+    <security-constraint>
+      <users>joey, deedee, johnny</users>    
+      <permissions>view, edit, help</permissions>
+    </security-constraint>
+]]></source>
+Constraints can also deny user principals access to the entire resource.
+If the authorized user is in the list, all access to the resource is denied.
+<source><![CDATA[
+    <security-constraint>
+      <users>fred</users>    
+    </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Combinations'>
+<p>
+Note that you can grant or deny permissions to a collection of one or more principal types. For example, here we grant view and edit permissions
+to the roles (manager, developer), and to the groups (QA and Research), and to the particular user (dilbert):
+If the authorized user is a member of any of the listed roles, groups, or users, the permission to the resource will be granted.
+</p>
+<source><![CDATA[
+    <security-constraint>
+      <roles>hacker, coder, guru</roles>    
+      <groups>unix, linux, freebsd</groups>
+      <users>betty, fred, barney, wilma</users>      
+      <permissions>view, edit</permissions>
+    </security-constraint>
+]]></source>
+<p>
+Constraints can also deny combinations of principals access to the entire resource.
+If the authorized user is a member of any of the listed groups, roles or users, all access to the resource is denied.
+</p>
+<source><![CDATA[
+    <security-constraint>
+      <roles>hacker, coder, guru</roles>    
+      <groups>unix, linux, freebsd</groups>
+      <users>betty, fred, barney, wilma</users>      
+    </security-constraint>
+]]></source>
+</subsection>
+<subsection name='All *'>
+<p>
+The * can be applied to roles, groups, users or permissions to imply ALL.
+<source><![CDATA[
+    <security-constraint>
+      <users>*</users>      
+      <permissions>*</permissions>
+    </security-constraint>
+]]></source>
+</p>
+</subsection>
+<subsection name='Owner'>
+    <p>
+    TODO
+    </p>
+</subsection>
+</section>
+<section name='Declarative and Global Constraints'>
+<p>
+Declarative constraints are declared in the <b><i>page.security</i></b> file of the root of a site.
+Declarative constraints are referenced in pages and folders with the <b><i>security-constraints-ref</i></b> tag.
+Global constraints are also declarative constraints. They are also defined and found in the <b><i>page.security</i></b> file in the root PSML repository.
+The difference with global constraints is that they implicitly apply to all folders and pages within the scope of the page.security file, (i.e. the site).
+Note that there can be only one <b><i>page.security</i></b> file in a Jetspeed installation.
+</p>
+<source><![CDATA[
+  <security-constraints-def name="admin">
+    <security-constraint>
+      <roles>admin</roles>
+      <permissions>view, edit</permissions>
+    </security-constraint>
+  </security-constraints-def>
+  <global-security-constraints-ref>admin</global-security-constraints-ref>
+]]></source>
+<subsection name='Default Constraints'>
+<p>
+    Several security constraint declarations are made in the default deployment of Jetspeed:
+<table>
+    <tr>
+        <th>name</th>
+        <th>grants</th>
+        <th>permissions</th>        
+        <th>global</th>
+    </tr>
+    <tr>
+        <td>admin</td>
+        <td>roles: admin</td>
+        <td>view, edit</td>        
+        <td>yes</td>
+    </tr>
+    <tr>
+        <td>manager</td>
+        <td>roles: manager</td>
+        <td>view</td>        
+        <td>no</td>
+    </tr>
+    <tr>
+        <td>users</td>
+        <td>roles: user, manager</td>
+        <td>view</td>        
+        <td>no</td>        
+    </tr>
+    <tr>
+        <td>public-view</td>
+        <td>users: *</td>
+        <td>view</td>        
+        <td>no</td>        
+    </tr>
+    <tr>
+        <td>public-edit</td>
+        <td>users: *</td>
+        <td>view, edit</td>        
+        <td>no</td>        
+    </tr>    
+</table>    
+</p>    
+</subsection>
+</section>
+<section name='Folder Constraints'>
+<p>
+Folder Security constraints are placed in a <b><il>security-constraints list</il></b> in the <b><i>folder.metadata</i></b> file optionally found in each folder in the site.
+Note that the absence of a <b><i>folder.metadata</i></b> or security constraints within that file means that the folder will
+inherit the constraints of the parent folder, all the way up to the root folder of the site or subsite. Folder constraints do
+not inherit across subsites. Folder security constraints are made up of declarative security constraints and referential security
+constraints. Here is an example of both, the first being a referential constraint, the second a declarative constraint:
+<source><![CDATA[
+  <security-constraints>
+    <security-constraints-ref>public-view</security-constraints-ref>
+    <security-constraint>
+      <groups>engineering</groups>
+      <permissions>view</permissions>
+    </security-constraint>    
+  </security-constraints>
+]]></source>
+</p>
+<p>
+Note that all security constraints must be placed within a <b><i>security-constraints</i></b> collection.
+</p>
+</section>
+<section name='Page Constraints'>
+<p>
+Page Security constraints are placed <b><il>security-constraints list</il></b> 
+in <b><i>PSML</i></b> files and are optional.
+Note that the absence of a  security constraints list within that file means that the folder will
+inherit the constraints of the folder in which it resides.  Page security constraints are made up of 
+declarative security constraints and referential security
+constraints. Here is an example of both, the first being a referential constraint, the second a declarative constraint:
+</p>
+<source><![CDATA[
+  <security-constraints>
+    <security-constraints-ref>global-view</security-constraints-ref>
+    <security-constraint>
+      <groups>accounting</groups>
+      <permissions>view, edit</permissions>
+    </security-constraint>    
+  </security-constraints>
+]]></source>
+<p>
+Note that all security constraints must be placed within a <b><i>security-constraints</i></b> collection.
+</p>
+</section>
+<section name='Fragment Constraints'>
+<p>
+As with Page Security constraints, Fragment Security constraints are placed within
+<b><il>security-constraints list</il></b> in <b><i>PSML</i></b> page files and are
+again optional. As expected, the absence of a security constraints list implies the
+fragment will inherit the constraints of the page of which it is a part. Note that
+only the view permission is checked against these constraints. Other permissions
+are tested only against the containing page.
+</p>
+</section>
+<section name="Spring Configuration">
+<p>
+Declarative Security Constraints are enabled by default in the Spring configuration of the
+Page Manager component. Here is the default Page Manager bean configuration from the
+<b><i>page-manager.xml</i></b> spring assembly configuration file:
+</p>
+<source><![CDATA[
+  <bean id="org.apache.jetspeed.page.PageManager" 
+       name="pageManager"
+       class="org.apache.jetspeed.page.psml.CastorXmlPageManager">         
+       <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
+       <constructor-arg index="1"><ref bean="DocumentHandlerFactory"/></constructor-arg>
+       <constructor-arg index="2"><ref bean="FolderHandler"/></constructor-arg>
+       <constructor-arg index="3"><ref bean="PageFileCache"/></constructor-arg>        
+       <!-- permissions security enabled flag, default=false -->
+       <constructor-arg index="4"><value>false</value></constructor-arg>
+       <!-- constraints security enabled flag, default=true -->
+       <constructor-arg index="5"><value>true</value></constructor-arg>
+  </bean>
+]]></source>
+<p>
+Here the 6th, (index="5"), boolean constructor argument specifies whether or
+not the "constraints security" model is enabled. If the Declarative Security Constraints
+are not enabled, all inline, referenced, and global security constraints will be ignored. 
+</p>
+</section>
+
+</body>
+</document>

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-security.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,67 @@
+<?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 Security</title>
+		<subtitle>Security Configuration Overview</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Configuring Jetspeed-2 Security">
+			<p>
+				An overview of Jetspeed-2 security architecture is
+				available
+				<a href="../components/jetspeed-security/arch.html">
+					here
+				</a>
+				.
+			</p>
+			<subsection name="Guide to Authentication Configuration">
+				<p>
+					Jetspeed-2 provides a
+					<a
+						href="../components/jetspeed-security/login-module.html">
+						LoginModule implementation
+					</a>
+					that leverage the security SPI model to interact
+					with multiple authentication mechanisms.
+				</p>
+				<p>
+					Jetspeed authentication configuration is managed by the <i>security-spi-atn.xml</i> located in 
+					the <a href="guide-portal-assembly.html">portal application assembly directory</a>.  Jetspeed-2
+					supports authentication against:
+					<ul>
+						<li>A <a href="../components/jetspeed-security/config.html#security-spi-atn_xml">relational database</a> (default authentication implementation).</li>
+						<li>A <a href="../components/jetspeed-security/ldap.html">LDAP authentication</a> implementation.</li>
+				    </ul>
+				</p>
+			</subsection>
+			<subsection name="Guide to Authorization Configuration">
+				<p>
+					Jetspeed-2 provides a <a href="http://portals.apache.org/jetspeed-2/components/jetspeed-security/atz-jaas.html">relational database backed JAAS policy implementation</a>.
+				</p>
+				<p>
+					Jetspeed-2 authorization implementation relies on a SPI model as well and is configured through <code>security-spi-atz.xml</code>.
+					Configuration details are available <a href="../components/jetspeed-security/config.html">here</a>.
+				</p>
+			</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-security.xml
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-jsf-portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-jsf-portlet.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-jsf-portlet.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-jsf-portlet.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,202 @@
+<?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 Simple JSF Portlet Guide</title>
+		<subtitle>Documentation for Creating a Simple JSF Portlet</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+			<person name="Philip Mark Donaghy" email="philip.donaghy@gmail.com" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Jetspeed Simple JSF Portlet Guide">
+			<p>
+				This guide provides a tutorial for creating a very
+				simple JSF portlet with one template in the portlet view mode.
+			</p>
+			<subsection name="1. The Portlet Class">
+				<p>
+				Create the file JSFSimplest.java in a directory called
+				jsf-simplest/WEB-INF/classes:
+				<source>
+public class JSFSimplest extends org.apache.portals.bridges.jsf.FacesPortlet
+{
+
+    public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)
+                throws javax.portlet.PortletException, java.io.IOException
+    {
+        super.doView(request, response);
+    }
+}
+				</source>
+				</p>
+				<p>
+				Compile the class in the jsf-simplest/WEB-INF/classes directory using the command,
+				<source>
+javac -cp portlet-api-1.0.jar:portals-bridges-jsf-1.0.jar:portals-bridges-common-1.0.jar JSFSimplest.java
+				</source>
+				</p>
+			</subsection>
+			<subsection name="2. The portlet.xml">
+			<p>
+			Create the file portlet.xml in the jsf-simplest/WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<portlet-app id="jsfsimplest" version="1.0">
+  <portlet id="JSFSimplest">
+    <portlet-name>JSFSimplestPortlet</portlet-name>
+    <display-name>JSF Simplest Display Name</display-name>
+    <portlet-class>JSFSimplest</portlet-class>
+    <init-param>
+        <name>ViewPage</name>
+        <value>/WEB-INF/view/view.jsp</value>
+    </init-param>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <supported-locale>fr</supported-locale>
+    <portlet-info>
+      <title>JSF Simplest Title</title>
+      <short-title>JSF Simplest Short Title</short-title>
+    </portlet-info>
+  </portlet>
+</portlet-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="3. The web.xml">
+			<p>
+			Create the file web.xml in the jsf-simplest/WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+                         "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+  <display-name>JSF Simplest</display-name>
+  <description>The world's simplest JSF portlet</description>
+
+  <!-- Faces Config -->
+  <context-param>
+    <param-name>javax.faces.application.CONFIG_FILES</param-name>
+    <param-value>/WEB-INF/faces-config.xml</param-value>
+  </context-param>
+
+  <!-- Faces Servlet -->
+  <servlet>
+    <servlet-name>Faces Servlet</servlet-name>
+    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+  </servlet>
+
+  <!-- Faces extension mapping -->
+  <servlet-mapping>
+    <servlet-name>Faces Servlet</servlet-name>
+    <url-pattern>*.jsf</url-pattern>
+  </servlet-mapping>
+</web-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="4. The View">
+			<p>
+                        Create the view.jsp file in the jsf-simplest/WEB-INF/view directory.
+<source><![CDATA[
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix='portlet'%>
+<portlet:defineObjects/>
+<f:view>
+   <h2>A JSF Portlet</h2>
+   Hello
+   <% if ( renderRequest.getUserPrincipal() == null ) { %>
+   guest
+   <% } else { %>
+   <%=renderRequest.getUserPrincipal().getName()%>
+   <% } %>!
+</f:view>]]>
+</source>
+			</p>
+			</subsection>
+			<subsection name="5. The faces-config.xml">
+			<p>
+                        Create a faces-config.xml file in the jsf-simplest/WEB-INF directory.
+<source><![CDATA[
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE faces-config PUBLIC
+  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+
+<faces-config>
+
+  <application>
+    <locale-config>
+      <default-locale>en</default-locale>
+      <supported-locale>fr</supported-locale>
+    </locale-config>
+  </application>
+
+</faces-config>]]>
+</source>
+			</p>
+			</subsection>
+			<subsection name="6. The Dependency JARs">
+			<p>
+                        Copy the dependencies to the WEB-INF/lib directory. 
+                        These jars should be in your Maven repository. If so executing these commands in the lib
+                        directory will set up the dependencies for you.
+<source>
+ln -s ~/.maven/repository/commons-beanutils/jars/commons-beanutils-1.7.0.jar
+ln -s ~/.maven/repository/commons-collections/jars/commons-collections-3.1.jar
+ln -s ~/.maven/repository/commons-digester/jars/commons-digester-1.7.jar
+ln -s ~/.maven/repository/myfaces/jars/myfaces-api-1.1.0.jar
+ln -s ~/.maven/repository/myfaces/jars/myfaces-impl-1.1.0.jar
+ln -s ~/.maven/repository/myfaces/jars/tomahawk-1.1.0.jar
+ln -s ~/.maven/repository/org.apache.portals.bridges/jars/portals-bridges-jsf-1.0.jar
+ln -s ~/.maven/repository/xerces/jars/xerces-2.4.0.jar
+ln -s ~/.maven/repository/xml-apis/jars/xml-apis-2.0.2.jar
+</source>
+			</p>
+			</subsection>
+			<subsection name="7. The WAR file">
+			<p>
+			From the directory jsf-simplest combine the files above into a war file using the command,
+			<source>
+jar cvf ../jsfsimplest.war .
+			</source>
+			</p>
+			</subsection>
+			<subsection name="8. Deploy the WAR file">
+			<p>
+			Copy the war file to <code>$CATALINA_HOME/webapps/jetspeed/WEB-INF/deploy</code>.
+                        Jetspeed-2 will deploy the webapp.
+			</p>
+			</subsection>
+			<subsection name="9. The PSML">
+			<p>
+                        Create the PSML page using the Jetspeed portlet chooser. Login and click on the
+                        edit page icon. Click on the add portlet icon.
+                        Checkbox and add the JSFSimplestPortlet to your page.
+                        Your user must have the permission to edit pages. The user <code>admin</code>
+                        password
+                        <code>admin</code> has permission to edit all pages.
+			</p>
+			</subsection>
+		</section>
+	</body>
+</document>

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-portlet.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-portlet.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-portlet.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,152 @@
+<?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 Simple Portlet Guide</title>
+		<subtitle>Documentation for Creating a Simple Portlet</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+			<person name="Philip Mark Donaghy" email="philip.donaghy@gmail.com" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Jetspeed Simple Portlet Guide">
+			<p>
+				This guide provides a tutorial for creating a very
+				simple portlet. Portlets developers should follow the
+				steps below.
+			</p>
+			<subsection name="1. The Portlet Class">
+				<p>
+				Create the file Simplest.java in a directory called
+				simplest/WEB-INF/classes:
+				<source>
+public class Simplest extends javax.portlet.GenericPortlet
+{
+    public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)
+                throws javax.portlet.PortletException, java.io.IOException
+    {
+            response.setContentType("text/html");
+            response.getWriter().println("A very simple portlet.");
+    }
+}
+				</source>
+				</p>
+				<p>
+				Compile the class using the command,
+				<source>
+javac -cp $CATALINA_HOME/shared/lib/portlet-api-1.0.jar Simplest.java
+				</source>
+				</p>
+			</subsection>
+			<subsection name="2. The portlet.xml">
+			<p>
+			Create the file portlet.xml in the simplest/WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<portlet-app id="simplest" version="1.0">
+  <portlet id="Simplest">
+    <portlet-name>Simplest</portlet-name>
+    <display-name>Simple Display Name</display-name>
+    <portlet-class>Simplest</portlet-class>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <portlet-info>
+      <title>Simple Title</title>
+      <short-title>The world's simplest portlet</short-title>
+    </portlet-info>
+  </portlet>
+</portlet-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="3. The web.xml">
+			<p>
+			Create the file web.xml in the simplest WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+                         "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+  <display-name>Simplest</display-name>
+  <description>The world's simplest portlet</description>
+</web-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="4. The WAR file">
+			<p>
+			From the directory simplest combine the files above into a war file using the command,
+			<source>
+jar cvf ../simplest.war .
+			</source>
+			</p>
+			</subsection>
+			<subsection name="5. Deploy the WAR file">
+			<p>
+			Copy the war file to <code>$CATALINA_HOME/webapps/jetspeed/WEB-INF/deploy</code>. Jetspeed-2
+			will deploy the webapp.
+			</p>
+			</subsection>
+			<subsection name="6. The PSML">
+			<p>
+			Create the file simplest.psml and copy it to the
+                        <code>$CATALINA_HOME/webapps/jetspeed/WEB-INF/pages</code> 
+                        directory of your Jetspeed Portal.
+			The portlet-app id and the portlet-name are combined to identify the portlet fragment.
+                        Alternatively one can use the portlet chooser by clicking on the edit page icon.
+                        Your user must have the permission to edit pages. The user <code>admin</code> password
+                        <code>admin</code> has permission to edit all pages. The user <code>user</code>
+                        password <code>user</code> has permission to edit the
+                        <a href="http://localhost:8080/jetspeed/portal/anotherdir">[USER 004] PSML Page</a>.
+                        And by default Jetspeed-2 allows newly registered users to add portlets and customize 
+                        their home page.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?> 
+ <page> 
+  <defaults
+     skin="orange"
+     layout-decorator="tigris"
+     portlet-decorator="tigris"
+  />
+  <title>The simplest portlet in the world</title>
+  <metadata name="title" xml:lang="fr">La plus simple portlet du monde</metadata>
+
+  <fragment id="simplest" type="layout" name="jetspeed-layouts::VelocityTwoColumns">
+    <fragment id="simplest-1" type="portlet" name="simplest::Simplest">
+      <property layout="TwoColumns" name="row" value="0" />
+      <property layout="TwoColumns" name="column" value="0" />
+    </fragment>
+  </fragment>
+
+  <security-constraints>
+    <security-constraints-ref>public-view</security-constraints-ref>
+  </security-constraints>
+</page>]]>
+			</source>
+                        Test the portlet using the
+                        <a href="http://localhost:8080/jetspeed/portal/simplest.psml">simplest.psml</a> in
+                        your browser.
+			</p>
+			</subsection>
+		</section>
+	</body>
+</document>

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-velocity-portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-velocity-portlet.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-velocity-portlet.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-simple-velocity-portlet.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>Jetspeed Simple Velocity Portlet Guide</title>
+		<subtitle>Documentation for Creating a Simple Velocity Portlet</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+			<person name="Philip Mark Donaghy" email="philip.donaghy@gmail.com" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Jetspeed Simple Velocity Portlet Guide">
+			<p>
+				This guide provides a tutorial for creating a very
+				simple Velocity portlet with one template in the portlet view mode.
+			</p>
+			<subsection name="1. The Portlet Class">
+				<p>
+				Create the file VelocitySimplest.java in a directory called
+				velocity-simplest/WEB-INF/classes:
+				<source>
+public class VelocitySimplest extends org.apache.portals.bridges.velocity.GenericVelocityPortlet
+{
+
+    public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)
+                throws javax.portlet.PortletException, java.io.IOException
+    {
+        super.doView(request, response);
+    }
+}
+				</source>
+				</p>
+				<p>
+				Compile the class in the velocity-simplest/WEB-INF/classes directory using the command,
+				<source>
+javac -cp portlet-api-1.0.jar:portals-bridges-velocity-1.0.jar:portals-bridges-common-1.0.jar VelocitySimplest.java
+				</source>
+				</p>
+			</subsection>
+			<subsection name="2. The portlet.xml">
+			<p>
+			Create the file portlet.xml in the velocity-simplest/WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<portlet-app id="velocitysimplest" version="1.0">
+  <portlet id="VelocitySimplest">
+    <portlet-name>VelocitySimplest</portlet-name>
+    <display-name>Velocity Simplest Display Name</display-name>
+    <portlet-class>VelocitySimplest</portlet-class>
+    <init-param>
+        <name>ViewPage</name>
+        <value>/WEB-INF/view/world.vm</value>
+    </init-param>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <portlet-info>
+      <title>Velocity Simplest Title</title>
+      <short-title>Velocity Simplest Short Title</short-title>
+    </portlet-info>
+  </portlet>
+</portlet-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="3. The web.xml">
+			<p>
+			Create the file web.xml in the velocity-simplest/WEB-INF directory.
+			<source><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+                         "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+  <display-name>Velocity Simplest</display-name>
+  <description>The world's simplest Velocity portlet</description>
+
+  <!-- Define Velocity Servlet -->
+  <servlet>
+    <servlet-name>velocity</servlet-name>
+    <servlet-class>org.apache.portals.bridges.velocity.BridgesVelocityViewServlet</servlet-class>
+  </servlet>
+
+  <!-- Map *.vm files to Velocity  -->
+  <servlet-mapping>
+    <servlet-name>velocity</servlet-name>
+    <url-pattern>*.vm</url-pattern>
+  </servlet-mapping>
+
+</web-app>]]>
+			</source>
+			</p>
+			</subsection>
+			<subsection name="4. The View">
+			<p>
+                        Create the world.vm file in the velocity-simplest/WEB-INF/view directory. Put
+                        whatever content
+                        you desire in it. Notice that the template file is defined in the portlet init
+                        parameter <code>
+                        ViewPage</code>. The objects <a href="http://portals.apache.org/pluto/multiproject/portlet-api/apidocs/javax/portlet/PortletConfig.html">PortletConfig</a>, <a href="http://portals.apache.org/pluto/multiproject/portlet-api/apidocs/javax/portlet/RenderRequest.html">RenderRequest</a>, and <a href="http://portals.apache.org/pluto/multiproject/portlet-api/apidocs/javax/portlet/RenderResponse.html">RenderResponse</a>
+                        are automatically
+                        placed in the Velocity context for use in Velocity templates. Here is a sample
+                        template showing a few of these objects methods and properties.
+<source>
+$portletConfig.portletName
+$portletConfig.portletContext.serverInfo
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+$renderRequest.portletMode
+$renderResponse.namespace
+</source>
+			</p>
+			</subsection>
+			<subsection name="5. The Dependency JARs">
+			<p>
+                        Copy the commons-beanutils-1.7.0.jar, commons-collections-3.1.jar,
+                        commons-digester-1.7.jar, portals-bridges-velocity-1.0.jar,
+                        velocity-1.4.jar, and velocity-tools-1.1.jar to the velocity-simplest/WEB-INF/lib
+                        directory. IMPORTANT: 
+                        Do NOT put the portlet-api-1.0.jar in the war file. If you have already built
+                        Jetspeed these
+                        jars should be in your Maven repository. If so executing these commands in the lib
+                        directory will set up the dependencies for you.
+<source>
+ln -s ~/.maven/repository/commons-beanutils/jars/commons-beanutils-1.7.0.jar
+ln -s ~/.maven/repository/commons-collections/jars/commons-collections-3.1.jar
+ln -s ~/.maven/repository/commons-digester/jars/commons-digester-1.7.jar
+ln -s ~/.maven/repository/org.apache.portals.bridges/jars/portals-bridges-velocity-1.0.jar
+ln -s ~/.maven/repository/velocity/jars/velocity-1.4.jar
+ln -s ~/.maven/repository/velocity-tools/jars/velocity-tools-1.1.jar
+</source>
+			</p>
+			</subsection>
+			<subsection name="6. The WAR file">
+			<p>
+			From the directory velocity-simplest combine the files above into a war file using the command,
+			<source>
+jar cvf ../velocitysimplest.war .
+			</source>
+			</p>
+			</subsection>
+			<subsection name="7. Deploy the WAR file">
+			<p>
+			Copy the war file to <code>$CATALINA_HOME/webapps/jetspeed/WEB-INF/deploy</code>.
+                        Jetspeed-2 will deploy the webapp.
+			</p>
+			</subsection>
+			<subsection name="8. The PSML">
+			<p>
+                        Create the PSML page using the Jetspeed portlet chooser. Login and click on the
+                        edit page icon.
+                        Your user must have the permission to edit pages. The user <code>admin</code>
+                        password
+                        <code>admin</code> has permission to edit all pages.
+			</p>
+			</subsection>
+		</section>
+	</body>
+</document>

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-site.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-site.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-site.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-site.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,36 @@
+<?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>Site</title>
+    <subtitle>Documentation for Designers working with a Jetspeed-2 Site</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Site">
+<p>
+TODO: talk about components of a site i.e. pages, folders, fragments, decorators, layouts, folder metadata,
+links, PSML, document sets.
+</p>
+</section>
+
+</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-sso.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-sso.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-sso.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-sso.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,44 @@
+<?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 Single Sign On</title>
+    <subtitle>Documentation for Jetspeed-2 SSO (Single Sign On)</subtitle>
+    <authors>
+      <person name="Roger Ruttimann" email="rogerrut@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Single Sign On (SSO)">
+<p>
+Jetspeed 2 provides a Single-Sign-On component for storing credentials for a protected site which can be an URL or application.  Please visit the <a href="../components/jetspeed-sso/index.html">Jetspeed-2 Single Sign On</a>
+sub project documentation.
+</p>
+<p>
+The SSO feature includes three main components:
+<ul>
+	<li>The SSO Provider service which handles the backend operations <a href="../components/jetspeed-sso/index.html">SSO Provider</a></li>
+	<li>The SSO Management Portlet <a href="../components/jetspeed-sso/index.html">SSO Admin Portlet</a></li>
+	<li>The SSO Proxy Portlet <a href="../components/jetspeed-sso/index.html">SSO Proxy Portlet</a></li>
+</ul>
+</p>
+</section>
+
+</body>
+</document>
+

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

Propchange: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-sso.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