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 [8/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-components.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-components.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-components.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-components.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,246 @@
+<?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 Jetspeed-2 Component Architecture</title>
+		<subtitle>Guide to Jetspeed-2 Component Architecture</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Guide to Jetspeed-2 Component Architecture">
+		<p>
+		The Jetspeed-2 architecture is build on a component architecture where as defined by 
+	    <a href="http://www.martinfowler.com/articles/injection.html">Martin Fowler</a>:
+		<pre>
+    By the term component, I mean a glob of software that's intended to be used, 
+    without change, by application that is out of the control of the writers of 
+    the component. By 'without change' I mean that the using application doesn't 
+    change the source code of the components, although they may alter the component's 
+    behavior by extending it in ways allowed by the component writers.</pre>
+		</p>
+		<p>
+		Jetspeed-2 uses dependency injection as a programming design pattern and architectural model 
+		to establish a level of abstraction via a public interface, and to remove dependency on the components' implementation.
+		The architecture unites the components rather than the components linking themselves or being linked together.
+		Dependency injection is a pattern in which responsibility for object creation and object linking is removed 
+		from the objects themselves and transferred to a factory.
+		Dependency injection therefore is obviously inverting the control for object creation and linking, 
+		and can be seen to be a form of Inversion of Controls(IoC).
+		</p>
+		<subsection name="Jetspeed-2 and Component Frameworks">
+		<p>
+		Jetspeed-2 leverages the <a href="http://www.springframework.org">Spring Framework</a> as its default component framework.
+		However, Jetspeed-2 provides an architecture in which the component framework can easily be replaced by alternative
+		component frameworks such as <a href="http://www.picocontainer.org/">Pico</a>.
+		</p>
+		<p>
+		Jetspeed-2 component framework assembly is configured and implemented in <i>JetspeedServlet</i>:<br/><br/>
+		<img src="images/jetspeedservlet-c.gif" border="0"/>
+		</p>
+		<p>
+		The <code>JetspeedServlet</code> is configured in the portal application <i>web.xml</i> to load at startup.  The <code>initializeComponentManager</code>
+		method loads the <a href="guide-portal-assembly.html">assembly</a> for the given component framework.  The default implementation
+		of <code>initializeComponentManager</code> supports the <a href="http://www.springframework.com">spring framework</a> as a component framework
+		and assembles the xml files located under <code>WEB-INF/assembly</code> to initialize the spring engine.  The <i>JetspeedEngine</i> is then
+		constructed with the proper component manager.
+		<source>
+  engine = new JetspeedEngine(properties, applicationRoot, config,
+      initializeComponentManager(config, applicationRoot, properties));
+		</source>
+		</p>
+		<p>
+		In order to support another component framework, developers should override the <code>initializeComponentManager</code> implementation.
+		</p>
+		</subsection>
+		<subsection name="Jetspeed-2 Core Components">
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Capabilities - Artifact Id: jetspeed-capability</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-capability/index.html"><code>Capabilities</code></a></td>
+            <td>The <code>Capabilities</code> components maps clients to supported mime types and media types.
+            It creates a <code>CapabilityMap</code> that is used through the portal engine to render the
+            portal content for the targetted client.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Component Manager - Artifact Id: jetspeed-cm</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-cm/index.html"><code>ComponentManager</code></a></td>
+            <td>The <code>ComponentManager</code> provides a generic layer of abstraction on top of the component framework
+            being used.  The default <code>ComponentManager</code> implementation in Jetspeed-2 is the 
+            <code>SpringComponentManager</code>.  More information can be found in the 
+            <a href="../components/jetspeed-cm/index.html"><code>ComponentManager</code> documentation</a>.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Deploy Tools - Artifact Id: jetspeed-deploy-tools</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-deploy-tools/deploy-tools.html"><code>JetspeedDeploy</code></a></td>
+            <td><code>JetspeedDeploy</code> prepares portlet applications prior to being deployed in Jetspeed-2.  More information can be found in the 
+            <a href="../components/jetspeed-deploy-tools/deploy-tools.html"><code>JetspeedDeploy</code> documentation</a>.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-deploy-tools/index.html"><code>DeploymentManager</code></a></td>
+            <td>The <code>DeploymentManager</code> listens for new portal assets (portlets, decorators) to be deployed.  An overview of how deployment
+            works in Jetspeed-2 can be found <a href="../components/jetspeed-deploy-tools/index.html">here</a>.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Portal - Artifact Id: jetspeed-portal</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-portal/pipeline.html"><code>Pipeline</code></a></td>
+            <td>The <code>Pipeline</code> orchestrates the <code>Valve</code> that are performing atomic operation on a
+            Jetspeed-2 request.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Preferences - Artifact Id: jetspeed-prefs</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-prefs/index.html"><code>PreferencesProvider</code></a></td>
+            <td>The <code>PreferencesProvider</code> exposes Jetspeed-2 implementation of the <code>java.util.Preferences</code> API.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 RDBMS - Artifact Id: jetspeed-rdbms</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-rdbms/index.html"><code>ConnectionRepositoryEntry</code></a></td>
+            <td>The <code>ConnectionRepositoryEntry</code> exposes Jetspeed-2 implementation of the <code>java.util.Preferences</code> API.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-rdbms/dao.html"><code>InitablePersistenceBrokerDaoSupport</code></a></td>
+            <td><code>InitablePersistenceBrokerDaoSupport</code> provides data access and persistence support for Jetspeed-2.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Security - Artifact Id: jetspeed-security</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-security/arch.html"><code>DefaultLoginModule</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>RdbmsPolicy</code></a><br/></td>
+            <td>Jetspeed-2 default implementation for <a href="http://java.sun.com/products/jaas/">JAAS services</a>.  Jetspeed-2 leverages JAAS as 
+            a generic security standard framework to expose security functionality to the portal engine.  The JAAS services
+            leverage Jetspeed-2 coarsed grained services for which specific implementations are provided through Jetspeed-2 security SPI.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-security/arch.html"><code>UserManager</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>RoleManager</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>GroupManager</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>PermissionManager</code></a></td>
+            <td>Coarsed grained security components exposing Jetspeed-2 security management APIs.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-security/arch.html"><code>UserSecurityHandler</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>CredentialHandler</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>GroupSecurityHandler</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>RoleSecurityHandler</code></a><br/>
+            <a href="../components/jetspeed-security/arch.html"><code>SecurityMappingHandler</code></a></td>
+            <td>Fined grained Jetspeed-2 security SPI components exposing a specific implementation to the Jetspeed-2
+            security engine.  This mechanism provides a flexible framework for supporting multiple security implementation
+            without having to impact the higher level security services.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Search - Artifact Id: jetspeed-search</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-search/index.html"><code>SearchEngine</code></a></td>
+            <td><code>SearchEngine</code> provides the integration with the <a href="http://lucene.apache.org/">Apache Lucene</a> search
+            engine.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-search/index.html"><code>HandlerFactory</code></a></td>
+            <td>The <code>HandlerFactory</code> exposes the documents handlers to the <code>SearchEngine</code>.</td>
+          </tr>
+		</table><br/>
+		<table>
+          <tr>
+          	<th colspan="2">Jetspeed-2 Statistics - Artifact Id: jetspeed-statistics</th>
+          </tr>
+          <tr>
+            <th>Component Name</th>
+            <th>Description</th>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-statistics/index.html"><code>PortalStatistics</code></a></td>
+            <td><code>PortalStatistics</code> exposes the Jetspeed-2 data collection API for data collection and data
+            retrieval.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-statistics/index.html"><code>BatchedStatistics</code></a></td>
+            <td><code>BatchedStatistics</code> is responsible for the batch collection of statistics data given
+            a time to flush period.</td>
+          </tr>
+          <tr>
+            <td><a href="../components/jetspeed-statistics/aggregation.html"><code>AggregateStatistics</code></a><br/>
+            <a href="../components/jetspeed-statistics/aggregation.html"><code>StatisticsQueryCriteria</code></a></td>
+            <td><code>AggregateStatistics</code> interacts with the <code>PortalStatistics</code> component to provide
+            aggregate portal data for a specific event and search criteria provided by <code>StatisticsQueryCriteria</code>.</td>
+          </tr>   
+		</table>
+		</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-components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-database.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-database.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-database.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-database.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,273 @@
+<?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 Database Configuration</title>
+		<subtitle>Welcome to Jetspeed 2</subtitle>
+		<authors>
+			<person name="David Sean Taylor" email="taylor@apache.org" />
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+			<person name="Ron Wheeler"
+				email="rwheeler@artifact-software.com" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Default Database">
+			<p>
+				The default database distributed with Jetspeed-2 is the
+				Apache Derby database. To move on to a more robust
+				database, follow the instructions in the next section.
+			</p>
+		</section>
+        <section name='Supported Databases'> 
+        <p>List of supported databases:</p>
+        <table>
+            <tr>
+                <th>Database Name</th>
+                <th>Build Constant</th>                
+                <th>Tested Versions</th>
+            </tr>
+            <tr>
+                <td>IBM DB2</td>
+                <td>db2</td>                
+                <td>9.1</td>
+            </tr>
+            <tr>
+                <td>Apache Derby, IBM Cloudscape</td>
+                <td>derby</td>
+                <td>10.1</td>
+            </tr>
+            <tr>
+                <td>Hypersonic SQL (HSQL)</td>
+                <td>hsql</td>
+                <td>1.8</td>
+            </tr>
+            <tr>
+                <td>Microsoft SQL Server</td>
+                <td>mssql</td>
+                <td>2000, 2005</td>
+            </tr>
+            <tr>
+                <td>MySQL</td>
+                <td>mysql</td>
+                <td>4.*, 5.*</td>
+            </tr>
+            <tr>
+                <td>Oracle</td>
+                <td>oracle</td>
+                <td>9i, 10g</td>
+            </tr>
+            <tr>
+                <td>PostgreSQL</td>
+                <td>postgres</td>
+                <td>8.*</td>
+            </tr>                            
+            <tr>
+                <td>SAP DB, MaxDB</td>
+                <td>sapdb</td>
+                <td>7.5</td>
+            </tr>
+        </table>            
+        </section>
+		<section name="MySQL">
+			<p>
+				To run with My SQL, add the following properties to your
+				$HOME/build.properties:
+			</p>
+			<source test="">
+				<![CDATA[
+
+# -------------------------------------------------------------------------
+# configure MySQL Test DB (only needed when running unit tests)
+# -------------------------------------------------------------------------
+org.apache.jetspeed.test.database.default.name=mysql
+org.apache.jetspeed.test.database.url = jdbc:mysql://j2-server/j2test
+org.apache.jetspeed.test.database.driver = com.mysql.jdbc.Driver
+org.apache.jetspeed.test.database.user = jetspeed2
+org.apache.jetspeed.test.database.password = whatever
+# -------------------------------------------------------------------------
+# configure MySQL Production DB
+# -------------------------------------------------------------------------
+org.apache.jetspeed.production.database.default.name=mysql
+org.apache.jetspeed.production.database.url = jdbc:mysql://j2-server/j2
+org.apache.jetspeed.production.database.driver = com.mysql.jdbc.Driver
+org.apache.jetspeed.production.database.user = jetspeed2
+org.apache.jetspeed.production.database.password = whatever
+# -------------------------------------------------------------------------
+
+]]>
+			</source>
+			<p>
+				In the example above, you will need to have a MySQL
+				server running on a host named 'j2-server' with a
+				database called 'j2' for production.
+				<br />
+				If you are going to run the unit tests you will also
+				need an additional test database called 'j2test'.
+				<br />
+				A user named 'jetspeed2' should be granted access to
+				both the 'j2' and 'j2test' databases.
+			</p>
+
+			<subsection name="MySQL Known Issues">
+				<p>None</p>
+			</subsection>
+
+		</section>
+        
+		<section name="Oracle">
+			<p>
+				To run with Oracle, add the following properties to your
+				$HOME/build.properties:
+			</p>
+
+			<source test="">
+				<![CDATA[
+
+# -------------------------------------------------------------------------
+# configure Oracle Test DB (only needed when running unit tests)
+# -------------------------------------------------------------------------
+# org.apache.jetspeed.test.database.default.name=oracle
+# org.apache.jetspeed.test.database.ojb.platform=oracle9i
+# org.apache.jetspeed.test.database.url = jdbc:oracle:thin:@j2-sever:1521:j2db
+# org.apache.jetspeed.test.database.driver = oracle.jdbc.driver.OracleDriver
+# org.apache.jetspeed.test.database.user = j2test
+# org.apache.jetspeed.test.database.password = whatever
+# -------------------------------------------------------------------------
+# configure Oracle Production DB
+# -------------------------------------------------------------------------
+# org.apache.jetspeed.production.database.default.name=oracle
+# org.apache.jetspeed.production.database.ojb.platform=oracle9i
+# org.apache.jetspeed.production.database.url = jdbc:oracle:thin:@j2-server:1521:j2db
+# org.apache.jetspeed.production.database.driver = oracle.jdbc.driver.OracleDriver
+# org.apache.jetspeed.production.database.user = j2
+# org.apache.jetspeed.production.database.password = whatever
+# -------------------------------------------------------------------------
+
+]]>
+			</source>
+			<p>
+				In the example above, you will need to have a Oracle
+				server running on a host named 'j2-server' and have an
+				Oracle database SID named 'j2db' installed on that
+				server. Also, you will need a database user (schema)
+				called 'j2' for production usage.
+				<br />
+				If you are going to run the unit tests you will need an
+				additional user called 'j2test'.
+			</p>
+
+			<subsection name="Oracle Known Issues">
+				<p>
+					Only for the first time you create the database for
+					Oracle, there is an issue with the drop statements.
+					To get around this problem, set your properties as
+					above in your $HOME/build.properties, and then run
+					these commands using the
+					<a href="j2-maven-plugin.html">
+						Jetspeed 2 Maven plugin
+					</a>
+					:
+				</p>
+				<source test="">
+					<![CDATA[
+
+maven j2:db.scripts.gen
+maven j2:dropdrops
+maven j2:db.create.test (only when running unit tests)
+maven j2:db.create.production
+
+]]>
+				</source>
+			</subsection>
+
+		</section>
+
+		<section name="Drivers">
+			<p>
+				JDBC drivers are configured to work with the Maven build
+				by adding your specified JDBC driver jars to the Maven
+				class path. Specify the jars with the
+				<b>org.apache.jetspeed.test.jdbc.drivers.path</b>
+				and
+				<b>org.apache.jetspeed.production.jdbc.drivers.path</b>
+				properties in your $HOME/build.properties.
+			</p>
+			<p>
+				NOTE: The Derby JDBC driver is distributed with
+				Jetspeed and require no configuration.
+			</p>
+			<source test="">
+				<![CDATA[
+
+# My SQL Driver Path Example, test and production
+org.apache.jetspeed.test.jdbc.drivers.path=
+     /Portal/lib/MySQL/mysql-connector-java-3.0.8-stable-bin.jar
+org.apache.jetspeed.production.jdbc.drivers.path=
+     /Portal/lib/MySQL/mysql-connector-java-3.0.8-stable-bin.jar
+
+# Oracle 9i Driver Path Example, test and production
+org.apache.jetspeed.test.jdbc.drivers.path=
+     /Portal/lib/oracle/ojdbc14.jar;/Portal/lib/oracle/nls_charset12.jar
+org.apache.jetspeed.production.jdbc.drivers.path=
+     /Portal/lib/oracle/ojdbc14.jar;/Portal/lib/oracle/nls_charset12.jar
+
+# Oracle 8i Driver Path Example, test and production
+org.apache.jetspeed.test.jdbc.drivers.path=
+     /Portal/lib/oracle/classes12.jar;
+org.apache.jetspeed.production.jdbc.drivers.path=
+     /Portal/lib/oracle/classes12.jar;
+
+]]>
+			</source>
+
+			<subsection name="Distributing Drivers">
+				<p>
+					When Jetspeed is deployed to an application server
+					using the maven deploy target, only the Derby
+					JDBC driver is copied into the web application. To
+					distribute a specific driver (i.e. Oracle, MySQL),
+					you will need to copy the driver into the
+					application server's common class path for shared
+					code.
+				</p>
+				<table>
+					<tr>
+						<th>Application Server</th>
+						<th>Procedure</th>
+					</tr>
+					<tr>
+						<td>Tomcat 5 and 5.5</td>
+						<td>
+							copy driver(s) to ${TOMCAT_HOME}/endorsed/
+						</td>
+					</tr>
+
+				</table>
+
+			</subsection>
+			<subsection name="Datasource Configuration with Jetspeed-2">
+			<p>
+			Jetspeed-2 requires a datasource to be configured in the application server on which it is being deployed.
+			For more information, see the <a href="../components/jetspeed-rdbms/index.html">RDBMS component documentation</a>.
+			</p>
+			</subsection>
+
+		</section>
+	</body>
+</document>

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-decorators.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-decorators.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-decorators.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-decorators.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,307 @@
+<?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 Jetspeed Decoration</title>
+    <subtitle>Documentation for Designers working with Jetspeed Decorations</subtitle>
+    <authors>
+      <person name="Scott T Weaver" email="weaver@apache.org"/>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Introduction to Decorators">
+<p>
+Decorators are defined as any static or semi-static markup surrounding a dynamically generated Fragment. 
+Decorators are usually written with either Velocity or JSP templates.  This guide will focus primarily
+on using the Velocity scripting language to build decoration.  However, most of the standards and 
+approaches described here can be applied to writing decroations in other scripting languages.
+</p>
+<p>
+    There are two different types of decorations that are used when building a page; Portlet and Layout (or page).
+    <p>
+    Portlet decorations are the "window dressings" of Jetspeed.  They wrap each indivual portlet fragment's
+    rendered content with HTML (XHTML, VXML, etc).  Portlet decoration's are responsible for displaying the
+    appropriate title and any buttons associated with changing window states or portlet modes.
+    </p>
+    <p>
+    Layout or Page decorations responsible for providind a "header" area and "footer" area for a single
+    portal page which is represented by a .psml document (see: <a href="guide-psml.html">Documentation for Designers working with PSML</a>
+    for more information on psml).  They also provide general style information for the page and portlets.  However,
+    portlet level style settings can be overidden at the portlet decoration level.
+    </p>
+    
+</p>
+</section>
+<section name="Decoration File Structure">
+<p>
+    All decorations are stored in a directory directly off of the web applications
+    root called <code>decorations</code>.  The two primary directories under the 
+    here are <code>layout</code> for layout decorations and <code>portlet</code>
+    for portlet decorations.  Individual decoartions are housed in their own directories
+    underneath these two directories.  The name of the directory you create for under either
+    <code>layout</code> or <code>portlet</code> is how Jetspeed will locate your decoration.  We
+    will go into further detail on how this works later on in this guide.
+</p>        
+</section>
+
+<section name="Anatomy of a Layout(Page) Decoration">
+  <subsection name='Four Files in a Nutshell'>
+    <p>
+        In it's most basic form a Layout Decroation only requires you to define
+        four files:
+        <ul>
+            <li>decorator.properties</li>
+            <li>styles.css</li>
+            <li>header.vm</li>
+            <li>footer.vm</li>
+        </ul>
+        Three of these files; decorator.properties, header.vm, and footer.vm go directly into 
+        the directory you create under <code>/decorations/layout</code>.  The styles.css needs
+        to be put into a subdirectory of your decoration names <code>css/</code>.
+    </p>
+  </subsection>
+  
+   <subsection name='Basic Layout Decoration Configuration: decorator.properties'>
+    <p>
+        The decorator.properties file holds basic information about your layout
+        decoration.  In all actuallity, this file can be blank, but we still require
+        that it be present as it is used by other APIs to "discover" available decorations.  
+        With that being said, it is safe to assume that all the properties defined below 
+        are optional.
+        <table>
+            <tr>
+                <th>Property Name</th>
+                <th>Description</th>
+                <th>Default</th>
+            </tr>
+            <tr>
+                <td>base.css.class</td>
+                <td>
+                    This value is generally placed in the top most element tag
+                    of your header template.  You will see how it is used when
+                    we go into development of a header template.
+                </td>
+                <td>Defaults to the name of your decoration</td>
+            </tr>
+            <tr>
+                <td>stylesheet</td>
+                <td>Relative path to your decoration's stylesheet</td>
+                <td>css/styles.css</td>
+            </tr>
+            <tr>
+                <td>header</td>
+                <td>Relative path to your decoration's header template</td>
+                <td>header.vm</td>
+            </tr>
+            <tr>
+                <td>footer</td>
+                <td>Relative path to your decoration's footer template</td>
+                <td>footer.vm</td>
+            </tr>            
+        </table>
+    </p>
+   </subsection>
+   <subsection name='Top o&apos; the Page to ya: header.vm'>
+    <p>
+        The <strong>header.vm</strong> represnts the top portion of your portal page.  Below is a section
+        by section walkthrough of the basics required to write a functional header
+        template.
+        <br/><br/>
+        <strong>NOTICE:</strong> It is assumed that the reader is proficient in both
+        the use of HTML and CSS.  A rudimentary knowledge of Velocity helps but is not 
+        required to develop a decoration.
+    </p>
+    <p>
+<source>
+<![CDATA[        
+<html>
+   <head>
+     #defineLayoutObjects()
+]]></source>   
+        The first two lines should be obvious, if they are not, this guide from here
+        on out will not be much help to you ;-)
+
+  		<h4>Our First Macro: #defineLayoutObjects()</h4>
+        <p>
+            Now the line containing <code>#defineLayoutObjects()</code> will not be as obvious in its
+            purpose as the previous two.  <code>#defineLayoutObjects()</code> is what is known, in
+            Velocity vernacular, as a macro.  A macro is a predefined snippet of Velocity 
+            code that can be reused within any Velocity template.  All of the global macros
+            we will be using (including this one) are defined within the <code>WEB-INF/jetspeed_macros.vm</code>.
+            Later in this guide we will discuss supplying your own, custom macros for assisting
+            you in your decoration development, if you choose to.  Now, back to the <code>#defineLayoutObjects()</code>.
+            <code>#defineLayoutObjects()</code> adds values to Velocity that will be accessible within header.vm,
+            footer.vm, other macros and all of your portlet decoration templates.  We could easily stop here 
+            regarding <code>#defineLayoutObjects()</code>, however, I feel it can be helpful to have some 
+            insights into the inner workings of Velocity for the uninitiated.  With out further ado, the 
+            code:        
+<source>
+<![CDATA[        
+  #macro (defineLayoutObjects)
+    #set($preferedLocale = $JS2RequestContext.locale)
+    #set($rootFragment = $jetspeed.currentFragment)
+    #set($site = $request.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext"))
+    #set($theme = $request.getAttribute("org.apache.jetspeed.theme"))
+    #set($layoutDecoration = $theme.getDecoration($rootFragment))
+  #end        
+]]></source>        
+			
+            Hmm. What is actually happening here. Okay first off we have, <code>#set()</code>, this is what is known as a
+            directive in Velocity.  A directive is built-in functionallity and not a macro. <code>#set()</code>
+            is pretty straight forward in that it takes the value on the right of the = and assigns it to
+            the left.  Cool, that seems fairly straight forward. But how does one work with these values and where
+            the heck did <code>$JS2RequestContext.locale</code> come from?  I guess i should take a quick step back
+            and describe how we work with objects in Velocity.  All objects available to a Velocity template
+            can be referenced via the <code>$someObject</code> notation.  Knowing that much invoking a method
+            , let's getFoo(), can be done just like this <code>$someObject.getFoo()</code>.  Even cooler is the
+            fact we can short-hand getter methods that don't take any arguments like this, 
+            <code>$someObject.foo</code>.  As for this <code>$JS2RequestContext</code> this is actually
+            an instance of the <code>org.apache.jetspeed.RequestContext</code> that has been availble to Velocity
+            by Jetspeed itself.  So, by looking the javadoc for <code>org.apache.jetspeed.RequestContext</code> we see
+            <code>$JS2RequestContext.locale</code> will give us an instance of <code>java.util.Locale</code> that represents
+            the locale of the current user.  Couldn't be much simpler than that could it?
+               <br/><br/>
+            Next up we have this line <code>#set($rootFragment = $jetspeed.currentFragment)</code> another set()
+            statement, this time creating an object called <code>$rootFragment</code> which is an instance of
+            <a href="http://portals.apache.org/jetspeed-2/multiproject/jetspeed-api/apidocs/org/apache/jetspeed/om/page/ContentFragment.html">org.apache.jetspeed.om.page.ContentFragment</a>.
+			It is really not relevant to this guide
+            to describe what <code>$jetspeed.currentFragment</code> is doing so I am going to skip that and move on. 
+            <br/><br/>
+            <code>
+              #set($site = $request.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext"))
+             <br/>
+             #set($theme = $request.getAttribute("org.apache.jetspeed.theme"))
+            </code>
+            <br/>
+            Ah <code>$request</code>, now that looks familiar, this is actually an instance of <code>javax.servlet.http.HttpServletRequest</code>
+            from which we are retreiving objects that were been placed into Velocity by Jetspeed.  The actual objects are:
+            <a href="http://portals.apache.org/jetspeed-2/multiproject/jetspeed-api/apidocs/org/apache/jetspeed/portalsite/PortalSiteRequestContext.html">org.apache.jetspeed.portalsite.PortalSiteRequestContext</a>
+            and
+            <a href="http://portals.apache.org/jetspeed-2/multiproject/jetspeed-api/apidocs/org/apache/jetspeed/decroation/Theme.html">org.apache.jetspeed.decoration.Theme</a>
+            respectively.  We will put all of these objects to good use in just a little while.       
+        </p>
+	  <h4>Feed Your HEAD: How to Properly Code Your Head Tag.</h4>
+	   <p>
+		This section provides you with all the information to properly code the
+		&lt;HEAD&gt; of your Layout decroation.  So, straight to the code.
+		<source>
+<![CDATA[  
+<html>
+    <head>
+     #defineLayoutObjects()
+     
+     <base href="#BaseHref()">
+     <meta http-equiv="Content-type" content="#ContentType()" />
+     <meta http-equiv="Content-style-type" content="text/css" />   
+     #includeJavaScriptForHead()
+     #IncludeStylesheets()    
+     <title>#PageTitle()</title>
+     <meta name="description" content="#PageDescription()" />
+]]></source>
+	   </p>	
+	 
+    </p>
+	<h5>The &lt;base&gt; Tag</h5>
+	  <p>	
+		First off we have <code><![CDATA[ <base href="#BaseHref()">]]></code> which allows 
+		us to define the base path for resolution of web resources, for an in depth discussion
+		of the <code><![CDATA[ <base>]]></code> see: <a href="http://www.w3schools.com/tags/tag_base.asp">W3C Schools Reference</a>.  
+		If you have spent any time playing with Jetspeed, you will have noticed it does all sorts
+		of crazy URL rewriting that will totally hose any attempts to consistently path you html
+		and styles sheets.  By defining the BASE tag, this probelms will all but disappear.  As 
+		for the <code>#BaseHref()</code> macro, it simply generates a fully qualified path to your
+		web application's root.  The actual code, interms of the servlet api is synonimous with this:
+<source>
+HttpServletRequest request;
+StingBuffer baseHref = new StringBuffer(request.getScheme())
+     .append("://").append(request.getServerName())
+	 .append(":").append(request.getServerPort())
+	 .append(request.getContextPath()).append("/");
+return baseHref.toString();		 
+</source>
+       The actual Velocity macro code is a bit more terse ;)
+<source>
+${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath}/
+</source>
+       </p>
+	 <h5>Meta Tag: <![CDATA[<meta http-equiv="Content-type" content="#ContentType()" />]]></h5>
+	 <p>
+		Will return text/html plus the proper encoding, such as UTF.
+	 </p>
+	 <h5>#includeJavaScriptForHead()</h5>
+	 <p>
+	   At the time of the writing of this guide there is really very little javascript
+	   required to for the base Jetspeed 2 server to run.  However this may change in
+	   near future as we try to employ the use of AJAX in things such as configuration 
+	   and administration.
+	 </p>
+   </subsection>
+</section>
+<!--
+<section name='Packaging'>
+<p>
+Layouts are packaged in a JAR file. Supported decorators: 
+<ul>
+    <li>Page Decorators</li>
+    <li>Portlet Decorators</li>
+    <li>Generic Decorators</li>    
+    <li>Localized Decorators</li>
+</ul>
+Operations Supported:
+<ul>
+    <li>Deploy</li>
+    <li>Un-deploy</li>
+    <li>Re-deploy</li>
+</ul>
+The decorator.properties file must be located in the root directory of the jar archive and 
+contain the properties outlined in the next slide to be identified as a decorator by the auto 
+deployment system. The deployer will relocate the locale specific content to satisfy J2 
+content locators as necessary on deploy and undeploy. The current implementation supports 
+only 2 character language and country codes.    
+</p>    
+</section>
+<section name='Decorator Properties'>
+<p>
+The decorator.properties file must be located in the root directory of the jar archive and 
+contain the properties outlined above to be identified as a decorator by the auto-deployment system. 
+</p>
+<p>
+A deployable decorator must have the following properties set or defaulted in the decorator.properties 
+configuration:
+
+<source test=""><![CDATA[
+
+id = IDENTIFIER
+media.type=  HTML | WML
+decorates =  layout | portlet | any
+
+]]></source>
+
+To avoid conflicts with the locale logic and runtime locators, decorators should be 
+named with ids longer than 2 characters in length. The media.type property defaults to 'html'. 
+The 'any' value for the decorates property is mapped to the generic deployment directory.
+The deployer will relocate the locale specific content to satisfy J2 content locators as 
+necessary on deploy and undeploy. The current implementation supports only 2 
+character language and country codes.
+</p>    
+</section>
+-->
+</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-demo.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-demo.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-demo.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-demo.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" />
+			<person name="Philip Mark Donaghy" email="pmd@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Live Jetspeed Demo">
+			<p>To get a quick look at the Jetspeed decorators, themes,
+			<a href="../features.html">functionalities</a>,
+			and the admin interface point your browser to
+			<a href="http://portals.zones.apache.org/jetspeed/portal/">the standard portal demo</a> or
+			<a href="http://portals.zones.apache.org/jetspeed/desktop/">the web 2.0 desktop demo</a>.
+			Use the username <i>admin</i> connects using the password <i>j2</i>. Note: It is probable that
+			someone changes the password therefore we will regenerate the site on a regular basis.
+			</p>
+		</section>
+	</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-dir-structure.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-dir-structure.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-dir-structure.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-dir-structure.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>Guide to Jetspeed-2 Component Architecture</title>
+		<subtitle>Guide to Jetspeed-2 Component Architecture</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Guide to Jetspeed-2 Component Architecture">
+			
+		</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-dir-structure.xml
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-j2-development.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-j2-development.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-j2-development.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-j2-development.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>Guide to Jetspeed-2 Development</title>
+		<subtitle>Guide to Jetspeed-2 Development</subtitle>
+		<authors>
+			<person name="David Le Strat" email="dlestrat@apache.org" />
+		</authors>
+	</properties>
+	<body>
+		<section name="Guide to Jetspeed-2 Development">
+		    <subsection name="Working with Jetspeed-2 Source Code">
+		    <p>
+		    For information on how to get started with Jetspeed-2 source code, check 
+		    <a href="../getting-started-source.html">getting started with Jetspeed-2 source code</a>.
+		    </p>
+		    </subsection>
+			<subsection name="How to Submit Patches?">
+			<p>
+			When working with Eclipse with the <a href="http://subclipse.tigris.org/">Subclipse plugin</a>,
+			it is possible to generate a patch for the code changed as illustrated below:
+			<br/><br/>
+			<img src="images/create-patch.gif" border="0" />
+			</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-j2-development.xml
------------------------------------------------------------------------------
    svn:eol-style = native

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-jpt.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-jpt.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-jpt.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-jpt.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,165 @@
+<?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 Jetspeed Power Tool</title>
+    <subtitle>Documentation for Designers working with the Jetspeed Power Tool.</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Jetspeed Power Tool">
+<p>
+The Jetspeed Power Tool (JPT) is a velocity tool used in Layouts and Decorators to generate dynamic content.
+The JPT is a request level velocity tool, and is available to all layouts and decorators.
+The JPT is referenced in your decorator or layout as:
+<source test=""><![CDATA[
+$jetspeed
+]]></source>
+All public JPT APIs can be accessed with:
+<ul>
+    <li>Java dot notation for methods</li>
+    <li>JavaBean shortcuts for properties (getter/setter)</li>    
+</ul>
+Example of calling a method:
+<source test=""><![CDATA[
+# call a method 'getTitle' with 2 parameters
+$jetspeed.getTitle($myPE, $myF)
+]]></source>
+Example of calling getting a property:
+<source test=""><![CDATA[
+# get the page bean, equivalent to $jetspeed.getPage()
+$jetspeed.page
+]]></source>
+</p>
+</section>
+<section name="JPT Velocity API">
+<p>The table below defines the Jetspeed Power Tool API for Velocity</p>
+<hr/>
+<table>
+  <tr> 
+    <th>API</th>
+    <th><b>decorateAndInclude($fragment)</b></th>
+  </tr>
+  <tr>
+    <td>Description</td>
+    <td>
+        Retrieves the application relative path to a decorator template for a given 
+        fragment parameter <b>($fragment)</b> to be included by Velocity. 
+        Should be passed as a parameter to the Velocity #parse function (#parse includes 
+        another Velocity template). 
+     </td>
+  </tr>
+  <tr>
+    <td>Parameter</td>
+    <td><b>$fragment</b> - the fragment to be included and decorated.</td>         
+  </tr>
+  <tr>
+    <td>Returns</td>
+    <td><b>String</b> - Application relative path to a decorator template.</td>
+  </tr>
+  <tr>
+    <td>Examples</td>
+    <td>#parse($jetspeed.decorateAndInclude($fragment))<br/>returns<br/>/WEB-INF/decorations/layout/html/tigris/header.vm</td>
+  </tr>  
+</table>
+<hr/>
+<table>
+  <tr> 
+    <th>API</th>
+    <th><b>getAbsoluteUrl(appRelativePath)</b></th>
+  </tr>
+  <tr>
+    <td>Description</td>
+    <td>
+        Given a relative path to an portlet application resource, returns an absolute URL.
+        This API should not be used to reference template ULS since they are usually inaccessible 
+        as absolute URLs because they are often located in a CMS or behind the secured WEB-INF directory.
+     </td>
+  </tr>
+  <tr>
+    <td>Parameter</td>
+    <td><b>relativePath</b> - a relative path to a resource in the decorator package.</td>         
+  </tr>
+  <tr>
+    <td>Returns</td>
+    <td><b>String</b> - The full absolute path to a web resource</td>
+  </tr>
+  <tr>
+    <td>Examples</td>
+    <td>$jetspeed.getAbsoluteUrl("/images/test.gif")<br/>returns<br/>http://localhost:8080/jetspeed/portal/images/test.gif</td>
+  </tr>  
+</table>
+<hr/>
+<table>
+  <tr> 
+    <th>API</th>
+    <th><b>columns</b></th>
+  </tr>
+  <tr>
+    <td>Description</td>
+    <td>
+        Returns a list of column for the current fragment during a layout aggregation.
+     </td>
+  </tr>
+  <tr>
+    <td>Parameter</td>
+    <td><b>-</b></td>         
+  </tr>
+  <tr>
+    <td>Returns</td>
+    <td><b>List</b> - a standard Java List of sub-fragments or portlets</td>
+  </tr>
+  <tr>
+    <td>Examples</td>
+    <td>#set ($table = $jetspeed.columns)<br/>#foreach($entry in $table)
+    </td>
+  </tr>  
+</table>
+<hr/>
+<table>
+  <tr> 
+    <th>API</th>
+    <th><b></b></th>
+  </tr>
+  <tr>
+    <td>Description</td>
+    <td>
+     </td>
+  </tr>
+  <tr>
+    <td>Parameter</td>
+    <td><b></b></td>         
+  </tr>
+  <tr>
+    <td>Returns</td>
+    <td><b></b></td>
+  </tr>
+  <tr>
+    <td>Examples</td>
+    <td></td>
+  </tr>  
+</table>
+<hr/>
+
+</section>
+
+</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-l10n.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-l10n.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-l10n.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-l10n.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,88 @@
+<?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 Localization for Jetspeed 2</title>
+    <subtitle>Jetspeed 2 Localization for your language</subtitle>
+    <authors>
+      <person name="Shinsuke Sugaya" email="shinsuke@yahoo.co.jp"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Translate Messages">
+<p>
+Jetspeed2 has the translatable messages in Java properties and XML files
+</p>
+<subsection name="Properties File">
+<p>
+This document shows how to create a message properties file for your language.
+</p>
+<h5>1. Find <code>*_en.properties</code></h5>
+<p>
+<code>*_en.properties</code> is English message properties file. You can use it as a base properties file for your language. 
+</p>
+<p>
+If you use UNIX system, you can use <code>find</code> command to find the properties files:
+</p>
+<source test=""><![CDATA[
+$ cd ${jetspeed-2-home}
+$ find . -type f | grep -v CVS | grep _en.properties
+]]></source>
+<h5>2. Copy <code>*_en.properties</code> to <code>*_&lt;your language, [country and variant]&gt;.properties.orig</code></h5>
+<p>
+To translate messages, copy the properties file for your language. For more information about Language, Country and Variant code, see "<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html">JavaDoc: Locale Class</a>", "<a href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">ISO Language Code</a>" and "<a href="http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html">ISO Country Code</a>".
+</p>
+<p>
+Example:
+</p>
+<source test=""><![CDATA[
+$ cd applications/localeselector/src/java/org/apache/jetspeed/portlets/localeselector/resources/
+$ cp LocaleSelectorResources_en.properties LocaleSelectorResources_ja.properties.orig
+]]></source>
+<p>
+where <code>*_ja.properties</code> is Japanese message file.
+</p>
+<h5>3. Translate *_&lt;your language, [country and variant]&gt;.properties.orig in your language</h5>
+<p>
+For more information about a properties file, see "<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)">JavaDoc: Properties Class</a>".
+</p>
+<h5>4. Run <code>native2ascii</code> command</h5>
+<p>
+Since the properties file is assumed to be using the ISO 8859-1 character encoding, use <code>native2ascii</code> command to convert to ISO 8859-1. For more information about "<a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/native2ascii.html">native2ascii(Solaris)</a>" or "<a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/native2ascii.html">native2ascii(Windows)</a>".
+</p>
+<p>
+Example:
+</p>
+<source test=""><![CDATA[
+$ native2ascii LocaleSelectorResources_ja.properties.orig LocaleSelectorResources_ja.properties
+]]></source>
+<h5>5. Build &amp; Deploy Jetspeed2, and see if your translation is displayed</h5>
+<p>
+For more information about Jetspeed 2 build and deploy steps, see "<a href="getting-started.html">Getting Started</a>".
+</p>
+<h5>6. Create a new JIRA issue, and attach <code>*_&lt;your language, [country and variant]&gt;.properties</code></h5>
+<p>
+JIRA site for Jetspeed 2 is <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10492">http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10492</a>. To create a new JIRA issue, go to "CREATE NEW ISSUE"(select "l10n" as Component/s name).
+</p>
+
+</subsection>
+</section>
+
+</body>
+</document>
+

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

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

Added: portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-layouts.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-layouts.xml?rev=722405&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-layouts.xml (added)
+++ portals/jetspeed-2/portal/branches/JS2-871-pluto-2.0-upgrade/src/site/xdoc/guides/guide-layouts.xml Tue Dec  2 00:53:22 2008
@@ -0,0 +1,141 @@
+<?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>Layouts and Decorations</title>
+    <subtitle>Documentation for Designers working with Jetspeed Layouts and Decorations</subtitle>
+    <authors>
+      <person name="David Sean Taylor" email="taylor@apache.org"/>
+    </authors>
+  </properties>
+  <body>
+<section name="Layouts">
+<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='#Jetspeed-2 Layouts'>Jetspeed-2 Layouts</a> below for all available Layouts in the 
+default Jetspeed-2 system. Of course you can define and derive your own layouts. 
+</p>
+<p>
+With regards to aggregation, layouts define how a single portal page is aggregated.
+A l ayout 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.   
+</p>
+<p>A layout is made up of:
+<ul>
+  <li>One or more templates</li>
+  <li>A template descriptor</li>
+  <li>Images</li>
+  <li>A Stylesheet (CSS)</li>
+  <li>Macros</li>
+</ul>
+</p>
+<p>
+    <img src='images/layouts/layouts-overview.png'/>
+</p>
+</section>
+<section name="Layouts Packaging">
+<p>
+Layouts are packaged as standard portlet applications.
+Layouts usual have a 
+</p>
+<p>
+Operations Supported:
+<ul>
+    <li>Deploy</li>
+    <li>Un-deploy</li>
+    <li>Re-deploy</li>
+</ul>
+</p>    
+</section>
+<section name='Jetspeed-2 Layouts'>
+<p>
+Jetspeed-2 comes out of the box with several layout components including one, two and three 
+column layouts. Of course you can define and derive your own layouts. The table below lists
+the available layout components in Jetspeed. When customizing (editing) a page,
+the layout component is selected. One layout may be assigned per PSML page.
+</p>    
+<table>
+  <tr> 
+    <th>Layout</th>
+    <th>Type</th>
+    <th>Columns</th>
+    <th>Sizes</th>
+    <th>Modes</th>
+    <th>Description</th>
+  </tr>    
+  <tr>
+    <td><b>VelocityOneColumn</b></td>
+    <td>OneColumn</td>
+    <td>1</td>
+    <td>100%</td>
+    <td>view,edit,help</td>
+    <td>A single column display of one or more fragments taking up 100% of the portlet display area.</td>
+  </tr>
+  <tr>
+    <td><b>VelocityTwoColumns</b></td>
+    <td>TwoColumns</td>
+    <td>2</td>
+    <td>50%,50%</td>
+    <td>view,edit,help</td>
+    <td>A two column display of one or more fragments where each column is allocated to 50% of the portlet display area respectively.
+        Fragments may be placed in either column using <a href='psml.html'>PSML</a> fragment definitions.
+     </td>
+  </tr>
+  <tr>
+    <td><b>VelocityTwoColumnsSmallLeft</b></td>
+    <td>TwoColumns</td>
+    <td>2</td>
+    <td>15%,85%</td>
+    <td>view,edit,help</td>
+    <td>A two column display of one or more fragments where the left column is allocated to 15% of the portlet display area,
+        and the right column is allocated to 85% of the portlet display area.
+        Fragments may be placed in either column using <a href='psml.html'>PSML</a> fragment definitions.
+     </td>
+  </tr>
+  <tr>
+    <td><b>VelocityThreeColumns</b></td>
+    <td>ThreeColumns</td>
+    <td>3</td>
+    <td>33%,33%,33%</td>
+    <td>view,edit,help</td>
+    <td>A three column display of one or more fragments where each column is allocated to 33% of the portlet display area respectively.
+        Fragments may be placed in either column using <a href='psml.html'>PSML</a> fragment definitions.
+     </td>
+  </tr>
+  <tr>
+    <td><b>VelocityOneColumnNoActions,<br/>VelocityTwoColumnsNoActions,<br/>VelocityThreeColumnsNoActions</b></td>
+    <td></td>
+    <td></td>
+    <td></td>
+    <td>view</td>
+    <td>Same parameters as their counterparts with actions, but no decorator actions are displayed.
+     </td>
+  </tr>  
+</table>
+</section>
+
+</body>
+</document>
+

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

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